Remove face/fignerprint search if not present
Test: Verified manually with a device that if face/fingerprint are not present they do not show up. Fixes: 350599580 Flag: EXEMPT bugfix Change-Id: I6a691d2985e4839336e9c08dfa6c97abe23f43f2
This commit is contained in:
committed by
Joshua Mccloskey
parent
441a202444
commit
ed59922ca8
@@ -159,11 +159,27 @@ public class FingerprintSettings extends SubSettings {
|
||||
|
||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider(R.xml.security_settings_fingerprint) {
|
||||
|
||||
@Override
|
||||
protected boolean isPageSearchEnabled(Context context) {
|
||||
return super.isPageSearchEnabled(context) &&
|
||||
hasEnrolledFingerprints(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AbstractPreferenceController>
|
||||
createPreferenceControllers(Context context) {
|
||||
return createThePreferenceControllers(context);
|
||||
}
|
||||
|
||||
private boolean hasEnrolledFingerprints(Context context) {
|
||||
final FingerprintManager fingerprintManager =
|
||||
Utils.getFingerprintManagerOrNull(context);
|
||||
if (fingerprintManager != null) {
|
||||
return fingerprintManager.hasEnrolledTemplates(UserHandle.myUserId());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
private static List<AbstractPreferenceController> createThePreferenceControllers(Context
|
||||
|
||||
@@ -15,10 +15,15 @@
|
||||
*/
|
||||
package com.android.settings.security;
|
||||
|
||||
import static com.android.settings.biometrics.face.FaceSettings.isFaceHardwareDetected;
|
||||
import static com.android.settings.biometrics.fingerprint.FingerprintSettings.isFingerprintHardwareDetected;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.biometrics.combination.CombinedBiometricStatusPreferenceController;
|
||||
import com.android.settings.biometrics.face.FaceStatusPreferenceController;
|
||||
@@ -45,6 +50,10 @@ public class SecuritySettings extends DashboardFragment {
|
||||
public static final int CHANGE_TRUST_AGENT_SETTINGS = 126;
|
||||
public static final int UNIFY_LOCK_CONFIRM_PROFILE_REQUEST = 129;
|
||||
public static final int UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 130;
|
||||
@VisibleForTesting
|
||||
static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings";
|
||||
@VisibleForTesting
|
||||
static final String KEY_FACE_SETTINGS = "face_settings";
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
@@ -131,6 +140,18 @@ public class SecuritySettings extends DashboardFragment {
|
||||
.hasAlternativeSecuritySettingsFragment()
|
||||
&& !SafetyCenterManagerWrapper.get().isEnabled(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
final List<String> keys = super.getNonIndexableKeys(context);
|
||||
if (!isFingerprintHardwareDetected(context)) {
|
||||
keys.add(KEY_FINGERPRINT_SETTINGS);
|
||||
}
|
||||
if (!isFaceHardwareDetected(context)) {
|
||||
keys.add(KEY_FACE_SETTINGS);
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user