Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19854e7b authored by Beverly's avatar Beverly
Browse files

Set text color in the KeyguardIndication

Instead of directly setting the text color on
the TextView. The text color should be updated
when the TextView animates in the new text to show,
not immediately on receiving a request to show
new text.

Test: atest KeyguardIndicationControllerTest
Fixes: 185439308
Change-Id: I7f0a876f4e06864d4bd555ba9a85279aaad72c77
parent ec06f834
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -869,12 +869,9 @@ public class KeyguardIndicationController {
        // Walk down a precedence-ordered list of what indication
        // should be shown based on device state
        if (mDozing) {
            boolean useMisalignmentColor = false;
            mLockScreenIndicationView.setVisibility(View.GONE);
            mTopIndicationView.setVisibility(VISIBLE);
            // When dozing we ignore any text color and use white instead, because
            // colors can be hard to read in low brightness.
            mTopIndicationView.setTextColor(Color.WHITE);

            CharSequence newIndication;
            if (!TextUtils.isEmpty(mBiometricMessage)) {
                newIndication = mBiometricMessage; // note: doesn't show mBiometricMessageFollowUp
@@ -885,8 +882,8 @@ public class KeyguardIndicationController {
                mIndicationArea.setVisibility(GONE);
                return;
            } else if (!TextUtils.isEmpty(mAlignmentIndication)) {
                useMisalignmentColor = true;
                newIndication = mAlignmentIndication;
                mTopIndicationView.setTextColor(mContext.getColor(R.color.misalignment_text_color));
            } else if (mPowerPluggedIn || mEnableBatteryDefender) {
                newIndication = computePowerIndication();
            } else {
@@ -896,7 +893,14 @@ public class KeyguardIndicationController {

            if (!TextUtils.equals(mTopIndicationView.getText(), newIndication)) {
                mWakeLock.setAcquired(true);
                mTopIndicationView.switchIndication(newIndication, null,
                mTopIndicationView.switchIndication(newIndication,
                        new KeyguardIndication.Builder()
                                .setMessage(newIndication)
                                .setTextColor(ColorStateList.valueOf(
                                        useMisalignmentColor
                                                ? mContext.getColor(R.color.misalignment_text_color)
                                                : Color.WHITE))
                                .build(),
                        true, () -> mWakeLock.setAcquired(false));
            }
            return;