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

Commit be207371 authored by Shan Huang's avatar Shan Huang
Browse files

Fix clock font weight animation to always match the latest doze state.

Bug:189296201
Fixes:189296201
Test: Turn off AOD, put screen off, plugin charger, checks the font
weight after phone wakes up.

Change-Id: I1206efbf213e6fbbfddfc2eb884f66a9321bf993
parent d87df180
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -94,7 +94,9 @@ public class AnimatableClockController extends ViewController<AnimatableClockVie
        @Override
        public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
            if (mKeyguardShowing && !mIsCharging && charging) {
                mView.animateCharge(mIsDozing);
                mView.animateCharge(() -> {
                    return mStatusBarStateController.isDozing();
                });
            }
            mIsCharging = charging;
        }
+7 −3
Original line number Diff line number Diff line
@@ -196,20 +196,20 @@ public class AnimatableClockView extends TextView {
                null /* onAnimationEnd */);
    }

    void animateCharge(boolean isDozing) {
    void animateCharge(DozeStateGetter dozeStateGetter) {
        if (mTextAnimator == null || mTextAnimator.isRunning()) {
            // Skip charge animation if dozing animation is already playing.
            return;
        }
        Runnable startAnimPhase2 = () -> setTextStyle(
                isDozing ? mDozingWeight : mLockScreenWeight/* weight */,
                dozeStateGetter.isDozing() ? mDozingWeight : mLockScreenWeight/* weight */,
                -1,
                null,
                true /* animate */,
                CHARGE_ANIM_DURATION_PHASE_1,
                0 /* delay */,
                null /* onAnimationEnd */);
        setTextStyle(isDozing ? mLockScreenWeight : mDozingWeight/* weight */,
        setTextStyle(dozeStateGetter.isDozing() ? mLockScreenWeight : mDozingWeight/* weight */,
                -1,
                null,
                true /* animate */,
@@ -279,4 +279,8 @@ public class AnimatableClockView extends TextView {
                context.getResources().getConfiguration().locale);
        return dtpg.getBestPattern(skeleton);
    }

    interface DozeStateGetter {
        boolean isDozing();
    }
}