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

Commit 8557dbcd authored by Jason Mylen's avatar Jason Mylen
Browse files

Move vibration haptic from down event to the first move expanding shade.

Fix: 247132575
Test: manual

Change-Id: Ie20ad1f4aa6b89eede3d2170c828b163aa90fea4
parent 84e2c20b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2217,7 +2217,8 @@ public final class NotificationPanelViewController extends PanelViewController {
            if (cancel) {
                collapse(false /* delayed */, 1.0f /* speedUpFactor */);
            } else {
                maybeVibrateOnOpening();
                // Window never will receive touch events that typically trigger haptic on open.
                maybeVibrateOnOpening(false /* openingWithTouch */);
                fling(velocity > 1f ? 1000f * velocity : 0, true /* expand */);
            }
            onTrackingStopped(false);
+17 −4
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ public abstract class PanelViewController {
    private float mMinExpandHeight;
    private boolean mPanelUpdateWhenAnimatorEnds;
    private final boolean mVibrateOnOpening;
    private boolean mHasVibratedOnOpen = false;
    protected boolean mIsLaunchAnimationRunning;
    private int mFixedDuration = NO_FIXED_DURATION;
    protected float mOverExpansion;
@@ -353,8 +354,8 @@ public abstract class PanelViewController {

    private void startOpening(MotionEvent event) {
        updatePanelExpansionAndVisibility();
        maybeVibrateOnOpening();

        // Reset at start so haptic can be triggered as soon as panel starts to open.
        mHasVibratedOnOpen = false;
        //TODO: keyguard opens QS a different way; log that too?

        // Log the position of the swipe that opened the panel
@@ -368,9 +369,18 @@ public abstract class PanelViewController {
                .log(LockscreenUiEvent.LOCKSCREEN_UNLOCKED_NOTIFICATION_PANEL_EXPAND);
    }

    protected void maybeVibrateOnOpening() {
    /**
     * Maybe vibrate as panel is opened.
     *
     * @param openingWithTouch Whether the panel is being opened with touch. If the panel is instead
     * being opened programmatically (such as by the open panel gesture), we always play haptic.
     */
    protected void maybeVibrateOnOpening(boolean openingWithTouch) {
        if (mVibrateOnOpening) {
            if (!openingWithTouch || !mHasVibratedOnOpen) {
                mVibratorHelper.vibrate(VibrationEffect.EFFECT_TICK);
                mHasVibratedOnOpen = true;
            }
        }
    }

@@ -1371,6 +1381,9 @@ public abstract class PanelViewController {
                    break;
                case MotionEvent.ACTION_MOVE:
                    addMovement(event);
                    if (!isFullyCollapsed()) {
                        maybeVibrateOnOpening(true /* openingWithTouch */);
                    }
                    float h = y - mInitialExpandY;

                    // If the panel was collapsed when touching, we only need to check for the