From 5ace2018cc7821e3e49cf533cda0fc9ee3f1fe51 Mon Sep 17 00:00:00 2001 From: Vincent Wang Date: Mon, 13 Jan 2025 08:33:24 +0000 Subject: [PATCH] Determine if devices support screen off unlock from config Bug: 389002332 Flag: android.hardware.biometrics.screen_off_unlock_udfps Test: 1. Build pass 2. Check screen off unlcok is enabled on usudfps & udfps devices 3. Enable screen off unlock on usudfps devices by default 4. Disable screen off unlock on udfps devices by default Change-Id: I81c419f51a808a5e51d9bb92f19553cdf9e9c2f8 --- .../fingerprint/FingerprintSettings.java | 21 +++++++------------ ...eenOffUnlockUdfpsPreferenceController.java | 2 +- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index e618ae358b3..6d0169568b9 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -623,15 +623,10 @@ public class FingerprintSettings extends SubSettings { return false; } - private boolean isUltrasnoicUdfps() { - mFingerprintManager = Utils.getFingerprintManagerOrNull(getActivity()); - if (mFingerprintManager != null) { - mSensorProperties = mFingerprintManager.getSensorPropertiesInternal(); - for (FingerprintSensorPropertiesInternal prop : mSensorProperties) { - if (prop.isUltrasonicUdfps()) { - return true; - } - } + private boolean isScreenOffUnlcokSupported() { + if (isUdfps()) { + return getContext().getResources().getBoolean( + com.android.internal.R.bool.config_screen_off_udfps_enabled); } return false; } @@ -678,7 +673,7 @@ 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() && isUltrasnoicUdfps())) { + if (isSfps() || (screenOffUnlockUdfps() && isScreenOffUnlcokSupported())) { scrollToPreference(fpPrefKey); addFingerprintUnlockCategory(); } @@ -778,7 +773,7 @@ public class FingerprintSettings extends SubSettings { restToUnlockPreference.getOnPreferenceChangeListener()); } setupFingerprintUnlockCategoryPreferencesForScreenOnToAuth(); - } else if (screenOffUnlockUdfps() && isUltrasnoicUdfps()) { + } else if (screenOffUnlockUdfps() && isScreenOffUnlcokSupported()) { setupFingerprintUnlockCategoryPreferencesForScreenOffUnlock(); } updateFingerprintUnlockCategoryVisibility(); @@ -846,7 +841,7 @@ public class FingerprintSettings extends SubSettings { private void updatePreferencesAfterFingerprintRemoved() { updateAddPreference(); - if (isSfps() || (screenOffUnlockUdfps() && isUltrasnoicUdfps())) { + if (isSfps() || (screenOffUnlockUdfps() && isScreenOffUnlcokSupported())) { updateFingerprintUnlockCategoryVisibility(); } updatePreferences(); @@ -1119,7 +1114,7 @@ public class FingerprintSettings extends SubSettings { } } - } else if (screenOffUnlockUdfps() && isUltrasnoicUdfps()) { + } else if (screenOffUnlockUdfps() && isScreenOffUnlcokSupported()) { for (AbstractPreferenceController controller : controllers) { if (controller.getPreferenceKey() == KEY_FINGERPRINT_UNLOCK_CATEGORY) { mFingerprintUnlockCategoryPreferenceController = diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsScreenOffUnlockUdfpsPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsScreenOffUnlockUdfpsPreferenceController.java index 5c32d90ba7e..b09c6382ebf 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsScreenOffUnlockUdfpsPreferenceController.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsScreenOffUnlockUdfpsPreferenceController.java @@ -59,7 +59,7 @@ public class FingerprintSettingsScreenOffUnlockUdfpsPreferenceController return false; } final boolean defEnabled = mContext.getResources().getBoolean( - com.android.internal.R.bool.config_screen_off_udfps_enabled); + com.android.internal.R.bool.config_screen_off_udfps_default_on); final int value = Settings.Secure.getIntForUser( mContext.getContentResolver(), Settings.Secure.SCREEN_OFF_UNLOCK_UDFPS_ENABLED,