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
This commit is contained in:
Kevin Chyn
2019-04-04 16:02:37 -07:00
parent 1a878c1fba
commit 0c00033d4b

View File

@@ -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()
);