From acd39854cee3271d8cef5d4952e37ae497b7c95c Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Mon, 20 Mar 2023 02:40:07 +0200 Subject: [PATCH] Hide SFPS wakeup setting when it's not supported Change-Id: I22d4eb745379a6ca56b8fe23e1584131c4e945a6 --- .../fingerprint/FingerprintSettings.java | 21 ++++++++++++------- ...ireScreenOnToAuthPreferenceController.java | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index 3e7143ee3ee..0ec6e5ccdfd 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -217,7 +217,7 @@ public class FingerprintSettings extends SubSettings { if (manager == null || !manager.isHardwareDetected()) { return null; } - if (manager.isPowerbuttonFps()) { + if (manager.isPowerbuttonFps() && isScreenOffUnlcokSupported()) { controllers.add( new FingerprintUnlockCategoryController( context, @@ -658,7 +658,7 @@ public class FingerprintSettings extends SubSettings { column2.mTitle = getText( R.string.security_fingerprint_disclaimer_lockscreen_disabled_2 ); - if (isSfps()) { + if (isSfps() && isScreenOffUnlcokSupported()) { column2.mLearnMoreOverrideText = getText( R.string.security_settings_fingerprint_settings_footer_learn_more); } @@ -706,6 +706,9 @@ public class FingerprintSettings extends SubSettings { if (isUdfps()) { return getContext().getResources().getBoolean( com.android.internal.R.bool.config_screen_off_udfps_enabled); + } else if (isSfps()) { + return getContext().getResources().getBoolean( + org.lineageos.platform.internal.R.bool.config_fingerprintWakeAndUnlock); } return false; } @@ -752,7 +755,8 @@ public class FingerprintSettings extends SubSettings { // This needs to be after setting ids, otherwise // |mRequireScreenOnToAuthPreferenceController.isChecked| is always checking the primary // user instead of the user with |mUserId|. - if (isSfps() || (screenOffUnlockUdfps() && isScreenOffUnlcokSupported()) + if ((isSfps() && isScreenOffUnlcokSupported()) + || (screenOffUnlockUdfps() && isScreenOffUnlcokSupported()) || getExtPreferenceProvider().getSize() > 0) { scrollToPreference(fpPrefKey); addFingerprintUnlockCategory(); @@ -851,7 +855,7 @@ public class FingerprintSettings extends SubSettings { mFingerprintUnlockCategory = findPreference(KEY_FINGERPRINT_UNLOCK_CATEGORY); mFingerprintUnlockCategoryPreferenceController.setCategoryHasChildrenSupplier( this::fingerprintUnlockCategoryHasChild); - if (isSfps()) { + if (isSfps() && isScreenOffUnlcokSupported()) { // For both SFPS "screen on to auth" and "rest to unlock" final Preference restToUnlockPreference = FeatureFactory.getFeatureFactory() .getFingerprintFeatureProvider() @@ -872,7 +876,9 @@ public class FingerprintSettings extends SubSettings { setupFingerprintUnlockCategoryPreferencesForScreenOffUnlock(); } setupExtFingerprintPreferences(); - updateFingerprintUnlockCategoryVisibility(); + if (mFingerprintUnlockCategoryPreferenceController != null) { + updateFingerprintUnlockCategoryVisibility(); + } } private void updateFingerprintUnlockCategoryVisibility() { @@ -979,7 +985,8 @@ public class FingerprintSettings extends SubSettings { private void updatePreferencesAfterFingerprintRemoved() { updateAddPreference(); updateUseFingerprintToEnableStatus(); - if (isSfps() || (screenOffUnlockUdfps() && isScreenOffUnlcokSupported())) { + if ((isSfps() && isScreenOffUnlcokSupported()) || + (screenOffUnlockUdfps() && isScreenOffUnlcokSupported())) { updateFingerprintUnlockCategoryVisibility(); } updatePreferences(); @@ -1246,7 +1253,7 @@ public class FingerprintSettings extends SubSettings { private List buildPreferenceControllers(Context context) { final List controllers = createThePreferenceControllers(context); - if (isSfps()) { + if (isSfps() && isScreenOffUnlcokSupported()) { for (AbstractPreferenceController controller : controllers) { if (controller.getPreferenceKey() == KEY_FINGERPRINT_UNLOCK_CATEGORY) { mFingerprintUnlockCategoryPreferenceController = diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java index 58bc7e34202..2e9932238fc 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java @@ -61,7 +61,7 @@ public class FingerprintSettingsRequireScreenOnToAuthPreferenceController getUserHandle()); if (toReturn == -1) { toReturn = mContext.getResources().getBoolean( - com.android.internal.R.bool.config_performantAuthDefault) ? 1 : 0; + org.lineageos.platform.internal.R.bool.config_fingerprintWakeAndUnlock) ? 1 : 0; Settings.Secure.putIntForUser(mContext.getContentResolver(), Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED, toReturn, getUserHandle()); }