summaryrefslogtreecommitdiff
path: root/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java
diff options
context:
space:
mode:
Diffstat (limited to 'quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java')
-rw-r--r--quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java35
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) {