Merge "Simplify trackpad multi-finger gesture recognition logic for gesture nav" into udc-qpr-dev am: 073a04f639
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23463119 Change-Id: I2ebfa65a132f4f9a4d14466f56591178d5e39e5f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
+4
-11
@@ -113,7 +113,6 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
||||
newCancelListener(this::clearState);
|
||||
|
||||
private boolean mNoIntercept;
|
||||
private Boolean mIsTrackpadFourFingerSwipe;
|
||||
private LauncherState mStartState;
|
||||
|
||||
private boolean mIsHomeScreenVisible = true;
|
||||
@@ -139,9 +138,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
||||
|
||||
@Override
|
||||
public boolean onControllerInterceptTouchEvent(MotionEvent ev) {
|
||||
int action = ev.getActionMasked();
|
||||
if (action == ACTION_DOWN) {
|
||||
mIsTrackpadFourFingerSwipe = null;
|
||||
if (ev.getActionMasked() == ACTION_DOWN) {
|
||||
mNoIntercept = !canInterceptTouch(ev);
|
||||
if (mNoIntercept) {
|
||||
return false;
|
||||
@@ -150,13 +147,6 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
||||
// Only detect horizontal swipe for intercept, then we will allow swipe up as well.
|
||||
mSwipeDetector.setDetectableScrollConditions(DIRECTION_RIGHT,
|
||||
false /* ignoreSlopWhenSettling */);
|
||||
} else if (isTrackpadMultiFingerSwipe(ev) && mIsTrackpadFourFingerSwipe == null
|
||||
&& action == ACTION_MOVE) {
|
||||
mIsTrackpadFourFingerSwipe = isTrackpadFourFingerSwipe(ev);
|
||||
mNoIntercept = !mIsTrackpadFourFingerSwipe;
|
||||
if (mNoIntercept) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mNoIntercept) {
|
||||
@@ -191,6 +181,9 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
||||
// TODO(b/268075592): add support for quickswitch to/from desktop
|
||||
return false;
|
||||
}
|
||||
if (isTrackpadMultiFingerSwipe(ev)) {
|
||||
return isTrackpadFourFingerSwipe(ev);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -150,15 +150,10 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
|
||||
|
||||
public enum TrackpadGestureType {
|
||||
NONE,
|
||||
// Assigned before we know whether it's a 3-finger or 4-finger gesture.
|
||||
MULTI_FINGER,
|
||||
THREE_FINGER,
|
||||
FOUR_FINGER;
|
||||
|
||||
public static TrackpadGestureType getTrackpadGestureType(MotionEvent event) {
|
||||
if (!isTrackpadMultiFingerSwipe(event)) {
|
||||
return TrackpadGestureType.NONE;
|
||||
}
|
||||
if (isTrackpadThreeFingerSwipe(event)) {
|
||||
return TrackpadGestureType.THREE_FINGER;
|
||||
}
|
||||
@@ -166,7 +161,7 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
|
||||
return TrackpadGestureType.FOUR_FINGER;
|
||||
}
|
||||
|
||||
return TrackpadGestureType.MULTI_FINGER;
|
||||
return TrackpadGestureType.NONE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -741,9 +741,6 @@ public class TouchInteractionService extends Service
|
||||
if (mGestureState.isTrackpadGesture() && (action == ACTION_POINTER_DOWN
|
||||
|| action == ACTION_POINTER_UP)) {
|
||||
// Skip ACTION_POINTER_DOWN and ACTION_POINTER_UP events from trackpad.
|
||||
if (action == ACTION_POINTER_DOWN) {
|
||||
mGestureState.setTrackpadGestureType(getTrackpadGestureType(event));
|
||||
}
|
||||
} else if (event.isHoverEvent()) {
|
||||
mUncheckedConsumer.onHoverEvent(event);
|
||||
} else {
|
||||
|
||||
@@ -30,6 +30,9 @@ public class MotionEventsUtils {
|
||||
/** {@link MotionEvent#CLASSIFICATION_MULTI_FINGER_SWIPE} is hidden. */
|
||||
public static final int CLASSIFICATION_MULTI_FINGER_SWIPE = 4;
|
||||
|
||||
/** {@link MotionEvent#AXIS_GESTURE_SWIPE_FINGER_COUNT} is hidden. */
|
||||
private static final int AXIS_GESTURE_SWIPE_FINGER_COUNT = 53;
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
|
||||
public static boolean isTrackpadScroll(MotionEvent event) {
|
||||
return ENABLE_TRACKPAD_GESTURE.get()
|
||||
@@ -43,11 +46,13 @@ public class MotionEventsUtils {
|
||||
}
|
||||
|
||||
public static boolean isTrackpadThreeFingerSwipe(MotionEvent event) {
|
||||
return isTrackpadMultiFingerSwipe(event) && event.getPointerCount() == 3;
|
||||
return isTrackpadMultiFingerSwipe(event) && event.getAxisValue(
|
||||
AXIS_GESTURE_SWIPE_FINGER_COUNT) == 3;
|
||||
}
|
||||
|
||||
public static boolean isTrackpadFourFingerSwipe(MotionEvent event) {
|
||||
return isTrackpadMultiFingerSwipe(event) && event.getPointerCount() == 4;
|
||||
return isTrackpadMultiFingerSwipe(event) && event.getAxisValue(
|
||||
AXIS_GESTURE_SWIPE_FINGER_COUNT) == 4;
|
||||
}
|
||||
|
||||
public static boolean isTrackpadMotionEvent(MotionEvent event) {
|
||||
|
||||
Reference in New Issue
Block a user