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

Commit 347c1655 authored by Becca Hughes's avatar Becca Hughes
Browse files

Fix change not picking up work profile

Test: ondevice
Bug: 281787107
Change-Id: I676384877ce21ae1f1e6972646fc465828013c74
parent c0c0edd0
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -122,8 +122,9 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
        mExecutor = ContextCompat.getMainExecutor(mContext);
        mCredentialManager =
                getCredentialManager(context, preferenceKey.equals("credentials_test"));
        mSettingsContentObserver = new SettingContentObserver(mHandler);
        mSettingsContentObserver.register(context.getContentResolver());
        mSettingsContentObserver =
                new SettingContentObserver(mHandler, context.getContentResolver());
        mSettingsContentObserver.register();
        mSettingsPackageMonitor.register(context, context.getMainLooper(), false);
    }

@@ -184,6 +185,10 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
        mIsWorkProfile = isWorkProfile;
        setDelegate(delegate);
        verifyReceivedIntent(launchIntent);

        // Recreate the content observers because the user might have changed.
        mSettingsContentObserver.unregister();
        mSettingsContentObserver.register();
    }

    /**
@@ -889,17 +894,24 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
        private final Uri mCredentialPrimaryService =
                Settings.Secure.getUriFor(Settings.Secure.CREDENTIAL_SERVICE_PRIMARY);

        public SettingContentObserver(Handler handler) {
        private ContentResolver mContentResolver;

        public SettingContentObserver(Handler handler, ContentResolver contentResolver) {
            super(handler);
            mContentResolver = contentResolver;
        }

        public void register(ContentResolver contentResolver) {
            contentResolver.registerContentObserver(mAutofillService, false, this, getUser());
            contentResolver.registerContentObserver(mCredentialService, false, this, getUser());
            contentResolver.registerContentObserver(
        public void register() {
            mContentResolver.registerContentObserver(mAutofillService, false, this, getUser());
            mContentResolver.registerContentObserver(mCredentialService, false, this, getUser());
            mContentResolver.registerContentObserver(
                    mCredentialPrimaryService, false, this, getUser());
        }

        public void unregister() {
            mContentResolver.unregisterContentObserver(this);
        }

        @Override
        public void onChange(boolean selfChange, Uri uri) {
            updateFromExternal();