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

Commit f33d2233 authored by Tracy Zhou's avatar Tracy Zhou Committed by Automerger Merge Worker
Browse files

Merge "Allow trackpad gestures in immersive mode ignoring bar visibility" into...

Merge "Allow trackpad gestures in immersive mode ignoring bar visibility" into udc-qpr-dev am: 7baeec3c

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



Change-Id: I85367202e8b059c7b53c7c27440c0907cee71d4a
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 5a31d5b0 7baeec3c
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -324,7 +324,7 @@ public class QuickStepContract {
     * Returns whether the specified sysui state is such that the back gesture should be
     * disabled.
     */
    public static boolean isBackGestureDisabled(int sysuiStateFlags) {
    public static boolean isBackGestureDisabled(int sysuiStateFlags, boolean forTrackpad) {
        // Always allow when the bouncer/global actions/voice session is showing (even on top of
        // the keyguard)
        if ((sysuiStateFlags & SYSUI_STATE_BOUNCER_SHOWING) != 0
@@ -335,16 +335,23 @@ public class QuickStepContract {
        if ((sysuiStateFlags & SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY) != 0) {
            sysuiStateFlags &= ~SYSUI_STATE_NAV_BAR_HIDDEN;
        }

        return (sysuiStateFlags & getBackGestureDisabledMask(forTrackpad)) != 0;
    }

    private static int getBackGestureDisabledMask(boolean forTrackpad) {
        // Disable when in immersive, or the notifications are interactive
        int disableFlags = SYSUI_STATE_NAV_BAR_HIDDEN | SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING;
        int disableFlags = SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING;
        if (!forTrackpad) {
            disableFlags |= SYSUI_STATE_NAV_BAR_HIDDEN;
        }

        // EdgeBackGestureHandler ignores Back gesture when SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED.
        // To allow Shade to respond to Back, we're bypassing this check (behind a flag).
        if (!ALLOW_BACK_GESTURE_IN_SHADE) {
            disableFlags |= SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED;
        }

        return (sysuiStateFlags & disableFlags) != 0;
        return disableFlags;
    }

    /**
+1 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ public class SysUiState implements Dumpable {
        pw.print("  mSysUiStateFlags="); pw.println(mFlags);
        pw.println("    " + QuickStepContract.getSystemUiStateString(mFlags));
        pw.print("    backGestureDisabled=");
        pw.println(QuickStepContract.isBackGestureDisabled(mFlags));
        pw.println(QuickStepContract.isBackGestureDisabled(mFlags, false /* forTrackpad */));
        pw.print("    assistantGestureDisabled=");
        pw.println(QuickStepContract.isAssistantGestureDisabled(mFlags));
    }
+5 −3
Original line number Diff line number Diff line
@@ -1023,7 +1023,8 @@ public class EdgeBackGestureHandler implements PluginListener<NavigationEdgeBack
            boolean isWithinInsets = isWithinInsets((int) ev.getX(), (int) ev.getY());
            boolean isBackAllowedCommon = !mDisabledForQuickstep && mIsBackGestureAllowed
                    && !mGestureBlockingActivityRunning
                    && !QuickStepContract.isBackGestureDisabled(mSysUiFlags)
                    && !QuickStepContract.isBackGestureDisabled(mSysUiFlags,
                            mIsTrackpadThreeFingerSwipe)
                    && !isTrackpadScroll(mIsTrackpadGestureFeaturesEnabled, ev);
            if (mIsTrackpadThreeFingerSwipe) {
                // Trackpad back gestures don't have zones, so we don't need to check if the down
@@ -1056,8 +1057,9 @@ public class EdgeBackGestureHandler implements PluginListener<NavigationEdgeBack
                            + " disp=%s, wl=%d, il=%d, wr=%d, ir=%d, excl=%s]",
                    curTime, curTimeStr, mAllowGesture, mIsTrackpadThreeFingerSwipe,
                    mIsOnLeftEdge, mDeferSetIsOnLeftEdge, mIsBackGestureAllowed,
                    QuickStepContract.isBackGestureDisabled(mSysUiFlags), mDisabledForQuickstep,
                    mGestureBlockingActivityRunning, mIsInPip, mDisplaySize,
                    QuickStepContract.isBackGestureDisabled(mSysUiFlags,
                            mIsTrackpadThreeFingerSwipe),
                    mDisabledForQuickstep, mGestureBlockingActivityRunning, mIsInPip, mDisplaySize,
                    mEdgeWidthLeft, mLeftInset, mEdgeWidthRight, mRightInset, mExcludeRegion));
        } else if (mAllowGesture || mLogGesture) {
            if (!mThresholdCrossed) {