Fix not being able to collapse notification shade using the trackpad

Fixes: 272243947
Test: Two finger swipe up to collapse works
Change-Id: If5b52ae292720cad64b9d87672d401e9703344ef
This commit is contained in:
Tracy Zhou
2023-04-01 20:58:27 -07:00
parent a430a9c58b
commit afbd2ae8e7

View File

@@ -18,6 +18,7 @@ package com.android.systemui.shade;
import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
import static android.view.MotionEvent.CLASSIFICATION_MULTI_FINGER_SWIPE;
import static android.view.MotionEvent.CLASSIFICATION_TWO_FINGER_SWIPE;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
@@ -310,7 +311,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
*/
public final boolean mAnimateBack;
private final boolean mTrackpadGestureBack;
private final boolean mTrackpadGestureFeaturesEnabled;
/**
* The minimum scale to "squish" the Shade and associated elements down to, for Back gesture
*/
@@ -859,7 +860,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mLayoutInflater = layoutInflater;
mFeatureFlags = featureFlags;
mAnimateBack = mFeatureFlags.isEnabled(Flags.WM_SHADE_ANIMATE_BACK_GESTURE);
mTrackpadGestureBack = mFeatureFlags.isEnabled(Flags.TRACKPAD_GESTURE_FEATURES);
mTrackpadGestureFeaturesEnabled = mFeatureFlags.isEnabled(Flags.TRACKPAD_GESTURE_FEATURES);
mFalsingCollector = falsingCollector;
mPowerManager = powerManager;
mWakeUpCoordinator = coordinator;
@@ -4937,7 +4938,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
}
// On expanding, single mouse click expands the panel instead of dragging.
if (isFullyCollapsed() && event.isFromSource(InputDevice.SOURCE_MOUSE)) {
if (isFullyCollapsed() && (event.isFromSource(InputDevice.SOURCE_MOUSE)
&& !isTrackpadMotionEvent(event))) {
if (event.getAction() == MotionEvent.ACTION_UP) {
expand(true /* animate */);
}
@@ -5092,8 +5094,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
}
private boolean isTrackpadMotionEvent(MotionEvent ev) {
return mTrackpadGestureBack
&& ev.getClassification() == CLASSIFICATION_MULTI_FINGER_SWIPE;
return mTrackpadGestureFeaturesEnabled && (
ev.getClassification() == CLASSIFICATION_MULTI_FINGER_SWIPE
|| ev.getClassification() == CLASSIFICATION_TWO_FINGER_SWIPE);
}
}