summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/navigationbar/gestural/Utilities.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java57
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt13
4 files changed, 38 insertions, 41 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java
index b1719107fae1..91171d880754 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java
@@ -23,7 +23,6 @@ import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_EXCLUDE_FROM_
import static com.android.systemui.Flags.edgebackGestureHandlerGetRunningTasksBackground;
import static com.android.systemui.classifier.Classifier.BACK_GESTURE;
-import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadScroll;
import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadThreeFingerSwipe;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_TOUCHPAD_GESTURES_DISABLED;
@@ -1087,8 +1086,7 @@ public class EdgeBackGestureHandler implements PluginListener<NavigationEdgeBack
boolean isBackAllowedCommon = !mDisabledForQuickstep && mIsBackGestureAllowed
&& !mGestureBlockingActivityRunning.get()
&& !QuickStepContract.isBackGestureDisabled(mSysUiFlags,
- mIsTrackpadThreeFingerSwipe)
- && !isTrackpadScroll(ev);
+ mIsTrackpadThreeFingerSwipe);
if (mIsTrackpadThreeFingerSwipe) {
// Trackpad back gestures don't have zones, so we don't need to check if the down
// event is within insets.
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/Utilities.java b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/Utilities.java
index b46f2d2f5d62..1771a974d4fb 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/Utilities.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/Utilities.java
@@ -18,16 +18,11 @@ package com.android.systemui.navigationbar.gestural;
import static android.view.MotionEvent.AXIS_GESTURE_SWIPE_FINGER_COUNT;
import static android.view.MotionEvent.CLASSIFICATION_MULTI_FINGER_SWIPE;
-import static android.view.MotionEvent.CLASSIFICATION_TWO_FINGER_SWIPE;
import android.view.MotionEvent;
public final class Utilities {
- public static boolean isTrackpadScroll(MotionEvent event) {
- return event.getClassification() == CLASSIFICATION_TWO_FINGER_SWIPE;
- }
-
public static boolean isTrackpadThreeFingerSwipe(MotionEvent event) {
return event.getClassification() == CLASSIFICATION_MULTI_FINGER_SWIPE
&& event.getAxisValue(AXIS_GESTURE_SWIPE_FINGER_COUNT) == 3;
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index 88522d559c30..cfdc83fef896 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -35,7 +35,6 @@ import static com.android.systemui.keyguard.shared.model.KeyguardState.DREAMING;
import static com.android.systemui.keyguard.shared.model.KeyguardState.GONE;
import static com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN;
import static com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED;
-import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadScroll;
import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadThreeFingerSwipe;
import static com.android.systemui.shade.ShadeExpansionStateManagerKt.STATE_CLOSED;
import static com.android.systemui.shade.ShadeExpansionStateManagerKt.STATE_OPEN;
@@ -73,6 +72,7 @@ import android.util.IndentingPrintWriter;
import android.util.Log;
import android.util.MathUtils;
import android.view.HapticFeedbackConstants;
+import android.view.InputDevice;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.VelocityTracker;
@@ -186,7 +186,6 @@ import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.notification.AnimatableProperty;
import com.android.systemui.statusbar.notification.ConversationNotificationManager;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
-import com.android.systemui.statusbar.notification.headsup.HeadsUpTouchHelper;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.PropertyAnimator;
import com.android.systemui.statusbar.notification.ViewGroupFadeHelper;
@@ -194,6 +193,7 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.domain.interactor.ActiveNotificationsInteractor;
import com.android.systemui.statusbar.notification.footer.shared.FooterViewRefactor;
import com.android.systemui.statusbar.notification.headsup.HeadsUpManager;
+import com.android.systemui.statusbar.notification.headsup.HeadsUpTouchHelper;
import com.android.systemui.statusbar.notification.headsup.OnHeadsUpChangedListener;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableView;
@@ -414,7 +414,6 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
private float mOverStretchAmount;
private float mDownX;
private float mDownY;
- private boolean mIsTrackpadReverseScroll;
private int mDisplayTopInset = 0; // in pixels
private int mDisplayRightInset = 0; // in pixels
private int mDisplayLeftInset = 0; // in pixels
@@ -3759,7 +3758,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
*/
private boolean isDirectionUpwards(float x, float y) {
float xDiff = x - mInitialExpandX;
- float yDiff = (mIsTrackpadReverseScroll ? -1 : 1) * (y - mInitialExpandY);
+ float yDiff = y - mInitialExpandY;
if (yDiff >= 0) {
return false;
}
@@ -3797,7 +3796,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
|| (!isFullyExpanded() && !isFullyCollapsed())
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
mVelocityTracker.computeCurrentVelocity(1000);
- float vel = (mIsTrackpadReverseScroll ? -1 : 1) * mVelocityTracker.getYVelocity();
+ float vel = mVelocityTracker.getYVelocity();
float vectorVel = (float) Math.hypot(
mVelocityTracker.getXVelocity(), mVelocityTracker.getYVelocity());
@@ -3836,7 +3835,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mLockscreenGestureLogger.write(MetricsEvent.ACTION_LS_UNLOCK, heightDp, velocityDp);
mLockscreenGestureLogger.log(LockscreenUiEvent.LOCKSCREEN_UNLOCK);
}
- float dy = (mIsTrackpadReverseScroll ? -1 : 1) * (y - mInitialExpandY);
+ float dy = y - mInitialExpandY;
@Classifier.InteractionType int interactionType = vel == 0 ? GENERIC
: dy > 0 ? QUICK_SETTINGS
: (mKeyguardStateController.canDismissLockScreen()
@@ -3865,7 +3864,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
private float getCurrentExpandVelocity() {
mVelocityTracker.computeCurrentVelocity(1000);
- return (mIsTrackpadReverseScroll ? -1 : 1) * mVelocityTracker.getYVelocity();
+ return mVelocityTracker.getYVelocity();
}
private void endClosing() {
@@ -4924,8 +4923,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
final float x = event.getX(pointerIndex);
final float y = event.getY(pointerIndex);
boolean canCollapsePanel = canCollapsePanelOnTouch();
- final boolean isTrackpadTwoOrThreeFingerSwipe = isTrackpadScroll(event)
- || isTrackpadThreeFingerSwipe(event);
+ final boolean isTrackpadThreeFingerSwipe = isTrackpadThreeFingerSwipe(event);
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
@@ -4943,9 +4941,6 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
return true;
}
- mIsTrackpadReverseScroll =
- !mNaturalScrollingSettingObserver.isNaturalScrollingEnabled()
- && isTrackpadScroll(event);
if (!isTracking() || isFullyCollapsed()) {
mInitialExpandY = y;
mInitialExpandX = x;
@@ -4965,7 +4960,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
addMovement(event);
break;
case MotionEvent.ACTION_POINTER_UP:
- if (isTrackpadTwoOrThreeFingerSwipe) {
+ if (isTrackpadThreeFingerSwipe) {
break;
}
final int upPointer = event.getPointerId(event.getActionIndex());
@@ -4981,14 +4976,14 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mShadeLog.logMotionEventStatusBarState(event,
mStatusBarStateController.getState(),
"onInterceptTouchEvent: pointer down action");
- if (!isTrackpadTwoOrThreeFingerSwipe
+ if (!isTrackpadThreeFingerSwipe
&& mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
mMotionAborted = true;
mVelocityTracker.clear();
}
break;
case MotionEvent.ACTION_MOVE:
- final float h = (mIsTrackpadReverseScroll ? -1 : 1) * (y - mInitialExpandY);
+ final float h = y - mInitialExpandY;
addMovement(event);
final boolean openShadeWithoutHun =
mPanelClosedOnDown && !mCollapsedAndHeadsUpOnDown;
@@ -5168,14 +5163,22 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
final float x = event.getX(pointerIndex);
final float y = event.getY(pointerIndex);
- if (event.getActionMasked() == MotionEvent.ACTION_DOWN
+ boolean isDown = event.getActionMasked() == MotionEvent.ACTION_DOWN;
+ if (isDown
|| event.getActionMasked() == MotionEvent.ACTION_MOVE) {
mGestureWaitForTouchSlop = shouldGestureWaitForTouchSlop();
mIgnoreXTouchSlop = true;
}
- final boolean isTrackpadTwoOrThreeFingerSwipe = isTrackpadScroll(event)
- || isTrackpadThreeFingerSwipe(event);
+ final boolean isTrackpadThreeFingerSwipe = isTrackpadThreeFingerSwipe(event);
+ if (com.android.systemui.Flags.disableShadeExpandsOnTrackpadTwoFingerSwipe()
+ && !isTrackpadThreeFingerSwipe && isTwoFingerSwipeTrackpadEvent(event)
+ && !isPanelExpanded()) {
+ if (isDown) {
+ mShadeLog.d("ignoring down event for two finger trackpad swipe");
+ }
+ return false;
+ }
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
@@ -5213,7 +5216,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
break;
case MotionEvent.ACTION_POINTER_UP:
- if (isTrackpadTwoOrThreeFingerSwipe) {
+ if (isTrackpadThreeFingerSwipe) {
break;
}
final int upPointer = event.getPointerId(event.getActionIndex());
@@ -5232,7 +5235,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mShadeLog.logMotionEventStatusBarState(event,
mStatusBarStateController.getState(),
"handleTouch: pointer down action");
- if (!isTrackpadTwoOrThreeFingerSwipe
+ if (!isTrackpadThreeFingerSwipe
&& mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
mMotionAborted = true;
endMotionEvent(event, x, y, true /* forceCancel */);
@@ -5255,7 +5258,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
if (!isFullyCollapsed()) {
maybeVibrateOnOpening(true /* openingWithTouch */);
}
- float h = (mIsTrackpadReverseScroll ? -1 : 1) * (y - mInitialExpandY);
+ float h = y - mInitialExpandY;
// If the panel was collapsed when touching, we only need to check for the
// y-component of the gesture, as we have no conflicting horizontal gesture.
@@ -5265,7 +5268,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mTouchSlopExceeded = true;
if (mGestureWaitForTouchSlop
&& !isTracking()
- && !mCollapsedAndHeadsUpOnDown) {
+ && !mCollapsedAndHeadsUpOnDown
+ && !isTwoFingerSwipeTrackpadEvent(event)
+ ) {
if (mInitialOffsetOnTouch != 0f) {
startExpandMotion(x, y, false /* startTracking */, mExpandedHeight);
h = 0;
@@ -5304,13 +5309,19 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mQsController.cancelJankMonitoring();
}
}
- mIsTrackpadReverseScroll = false;
break;
}
return !mGestureWaitForTouchSlop || isTracking();
}
}
+ private static boolean isTwoFingerSwipeTrackpadEvent(MotionEvent event) {
+ //SOURCE_MOUSE because SOURCE_TOUCHPAD is reserved for "captured" touchpads
+ return event.getSource() == InputDevice.SOURCE_MOUSE
+ && event.getToolType(0) == MotionEvent.TOOL_TYPE_FINGER
+ && event.getClassification() == MotionEvent.CLASSIFICATION_TWO_FINGER_SWIPE;
+ }
+
private final class HeadsUpNotificationViewControllerImpl implements
HeadsUpTouchHelper.HeadsUpNotificationViewController {
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
index 1ec5357d0d30..ba41a631a2c6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LockscreenShadeTransitionController.kt
@@ -22,7 +22,6 @@ import com.android.systemui.dump.DumpManager
import com.android.systemui.keyguard.WakefulnessLifecycle
import com.android.systemui.keyguard.domain.interactor.NaturalScrollingSettingObserver
import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
-import com.android.systemui.navigationbar.gestural.Utilities.isTrackpadScroll
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.plugins.ActivityStarter.OnDismissAction
import com.android.systemui.plugins.FalsingManager
@@ -760,7 +759,6 @@ class DragDownHelper(
private var draggedFarEnough = false
private var startingChild: ExpandableView? = null
private var lastHeight = 0f
- private var isTrackpadReverseScroll = false
var isDraggingDown = false
private set
@@ -798,12 +796,9 @@ class DragDownHelper(
startingChild = null
initialTouchY = y
initialTouchX = x
- isTrackpadReverseScroll =
- !naturalScrollingSettingObserver.isNaturalScrollingEnabled &&
- isTrackpadScroll(event)
}
MotionEvent.ACTION_MOVE -> {
- val h = (if (isTrackpadReverseScroll) -1 else 1) * (y - initialTouchY)
+ val h = y - initialTouchY
// Adjust the touch slop if another gesture may be being performed.
val touchSlop =
if (event.classification == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE) {
@@ -837,7 +832,7 @@ class DragDownHelper(
val y = event.y
when (event.actionMasked) {
MotionEvent.ACTION_MOVE -> {
- lastHeight = (if (isTrackpadReverseScroll) -1 else 1) * (y - initialTouchY)
+ lastHeight = y - initialTouchY
captureStartingChild(initialTouchX, initialTouchY)
dragDownCallback.dragDownAmount = lastHeight + dragDownAmountOnStart
if (startingChild != null) {
@@ -862,14 +857,13 @@ class DragDownHelper(
!isFalseTouch &&
dragDownCallback.canDragDown()
) {
- val dragDown = (if (isTrackpadReverseScroll) -1 else 1) * (y - initialTouchY)
+ val dragDown = y - initialTouchY
dragDownCallback.onDraggedDown(startingChild, dragDown.toInt())
if (startingChild != null) {
expandCallback.setUserLockedChild(startingChild, false)
startingChild = null
}
isDraggingDown = false
- isTrackpadReverseScroll = false
shadeRepository.setLegacyLockscreenShadeTracking(false)
return true
} else {
@@ -950,7 +944,6 @@ class DragDownHelper(
startingChild = null
}
isDraggingDown = false
- isTrackpadReverseScroll = false
shadeRepository.setLegacyLockscreenShadeTracking(false)
dragDownCallback.onDragDownReset()
}