Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7550b274 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "PanelExpansionStateManager: add new parameter for raw drag amount" into...

Merge "PanelExpansionStateManager: add new parameter for raw drag amount" into tm-qpr-dev am: 55e2c58f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17823004



Change-Id: I55f2adbe02f87d45fc540716df8eabf0ff18876e
Ignore-AOSP-First: this is an automerge
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 5753cd90 55e2c58f
Loading
Loading
Loading
Loading
+7 −8
Original line number Original line Diff line number Diff line
@@ -54,12 +54,11 @@ abstract class UdfpsAnimationViewController<T : UdfpsAnimationView>(
    private var dialogAlphaAnimator: ValueAnimator? = null
    private var dialogAlphaAnimator: ValueAnimator? = null
    private val dialogListener = SystemUIDialogManager.Listener { runDialogAlphaAnimator() }
    private val dialogListener = SystemUIDialogManager.Listener { runDialogAlphaAnimator() }


    private val panelExpansionListener =
    private val panelExpansionListener = PanelExpansionListener { event ->
        PanelExpansionListener { fraction, expanded, tracking ->
        // Notification shade can be expanded but not visible (fraction: 0.0), for example
        // Notification shade can be expanded but not visible (fraction: 0.0), for example
        // when a heads-up notification (HUN) is showing.
        // when a heads-up notification (HUN) is showing.
            notificationShadeVisible = expanded && fraction > 0f
        notificationShadeVisible = event.expanded && event.fraction > 0f
            view.onExpansionChanged(fraction)
        view.onExpansionChanged(event.fraction)
        updatePauseAuth()
        updatePauseAuth()
    }
    }


+3 −2
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.systemui.statusbar.phone.KeyguardBouncer;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.SystemUIDialogManager;
import com.android.systemui.statusbar.phone.SystemUIDialogManager;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
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.PanelExpansionListener;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionStateManager;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -491,8 +492,8 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud


    private final PanelExpansionListener mPanelExpansionListener = new PanelExpansionListener() {
    private final PanelExpansionListener mPanelExpansionListener = new PanelExpansionListener() {
        @Override
        @Override
        public void onPanelExpansionChanged(
        public void onPanelExpansionChanged(PanelExpansionChangeEvent event) {
                float fraction, boolean expanded, boolean tracking) {
            float fraction = event.getFraction();
            mPanelExpansionFraction =
            mPanelExpansionFraction =
                    mKeyguardViewManager.isBouncerInTransit() ? BouncerPanelExpansionCalculator
                    mKeyguardViewManager.isBouncerInTransit() ? BouncerPanelExpansionCalculator
                            .aboutToShowBouncerProgress(fraction) : fraction;
                            .aboutToShowBouncerProgress(fraction) : fraction;
+18 −7
Original line number Original line Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.KeyguardBouncer;
import com.android.systemui.statusbar.phone.KeyguardBouncer;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.panelstate.PanelExpansionChangeEvent;
import com.android.wm.shell.animation.FlingAnimationUtils;
import com.android.wm.shell.animation.FlingAnimationUtils;


import java.util.Optional;
import java.util.Optional;
@@ -141,21 +142,29 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler {
                    // bouncer. As that view's expansion shrinks, the bouncer appears. The bouncer
                    // 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
                    // is fully hidden at full expansion (1) and fully visible when fully collapsed
                    // (0).
                    // (0).
                    final float dragDownAmount = e2.getY() - e1.getY();
                    final float screenTravelPercentage = Math.abs(e1.getY() - e2.getY())
                    final float screenTravelPercentage = Math.abs(e1.getY() - e2.getY())
                            / mCentralSurfaces.get().getDisplayHeight();
                            / mCentralSurfaces.get().getDisplayHeight();
                    setPanelExpansion(mBouncerInitiallyShowing
                    setPanelExpansion(mBouncerInitiallyShowing
                            ? screenTravelPercentage : 1 - screenTravelPercentage);
                            ? screenTravelPercentage : 1 - screenTravelPercentage, dragDownAmount);
                    return true;
                    return true;
                }
                }
            };
            };


    private void setPanelExpansion(float expansion) {
    private void setPanelExpansion(float expansion, float dragDownAmount) {
        mCurrentExpansion = expansion;
        mCurrentExpansion = expansion;
        mCentralSurfaces.ifPresent(centralSurfaces -> centralSurfaces.setBouncerShowingOverDream(
        mCentralSurfaces.ifPresent(centralSurfaces -> centralSurfaces.setBouncerShowingOverDream(
                mCurrentExpansion != KeyguardBouncer.EXPANSION_HIDDEN));
                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
    @VisibleForTesting
    public enum DreamEvent implements UiEventLogger.UiEventEnum {
    public enum DreamEvent implements UiEventLogger.UiEventEnum {
        @UiEvent(doc = "The screensaver has been swiped up.")
        @UiEvent(doc = "The screensaver has been swiped up.")
@@ -285,12 +294,14 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler {
        }
        }
    }
    }


    private ValueAnimator createExpansionAnimator(float targetExpansion) {
    private ValueAnimator createExpansionAnimator(float targetExpansion, float expansionHeight) {
        final ValueAnimator animator =
        final ValueAnimator animator =
                mValueAnimatorCreator.create(mCurrentExpansion, targetExpansion);
                mValueAnimatorCreator.create(mCurrentExpansion, targetExpansion);
        animator.addUpdateListener(
        animator.addUpdateListener(
                animation -> {
                animation -> {
                    setPanelExpansion((float) animation.getAnimatedValue());
                    float expansionFraction = (float) animation.getAnimatedValue();
                    float dragDownAmount = expansionFraction * expansionHeight;
                    setPanelExpansion(expansionFraction, dragDownAmount);
                });
                });
        if (!mBouncerInitiallyShowing && targetExpansion == KeyguardBouncer.EXPANSION_VISIBLE) {
        if (!mBouncerInitiallyShowing && targetExpansion == KeyguardBouncer.EXPANSION_VISIBLE) {
            animator.addListener(
            animator.addListener(
@@ -323,8 +334,8 @@ public class BouncerSwipeTouchHandler implements DreamTouchHandler {
        final float viewHeight = mCentralSurfaces.get().getDisplayHeight();
        final float viewHeight = mCentralSurfaces.get().getDisplayHeight();
        final float currentHeight = viewHeight * mCurrentExpansion;
        final float currentHeight = viewHeight * mCurrentExpansion;
        final float targetHeight = viewHeight * expansion;
        final float targetHeight = viewHeight * expansion;

        final float expansionHeight = targetHeight - currentHeight;
        final ValueAnimator animator = createExpansionAnimator(expansion);
        final ValueAnimator animator = createExpansionAnimator(expansion, expansionHeight);
        if (expansion == KeyguardBouncer.EXPANSION_HIDDEN) {
        if (expansion == KeyguardBouncer.EXPANSION_HIDDEN) {
            // Hides the bouncer, i.e., fully expands the space above the bouncer.
            // Hides the bouncer, i.e., fully expands the space above the bouncer.
            mFlingAnimationUtilsClosing.apply(animator, currentHeight, targetHeight, velocity,
            mFlingAnimationUtilsClosing.apply(animator, currentHeight, targetHeight, velocity,
+4 −1
Original line number Original line Diff line number Diff line
@@ -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.BiometricUnlockController.MODE_WAKE_AND_UNLOCK
import com.android.systemui.statusbar.phone.DozeParameters
import com.android.systemui.statusbar.phone.DozeParameters
import com.android.systemui.statusbar.phone.ScrimController
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.phone.panelstate.PanelExpansionListener
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -340,7 +341,9 @@ class NotificationShadeDepthController @Inject constructor(
    /**
    /**
     * Update blurs when pulling down the shade
     * 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 timestamp = SystemClock.elapsedRealtimeNanos()
        val expansion = MathUtils.saturate(
        val expansion = MathUtils.saturate(
                (rawFraction - panelPullDownMinFraction) / (1f - panelPullDownMinFraction))
                (rawFraction - panelPullDownMinFraction) / (1f - panelPullDownMinFraction))
+3 −2
Original line number Original line Diff line number Diff line
@@ -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.DozeParameters
import com.android.systemui.statusbar.phone.KeyguardBypassController
import com.android.systemui.statusbar.phone.KeyguardBypassController
import com.android.systemui.statusbar.phone.ScreenOffAnimationController
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.phone.panelstate.PanelExpansionListener
import com.android.systemui.statusbar.policy.HeadsUpManager
import com.android.systemui.statusbar.policy.HeadsUpManager
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener
@@ -292,8 +293,8 @@ class NotificationWakeUpCoordinator @Inject constructor(
        this.state = newState
        this.state = newState
    }
    }


    override fun onPanelExpansionChanged(fraction: Float, expanded: Boolean, tracking: Boolean) {
    override fun onPanelExpansionChanged(event: PanelExpansionChangeEvent) {
        val collapsedEnough = fraction <= 0.9f
        val collapsedEnough = event.fraction <= 0.9f
        if (collapsedEnough != this.collapsedEnoughToHide) {
        if (collapsedEnough != this.collapsedEnoughToHide) {
            val couldShowPulsingHuns = canShowPulsingHuns
            val couldShowPulsingHuns = canShowPulsingHuns
            this.collapsedEnoughToHide = collapsedEnough
            this.collapsedEnoughToHide = collapsedEnough
Loading