commit | cba7dfce32f6b2926b08f82cbc2e304082c0ada0 | [log] [tgz] |
---|---|---|
author | Sunny Goyal <sunnygoyal@google.com> | Thu Aug 06 23:36:09 2020 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Thu Aug 06 23:36:09 2020 +0000 |
tree | bc0e3bbaf7b2fa0272a1c4e0418fd2527d6f0371 | |
parent | 1cb3649c62a9cd6ea1bd627635a9f76d05fb866d [diff] | |
parent | aaf4ee69c60da461dc7a3ce8b4e8938b1723e7dc [diff] |
Fixing wrong velocity state when there are too few samples am: f58a2b9cd9 am: 0581f5b05b am: aaf4ee69c6 Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12317133 Change-Id: Ibed430e1293a73dcce815d81e1b5bbcc662a0850
diff --git a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java index a5d4568..969fa50 100644 --- a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java +++ b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java
@@ -358,18 +358,23 @@ if (count < 3) { // Too few samples - if (count == 2) { - int endPos = pointPos - 1; - if (endPos < 0) { - endPos += HISTORY_SIZE; + switch (count) { + case 2: { + int endPos = pointPos - 1; + if (endPos < 0) { + endPos += HISTORY_SIZE; + } + float denominator = eventTime - mHistoricTimes[endPos]; + if (denominator != 0) { + return (mHistoricPos[pointPos] - mHistoricPos[endPos]) / denominator; + } } - float denominator = eventTime - mHistoricTimes[endPos]; - if (denominator != 0) { - return (eventTime - mHistoricPos[endPos]) / denominator; - - } + // fall through + case 1: + return 0f; + default: + return null; } - return null; } float Sxx = sxi2 - sxi * sxi / count;