commit | bff4d2443238dcb5dbc123a1ce11220acd19271d | [log] [tgz] |
---|---|---|
author | Satoshi Kataoka <satok@google.com> | Mon Aug 19 20:40:27 2013 -0700 |
committer | Android Git Automerger <android-git-automerger@android.com> | Mon Aug 19 20:40:27 2013 -0700 |
tree | 16656a4e02afe79fd71e8c4dbe5da8cc802896b0 | |
parent | 72dd5dd27141d21be8a4ba100e7f183e39b64b46 [diff] | |
parent | 22f01a42fcd91dae2a4e723e2477a480a11daa8e [diff] |
am 22f01a42: Add a functionality to clear and flush prediction dictionary * commit '22f01a42fcd91dae2a4e723e2477a480a11daa8e': Add a functionality to clear and flush prediction dictionary
diff --git a/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java index 916be44..8160501 100644 --- a/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java +++ b/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java
@@ -411,4 +411,18 @@ public void unRegisterUpdateSession(PersonalizationDictionaryUpdateSession session) { mSessions.remove(session); } + + public void clearAndFlushDictionary() { + // Clear the node structure on memory + clearDictionary(); + mBigramListLock.lock(); + try { + // Clear the bigram list on memory + mBigramList.evictAll(); + } finally { + mBigramListLock.unlock(); + } + // Then flush the cleared state of the dictionary on disk. + flushPendingWrites(); + } }
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java index 433c69c..77f0cdb 100644 --- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java +++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java
@@ -69,6 +69,13 @@ dictionary.unRegisterUpdateSession(this); } + public void clearAndFlushPredictionDictionary(Context context) { + final DynamicPredictionDictionaryBase dictionary = getPredictionDictionary(); + if (dictionary == null) { + return; + } + dictionary.clearAndFlushDictionary(); + } public void closeSession(Context context) { unsetPredictionDictionary();