Use flag to control the restart period value.

Bug: 224618257
Test: adb shell cmd device_config get/put voice_interaction \
restart_period_in_seconds works fine
Test: the value is expected by command: adb shell dumpsys \
voiceinteraction | grep RESTART_PERIOD_SECONDS

Change-Id: Icd8d19c2a482d0d6b9bf0432e2176ca10f3bd2eb
Merged-In: Icd8d19c2a482d0d6b9bf0432e2176ca10f3bd2eb
(cherry picked from commit 46e69448046fb9093ca7526d7428bf23a177a0f8)
This commit is contained in:
Joanne Chung 2022-03-15 18:19:59 +08:00 committed by Ahaan Ugale
parent fc651fe0d2
commit 475800990a
2 changed files with 12 additions and 1 deletions

View File

@ -512,6 +512,13 @@ public final class DeviceConfig {
@SystemApi @SystemApi
public static final String NAMESPACE_WINDOW_MANAGER_NATIVE_BOOT = "window_manager_native_boot"; public static final String NAMESPACE_WINDOW_MANAGER_NATIVE_BOOT = "window_manager_native_boot";
/**
* Definitions for voice interaction related functions.
*
* @hide
*/
public static final String NAMESPACE_VOICE_INTERACTION = "voice_interaction";
/** /**
* List of namespaces which can be read without READ_DEVICE_CONFIG permission * List of namespaces which can be read without READ_DEVICE_CONFIG permission
* *

View File

@ -67,6 +67,7 @@ import android.os.Process;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.SharedMemory; import android.os.SharedMemory;
import android.provider.DeviceConfig;
import android.service.voice.HotwordDetectedResult; import android.service.voice.HotwordDetectedResult;
import android.service.voice.HotwordDetectionService; import android.service.voice.HotwordDetectionService;
import android.service.voice.HotwordRejectedResult; import android.service.voice.HotwordRejectedResult;
@ -109,6 +110,7 @@ final class HotwordDetectionConnection {
private static final String TAG = "HotwordDetectionConnection"; private static final String TAG = "HotwordDetectionConnection";
static final boolean DEBUG = false; static final boolean DEBUG = false;
private static final String KEY_RESTART_PERIOD_IN_SECONDS = "restart_period_in_seconds";
// TODO: These constants need to be refined. // TODO: These constants need to be refined.
private static final long VALIDATION_TIMEOUT_MILLIS = 4000; private static final long VALIDATION_TIMEOUT_MILLIS = 4000;
private static final long MAX_UPDATE_TIMEOUT_MILLIS = 6000; private static final long MAX_UPDATE_TIMEOUT_MILLIS = 6000;
@ -119,7 +121,9 @@ final class HotwordDetectionConnection {
* Time after which each HotwordDetectionService process is stopped and replaced by a new one. * Time after which each HotwordDetectionService process is stopped and replaced by a new one.
* 0 indicates no restarts. * 0 indicates no restarts.
*/ */
private static final int RESTART_PERIOD_SECONDS = 3600; // 60 minutes private static final int RESTART_PERIOD_SECONDS =
DeviceConfig.getInt(DeviceConfig.NAMESPACE_VOICE_INTERACTION,
KEY_RESTART_PERIOD_IN_SECONDS, 3600); // 60 minutes by default
private static final int MAX_ISOLATED_PROCESS_NUMBER = 10; private static final int MAX_ISOLATED_PROCESS_NUMBER = 10;
// Hotword metrics // Hotword metrics