diff options
author | Adrian Roos <roosa@google.com> | 2016-10-20 15:34:23 -0700 |
---|---|---|
committer | Adrian Roos <roosa@google.com> | 2016-10-21 16:48:55 +0000 |
commit | 154b9ee638d1917f064781b5e08823898a73b92c (patch) | |
tree | cd2e368c23b322ebfaf0a637b5370cc461df62e4 /packages/Keyguard | |
parent | b4d876a5d61852892ed030e2bcb36ef0ebf6df68 (diff) |
Fix broken KeyguardMessageArea
Fixes a bug where the keyguard message area would reorder clears
after a new message was set, leading to the bouncer prompt reason
not showing.
Change-Id: I33001300d9175c521809cd4fdae5158269245c00
Fixes: 32306174
Test: runtest -x $T/frameworks/base/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaTest.java
Diffstat (limited to 'packages/Keyguard')
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java index caeb74c1c6e4..d19821fb9723 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java @@ -41,21 +41,12 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { private static final long ANNOUNCEMENT_DELAY = 250; private static final int DEFAULT_COLOR = -1; - private final KeyguardUpdateMonitor mUpdateMonitor; private final Handler mHandler; private final int mDefaultColor; - CharSequence mMessage; + private CharSequence mMessage; private int mNextMessageColor = DEFAULT_COLOR; - private final Runnable mClearMessageRunnable = new Runnable() { - @Override - public void run() { - mMessage = null; - update(); - } - }; - private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { public void onFinishedGoingToSleep(int why) { setSelected(false); @@ -70,11 +61,14 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { } public KeyguardMessageArea(Context context, AttributeSet attrs) { + this(context, attrs, KeyguardUpdateMonitor.getInstance(context)); + } + + public KeyguardMessageArea(Context context, AttributeSet attrs, KeyguardUpdateMonitor monitor) { super(context, attrs); setLayerType(LAYER_TYPE_HARDWARE, null); // work around nested unclipped SaveLayer bug - mUpdateMonitor = KeyguardUpdateMonitor.getInstance(getContext()); - mUpdateMonitor.registerCallback(mInfoCallback); + monitor.registerCallback(mInfoCallback); mHandler = new Handler(Looper.myLooper()); mDefaultColor = getCurrentTextColor(); @@ -137,8 +131,8 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { } private void clearMessage() { - mHandler.removeCallbacks(mClearMessageRunnable); - mHandler.post(mClearMessageRunnable); + mMessage = null; + update(); } private void update() { |