From afbd2ae8e746c008fdf7c7009620cc0bf89042fe Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Sat, 1 Apr 2023 20:58:27 -0700 Subject: [PATCH] Fix not being able to collapse notification shade using the trackpad Fixes: 272243947 Test: Two finger swipe up to collapse works Change-Id: If5b52ae292720cad64b9d87672d401e9703344ef --- .../shade/NotificationPanelViewController.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 7b46852161111..d2cb762682c51 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -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); } }