diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index bfced6b5d350a..20809ea3a0768 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -974,6 +974,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, inflateEmptyShadeView(); updateEmptyShadeView(); inflateOverflowContainer(); + mStatusBarKeyguardViewManager.onDensityOrFontScaleChanged(); } private void inflateSignalClusters() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index dfc816ca15ce8..eae0b8e476140 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -91,6 +91,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private boolean mSkipFirstFrame; private boolean mDontAnimateBouncerChanges; private boolean mKeyguardFadingOutInProgress; + private ValueAnimator mKeyguardFadeoutAnimation; public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, View headsUpScrim) { mScrimBehind = scrimBehind; @@ -135,6 +136,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, if (mPinnedHeadsUpCount != 0) { updateHeadsUpScrim(false); } + if (mKeyguardFadeoutAnimation != null) { + mKeyguardFadeoutAnimation.cancel(); + } } } @@ -345,7 +349,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, mOnAnimationFinished.run(); mOnAnimationFinished = null; } - mKeyguardFadingOutInProgress = false; + if (mKeyguardFadingOutInProgress) { + mKeyguardFadeoutAnimation = null; + mKeyguardFadingOutInProgress = false; + } scrim.setTag(TAG_KEY_ANIM, null); scrim.setTag(TAG_KEY_ANIM_TARGET, null); } @@ -353,6 +360,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, anim.start(); if (mAnimateKeyguardFadingOut) { mKeyguardFadingOutInProgress = true; + mKeyguardFadeoutAnimation = anim; } if (mSkipFirstFrame) { anim.setCurrentPlayTime(16); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index dcad75aff116d..8d0d9cb27cea2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -349,6 +349,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb } } + public void onDensityOrFontScaleChanged() { + mBouncer.hide(true /* destroyView */); + } + private void animateScrimControllerKeyguardFadingOut(long delay, long duration, boolean skipFirstFrame) { animateScrimControllerKeyguardFadingOut(delay, duration, null /* endRunnable */,