From 3e0f8365f5218096c322b217ee2828e1bbd519e0 Mon Sep 17 00:00:00 2001 From: Joshua McCloskey Date: Tue, 10 Jan 2023 19:13:08 +0000 Subject: [PATCH] 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 --- .../fingerprint/FingerprintSettings.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index bbb4f45b702..2721c773af2 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -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 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() {