From 9b4e923986b63e207bb6183b6713976d593ac4f0 Mon Sep 17 00:00:00 2001 From: Hao Dong Date: Thu, 1 Jun 2023 19:10:15 +0000 Subject: [PATCH] Fix the flicker of buttons in FaceSettings. Test: manual test - 1. enroll a face 2. open face settings 3. there is no flicker Bug: 273408521 Change-Id: I34d069cb1dbaa4bc38671dc37e3c8fe285f700aa --- src/com/android/settings/biometrics/face/FaceSettings.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java index 979faa22fc2..54775f84a9e 100644 --- a/src/com/android/settings/biometrics/face/FaceSettings.java +++ b/src/com/android/settings/biometrics/face/FaceSettings.java @@ -208,6 +208,10 @@ public class FaceSettings extends DashboardFragment { mRemoveButton = findPreference(FaceSettingsRemoveButtonPreferenceController.KEY); mEnrollButton = findPreference(FaceSettingsEnrollButtonPreferenceController.KEY); + final boolean hasEnrolled = mFaceManager.hasEnrolledTemplates(mUserId); + mEnrollButton.setVisible(!hasEnrolled); + mRemoveButton.setVisible(hasEnrolled); + // There is no better way to do this :/ for (AbstractPreferenceController controller : mControllers) { if (controller instanceof FaceSettingsPreferenceController) { @@ -233,8 +237,6 @@ public class FaceSettings extends DashboardFragment { public void onStart() { super.onStart(); final boolean hasEnrolled = mFaceManager.hasEnrolledTemplates(mUserId); - mEnrollButton.setVisible(!hasEnrolled); - mRemoveButton.setVisible(hasEnrolled); // When the user has face id registered but failed enrolling in device lock state, // lead users directly to the confirm deletion dialog in Face Unlock settings.