Merge "NotificationAssistantService(NAS) is not set on a freshly setup device" into rvc-dev am: 1970e8d2fd am: 39f9a3a205
Change-Id: I262cc9fa5254e9dac47c139969efa370936f087e
This commit is contained in:
@@ -98,6 +98,7 @@ abstract public class ManagedServices {
|
||||
private static final int ON_BINDING_DIED_REBIND_DELAY_MS = 10000;
|
||||
protected static final String ENABLED_SERVICES_SEPARATOR = ":";
|
||||
private static final String DB_VERSION_1 = "1";
|
||||
private static final String DB_VERSION_2 = "2";
|
||||
|
||||
|
||||
/**
|
||||
@@ -110,7 +111,7 @@ abstract public class ManagedServices {
|
||||
static final String ATT_VERSION = "version";
|
||||
static final String ATT_DEFAULTS = "defaults";
|
||||
|
||||
static final int DB_VERSION = 2;
|
||||
static final int DB_VERSION = 3;
|
||||
|
||||
static final int APPROVAL_BY_PACKAGE = 0;
|
||||
static final int APPROVAL_BY_COMPONENT = 1;
|
||||
@@ -571,14 +572,16 @@ abstract public class ManagedServices {
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean isVersionOne = TextUtils.isEmpty(version) || DB_VERSION_1.equals(version);
|
||||
if (isVersionOne) {
|
||||
upgradeToVersionTwo();
|
||||
boolean isOldVersion = TextUtils.isEmpty(version)
|
||||
|| DB_VERSION_1.equals(version)
|
||||
|| DB_VERSION_2.equals(version);
|
||||
if (isOldVersion) {
|
||||
upgradeDefaultsXmlVersion();
|
||||
}
|
||||
rebindServices(false, USER_ALL);
|
||||
}
|
||||
|
||||
private void upgradeToVersionTwo() {
|
||||
private void upgradeDefaultsXmlVersion() {
|
||||
// check if any defaults are loaded
|
||||
int defaultsSize = mDefaultComponents.size() + mDefaultPackages.size();
|
||||
if (defaultsSize == 0) {
|
||||
|
||||
@@ -8611,15 +8611,19 @@ public class NotificationManagerService extends SystemService {
|
||||
com.android.internal.R.string.config_defaultAssistantAccessComponent)
|
||||
.split(ManagedServices.ENABLED_SERVICES_SEPARATOR)));
|
||||
for (int i = 0; i < assistants.size(); i++) {
|
||||
String cnString = assistants.valueAt(i);
|
||||
if (TextUtils.isEmpty(cnString)) {
|
||||
ComponentName assistantCn = ComponentName
|
||||
.unflattenFromString(assistants.valueAt(i));
|
||||
String packageName = assistants.valueAt(i);
|
||||
if (assistantCn != null) {
|
||||
packageName = assistantCn.getPackageName();
|
||||
}
|
||||
if (TextUtils.isEmpty(packageName)) {
|
||||
continue;
|
||||
}
|
||||
ArraySet<ComponentName> approved = queryPackageForServices(cnString,
|
||||
ArraySet<ComponentName> approved = queryPackageForServices(packageName,
|
||||
MATCH_DIRECT_BOOT_AWARE | MATCH_DIRECT_BOOT_UNAWARE, USER_SYSTEM);
|
||||
for (int k = 0; k < approved.size(); k++) {
|
||||
ComponentName cn = approved.valueAt(k);
|
||||
addDefaultComponentOrPackage(cn.flattenToString());
|
||||
if (approved.contains(assistantCn)) {
|
||||
addDefaultComponentOrPackage(assistantCn.flattenToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user