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

Commit 0c00033d authored by Kevin Chyn's avatar Kevin Chyn
Browse files

notifyEnabledOnKeyguardCallbacks when user switches

The setting is per-user and the source of truth is in BiometricService.
Keyguard's cache needs to be updated when user switch occurs

Fixes: 5268106

Test: Builds
Change-Id: I8a5678375989221e5b502fa683697cf4ca664def
parent 1a878c1f
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -406,12 +406,7 @@ public class BiometricService extends SystemService {
                                userId) != 0);

                if (userId == ActivityManager.getCurrentUser()) {
                    List<EnabledOnKeyguardCallback> callbacks = mEnabledOnKeyguardCallbacks;
                    for (int i = 0; i < callbacks.size(); i++) {
                        callbacks.get(i).notify(BiometricSourceType.FACE,
                                mFaceEnabledOnKeyguard.getOrDefault(userId,
                                        DEFAULT_KEYGUARD_ENABLED));
                    }
                    notifyEnabledOnKeyguardCallbacks(userId);
                }
            } else if (FACE_UNLOCK_APP_ENABLED.equals(uri)) {
                mFaceEnabledForApps.put(userId, Settings.Secure.getIntForUser(
@@ -441,6 +436,15 @@ public class BiometricService extends SystemService {
            return mFaceAlwaysRequireConfirmation
                    .getOrDefault(userId, DEFAULT_ALWAYS_REQUIRE_CONFIRMATION);
        }

        void notifyEnabledOnKeyguardCallbacks(int userId) {
            List<EnabledOnKeyguardCallback> callbacks = mEnabledOnKeyguardCallbacks;
            for (int i = 0; i < callbacks.size(); i++) {
                callbacks.get(i).notify(BiometricSourceType.FACE,
                        mFaceEnabledOnKeyguard.getOrDefault(userId,
                                DEFAULT_KEYGUARD_ENABLED));
            }
        }
    }

    private final class EnabledOnKeyguardCallback implements IBinder.DeathRecipient {
@@ -809,6 +813,7 @@ public class BiometricService extends SystemService {
                        @Override
                        public void onUserSwitchComplete(int newUserId) {
                            mSettingObserver.updateContentObserver();
                            mSettingObserver.notifyEnabledOnKeyguardCallbacks(newUserId);
                        }
                    }, BiometricService.class.getName()
            );