From bbb6919945180f76d5776858b1a49f910c8341d8 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Thu, 21 Jul 2016 09:52:15 -0700 Subject: [PATCH] HIC: Base on elapsed time instead of RTC Bug: 27405075 Change-Id: I703a870cf230ddccc9c89a9507e3ee900609f592 --- .../com/android/systemui/classifier/HistoryEvaluator.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java b/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java index 85a9bee8d977..4c647118a105 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/HistoryEvaluator.java @@ -16,6 +16,8 @@ package com.android.systemui.classifier; +import android.os.SystemClock; + import java.util.ArrayList; /** @@ -31,7 +33,7 @@ public class HistoryEvaluator { private long mLastUpdate; public HistoryEvaluator() { - mLastUpdate = System.currentTimeMillis(); + mLastUpdate = SystemClock.elapsedRealtime(); } public void addStroke(float evaluation) { @@ -69,15 +71,18 @@ public class HistoryEvaluator { } private void decayValue() { - long currentTimeMillis = System.currentTimeMillis(); + long time = SystemClock.elapsedRealtime(); + + if (time <= mLastUpdate) { + return; + } // All weights are multiplied by HISTORY_FACTOR after each INTERVAL milliseconds. - float factor = (float) Math.pow(HISTORY_FACTOR, - (float) (currentTimeMillis - mLastUpdate) / INTERVAL); + float factor = (float) Math.pow(HISTORY_FACTOR, (time - mLastUpdate) / INTERVAL); decayValue(mStrokes, factor); decayValue(mGestureWeights, factor); - mLastUpdate = currentTimeMillis; + mLastUpdate = time; } private void decayValue(ArrayList list, float factor) { -- 2.11.0