Merge "[SystemUI] To plumb down ColorStateList all the way down instead of int colors in KeyguardHostView.java and its collaborative files."

This commit is contained in:
TreeHugger Robot
2018-05-22 12:35:00 +00:00
committed by Android (Google) Code Review
12 changed files with 44 additions and 32 deletions

View File

@@ -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);
}

View File

@@ -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));
}
/**

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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.

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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");
}

View File

@@ -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() {

View File

@@ -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