From c663d99f007c0faa7b66a569ec4083b82d60ef15 Mon Sep 17 00:00:00 2001 From: Cedric Ho Date: Thu, 23 Apr 2015 15:16:47 -0700 Subject: Enable VoiceInteractionService on watch. Change-Id: I1d23ba55a98f6d68942cc344b4a564ab62285656 --- .../VoiceInteractionManagerService.java | 25 ++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'services/voiceinteraction') diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index f5d4867..e8cdc55 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -28,6 +28,8 @@ import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; +import android.content.res.Configuration; +import android.content.res.Resources; import android.database.ContentObserver; import android.hardware.soundtrigger.IRecognitionStatusCallback; import android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel; @@ -79,6 +81,7 @@ public class VoiceInteractionManagerService extends SystemService { mResolver = context.getContentResolver(); mDbHelper = new DatabaseHelper(context); mSoundTriggerHelper = new SoundTriggerHelper(context); + mServiceStub = new VoiceInteractionManagerServiceStub(); } @Override @@ -104,8 +107,7 @@ public class VoiceInteractionManagerService extends SystemService { } // implementation entry point and binder service - private final VoiceInteractionManagerServiceStub mServiceStub - = new VoiceInteractionManagerServiceStub(); + private final VoiceInteractionManagerServiceStub mServiceStub; class VoiceInteractionManagerServiceStub extends IVoiceInteractionManagerService.Stub { @@ -113,6 +115,11 @@ public class VoiceInteractionManagerService extends SystemService { private boolean mSafeMode; private int mCurUser; + private final boolean mEnableService; + + VoiceInteractionManagerServiceStub() { + mEnableService = shouldEnableService(mContext.getResources()); + } @Override public boolean onTransact(int code, Parcel data, Parcel reply, int flags) @@ -136,8 +143,7 @@ public class VoiceInteractionManagerService extends SystemService { Settings.Secure.VOICE_INTERACTION_SERVICE, userHandle); ComponentName curRecognizer = getCurRecognizer(userHandle); VoiceInteractionServiceInfo curInteractorInfo = null; - if (curInteractorStr == null && curRecognizer != null - && !ActivityManager.isLowRamDeviceStatic()) { + if (curInteractorStr == null && curRecognizer != null && mEnableService) { // If there is no interactor setting, that means we are upgrading // from an older platform version. If the current recognizer is not // set or matches the preferred recognizer, then we want to upgrade @@ -155,7 +161,7 @@ public class VoiceInteractionManagerService extends SystemService { // If we are on a svelte device, make sure an interactor is not currently // enabled; if it is, turn it off. - if (ActivityManager.isLowRamDeviceStatic() && curInteractorStr != null) { + if (!mEnableService && curInteractorStr != null) { if (!TextUtils.isEmpty(curInteractorStr)) { setCurInteractor(null, userHandle); curInteractorStr = ""; @@ -184,7 +190,7 @@ public class VoiceInteractionManagerService extends SystemService { } // Initializing settings, look for an interactor first (but only on non-svelte). - if (curInteractorInfo == null && !ActivityManager.isLowRamDeviceStatic()) { + if (curInteractorInfo == null && mEnableService) { curInteractorInfo = findAvailInteractor(userHandle, null); } @@ -210,6 +216,12 @@ public class VoiceInteractionManagerService extends SystemService { } } + private boolean shouldEnableService(Resources res) { + // VoiceInteractionService should not be enabled on low ram devices unless it has the config flag. + return !ActivityManager.isLowRamDeviceStatic() + || res.getBoolean(com.android.internal.R.bool.config_forceEnableVoiceInteractionService); + } + public void systemRunning(boolean safeMode) { mSafeMode = safeMode; @@ -659,6 +671,7 @@ public class VoiceInteractionManagerService extends SystemService { } synchronized (this) { pw.println("VOICE INTERACTION MANAGER (dumpsys voiceinteraction)\n"); + pw.println(" mEnableService: " + mEnableService); if (mImpl == null) { pw.println(" (No active implementation)"); return; -- cgit v1.1