From 800b66f2a1c455555b8bcaf5b048f84c6df0e9a7 Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Fri, 18 Mar 2022 16:35:36 +0000 Subject: [PATCH] Bouncer: Remove flicker of KeyguardMessageArea SetBouncerVisible to be bouncerIsShown and not bouncerIsOrWillBeShowing. This prevents flickering on multiple cases when bouncer is about to show. Also rename SetBouncerVisible -> SetBouncerShown for consistency. Bug: 225182858, 225182858 Test: Manual on device Change-Id: Ia8e2c114b6cb9565304dd380430622a94400cd8a --- .../com/android/keyguard/KeyguardMessageArea.java | 14 ++++++++++---- .../keyguard/KeyguardMessageAreaController.java | 13 +++++++------ .../phone/StatusBarKeyguardViewManager.java | 1 + .../KeyguardMessageAreaControllerTest.java | 6 ++++++ .../android/keyguard/KeyguardMessageAreaTest.java | 4 ++-- .../phone/StatusBarKeyguardViewManagerTest.java | 4 ++++ 6 files changed, 30 insertions(+), 12 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java index 75579b05aeeb9..5ab2fd0aff09c 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java @@ -57,7 +57,7 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp private ColorStateList mDefaultColorState; private CharSequence mMessage; private ColorStateList mNextMessageColorState = ColorStateList.valueOf(DEFAULT_COLOR); - private boolean mBouncerVisible; + private boolean mBouncerShowing; private boolean mAltBouncerShowing; /** * Container that wraps the KeyguardMessageArea - may be null if current view hierarchy doesn't @@ -177,7 +177,7 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp void update() { CharSequence status = mMessage; - setVisibility(TextUtils.isEmpty(status) || (!mBouncerVisible && !mAltBouncerShowing) + setVisibility(TextUtils.isEmpty(status) || (!mBouncerShowing && !mAltBouncerShowing) ? INVISIBLE : VISIBLE); setText(status); ColorStateList colorState = mDefaultColorState; @@ -192,8 +192,14 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp setTextColor(colorState); } - public void setBouncerVisible(boolean bouncerVisible) { - mBouncerVisible = bouncerVisible; + /** + * Set whether the bouncer is fully showing + */ + public void setBouncerShowing(boolean bouncerShowing) { + if (mBouncerShowing != bouncerShowing) { + mBouncerShowing = bouncerShowing; + update(); + } } /** diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java index 05318bb0df784..81cc3a9336008 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java @@ -39,12 +39,6 @@ public class KeyguardMessageAreaController extends ViewController