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
This commit is contained in:
Vincent Wang
2025-01-13 08:33:24 +00:00
parent 48a229cb88
commit 5ace2018cc
2 changed files with 9 additions and 14 deletions

View File

@@ -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 =

View File

@@ -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,