Fixed scroll issue w/ FP settings

Test: Verified fingerprint preferences are not shown over the fingerprint title when device is rotated in settings screen
Fixes: 259338792
Change-Id: Ie99e584247bb52b097e949d0c8c0ed096543aa21
This commit is contained in:
Joshua McCloskey
2023-01-10 19:13:08 +00:00
committed by Joshua Mccloskey
parent 8dc66bc482
commit 3e0f8365f5

View File

@@ -494,8 +494,10 @@ public class FingerprintSettings extends SubSettings {
if (root != null) {
root.removeAll();
}
root = getPreferenceScreen();
addFingerprintItemPreferences(root);
final String fpPrefKey = addFingerprintItemPreferences(root);
if (isSfps()) {
scrollToPreference(fpPrefKey);
}
addPreferencesFromResource(getPreferenceScreenResId());
mRequireScreenOnToAuthPreference = findPreference(KEY_REQUIRE_SCREEN_ON_TO_AUTH);
mFingerprintUnlockCategory = findPreference(KEY_FINGERPRINT_UNLOCK_CATEGORY);
@@ -529,15 +531,20 @@ public class FingerprintSettings extends SubSettings {
}
}
private void addFingerprintItemPreferences(PreferenceGroup root) {
private String addFingerprintItemPreferences(PreferenceGroup root) {
root.removeAll();
String keyToReturn = KEY_FINGERPRINT_ADD;
final List<Fingerprint> items = mFingerprintManager.getEnrolledFingerprints(mUserId);
final int fingerprintCount = items.size();
for (int i = 0; i < fingerprintCount; i++) {
final Fingerprint item = items.get(i);
FingerprintPreference pref = new FingerprintPreference(root.getContext(),
this /* onDeleteClickListener */);
pref.setKey(genKey(item.getBiometricId()));
String key = genKey(item.getBiometricId());
if (i == 0) {
keyToReturn = key;
}
pref.setKey(key);
pref.setTitle(item.getName());
pref.setFingerprint(item);
pref.setPersistent(false);
@@ -560,6 +567,8 @@ public class FingerprintSettings extends SubSettings {
addPreference.setOnPreferenceChangeListener(this);
updateAddPreference();
createFooterPreference(root);
return keyToReturn;
}
private void updateAddPreference() {