diff options
author | android-build-prod (mdb) <android-build-team-robot@google.com> | 2020-10-06 20:11:49 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-10-06 20:11:49 +0000 |
commit | c035ab16c19733c30b7698185e206ef14912b5ad (patch) | |
tree | 5536eed44402612e969153d27d3a2b3381f59483 | |
parent | afafb7d144fbced4675720d5f8c53a02e1ee27a8 (diff) | |
parent | 2ff9c9fa64fa7e53080eab93c55ccdf9e425186f (diff) | |
download | Launcher3-c035ab16c19733c30b7698185e206ef14912b5ad.tar.gz |
Merge "Snap for 6885341 from 8f78892826c164898bec2077667a1ae6bd4981da to android11-tests-release" into android11-tests-releaseandroid-vts-11.0_r9android-vts-11.0_r8android-vts-11.0_r7android-vts-11.0_r6android-vts-11.0_r5android-vts-11.0_r4android-vts-11.0_r3android-vts-11.0_r2android-vts-11.0_r16android-vts-11.0_r15android-vts-11.0_r14android-vts-11.0_r13android-vts-11.0_r12android-vts-11.0_r11android-vts-11.0_r10android-cts-11.0_r9android-cts-11.0_r8android-cts-11.0_r7android-cts-11.0_r6android-cts-11.0_r5android-cts-11.0_r4android-cts-11.0_r3android-cts-11.0_r2android-cts-11.0_r16android-cts-11.0_r15android-cts-11.0_r14android-cts-11.0_r13android-cts-11.0_r12android-cts-11.0_r11android-cts-11.0_r10android11-tests-release
-rw-r--r-- | quickstep/src/com/android/quickstep/util/MotionPauseDetector.java | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java index a5d456878a..f60f7ad6d8 100644 --- a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java +++ b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java @@ -276,7 +276,7 @@ public class MotionPauseDetector { private static final int HISTORY_SIZE = 20; // Position history are stored in a circular array - private final float[] mHistoricTimes = new float[HISTORY_SIZE]; + private final long[] mHistoricTimes = new long[HISTORY_SIZE]; private final float[] mHistoricPos = new float[HISTORY_SIZE]; private int mHistoryCount = 0; private int mHistoryStart = 0; @@ -292,7 +292,7 @@ public class MotionPauseDetector { mHistoryCount = mHistoryStart = 0; } - private void addPositionAndTime(float eventTime, float eventPosition) { + private void addPositionAndTime(long eventTime, float eventPosition) { mHistoricTimes[mHistoryStart] = eventTime; mHistoricPos[mHistoryStart] = eventPosition; mHistoryStart++; @@ -322,7 +322,7 @@ public class MotionPauseDetector { * Based on solveUnweightedLeastSquaresDeg2 in VelocityTracker.cpp */ private Float solveUnweightedLeastSquaresDeg2(final int pointPos) { - final float eventTime = mHistoricTimes[pointPos]; + final long eventTime = mHistoricTimes[pointPos]; float sxi = 0, sxiyi = 0, syi = 0, sxi2 = 0, sxi3 = 0, sxi2yi = 0, sxi4 = 0; int count = 0; @@ -332,8 +332,8 @@ public class MotionPauseDetector { index += HISTORY_SIZE; } - float time = mHistoricTimes[index]; - float age = eventTime - time; + long time = mHistoricTimes[index]; + long age = eventTime - time; if (age > HORIZON_MS) { break; } @@ -358,18 +358,23 @@ public class MotionPauseDetector { if (count < 3) { // Too few samples - if (count == 2) { - int endPos = pointPos - 1; - if (endPos < 0) { - endPos += HISTORY_SIZE; - } - float denominator = eventTime - mHistoricTimes[endPos]; - if (denominator != 0) { - return (eventTime - mHistoricPos[endPos]) / denominator; - + switch (count) { + case 2: { + int endPos = pointPos - 1; + if (endPos < 0) { + endPos += HISTORY_SIZE; + } + long denominator = eventTime - mHistoricTimes[endPos]; + if (denominator != 0) { + return (mHistoricPos[pointPos] - mHistoricPos[endPos]) / denominator; + } } + // fall through + case 1: + return 0f; + default: + return null; } - return null; } float Sxx = sxi2 - sxi * sxi / count; |