diff options
author | Tony Wickham <twickham@google.com> | 2019-04-25 00:34:47 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-04-25 00:34:47 +0000 |
commit | d0d39f1769cb54402dc3cdc284811f61e53dc6b9 (patch) | |
tree | 89aa34b37b5bbb55bf18a1d674589ab0c8c5322c /quickstep/recents_ui_overrides/src/com/android/quickstep/OtherActivityInputConsumer.java | |
parent | 23060080feccad1bc51ca55053cd109bf636442a (diff) | |
parent | bbea105be05649a00b4cc227d08a4da1ed87bb89 (diff) | |
download | android_packages_apps_Trebuchet-d0d39f1769cb54402dc3cdc284811f61e53dc6b9.tar.gz android_packages_apps_Trebuchet-d0d39f1769cb54402dc3cdc284811f61e53dc6b9.tar.bz2 android_packages_apps_Trebuchet-d0d39f1769cb54402dc3cdc284811f61e53dc6b9.zip |
Merge "Move logic that overrides MotionPauseDetector to callers" into ub-launcher3-qt-dev
Diffstat (limited to 'quickstep/recents_ui_overrides/src/com/android/quickstep/OtherActivityInputConsumer.java')
-rw-r--r-- | quickstep/recents_ui_overrides/src/com/android/quickstep/OtherActivityInputConsumer.java | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/OtherActivityInputConsumer.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/OtherActivityInputConsumer.java index 36afdef5f..44ba515d7 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/OtherActivityInputConsumer.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/OtherActivityInputConsumer.java @@ -21,9 +21,9 @@ import static android.view.MotionEvent.ACTION_MOVE; import static android.view.MotionEvent.ACTION_POINTER_UP; import static android.view.MotionEvent.ACTION_UP; import static android.view.MotionEvent.INVALID_POINTER_ID; +import static com.android.launcher3.Utilities.EDGE_NAV_BAR; import static com.android.launcher3.util.RaceConditionTracker.ENTER; import static com.android.launcher3.util.RaceConditionTracker.EXIT; -import static com.android.launcher3.Utilities.EDGE_NAV_BAR; import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON; import static com.android.quickstep.TouchInteractionService.TOUCH_INTERACTION_LOG; import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS; @@ -45,6 +45,9 @@ import android.view.VelocityTracker; import android.view.ViewConfiguration; import android.view.WindowManager; +import androidx.annotation.UiThread; + +import com.android.launcher3.R; import com.android.launcher3.util.Preconditions; import com.android.launcher3.util.RaceConditionTracker; import com.android.launcher3.util.TraceHelper; @@ -62,8 +65,6 @@ import com.android.systemui.shared.system.WindowManagerWrapper; import java.util.function.Consumer; -import androidx.annotation.UiThread; - /** * Input consumer for handling events originating from an activity other than Launcher */ @@ -90,6 +91,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC private final Consumer<OtherActivityInputConsumer> mOnCompleteCallback; private final MotionPauseDetector mMotionPauseDetector; + private final float mMotionPauseMinDisplacement; private VelocityTracker mVelocityTracker; private WindowTransformSwipeHandler mInteractionHandler; @@ -107,8 +109,9 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC // Slop used to determine when we say that the gesture has started. private boolean mPassedTouchSlop; - // TODO: Start displacement should have both x and y + // Might be displacement in X or Y, depending on the direction we are swiping from the nav bar. private float mStartDisplacement; + private float mStartDisplacementX; private Handler mMainThreadHandler; private Runnable mCancelRecentsAnimationRunnable = () -> { @@ -131,6 +134,8 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC mMode = SysUINavigationMode.getMode(base); mMotionPauseDetector = new MotionPauseDetector(base); + mMotionPauseMinDisplacement = base.getResources().getDimension( + R.dimen.motion_pause_detector_min_displacement_from_app); mOnCompleteCallback = onCompleteCallback; mVelocityTracker = VelocityTracker.obtain(); mInputMonitorCompat = inputMonitorCompat; @@ -219,6 +224,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC } mLastPos.set(ev.getX(pointerIndex), ev.getY(pointerIndex)); float displacement = getDisplacement(ev); + float displacementX = mLastPos.x - mDownPos.x; if (!mPassedDragSlop) { if (!mIsDeferredDownTarget) { @@ -227,13 +233,13 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC if (Math.abs(displacement) > mDragSlop) { mPassedDragSlop = true; mStartDisplacement = displacement; + mStartDisplacementX = displacementX; } } } if (!mPassedTouchSlop) { - if (Math.hypot(mLastPos.x - mDownPos.x, mLastPos.y - mDownPos.y) >= - mTouchSlop) { + if (Math.hypot(displacementX, mLastPos.y - mDownPos.y) >= mTouchSlop) { mPassedTouchSlop = true; if (mIsDeferredDownTarget) { @@ -244,6 +250,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC if (!mPassedDragSlop) { mPassedDragSlop = true; mStartDisplacement = displacement; + mStartDisplacementX = displacementX; } notifyGestureStarted(); } @@ -254,12 +261,12 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC mInteractionHandler.updateDisplacement(displacement - mStartDisplacement); if (mMode == Mode.NO_BUTTON) { - boolean isLandscape = isNavBarOnLeft() || isNavBarOnRight(); - float orthogonalDisplacement = !isLandscape - ? ev.getX() - mDownPos.x - : ev.getY() - mDownPos.y; - mMotionPauseDetector.addPosition(displacement, orthogonalDisplacement, - ev.getEventTime()); + float horizontalDist = Math.abs(displacementX - mStartDisplacementX); + float upDist = -(displacement - mStartDisplacement); + boolean isLikelyToStartNewTask = horizontalDist > upDist; + mMotionPauseDetector.setDisallowPause(upDist < mMotionPauseMinDisplacement + || isLikelyToStartNewTask); + mMotionPauseDetector.addPosition(displacement, ev.getEventTime()); } } break; |