Loading quickstep/src/com/android/quickstep/interaction/NavBarGestureHandler.java +17 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.quickstep.interaction; import static com.android.launcher3.Utilities.squaredHypot; import static com.android.launcher3.util.VibratorWrapper.OVERVIEW_HAPTIC; import static com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureResult.ASSISTANT_COMPLETED; import static com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureResult.ASSISTANT_NOT_STARTED_BAD_ANGLE; import static com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureResult.ASSISTANT_NOT_STARTED_SWIPE_TOO_SHORT; Loading Loading @@ -48,6 +49,7 @@ import com.android.launcher3.ResourceUtils; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.util.VibratorWrapper; import com.android.quickstep.SysUINavigationMode.Mode; import com.android.quickstep.util.MotionPauseDetector; import com.android.quickstep.util.NavBarPosition; import com.android.quickstep.util.TriggerSwipeUpTouchTracker; import com.android.systemui.shared.system.QuickStepContract; Loading @@ -74,6 +76,7 @@ public class NavBarGestureHandler implements OnTouchListener, private final PointF mAssistantStartDragPos = new PointF(); private final PointF mDownPos = new PointF(); private final PointF mLastPos = new PointF(); private final MotionPauseDetector mMotionPauseDetector; private boolean mTouchCameFromAssistantCorner; private boolean mTouchCameFromNavBar; private boolean mPassedAssistantSlop; Loading @@ -100,6 +103,7 @@ public class NavBarGestureHandler implements OnTouchListener, new TriggerSwipeUpTouchTracker(context, true /*disableHorizontalSwipe*/, new NavBarPosition(Mode.NO_BUTTON, displayRotation), null /*onInterceptTouch*/, this); mMotionPauseDetector = new MotionPauseDetector(context); final Resources resources = context.getResources(); mBottomGestureHeight = Loading Loading @@ -177,12 +181,14 @@ public class NavBarGestureHandler implements OnTouchListener, } mLaunchedAssistant = false; mSwipeUpTouchTracker.init(); mMotionPauseDetector.clear(); mMotionPauseDetector.setOnMotionPauseListener(this::onMotionPauseChanged); break; case MotionEvent.ACTION_MOVE: mLastPos.set(event.getX(), event.getY()); if (!mAssistantGestureActive) { break; } mLastPos.set(event.getX(), event.getY()); if (!mPassedAssistantSlop) { // Normal gesture, ensure we pass the slop before we start tracking the gesture Loading Loading @@ -213,6 +219,8 @@ public class NavBarGestureHandler implements OnTouchListener, break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mMotionPauseDetector.clear(); mMotionPauseDetector.setOnMotionPauseListener(null); if (mGestureCallback != null && !intercepted && mTouchCameFromNavBar) { mGestureCallback.onNavBarGestureAttempted( HOME_OR_OVERVIEW_NOT_STARTED_WRONG_SWIPE_DIRECTION, new PointF()); Loading @@ -239,9 +247,17 @@ public class NavBarGestureHandler implements OnTouchListener, } mSwipeUpTouchTracker.onMotionEvent(event); mAssistantGestureDetector.onTouchEvent(event); mMotionPauseDetector.addPosition(event); mMotionPauseDetector.setDisallowPause(mLastPos.y >= mDisplaySize.y - mBottomGestureHeight); return intercepted; } protected void onMotionPauseChanged(boolean isPaused) { if (isPaused) { VibratorWrapper.INSTANCE.get(mContext).vibrate(OVERVIEW_HAPTIC); } } /** * Determine if angle is larger than threshold for assistant detection */ Loading Loading
quickstep/src/com/android/quickstep/interaction/NavBarGestureHandler.java +17 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.quickstep.interaction; import static com.android.launcher3.Utilities.squaredHypot; import static com.android.launcher3.util.VibratorWrapper.OVERVIEW_HAPTIC; import static com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureResult.ASSISTANT_COMPLETED; import static com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureResult.ASSISTANT_NOT_STARTED_BAD_ANGLE; import static com.android.quickstep.interaction.NavBarGestureHandler.NavBarGestureResult.ASSISTANT_NOT_STARTED_SWIPE_TOO_SHORT; Loading Loading @@ -48,6 +49,7 @@ import com.android.launcher3.ResourceUtils; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.util.VibratorWrapper; import com.android.quickstep.SysUINavigationMode.Mode; import com.android.quickstep.util.MotionPauseDetector; import com.android.quickstep.util.NavBarPosition; import com.android.quickstep.util.TriggerSwipeUpTouchTracker; import com.android.systemui.shared.system.QuickStepContract; Loading @@ -74,6 +76,7 @@ public class NavBarGestureHandler implements OnTouchListener, private final PointF mAssistantStartDragPos = new PointF(); private final PointF mDownPos = new PointF(); private final PointF mLastPos = new PointF(); private final MotionPauseDetector mMotionPauseDetector; private boolean mTouchCameFromAssistantCorner; private boolean mTouchCameFromNavBar; private boolean mPassedAssistantSlop; Loading @@ -100,6 +103,7 @@ public class NavBarGestureHandler implements OnTouchListener, new TriggerSwipeUpTouchTracker(context, true /*disableHorizontalSwipe*/, new NavBarPosition(Mode.NO_BUTTON, displayRotation), null /*onInterceptTouch*/, this); mMotionPauseDetector = new MotionPauseDetector(context); final Resources resources = context.getResources(); mBottomGestureHeight = Loading Loading @@ -177,12 +181,14 @@ public class NavBarGestureHandler implements OnTouchListener, } mLaunchedAssistant = false; mSwipeUpTouchTracker.init(); mMotionPauseDetector.clear(); mMotionPauseDetector.setOnMotionPauseListener(this::onMotionPauseChanged); break; case MotionEvent.ACTION_MOVE: mLastPos.set(event.getX(), event.getY()); if (!mAssistantGestureActive) { break; } mLastPos.set(event.getX(), event.getY()); if (!mPassedAssistantSlop) { // Normal gesture, ensure we pass the slop before we start tracking the gesture Loading Loading @@ -213,6 +219,8 @@ public class NavBarGestureHandler implements OnTouchListener, break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mMotionPauseDetector.clear(); mMotionPauseDetector.setOnMotionPauseListener(null); if (mGestureCallback != null && !intercepted && mTouchCameFromNavBar) { mGestureCallback.onNavBarGestureAttempted( HOME_OR_OVERVIEW_NOT_STARTED_WRONG_SWIPE_DIRECTION, new PointF()); Loading @@ -239,9 +247,17 @@ public class NavBarGestureHandler implements OnTouchListener, } mSwipeUpTouchTracker.onMotionEvent(event); mAssistantGestureDetector.onTouchEvent(event); mMotionPauseDetector.addPosition(event); mMotionPauseDetector.setDisallowPause(mLastPos.y >= mDisplaySize.y - mBottomGestureHeight); return intercepted; } protected void onMotionPauseChanged(boolean isPaused) { if (isPaused) { VibratorWrapper.INSTANCE.get(mContext).vibrate(OVERVIEW_HAPTIC); } } /** * Determine if angle is larger than threshold for assistant detection */ Loading