am 0a3e11fe: am 76919595: Merge "Issue #17551667: Voice interaction service should be disabled..." into lmp-mr1-dev
* commit '0a3e11fe428b2d49cecaaf1199ceed36245c1d6f': Issue #17551667: Voice interaction service should be disabled...
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.content.pm.FeatureInfo;
|
||||
import android.os.*;
|
||||
import android.os.Process;
|
||||
@@ -177,6 +178,8 @@ public class SystemConfig {
|
||||
return;
|
||||
}
|
||||
|
||||
final boolean lowRam = ActivityManager.isLowRamDeviceStatic();
|
||||
|
||||
try {
|
||||
XmlPullParser parser = Xml.newPullParser();
|
||||
parser.setInput(permReader);
|
||||
@@ -276,10 +279,17 @@ public class SystemConfig {
|
||||
|
||||
} else if ("feature".equals(name)) {
|
||||
String fname = parser.getAttributeValue(null, "name");
|
||||
boolean allowed;
|
||||
if (!lowRam) {
|
||||
allowed = true;
|
||||
} else {
|
||||
String notLowRam = parser.getAttributeValue(null, "notLowRam");
|
||||
allowed = !"true".equals(notLowRam);
|
||||
}
|
||||
if (fname == null) {
|
||||
Slog.w(TAG, "<feature> without name at "
|
||||
+ parser.getPositionDescription());
|
||||
} else {
|
||||
} else if (allowed) {
|
||||
//Log.i(TAG, "Got feature " + fname);
|
||||
FeatureInfo fi = new FeatureInfo();
|
||||
fi.name = fname;
|
||||
|
||||
@@ -136,11 +136,14 @@ public class VoiceInteractionManagerService extends SystemService {
|
||||
Settings.Secure.VOICE_INTERACTION_SERVICE, userHandle);
|
||||
ComponentName curRecognizer = getCurRecognizer(userHandle);
|
||||
VoiceInteractionServiceInfo curInteractorInfo = null;
|
||||
if (curInteractorStr == null && curRecognizer != null) {
|
||||
if (curInteractorStr == null && curRecognizer != null
|
||||
&& !ActivityManager.isLowRamDeviceStatic()) {
|
||||
// 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
|
||||
// the user to have the default voice interaction service enabled.
|
||||
// Note that we don't do this for low-RAM devices, since we aren't
|
||||
// supporting voice interaction services there.
|
||||
curInteractorInfo = findAvailInteractor(userHandle, curRecognizer);
|
||||
if (curInteractorInfo != null) {
|
||||
// Looks good! We'll apply this one. To make it happen, we clear the
|
||||
@@ -150,6 +153,15 @@ 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 (!TextUtils.isEmpty(curInteractorStr)) {
|
||||
setCurInteractor(null, userHandle);
|
||||
curInteractorStr = "";
|
||||
}
|
||||
}
|
||||
|
||||
if (curRecognizer != null) {
|
||||
// If we already have at least a recognizer, then we probably want to
|
||||
// leave things as they are... unless something has disappeared.
|
||||
@@ -171,10 +183,11 @@ public class VoiceInteractionManagerService extends SystemService {
|
||||
}
|
||||
}
|
||||
|
||||
// Initializing settings, look for an interactor first.
|
||||
if (curInteractorInfo == null) {
|
||||
// Initializing settings, look for an interactor first (but only on non-svelte).
|
||||
if (curInteractorInfo == null && !ActivityManager.isLowRamDeviceStatic()) {
|
||||
curInteractorInfo = findAvailInteractor(userHandle, null);
|
||||
}
|
||||
|
||||
if (curInteractorInfo != null) {
|
||||
// Eventually it will be an error to not specify this.
|
||||
setCurInteractor(new ComponentName(curInteractorInfo.getServiceInfo().packageName,
|
||||
|
||||
Reference in New Issue
Block a user