Fix require on screen toggle on guest user.

Bug: 286018876
Test: atest FingerprintSettingsFragmentTest
Change-Id: I432ffd3b8b32caeaf7ac8c6bc3c2ee2a0ee53a08
This commit is contained in:
Hao Dong
2023-06-15 21:03:17 +00:00
parent fa2f6edc55
commit c9a99978f9
2 changed files with 58 additions and 14 deletions

View File

@@ -169,7 +169,8 @@ public class FingerprintSettings extends SubSettings {
private static final String KEY_LAUNCHED_CONFIRM = "launched_confirm";
private static final String KEY_HAS_FIRST_ENROLLED = "has_first_enrolled";
private static final String KEY_IS_ENROLLING = "is_enrolled";
private static final String KEY_REQUIRE_SCREEN_ON_TO_AUTH =
@VisibleForTesting
static final String KEY_REQUIRE_SCREEN_ON_TO_AUTH =
"security_settings_require_screen_on_to_auth";
private static final String KEY_FINGERPRINTS_ENROLLED_CATEGORY =
"security_settings_fingerprints_enrolled";
@@ -536,10 +537,6 @@ public class FingerprintSettings extends SubSettings {
private void addFingerprintPreferences(PreferenceGroup root) {
final String fpPrefKey = addFingerprintItemPreferences(root);
if (isSfps()) {
scrollToPreference(fpPrefKey);
addFingerprintUnlockCategory();
}
for (AbstractPreferenceController controller : mControllers) {
if (controller instanceof FingerprintSettingsPreferenceController) {
((FingerprintSettingsPreferenceController) controller).setUserId(mUserId);
@@ -547,6 +544,14 @@ public class FingerprintSettings extends SubSettings {
((FingerprintUnlockCategoryController) controller).setUserId(mUserId);
}
}
// This needs to be after setting ids, otherwise
// |mRequireScreenOnToAuthPreferenceController.isChecked| is always checking the primary
// user instead of the user with |mUserId|.
if (isSfps()) {
scrollToPreference(fpPrefKey);
addFingerprintUnlockCategory();
}
createFooterPreference(root);
}