Loading quickstep/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ <dimen name="motion_pause_detector_speed_very_slow">0.0285dp</dimen> <dimen name="motion_pause_detector_speed_slow">0.15dp</dimen> <dimen name="motion_pause_detector_speed_somewhat_fast">0.285dp</dimen> <dimen name="motion_pause_detector_speed_trackpad_somewhat_fast">0.7dp</dimen> <dimen name="motion_pause_detector_speed_fast">1.4dp</dimen> <dimen name="motion_pause_detector_min_displacement_from_app">36dp</dimen> <dimen name="quickstep_fling_threshold_speed">0.5dp</dimen> Loading quickstep/src/com/android/quickstep/util/MotionPauseDetector.java +9 −2 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ public class MotionPauseDetector { // The percentage of the previous speed that determines whether this is a rapid deceleration. // The bigger this number, the easier it is to trigger the first pause. private static final float RAPID_DECELERATION_FACTOR = 0.6f; private static final float RAPID_DECELERATION_FACTOR_TRACKPAD = 0.85f; /** If no motion is added for this amount of time, assume the motion has paused. */ private static final long FORCE_PAUSE_TIMEOUT = 300; Loading @@ -57,6 +58,7 @@ public class MotionPauseDetector { private final float mSpeedVerySlow; private final float mSpeedSlow; private final float mSpeedSomewhatFast; private final float mSpeedTrackpadSomewhatFast; private final float mSpeedFast; private final Alarm mForcePauseTimeout; private final boolean mMakePauseHarderToTrigger; Loading Loading @@ -95,6 +97,8 @@ public class MotionPauseDetector { mSpeedVerySlow = res.getDimension(R.dimen.motion_pause_detector_speed_very_slow); mSpeedSlow = res.getDimension(R.dimen.motion_pause_detector_speed_slow); mSpeedSomewhatFast = res.getDimension(R.dimen.motion_pause_detector_speed_somewhat_fast); mSpeedTrackpadSomewhatFast = res.getDimension( R.dimen.motion_pause_detector_speed_trackpad_somewhat_fast); mSpeedFast = res.getDimension(R.dimen.motion_pause_detector_speed_fast); mForcePauseTimeout = new Alarm(); mForcePauseTimeout.setOnAlarmListener(alarm -> { Loading Loading @@ -183,7 +187,9 @@ public class MotionPauseDetector { // takes too long, so also check for a rapid deceleration. boolean isRapidDeceleration = speed < previousSpeed * getRapidDecelerationFactor(); isPaused = isRapidDeceleration && speed < mSpeedSomewhatFast; boolean notSuperFast = speed < mSpeedSomewhatFast || (mIsTrackpadGesture && speed < mSpeedTrackpadSomewhatFast); isPaused = isRapidDeceleration && notSuperFast; isPausedReason = new ActiveGestureLog.CompoundString( "Didn't have back to back slow speeds, checking for rapid " + " deceleration on first pause only"); Loading Loading @@ -265,7 +271,8 @@ public class MotionPauseDetector { private float getRapidDecelerationFactor() { return mIsTrackpadGesture ? Float.parseFloat( Utilities.getSystemProperty("trackpad_in_app_swipe_up_deceleration_factor", String.valueOf(RAPID_DECELERATION_FACTOR))) : RAPID_DECELERATION_FACTOR; String.valueOf(RAPID_DECELERATION_FACTOR_TRACKPAD))) : RAPID_DECELERATION_FACTOR; } public interface OnMotionPauseListener { Loading Loading
quickstep/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ <dimen name="motion_pause_detector_speed_very_slow">0.0285dp</dimen> <dimen name="motion_pause_detector_speed_slow">0.15dp</dimen> <dimen name="motion_pause_detector_speed_somewhat_fast">0.285dp</dimen> <dimen name="motion_pause_detector_speed_trackpad_somewhat_fast">0.7dp</dimen> <dimen name="motion_pause_detector_speed_fast">1.4dp</dimen> <dimen name="motion_pause_detector_min_displacement_from_app">36dp</dimen> <dimen name="quickstep_fling_threshold_speed">0.5dp</dimen> Loading
quickstep/src/com/android/quickstep/util/MotionPauseDetector.java +9 −2 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ public class MotionPauseDetector { // The percentage of the previous speed that determines whether this is a rapid deceleration. // The bigger this number, the easier it is to trigger the first pause. private static final float RAPID_DECELERATION_FACTOR = 0.6f; private static final float RAPID_DECELERATION_FACTOR_TRACKPAD = 0.85f; /** If no motion is added for this amount of time, assume the motion has paused. */ private static final long FORCE_PAUSE_TIMEOUT = 300; Loading @@ -57,6 +58,7 @@ public class MotionPauseDetector { private final float mSpeedVerySlow; private final float mSpeedSlow; private final float mSpeedSomewhatFast; private final float mSpeedTrackpadSomewhatFast; private final float mSpeedFast; private final Alarm mForcePauseTimeout; private final boolean mMakePauseHarderToTrigger; Loading Loading @@ -95,6 +97,8 @@ public class MotionPauseDetector { mSpeedVerySlow = res.getDimension(R.dimen.motion_pause_detector_speed_very_slow); mSpeedSlow = res.getDimension(R.dimen.motion_pause_detector_speed_slow); mSpeedSomewhatFast = res.getDimension(R.dimen.motion_pause_detector_speed_somewhat_fast); mSpeedTrackpadSomewhatFast = res.getDimension( R.dimen.motion_pause_detector_speed_trackpad_somewhat_fast); mSpeedFast = res.getDimension(R.dimen.motion_pause_detector_speed_fast); mForcePauseTimeout = new Alarm(); mForcePauseTimeout.setOnAlarmListener(alarm -> { Loading Loading @@ -183,7 +187,9 @@ public class MotionPauseDetector { // takes too long, so also check for a rapid deceleration. boolean isRapidDeceleration = speed < previousSpeed * getRapidDecelerationFactor(); isPaused = isRapidDeceleration && speed < mSpeedSomewhatFast; boolean notSuperFast = speed < mSpeedSomewhatFast || (mIsTrackpadGesture && speed < mSpeedTrackpadSomewhatFast); isPaused = isRapidDeceleration && notSuperFast; isPausedReason = new ActiveGestureLog.CompoundString( "Didn't have back to back slow speeds, checking for rapid " + " deceleration on first pause only"); Loading Loading @@ -265,7 +271,8 @@ public class MotionPauseDetector { private float getRapidDecelerationFactor() { return mIsTrackpadGesture ? Float.parseFloat( Utilities.getSystemProperty("trackpad_in_app_swipe_up_deceleration_factor", String.valueOf(RAPID_DECELERATION_FACTOR))) : RAPID_DECELERATION_FACTOR; String.valueOf(RAPID_DECELERATION_FACTOR_TRACKPAD))) : RAPID_DECELERATION_FACTOR; } public interface OnMotionPauseListener { Loading