Merge "Fix issue #65055576: VoiceInteractionManagerService sets..." into oc-mr1-dev

This commit is contained in:
TreeHugger Robot
2017-08-31 17:23:26 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 10 deletions

View File

@@ -1331,11 +1331,13 @@ public final class SystemServer {
traceEnd();
}
if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_VOICE_RECOGNIZERS)) {
traceBeginAndSlog("StartVoiceRecognitionManager");
mSystemServiceManager.startService(VOICE_RECOGNITION_MANAGER_SERVICE_CLASS);
traceEnd();
}
// We need to always start this service, regardless of whether the
// FEATURE_VOICE_RECOGNIZERS feature is set, because it needs to take care
// of initializing various settings. It will internally modify its behavior
// based on that feature.
traceBeginAndSlog("StartVoiceRecognitionManager");
mSystemServiceManager.startService(VOICE_RECOGNITION_MANAGER_SERVICE_CLASS);
traceEnd();
if (GestureLauncherService.isGestureLauncherEnabled(context.getResources())) {
traceBeginAndSlog("StartGestureLauncher");

View File

@@ -183,7 +183,7 @@ public class VoiceInteractionManagerService extends SystemService {
private final boolean mEnableService;
VoiceInteractionManagerServiceStub() {
mEnableService = shouldEnableService(mContext.getResources());
mEnableService = shouldEnableService(mContext);
}
// TODO: VI Make sure the caller is the current user or profile
@@ -348,10 +348,15 @@ 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() ||
getForceVoiceInteractionServicePackage(res) != null;
private boolean shouldEnableService(Context context) {
// VoiceInteractionService should not be enabled on any low RAM devices
// or devices that have not declared the recognition feature, unless the
// device's configuration has explicitly set the config flag for a fixed
// voice interaction service.
return (!ActivityManager.isLowRamDeviceStatic()
&& context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_VOICE_RECOGNIZERS)) ||
getForceVoiceInteractionServicePackage(context.getResources()) != null;
}
private String getForceVoiceInteractionServicePackage(Resources res) {