Merge "Fix change not picking up work profile" into udc-dev am: 3061bcf10a

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23138330

Change-Id: I154a0ea462d13c4e8733697b4288611c6bbcb972
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-05-10 20:44:05 +00:00
committed by Automerger Merge Worker

View File

@@ -122,8 +122,9 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
mExecutor = ContextCompat.getMainExecutor(mContext); mExecutor = ContextCompat.getMainExecutor(mContext);
mCredentialManager = mCredentialManager =
getCredentialManager(context, preferenceKey.equals("credentials_test")); getCredentialManager(context, preferenceKey.equals("credentials_test"));
mSettingsContentObserver = new SettingContentObserver(mHandler); mSettingsContentObserver =
mSettingsContentObserver.register(context.getContentResolver()); new SettingContentObserver(mHandler, context.getContentResolver());
mSettingsContentObserver.register();
mSettingsPackageMonitor.register(context, context.getMainLooper(), false); mSettingsPackageMonitor.register(context, context.getMainLooper(), false);
} }
@@ -184,6 +185,10 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
mIsWorkProfile = isWorkProfile; mIsWorkProfile = isWorkProfile;
setDelegate(delegate); setDelegate(delegate);
verifyReceivedIntent(launchIntent); 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 = private final Uri mCredentialPrimaryService =
Settings.Secure.getUriFor(Settings.Secure.CREDENTIAL_SERVICE_PRIMARY); Settings.Secure.getUriFor(Settings.Secure.CREDENTIAL_SERVICE_PRIMARY);
public SettingContentObserver(Handler handler) { private ContentResolver mContentResolver;
public SettingContentObserver(Handler handler, ContentResolver contentResolver) {
super(handler); super(handler);
mContentResolver = contentResolver;
} }
public void register(ContentResolver contentResolver) { public void register() {
contentResolver.registerContentObserver(mAutofillService, false, this, getUser()); mContentResolver.registerContentObserver(mAutofillService, false, this, getUser());
contentResolver.registerContentObserver(mCredentialService, false, this, getUser()); mContentResolver.registerContentObserver(mCredentialService, false, this, getUser());
contentResolver.registerContentObserver( mContentResolver.registerContentObserver(
mCredentialPrimaryService, false, this, getUser()); mCredentialPrimaryService, false, this, getUser());
} }
public void unregister() {
mContentResolver.unregisterContentObserver(this);
}
@Override @Override
public void onChange(boolean selfChange, Uri uri) { public void onChange(boolean selfChange, Uri uri) {
updateFromExternal(); updateFromExternal();