diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml index fb39d3e4027d5..dbbf641e4bf7e 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded.xml @@ -64,18 +64,6 @@ android:clipToPadding="false" android:clipChildren="false"> - - diff --git a/packages/SystemUI/res/layout/super_notification_shade.xml b/packages/SystemUI/res/layout/super_notification_shade.xml index 08284a0a2e3a5..bea50e87a29a0 100644 --- a/packages/SystemUI/res/layout/super_notification_shade.xml +++ b/packages/SystemUI/res/layout/super_notification_shade.xml @@ -51,6 +51,14 @@ sysui:ignoreRightInset="true" /> + + impleme private final AccessibilityManager.TouchExplorationStateChangeListener mTouchExplorationStateChangeListener = enabled -> updateClickListener(); + + /** + * Set the alpha of this view. + */ + public void setAlpha(float alpha) { + mView.setAlpha(alpha); + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt index af8d808874740..4ed376ace8c8a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt @@ -287,6 +287,8 @@ class LockscreenShadeTransitionController @Inject constructor( // TODO: appear media also in split shade val mediaAmount = if (useSplitShade) 0f else field mediaHierarchyManager.setTransitionToFullShadeAmount(mediaAmount) + // Fade out all content only visible on the lockscreen + notificationPanelController.setKeyguardOnlyContentAlpha(1.0f - scrimProgress) } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 7737420cf0262..144e15e590d46 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -577,6 +577,11 @@ public class NotificationPanelViewController extends PanelViewController { */ private ValueAnimator mQsClippingAnimation = null; private final Rect mKeyguardStatusAreaClipBounds = new Rect(); + + /** + * The alpha of the views which only show on the keyguard but not in shade / shade locked + */ + private float mKeyguardOnlyContentAlpha = 1.0f; private int mOldLayoutDirection; private NotificationShelfController mNotificationShelfController; private int mScrimCornerRadius; @@ -1412,12 +1417,13 @@ public class NotificationPanelViewController extends PanelViewController { } private void updateClock() { - mKeyguardStatusViewController.setAlpha(mClockPositionResult.clockAlpha); + float alpha = mClockPositionResult.clockAlpha * mKeyguardOnlyContentAlpha; + mKeyguardStatusViewController.setAlpha(alpha); if (mKeyguardQsUserSwitchController != null) { - mKeyguardQsUserSwitchController.setAlpha(mClockPositionResult.clockAlpha); + mKeyguardQsUserSwitchController.setAlpha(alpha); } if (mKeyguardUserSwitcherController != null) { - mKeyguardUserSwitcherController.setAlpha(mClockPositionResult.clockAlpha); + mKeyguardUserSwitcherController.setAlpha(alpha); } } @@ -2024,6 +2030,7 @@ public class NotificationPanelViewController extends PanelViewController { private void maybeAnimateBottomAreaAlpha() { mBottomAreaShadeAlphaAnimator.cancel(); if (mBarState == StatusBarState.SHADE_LOCKED) { + mBottomAreaShadeAlphaAnimator.setFloatValues(mBottomAreaShadeAlpha, 0.0f); mBottomAreaShadeAlphaAnimator.start(); } else { mBottomAreaShadeAlpha = 1f; @@ -2439,6 +2446,20 @@ public class NotificationPanelViewController extends PanelViewController { updateQsExpansion(); } + /** + * Set the alpha of the keyguard elements which only show on the lockscreen, but not in + * shade locked / shade. This is used when dragging down to the full shade. + */ + public void setKeyguardOnlyContentAlpha(float keyguardAlpha) { + mKeyguardOnlyContentAlpha = Interpolators.ALPHA_IN.getInterpolation(keyguardAlpha); + if (mBarState == KEYGUARD) { + // If the animator is running, it's already fading out the content and this is a reset + mBottomAreaShadeAlpha = mKeyguardOnlyContentAlpha; + updateKeyguardBottomAreaAlpha(); + } + updateClock(); + } + private void trackMovement(MotionEvent event) { if (mQsVelocityTracker != null) mQsVelocityTracker.addMovement(event); } @@ -2897,6 +2918,7 @@ public class NotificationPanelViewController extends PanelViewController { if (ambientIndicationContainer != null) { ambientIndicationContainer.setAlpha(alpha); } + mLockIconViewController.setAlpha(alpha); } /**