diff options
author | Tony Wickham <twickham@google.com> | 2019-02-27 16:40:59 -0800 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2019-02-27 16:40:59 -0800 |
commit | ac60d91cece8c44de967cb3f844b76e25a72d40e (patch) | |
tree | fde441a72b0e03930eba3c5001ee99e0c79b90d9 | |
parent | 7ceb6f358aae69e69705408e2d35774afdd33a0e (diff) | |
download | android_packages_apps_Trebuchet-ac60d91cece8c44de967cb3f844b76e25a72d40e.tar.gz android_packages_apps_Trebuchet-ac60d91cece8c44de967cb3f844b76e25a72d40e.tar.bz2 android_packages_apps_Trebuchet-ac60d91cece8c44de967cb3f844b76e25a72d40e.zip |
Fix some issues with MotionPauseDetector
- Orthogonal displacement now checks angle instead of fixed amount
- Only allow timeout when passed min primary displacement and not
orthogonal displacement
- Don't set timeout for !SWIPE_HOME, which should never detect pause
Change-Id: I3d810831316affff138968dfc62b921b20c752c5
-rw-r--r-- | quickstep/res/values/dimens.xml | 1 | ||||
-rw-r--r-- | quickstep/src/com/android/quickstep/util/MotionPauseDetector.java | 14 |
2 files changed, 6 insertions, 9 deletions
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index 2626481c3..04fd59ce0 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -39,7 +39,6 @@ <dimen name="motion_pause_detector_speed_somewhat_fast">0.285dp</dimen> <dimen name="motion_pause_detector_speed_fast">0.5dp</dimen> <dimen name="motion_pause_detector_min_displacement">48dp</dimen> - <dimen name="motion_pause_detector_max_orthogonal_displacement">48dp</dimen> <!-- Launcher app transition --> <dimen name="content_trans_y">50dp</dimen> diff --git a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java index 21d814454..8a117c859 100644 --- a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java +++ b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java @@ -40,7 +40,6 @@ public class MotionPauseDetector { private final float mSpeedSomewhatFast; private final float mSpeedFast; private final float mMinDisplacementForPause; - private final float mMaxOrthogonalDisplacementForPause; private final Alarm mForcePauseTimeout; private Long mPreviousTime = null; @@ -62,8 +61,6 @@ public class MotionPauseDetector { mSpeedSomewhatFast = res.getDimension(R.dimen.motion_pause_detector_speed_somewhat_fast); mSpeedFast = res.getDimension(R.dimen.motion_pause_detector_speed_fast); mMinDisplacementForPause = res.getDimension(R.dimen.motion_pause_detector_min_displacement); - mMaxOrthogonalDisplacementForPause = res.getDimension( - R.dimen.motion_pause_detector_max_orthogonal_displacement); mForcePauseTimeout = new Alarm(); mForcePauseTimeout.setOnAlarmListener(alarm -> updatePaused(true /* isPaused */)); } @@ -77,7 +74,6 @@ public class MotionPauseDetector { if (mOnMotionPauseListener != null) { mOnMotionPauseListener.onMotionPauseChanged(mIsPaused); } - mForcePauseTimeout.setAlarm(FORCE_PAUSE_TIMEOUT); } /** @@ -94,6 +90,7 @@ public class MotionPauseDetector { if (mFirstOrthogonalPosition == null) { mFirstOrthogonalPosition = orthogonalPosition; } + mForcePauseTimeout.setAlarm(FORCE_PAUSE_TIMEOUT); long time = SystemClock.uptimeMillis(); if (mPreviousTime != null && mPreviousPosition != null) { long changeInTime = Math.max(1, time - mPreviousTime); @@ -108,7 +105,6 @@ public class MotionPauseDetector { } mPreviousTime = time; mPreviousPosition = position; - mForcePauseTimeout.setAlarm(FORCE_PAUSE_TIMEOUT); } private void checkMotionPaused(float velocity, float prevVelocity, @@ -135,9 +131,11 @@ public class MotionPauseDetector { } } boolean passedMinDisplacement = totalDisplacement.primary >= mMinDisplacementForPause; - boolean passedMaxOrthogonalDisplacement = - totalDisplacement.orthogonal >= mMaxOrthogonalDisplacementForPause; - isPaused &= passedMinDisplacement && !passedMaxOrthogonalDisplacement; + boolean isDisplacementOrthogonal = totalDisplacement.orthogonal > totalDisplacement.primary; + if (!passedMinDisplacement || isDisplacementOrthogonal) { + mForcePauseTimeout.cancelAlarm(); + isPaused = false; + } updatePaused(isPaused); } |