commit | 22f01a42fcd91dae2a4e723e2477a480a11daa8e | [log] [tgz] |
---|---|---|
author | Satoshi Kataoka <satok@google.com> | Tue Aug 20 12:07:17 2013 +0900 |
committer | Satoshi Kataoka <satok@google.com> | Tue Aug 20 12:28:05 2013 +0900 |
tree | 0f2e78465ec234dbe6357014184fc63c57303b94 | |
parent | dadf3bf107e8a95aa0a648c67f5d84d311c3cd3b [diff] |
Add a functionality to clear and flush prediction dictionary Bug: 9429906 Change-Id: I84ec444e9d46a0080dc3450b8ab32bfb99407cfe
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();