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 1a0d2d4e33ec3..8c7dad992417c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -3772,6 +3772,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, */ public void goToKeyguard() { if (mState == StatusBarState.SHADE_LOCKED) { + mStackScroller.onGoToKeyguard(); setBarState(StatusBarState.KEYGUARD); updateKeyguardState(false /* goingToFullShade */, true /* fromShadeLocked*/); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 302763e8e7ac0..82e7f5d1ebdec 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -166,6 +166,7 @@ public class NotificationStackScrollLayout extends ViewGroup private boolean mDontReportNextOverScroll; private boolean mRequestViewResizeAnimationOnLayout; private boolean mNeedViewResizeAnimation; + private boolean mEverythingNeedsAnimation; /** * The maximum scrollPosition which we are allowed to reach when a notification was expanded. @@ -1619,6 +1620,7 @@ public class NotificationStackScrollLayout extends ViewGroup generateDarkEvent(); generateGoToFullShadeEvent(); generateViewResizeEvent(); + generateAnimateEverythingEvent(); mNeedsAnimation = false; } @@ -1701,6 +1703,14 @@ public class NotificationStackScrollLayout extends ViewGroup mActivateNeedsAnimation = false; } + private void generateAnimateEverythingEvent() { + if (mEverythingNeedsAnimation) { + mAnimationEvents.add( + new AnimationEvent(null, AnimationEvent.ANIMATION_TYPE_EVERYTHING)); + } + mEverythingNeedsAnimation = false; + } + private void generateDimmedEvent() { if (mDimmedNeedsAnimation) { mAnimationEvents.add( @@ -2200,6 +2210,13 @@ public class NotificationStackScrollLayout extends ViewGroup this.mPhoneStatusBar = phoneStatusBar; } + public void onGoToKeyguard() { + if (mIsExpanded && mAnimationsEnabled) { + mEverythingNeedsAnimation = true; + requestChildrenUpdate(); + } + } + /** * A listener that is notified when some child locations might have changed. */ @@ -2327,6 +2344,18 @@ public class NotificationStackScrollLayout extends ViewGroup .animateTopInset() .animateY() .animateZ(), + + // ANIMATION_TYPE_EVERYTHING + new AnimationFilter() + .animateAlpha() + .animateDark() + .animateScale() + .animateDimmed() + .animateHideSensitive() + .animateHeight() + .animateTopInset() + .animateY() + .animateZ(), }; static int[] LENGTHS = new int[] { @@ -2369,6 +2398,9 @@ public class NotificationStackScrollLayout extends ViewGroup // ANIMATION_TYPE_VIEW_RESIZE StackStateAnimator.ANIMATION_DURATION_STANDARD, + + // ANIMATION_TYPE_EVERYTHING + StackStateAnimator.ANIMATION_DURATION_STANDARD, }; static final int ANIMATION_TYPE_ADD = 0; @@ -2384,6 +2416,7 @@ public class NotificationStackScrollLayout extends ViewGroup static final int ANIMATION_TYPE_GO_TO_FULL_SHADE = 10; static final int ANIMATION_TYPE_HIDE_SENSITIVE = 11; static final int ANIMATION_TYPE_VIEW_RESIZE = 12; + static final int ANIMATION_TYPE_EVERYTHING = 13; final long eventStartTime; final View changingView;