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
This commit is contained in:
Hao Dong
2023-06-01 19:10:15 +00:00
parent bd60552454
commit 9b4e923986

View File

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