Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1970e8d2 authored by Jay Aliomer's avatar Jay Aliomer Committed by Android (Google) Code Review
Browse files

Merge "NotificationAssistantService(NAS) is not set on a freshly setup device" into rvc-dev

parents fcaa5a86 94a5076b
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -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) {
+10 −6
Original line number Diff line number Diff line
@@ -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());
                }
            }
        }