diff options
Diffstat (limited to 'quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java')
-rw-r--r-- | quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java index 0a558e2a98..4c0b55088e 100644 --- a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java +++ b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java @@ -17,7 +17,9 @@ package com.android.quickstep.inputconsumers; import static com.android.launcher3.LauncherPrefs.LONG_PRESS_NAV_HANDLE_TIMEOUT_MS; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_DEEP_PRESS_NAVBAR; +import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_DEEP_PRESS_STASHED_TASKBAR; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_LONG_PRESS_NAVBAR; +import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_LONG_PRESS_STASHED_TASKBAR; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import android.content.Context; @@ -25,11 +27,11 @@ import android.view.MotionEvent; import android.view.ViewConfiguration; import com.android.launcher3.LauncherPrefs; -import com.android.launcher3.R; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.logging.StatsLogManager; import com.android.launcher3.util.DisplayController; import com.android.quickstep.InputConsumer; +import com.android.quickstep.NavHandle; import com.android.quickstep.RecentsAnimationDeviceState; import com.android.quickstep.TopTaskTracker; import com.android.systemui.shared.system.InputMonitorCompat; @@ -47,6 +49,7 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { private final float mTouchSlopSquared; private final int mLongPressTimeout; private final boolean mDeepPressEnabled; + private final NavHandle mNavHandle; private final StatsLogManager mStatsLogManager; private final TopTaskTracker mTopTaskTracker; @@ -54,10 +57,9 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { private boolean mDeepPressLogged; // Whether deep press has been logged for the current touch. public NavHandleLongPressInputConsumer(Context context, InputConsumer delegate, - InputMonitorCompat inputMonitor, RecentsAnimationDeviceState deviceState) { + InputMonitorCompat inputMonitor, RecentsAnimationDeviceState deviceState, + NavHandle navHandle) { super(delegate, inputMonitor); - mNavHandleWidth = context.getResources().getDimensionPixelSize( - R.dimen.navigation_home_handle_width); mScreenWidth = DisplayController.INSTANCE.get(context).getInfo().currentSize.x; mDeepPressEnabled = FeatureFlags.ENABLE_LPNH_DEEP_PRESS.get(); if (FeatureFlags.CUSTOM_LPNH_THRESHOLDS.get()) { @@ -66,6 +68,8 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { mLongPressTimeout = ViewConfiguration.getLongPressTimeout(); } mTouchSlopSquared = deviceState.getSquaredTouchSlop(); + mNavHandle = navHandle; + mNavHandleWidth = navHandle.getNavHandleWidth(context); mNavHandleLongPressHandler = NavHandleLongPressHandler.newInstance(context); mStatsLogManager = StatsLogManager.newInstance(context); mTopTaskTracker = TopTaskTracker.INSTANCE.get(context); @@ -89,6 +93,11 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { } } + @Override + public void onHoverEvent(MotionEvent ev) { + mDelegate.onHoverEvent(ev); + } + private void handleMotionEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN -> { @@ -98,9 +107,8 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { mCurrentDownEvent = MotionEvent.obtain(ev); mDeepPressLogged = false; if (isInNavBarHorizontalArea(ev.getRawX())) { - mNavHandleLongPressHandler.onTouchStarted(); - MAIN_EXECUTOR.getHandler().postDelayed(mTriggerLongPress, - mLongPressTimeout); + mNavHandleLongPressHandler.onTouchStarted(mNavHandle); + MAIN_EXECUTOR.getHandler().postDelayed(mTriggerLongPress, mLongPressTimeout); } } case MotionEvent.ACTION_MOVE -> { @@ -127,8 +135,9 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { // Log deep press even if feature is disabled. String runningPackage = mTopTaskTracker.getCachedTopTask( /* filterOnlyVisibleRecents */ true).getPackageName(); - mStatsLogManager.logger().withPackageName(runningPackage) - .log(LAUNCHER_DEEP_PRESS_NAVBAR); + mStatsLogManager.logger().withPackageName(runningPackage).log( + mNavHandle.isNavHandleStashedTaskbar() ? LAUNCHER_DEEP_PRESS_STASHED_TASKBAR + : LAUNCHER_DEEP_PRESS_NAVBAR); mDeepPressLogged = true; // But only trigger if the feature is enabled. @@ -142,9 +151,11 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { private void triggerLongPress() { String runningPackage = mTopTaskTracker.getCachedTopTask( /* filterOnlyVisibleRecents */ true).getPackageName(); - mStatsLogManager.logger().withPackageName(runningPackage).log(LAUNCHER_LONG_PRESS_NAVBAR); + mStatsLogManager.logger().withPackageName(runningPackage).log( + mNavHandle.isNavHandleStashedTaskbar() ? LAUNCHER_LONG_PRESS_STASHED_TASKBAR + : LAUNCHER_LONG_PRESS_NAVBAR); - Runnable longPressRunnable = mNavHandleLongPressHandler.getLongPressRunnable(); + Runnable longPressRunnable = mNavHandleLongPressHandler.getLongPressRunnable(mNavHandle); if (longPressRunnable == null) { return; } @@ -161,7 +172,7 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { private void cancelLongPress(String reason) { MAIN_EXECUTOR.getHandler().removeCallbacks(mTriggerLongPress); - mNavHandleLongPressHandler.onTouchFinished(reason); + mNavHandleLongPressHandler.onTouchFinished(mNavHandle, reason); } private boolean isInNavBarHorizontalArea(float x) { |