Merge "Fix clock font weight animation to always match the latest doze state." into sc-dev
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user