Merge "Allow trackpad gestures in immersive mode ignoring bar visibility" into udc-qpr-dev
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user