diff --git a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java index 18138d571dd..5015fba439e 100644 --- a/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceProfileStatusPreferenceController.java @@ -31,6 +31,13 @@ public class FaceProfileStatusPreferenceController extends FaceStatusPreferenceC super(context, KEY_FACE_SETTINGS); } + @Override + public int getAvailabilityStatus() { + // Make the profile unsearchable so the user preference controller gets highlighted + // when searched for. + return AVAILABLE_UNSEARCHABLE; + } + @Override protected boolean isUserSupported() { return mProfileChallengeUserId != UserHandle.USER_NULL diff --git a/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java index 70c00e54d28..a54171e8c42 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java @@ -78,6 +78,19 @@ public class FaceSettingsAppPreferenceController extends FaceSettingsPreferenceC @Override public int getAvailabilityStatus() { - return AVAILABLE; + if(mFaceManager == null){ + return AVAILABLE_UNSEARCHABLE; + } + + // By only allowing this preference controller to be searchable when the feature is turned + // off, it will give preference to the face setup controller. + final boolean hasEnrolledUser = mFaceManager.hasEnrolledTemplates(getUserId()); + final boolean appUnlockEnabled = Settings.Secure.getIntForUser( + mContext.getContentResolver(), FACE_UNLOCK_APP_ENABLED, OFF, getUserId()) == ON; + if (hasEnrolledUser && !appUnlockEnabled) { + return AVAILABLE; + } else { + return AVAILABLE_UNSEARCHABLE; + } } }