From ecd149597709f207a863588ef98bc67b33cfdc75 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Wed, 5 May 2021 22:22:09 +0800 Subject: [PATCH] Fix searching condition for biometric settings The preferences that are related to biometric settings should only be searchable if the device supports the multiple biometric auth. However we can see these preferences still can be searched even the device doesn't support the feature, which is caused by that there's no guardence. So the availiability of the preferences need to be updated to prevent revealing unsupported preference from Settings search. Fixes: 187167774 Test: manual test 1) Navigate to Settings search on a device without face auth 2) Search for face 3) See if there's something about face unlock Change-Id: I6f120e8d9002a1e8f0be9361fdbea193776e4d7d --- .../combination/BiometricFaceStatusPreferenceController.java | 2 +- .../BiometricFingerprintStatusPreferenceController.java | 3 ++- .../combination/BiometricSettingsAppPreferenceController.java | 3 +++ .../BiometricSettingsKeyguardPreferenceController.java | 4 ++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java index e4b210ea621..047a2dfa193 100644 --- a/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricFaceStatusPreferenceController.java @@ -32,6 +32,6 @@ public class BiometricFaceStatusPreferenceController extends FaceStatusPreferenc @Override protected boolean isDeviceSupported() { - return Utils.hasFaceHardware(mContext); + return Utils.isMultipleBiometricsSupported(mContext) && Utils.hasFaceHardware(mContext); } } diff --git a/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java index fd742ffd30c..72a19c72d44 100644 --- a/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricFingerprintStatusPreferenceController.java @@ -33,6 +33,7 @@ public class BiometricFingerprintStatusPreferenceController extends @Override protected boolean isDeviceSupported() { - return Utils.hasFingerprintHardware(mContext); + return Utils.isMultipleBiometricsSupported(mContext) + && Utils.hasFingerprintHardware(mContext); } } diff --git a/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java index 9107e1b48de..861ff276d7a 100644 --- a/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricSettingsAppPreferenceController.java @@ -69,6 +69,9 @@ public class BiometricSettingsAppPreferenceController extends TogglePreferenceCo @Override public int getAvailabilityStatus() { + if (!Utils.isMultipleBiometricsSupported(mContext)) { + return UNSUPPORTED_ON_DEVICE; + } if (mFaceManager == null || mFingerprintManager == null) { return AVAILABLE_UNSEARCHABLE; } diff --git a/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java b/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java index 263134a0154..6fe651f74cc 100644 --- a/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java +++ b/src/com/android/settings/biometrics/combination/BiometricSettingsKeyguardPreferenceController.java @@ -21,6 +21,7 @@ import android.app.admin.DevicePolicyManager; import android.content.Context; import android.provider.Settings; +import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; @@ -62,6 +63,9 @@ public class BiometricSettingsKeyguardPreferenceController extends TogglePrefere @Override public int getAvailabilityStatus() { + if (!Utils.isMultipleBiometricsSupported(mContext)) { + return UNSUPPORTED_ON_DEVICE; + } return getRestrictingAdmin() != null ? DISABLED_FOR_USER : AVAILABLE; } }