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 5f5d12e73f663..4bda01737e924 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; @@ -699,8 +700,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