Merge "Fix some issues with MotionPauseDetector" into ub-launcher3-master
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index f7126d0..f5e5dd3 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 21d8144..8a117c8 100644
--- a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java
+++ b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java
@@ -40,7 +40,6 @@
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 @@
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 @@
if (mOnMotionPauseListener != null) {
mOnMotionPauseListener.onMotionPauseChanged(mIsPaused);
}
- mForcePauseTimeout.setAlarm(FORCE_PAUSE_TIMEOUT);
}
/**
@@ -94,6 +90,7 @@
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 @@
}
mPreviousTime = time;
mPreviousPosition = position;
- mForcePauseTimeout.setAlarm(FORCE_PAUSE_TIMEOUT);
}
private void checkMotionPaused(float velocity, float prevVelocity,
@@ -135,9 +131,11 @@
}
}
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);
}