Initialize biometric settings for user

The settings cache was being set only when user changes or the settings
changed. The cache needs to be initialized if trying to read before
they are set.

Fixes: 132692298

Test: manual
Change-Id: I8a2b0c21e5cd569e87858d401f40dc6f84962111
This commit is contained in:
Kevin Chyn
2019-05-15 12:17:38 -07:00
parent 4e1078e291
commit 750663c67b

View File

@@ -475,7 +475,7 @@ public class BiometricService extends SystemService {
DEFAULT_KEYGUARD_ENABLED ? 1 : 0 /* default */,
userId) != 0);
if (userId == ActivityManager.getCurrentUser()) {
if (userId == ActivityManager.getCurrentUser() && !selfChange) {
notifyEnabledOnKeyguardCallbacks(userId);
}
} else if (FACE_UNLOCK_APP_ENABLED.equals(uri)) {
@@ -494,17 +494,25 @@ public class BiometricService extends SystemService {
}
boolean getFaceEnabledOnKeyguard() {
return mFaceEnabledOnKeyguard.getOrDefault(
ActivityManager.getCurrentUser(), DEFAULT_KEYGUARD_ENABLED);
final int user = ActivityManager.getCurrentUser();
if (!mFaceEnabledOnKeyguard.containsKey(user)) {
onChange(true /* selfChange */, FACE_UNLOCK_KEYGUARD_ENABLED, user);
}
return mFaceEnabledOnKeyguard.get(user);
}
boolean getFaceEnabledForApps(int userId) {
if (!mFaceEnabledForApps.containsKey(userId)) {
onChange(true /* selfChange */, FACE_UNLOCK_APP_ENABLED, userId);
}
return mFaceEnabledForApps.getOrDefault(userId, DEFAULT_APP_ENABLED);
}
boolean getFaceAlwaysRequireConfirmation(int userId) {
return mFaceAlwaysRequireConfirmation
.getOrDefault(userId, DEFAULT_ALWAYS_REQUIRE_CONFIRMATION);
if (!mFaceAlwaysRequireConfirmation.containsKey(userId)) {
onChange(true /* selfChange */, FACE_UNLOCK_ALWAYS_REQUIRE_CONFIRMATION, userId);
}
return mFaceAlwaysRequireConfirmation.get(userId);
}
void notifyEnabledOnKeyguardCallbacks(int userId) {