From 1e4a4bdbf4ad39e3dd15a406f6939a2577bd2d96 Mon Sep 17 00:00:00 2001 From: Jason Chang Date: Tue, 22 May 2018 17:30:19 +0800 Subject: [PATCH] [SystemUI] To plumb down ColorStateList all the way down instead of int colors in KeyguardHostView.java and its collaborative files. To plumb down ColorStateList all the way down instead of int colors in KeyguardHostView.java and its collaborative files. Bug: 79721803 Test: manually test for UI Change-Id: I69df1a13db5153ca36cf39f7b818d6c3d27ee107 --- .../keyguard/KeyguardAbsKeyInputView.java | 5 +++-- .../android/keyguard/KeyguardHostView.java | 7 ++++--- .../android/keyguard/KeyguardMessageArea.java | 21 ++++++++++--------- .../android/keyguard/KeyguardPatternView.java | 5 +++-- .../keyguard/KeyguardSecurityContainer.java | 5 +++-- .../keyguard/KeyguardSecurityView.java | 5 +++-- .../keyguard/KeyguardSecurityViewFlipper.java | 5 +++-- .../keyguard/SecurityMessageDisplay.java | 4 +++- .../KeyguardIndicationController.java | 4 ++-- .../statusbar/phone/KeyguardBouncer.java | 5 +++-- .../phone/StatusBarKeyguardViewManager.java | 5 +++-- .../statusbar/phone/KeyguardBouncerTest.java | 5 +++-- 12 files changed, 44 insertions(+), 32 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java index 48b413456755b..41e9ebaac4f66 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java @@ -20,6 +20,7 @@ import static com.android.internal.util.LatencyTracker.ACTION_CHECK_CREDENTIAL; import static com.android.internal.util.LatencyTracker.ACTION_CHECK_CREDENTIAL_UNLOCKED; import android.content.Context; +import android.content.res.ColorStateList; import android.os.AsyncTask; import android.os.CountDownTimer; import android.os.SystemClock; @@ -293,8 +294,8 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout } @Override - public void showMessage(CharSequence message, int color) { - mSecurityMessageDisplay.setNextMessageColor(color); + public void showMessage(CharSequence message, ColorStateList colorState) { + mSecurityMessageDisplay.setNextMessageColor(colorState); mSecurityMessageDisplay.setMessage(message); } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java index 97536f463a436..df64160c9e488 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java @@ -20,6 +20,7 @@ import android.app.Activity; import android.app.ActivityManager; import android.content.Context; import android.content.res.Resources; +import android.content.res.ColorStateList; import android.graphics.Canvas; import android.media.AudioManager; import android.os.SystemClock; @@ -175,12 +176,12 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { mSecurityContainer.showPromptReason(reason); } - public void showMessage(CharSequence message, int color) { - mSecurityContainer.showMessage(message, color); + public void showMessage(CharSequence message, ColorStateList colorState) { + mSecurityContainer.showMessage(message, colorState); } public void showErrorMessage(CharSequence message) { - showMessage(message, Utils.getColorErrorDefaultColor(mContext)); + showMessage(message, Utils.getColorError(mContext)); } /** diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java index d19821fb97233..010ec7c44cf31 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageArea.java @@ -17,6 +17,7 @@ package com.android.keyguard; import android.content.Context; +import android.content.res.ColorStateList; import android.os.Handler; import android.os.Looper; import android.os.SystemClock; @@ -42,10 +43,10 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { private static final int DEFAULT_COLOR = -1; private final Handler mHandler; - private final int mDefaultColor; + private final ColorStateList mDefaultColorState; private CharSequence mMessage; - private int mNextMessageColor = DEFAULT_COLOR; + private ColorStateList mNextMessageColorState = ColorStateList.valueOf(DEFAULT_COLOR); private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { public void onFinishedGoingToSleep(int why) { @@ -71,13 +72,13 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { monitor.registerCallback(mInfoCallback); mHandler = new Handler(Looper.myLooper()); - mDefaultColor = getCurrentTextColor(); + mDefaultColorState = getTextColors(); update(); } @Override - public void setNextMessageColor(int color) { - mNextMessageColor = color; + public void setNextMessageColor(ColorStateList colorState) { + mNextMessageColorState = colorState; } @Override @@ -139,12 +140,12 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { CharSequence status = mMessage; setVisibility(TextUtils.isEmpty(status) ? INVISIBLE : VISIBLE); setText(status); - int color = mDefaultColor; - if (mNextMessageColor != DEFAULT_COLOR) { - color = mNextMessageColor; - mNextMessageColor = DEFAULT_COLOR; + ColorStateList colorState = mDefaultColorState; + if (mNextMessageColorState.getDefaultColor() != DEFAULT_COLOR) { + colorState = mNextMessageColorState; + mNextMessageColorState = ColorStateList.valueOf(DEFAULT_COLOR); } - setTextColor(color); + setTextColor(colorState); } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java index f399667772d8b..50cf5b908092b 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternView.java @@ -19,6 +19,7 @@ import static com.android.internal.util.LatencyTracker.ACTION_CHECK_CREDENTIAL; import static com.android.internal.util.LatencyTracker.ACTION_CHECK_CREDENTIAL_UNLOCKED; import android.content.Context; +import android.content.res.ColorStateList; import android.graphics.Rect; import android.os.AsyncTask; import android.os.CountDownTimer; @@ -404,8 +405,8 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit } @Override - public void showMessage(CharSequence message, int color) { - mSecurityMessageDisplay.setNextMessageColor(color); + public void showMessage(CharSequence message, ColorStateList colorState) { + mSecurityMessageDisplay.setNextMessageColor(colorState); mSecurityMessageDisplay.setMessage(message); } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java index 9e4810cb08ca4..1942fc1306c05 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java @@ -20,6 +20,7 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.admin.DevicePolicyManager; import android.content.Context; +import android.content.res.ColorStateList; import android.os.UserHandle; import androidx.annotation.VisibleForTesting; import android.util.AttributeSet; @@ -537,9 +538,9 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe } } - public void showMessage(CharSequence message, int color) { + public void showMessage(CharSequence message, ColorStateList colorState) { if (mCurrentSecuritySelection != SecurityMode.None) { - getSecurityView(mCurrentSecuritySelection).showMessage(message, color); + getSecurityView(mCurrentSecuritySelection).showMessage(message, colorState); } } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityView.java index 6e445ff0e26d2..1a09364f564c9 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityView.java @@ -16,6 +16,7 @@ package com.android.keyguard; import com.android.internal.widget.LockPatternUtils; +import android.content.res.ColorStateList; public interface KeyguardSecurityView { static public final int SCREEN_ON = 1; @@ -104,9 +105,9 @@ public interface KeyguardSecurityView { * Show a message on the security view with a specified color * * @param message the message to show - * @param color the color to use + * @param colorState the color to use */ - void showMessage(CharSequence message, int color); + void showMessage(CharSequence message, ColorStateList colorState); /** * Instruct the view to show usability hints, if any. diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java index 3aede569147a7..74e2a6835b412 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityViewFlipper.java @@ -19,6 +19,7 @@ package com.android.keyguard; import android.annotation.NonNull; import android.content.Context; import android.content.res.TypedArray; +import android.content.res.ColorStateList; import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; @@ -139,10 +140,10 @@ public class KeyguardSecurityViewFlipper extends ViewFlipper implements Keyguard } @Override - public void showMessage(CharSequence message, int color) { + public void showMessage(CharSequence message, ColorStateList colorState) { KeyguardSecurityView ksv = getSecurityView(); if (ksv != null) { - ksv.showMessage(message, color); + ksv.showMessage(message, colorState); } } diff --git a/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java b/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java index 6977b51e87128..7c86a1dfb7971 100644 --- a/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java +++ b/packages/SystemUI/src/com/android/keyguard/SecurityMessageDisplay.java @@ -16,9 +16,11 @@ package com.android.keyguard; +import android.content.res.ColorStateList; + public interface SecurityMessageDisplay { - void setNextMessageColor(int color); + void setNextMessageColor(ColorStateList colorState); void setMessage(CharSequence msg); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index 67773f9300de9..35e151194f80c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -534,7 +534,7 @@ public class KeyguardIndicationController { ColorStateList errorColorState = Utils.getColorError(mContext); if (mStatusBarKeyguardViewManager.isBouncerShowing()) { mStatusBarKeyguardViewManager.showBouncerMessage(helpString, - errorColorState.getDefaultColor()); + errorColorState); } else if (updateMonitor.isScreenOn()) { mLockIcon.setTransientFpError(true); showTransientIndication(helpString, errorColorState); @@ -564,7 +564,7 @@ public class KeyguardIndicationController { // generic. if (mLastSuccessiveErrorMessage != msgId) { mStatusBarKeyguardViewManager.showBouncerMessage(errString, - errorColorState.getDefaultColor()); + errorColorState); } } else if (updateMonitor.isScreenOn()) { showTransientIndication(errString, errorColorState); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java index c74d09d93fc41..2a4595b980ac4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java @@ -20,6 +20,7 @@ import static com.android.keyguard.KeyguardHostView.OnDismissAction; import static com.android.keyguard.KeyguardSecurityModel.SecurityMode; import android.content.Context; +import android.content.res.ColorStateList; import android.os.Handler; import android.os.UserHandle; import android.os.UserManager; @@ -247,9 +248,9 @@ public class KeyguardBouncer { } } - public void showMessage(String message, int color) { + public void showMessage(String message, ColorStateList colorState) { if (mKeyguardView != null) { - mKeyguardView.showMessage(message, color); + mKeyguardView.showMessage(message, colorState); } else { Log.w(TAG, "Trying to show message on empty bouncer"); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 6a6a7dd08120f..52c97a3bae283 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -22,6 +22,7 @@ import static com.android.systemui.statusbar.phone.FingerprintUnlockController.M import android.content.ComponentCallbacks2; import android.content.Context; +import android.content.res.ColorStateList; import android.os.Bundle; import android.os.SystemClock; import android.util.StatsLog; @@ -695,8 +696,8 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mBouncer.notifyKeyguardAuthenticated(strongAuth); } - public void showBouncerMessage(String message, int color) { - mBouncer.showMessage(message, color); + public void showBouncerMessage(String message, ColorStateList colorState) { + mBouncer.showMessage(message, colorState); } public ViewRootImpl getViewRootImpl() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java index 12b14c8079173..a7954f2aa199f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java @@ -35,6 +35,7 @@ import android.testing.TestableLooper; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.FrameLayout; +import android.content.res.ColorStateList; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardHostView; @@ -227,8 +228,8 @@ public class KeyguardBouncerTest extends SysuiTestCase { public void testShowMessage_propagates() { final String message = "a message"; mBouncer.ensureView(); - mBouncer.showMessage(message, Color.GREEN); - verify(mKeyguardHostView).showMessage(eq(message), eq(Color.GREEN)); + mBouncer.showMessage(message, ColorStateList.valueOf(Color.GREEN)); + verify(mKeyguardHostView).showMessage(eq(message), eq(ColorStateList.valueOf(Color.GREEN))); } @Test