summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2019-02-27 16:40:59 -0800
committerTony Wickham <twickham@google.com>2019-02-27 16:40:59 -0800
commitac60d91cece8c44de967cb3f844b76e25a72d40e (patch)
treefde441a72b0e03930eba3c5001ee99e0c79b90d9
parent7ceb6f358aae69e69705408e2d35774afdd33a0e (diff)
downloadandroid_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.xml1
-rw-r--r--quickstep/src/com/android/quickstep/util/MotionPauseDetector.java14
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);
}