summaryrefslogtreecommitdiff
path: root/packages/Keyguard
diff options
context:
space:
mode:
authorAdrian Roos <roosa@google.com>2016-10-20 15:34:23 -0700
committerAdrian Roos <roosa@google.com>2016-10-21 16:48:55 +0000
commit154b9ee638d1917f064781b5e08823898a73b92c (patch)
treecd2e368c23b322ebfaf0a637b5370cc461df62e4 /packages/Keyguard
parentb4d876a5d61852892ed030e2bcb36ef0ebf6df68 (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.java22
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() {