From be2073710854306b10e0fdb611a485d2c23f0500 Mon Sep 17 00:00:00 2001 From: Shan Huang Date: Tue, 29 Jun 2021 12:12:28 +0800 Subject: [PATCH] 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 --- .../android/keyguard/AnimatableClockController.java | 4 +++- .../src/com/android/keyguard/AnimatableClockView.java | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java b/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java index 08076c17dc3ad..4b3af34b1df1f 100644 --- a/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java +++ b/packages/SystemUI/src/com/android/keyguard/AnimatableClockController.java @@ -94,7 +94,9 @@ public class AnimatableClockController extends ViewController { + return mStatusBarStateController.isDozing(); + }); } mIsCharging = charging; } diff --git a/packages/SystemUI/src/com/android/keyguard/AnimatableClockView.java b/packages/SystemUI/src/com/android/keyguard/AnimatableClockView.java index 63867c0f7308d..58b3865facbc1 100644 --- a/packages/SystemUI/src/com/android/keyguard/AnimatableClockView.java +++ b/packages/SystemUI/src/com/android/keyguard/AnimatableClockView.java @@ -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(); + } }