Loading packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt +7 −8 Original line number Diff line number Diff line Loading @@ -54,12 +54,11 @@ abstract class UdfpsAnimationViewController<T : UdfpsAnimationView>( private var dialogAlphaAnimator: ValueAnimator? = null private val dialogListener = SystemUIDialogManager.Listener { runDialogAlphaAnimator() } private val panelExpansionListener = PanelExpansionListener { fraction, expanded, tracking -> private val panelExpansionListener = PanelExpansionListener { event -> // Notification shade can be expanded but not visible (fraction: 0.0), for example // when a heads-up notification (HUN) is showing. notificationShadeVisible = expanded && fraction > 0f view.onExpansionChanged(fraction) notificationShadeVisible = event.expanded && event.fraction > 0f view.onExpansionChanged(event.fraction) updatePauseAuth() } Loading packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java +3 −2 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.SystemUIDialogManager; import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager; import com.android.systemui.statusbar.policy.ConfigurationController; Loading Loading @@ -491,8 +492,8 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud private final PanelExpansionListener mPanelExpansionListener = new PanelExpansionListener() { @Override public void onPanelExpansionChanged( float fraction, boolean expanded, boolean tracking) { public void onPanelExpansionChanged(PanelExpansionChangeEvent event) { float fraction = event.getFraction(); mPanelExpansionFraction = mKeyguardViewManager.isBouncerInTransit() ? BouncerPanelExpansionCalculator .aboutToShowBouncerProgress(fraction) : fraction; Loading packages/SystemUI/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandler.java +18 −7 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent; import com.android.wm.shell.animation.FlingAnimationUtils; import java.util.Optional; Loading Loading @@ -141,21 +142,29 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler { // bouncer. As that view's expansion shrinks, the bouncer appears. The bouncer // is fully hidden at full expansion (1) and fully visible when fully collapsed // (0). final float dragDownAmount = e2.getY() - e1.getY(); final float screenTravelPercentage = Math.abs(e1.getY() - e2.getY()) / mCentralSurfaces.get().getDisplayHeight(); setPanelExpansion(mBouncerInitiallyShowing ? screenTravelPercentage : 1 - screenTravelPercentage); ? screenTravelPercentage : 1 - screenTravelPercentage, dragDownAmount); return true; } }; private void setPanelExpansion(float expansion) { private void setPanelExpansion(float expansion, float dragDownAmount) { mCurrentExpansion = expansion; mCentralSurfaces.ifPresent(centralSurfaces -> centralSurfaces.setBouncerShowingOverDream( mCurrentExpansion != KeyguardBouncer.EXPANSION_HIDDEN)); mStatusBarKeyguardViewManager.onPanelExpansionChanged(mCurrentExpansion, false, true); PanelExpansionChangeEvent event = new PanelExpansionChangeEvent( /* fraction= */ mCurrentExpansion, /* expanded= */ false, /* tracking= */ true, /* dragDownPxAmount= */ dragDownAmount); mStatusBarKeyguardViewManager.onPanelExpansionChanged(event); } @VisibleForTesting public enum DreamEvent implements UiEventLogger.UiEventEnum { @UiEvent(doc = "The screensaver has been swiped up.") Loading Loading @@ -285,12 +294,14 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler { } } private ValueAnimator createExpansionAnimator(float targetExpansion) { private ValueAnimator createExpansionAnimator(float targetExpansion, float expansionHeight) { final ValueAnimator animator = mValueAnimatorCreator.create(mCurrentExpansion, targetExpansion); animator.addUpdateListener( animation -> { setPanelExpansion((float) animation.getAnimatedValue()); float expansionFraction = (float) animation.getAnimatedValue(); float dragDownAmount = expansionFraction * expansionHeight; setPanelExpansion(expansionFraction, dragDownAmount); }); if (!mBouncerInitiallyShowing && targetExpansion == KeyguardBouncer.EXPANSION_VISIBLE) { animator.addListener( Loading Loading @@ -323,8 +334,8 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler { final float viewHeight = mCentralSurfaces.get().getDisplayHeight(); final float currentHeight = viewHeight * mCurrentExpansion; final float targetHeight = viewHeight * expansion; final ValueAnimator animator = createExpansionAnimator(expansion); final float expansionHeight = targetHeight - currentHeight; final ValueAnimator animator = createExpansionAnimator(expansion, expansionHeight); if (expansion == KeyguardBouncer.EXPANSION_HIDDEN) { // Hides the bouncer, i.e., fully expands the space above the bouncer. mFlingAnimationUtilsClosing.apply(animator, currentHeight, targetHeight, velocity, Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt +4 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.systemui.statusbar.phone.BiometricUnlockController import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.phone.ScrimController import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.KeyguardStateController Loading Loading @@ -340,7 +341,9 @@ class NotificationShadeDepthController @Inject constructor( /** * Update blurs when pulling down the shade */ override fun onPanelExpansionChanged(rawFraction: Float, expanded: Boolean, tracking: Boolean) { override fun onPanelExpansionChanged(event: PanelExpansionChangeEvent) { val rawFraction = event.fraction val tracking = event.tracking val timestamp = SystemClock.elapsedRealtimeNanos() val expansion = MathUtils.saturate( (rawFraction - panelPullDownMinFraction) / (1f - panelPullDownMinFraction)) Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt +3 −2 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.android.systemui.statusbar.notification.stack.StackStateAnimator import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.phone.ScreenOffAnimationController import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener Loading Loading @@ -292,8 +293,8 @@ class NotificationWakeUpCoordinator @Inject constructor( this.state = newState } override fun onPanelExpansionChanged(fraction: Float, expanded: Boolean, tracking: Boolean) { val collapsedEnough = fraction <= 0.9f override fun onPanelExpansionChanged(event: PanelExpansionChangeEvent) { val collapsedEnough = event.fraction <= 0.9f if (collapsedEnough != this.collapsedEnoughToHide) { val couldShowPulsingHuns = canShowPulsingHuns this.collapsedEnoughToHide = collapsedEnough Loading Loading
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt +7 −8 Original line number Diff line number Diff line Loading @@ -54,12 +54,11 @@ abstract class UdfpsAnimationViewController<T : UdfpsAnimationView>( private var dialogAlphaAnimator: ValueAnimator? = null private val dialogListener = SystemUIDialogManager.Listener { runDialogAlphaAnimator() } private val panelExpansionListener = PanelExpansionListener { fraction, expanded, tracking -> private val panelExpansionListener = PanelExpansionListener { event -> // Notification shade can be expanded but not visible (fraction: 0.0), for example // when a heads-up notification (HUN) is showing. notificationShadeVisible = expanded && fraction > 0f view.onExpansionChanged(fraction) notificationShadeVisible = event.expanded && event.fraction > 0f view.onExpansionChanged(event.fraction) updatePauseAuth() } Loading
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java +3 −2 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.SystemUIDialogManager; import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager; import com.android.systemui.statusbar.policy.ConfigurationController; Loading Loading @@ -491,8 +492,8 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud private final PanelExpansionListener mPanelExpansionListener = new PanelExpansionListener() { @Override public void onPanelExpansionChanged( float fraction, boolean expanded, boolean tracking) { public void onPanelExpansionChanged(PanelExpansionChangeEvent event) { float fraction = event.getFraction(); mPanelExpansionFraction = mKeyguardViewManager.isBouncerInTransit() ? BouncerPanelExpansionCalculator .aboutToShowBouncerProgress(fraction) : fraction; Loading
packages/SystemUI/src/com/android/systemui/dreams/touch/BouncerSwipeTouchHandler.java +18 −7 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.statusbar.NotificationShadeWindowController; import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent; import com.android.wm.shell.animation.FlingAnimationUtils; import java.util.Optional; Loading Loading @@ -141,21 +142,29 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler { // bouncer. As that view's expansion shrinks, the bouncer appears. The bouncer // is fully hidden at full expansion (1) and fully visible when fully collapsed // (0). final float dragDownAmount = e2.getY() - e1.getY(); final float screenTravelPercentage = Math.abs(e1.getY() - e2.getY()) / mCentralSurfaces.get().getDisplayHeight(); setPanelExpansion(mBouncerInitiallyShowing ? screenTravelPercentage : 1 - screenTravelPercentage); ? screenTravelPercentage : 1 - screenTravelPercentage, dragDownAmount); return true; } }; private void setPanelExpansion(float expansion) { private void setPanelExpansion(float expansion, float dragDownAmount) { mCurrentExpansion = expansion; mCentralSurfaces.ifPresent(centralSurfaces -> centralSurfaces.setBouncerShowingOverDream( mCurrentExpansion != KeyguardBouncer.EXPANSION_HIDDEN)); mStatusBarKeyguardViewManager.onPanelExpansionChanged(mCurrentExpansion, false, true); PanelExpansionChangeEvent event = new PanelExpansionChangeEvent( /* fraction= */ mCurrentExpansion, /* expanded= */ false, /* tracking= */ true, /* dragDownPxAmount= */ dragDownAmount); mStatusBarKeyguardViewManager.onPanelExpansionChanged(event); } @VisibleForTesting public enum DreamEvent implements UiEventLogger.UiEventEnum { @UiEvent(doc = "The screensaver has been swiped up.") Loading Loading @@ -285,12 +294,14 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler { } } private ValueAnimator createExpansionAnimator(float targetExpansion) { private ValueAnimator createExpansionAnimator(float targetExpansion, float expansionHeight) { final ValueAnimator animator = mValueAnimatorCreator.create(mCurrentExpansion, targetExpansion); animator.addUpdateListener( animation -> { setPanelExpansion((float) animation.getAnimatedValue()); float expansionFraction = (float) animation.getAnimatedValue(); float dragDownAmount = expansionFraction * expansionHeight; setPanelExpansion(expansionFraction, dragDownAmount); }); if (!mBouncerInitiallyShowing && targetExpansion == KeyguardBouncer.EXPANSION_VISIBLE) { animator.addListener( Loading Loading @@ -323,8 +334,8 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler { final float viewHeight = mCentralSurfaces.get().getDisplayHeight(); final float currentHeight = viewHeight * mCurrentExpansion; final float targetHeight = viewHeight * expansion; final ValueAnimator animator = createExpansionAnimator(expansion); final float expansionHeight = targetHeight - currentHeight; final ValueAnimator animator = createExpansionAnimator(expansion, expansionHeight); if (expansion == KeyguardBouncer.EXPANSION_HIDDEN) { // Hides the bouncer, i.e., fully expands the space above the bouncer. mFlingAnimationUtilsClosing.apply(animator, currentHeight, targetHeight, velocity, Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt +4 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.systemui.statusbar.phone.BiometricUnlockController import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.phone.ScrimController import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.KeyguardStateController Loading Loading @@ -340,7 +341,9 @@ class NotificationShadeDepthController @Inject constructor( /** * Update blurs when pulling down the shade */ override fun onPanelExpansionChanged(rawFraction: Float, expanded: Boolean, tracking: Boolean) { override fun onPanelExpansionChanged(event: PanelExpansionChangeEvent) { val rawFraction = event.fraction val tracking = event.tracking val timestamp = SystemClock.elapsedRealtimeNanos() val expansion = MathUtils.saturate( (rawFraction - panelPullDownMinFraction) / (1f - panelPullDownMinFraction)) Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationWakeUpCoordinator.kt +3 −2 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.android.systemui.statusbar.notification.stack.StackStateAnimator import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.statusbar.phone.ScreenOffAnimationController import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent import com.android.systemui.statusbar.phone.panelstate.PanelExpansionListener import com.android.systemui.statusbar.policy.HeadsUpManager import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener Loading Loading @@ -292,8 +293,8 @@ class NotificationWakeUpCoordinator @Inject constructor( this.state = newState } override fun onPanelExpansionChanged(fraction: Float, expanded: Boolean, tracking: Boolean) { val collapsedEnough = fraction <= 0.9f override fun onPanelExpansionChanged(event: PanelExpansionChangeEvent) { val collapsedEnough = event.fraction <= 0.9f if (collapsedEnough != this.collapsedEnoughToHide) { val couldShowPulsingHuns = canShowPulsingHuns this.collapsedEnoughToHide = collapsedEnough Loading