From c88f61215c5b9ca6e0cc3f776e3b7da19eec9cae Mon Sep 17 00:00:00 2001 From: Satoshi Kataoka Date: Tue, 29 May 2012 19:07:22 +0900 Subject: Set level 1 as the initial value of the valid words Bug: 4192129 Change-Id: I867e78ce79c78977d08e8b66881a25b6fe5bf41f --- .../latin/UserHistoryForgettingCurveUtils.java | 23 +++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java') diff --git a/java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java b/java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java index feb1d0029..9cd8c6778 100644 --- a/java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java +++ b/java/src/com/android/inputmethod/latin/UserHistoryForgettingCurveUtils.java @@ -38,26 +38,39 @@ public class UserHistoryForgettingCurveUtils { public static class ForgettingCurveParams { private byte mFc; long mLastTouchedTime = 0; + private final boolean mIsValid; private void updateLastTouchedTime() { mLastTouchedTime = System.currentTimeMillis(); } - public ForgettingCurveParams() { - // TODO: Check whether this word is valid or not - this(System.currentTimeMillis()); + public ForgettingCurveParams(boolean isValid) { + this(System.currentTimeMillis(), isValid); } - private ForgettingCurveParams(long now) { - this((int)pushCount((byte)0, false), now, now); + private ForgettingCurveParams(long now, boolean isValid) { + this((int)pushCount((byte)0, isValid), now, now, isValid); } + /** This constructor is called when the user history bigram dictionary is being restored. */ public ForgettingCurveParams(int fc, long now, long last) { + // All words with level >= 1 had been saved. + // Invalid words with level == 0 had been saved. + // Valid words words with level == 0 had *not* been saved. + this(fc, now, last, fcToLevel((byte)fc) > 0); + } + + private ForgettingCurveParams(int fc, long now, long last, boolean isValid) { + mIsValid = isValid; mFc = (byte)fc; mLastTouchedTime = last; updateElapsedTime(now); } + public boolean isValid() { + return mIsValid; + } + public byte getFc() { updateElapsedTime(System.currentTimeMillis()); return mFc; -- cgit v1.2.3-83-g751a