aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-08-20 12:07:17 +0900
committerSatoshi Kataoka <satok@google.com>2013-08-20 12:28:05 +0900
commit22f01a42fcd91dae2a4e723e2477a480a11daa8e (patch)
tree0f2e78465ec234dbe6357014184fc63c57303b94
parentdadf3bf107e8a95aa0a648c67f5d84d311c3cd3b (diff)
downloadlatinime-22f01a42fcd91dae2a4e723e2477a480a11daa8e.tar.gz
latinime-22f01a42fcd91dae2a4e723e2477a480a11daa8e.tar.xz
latinime-22f01a42fcd91dae2a4e723e2477a480a11daa8e.zip
Add a functionality to clear and flush prediction dictionary
Bug: 9429906 Change-Id: I84ec444e9d46a0080dc3450b8ab32bfb99407cfe
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java14
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdateSession.java7
2 files changed, 21 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java
index 916be4481..8160501a9 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 abstract class DynamicPredictionDictionaryBase extends ExpandableDictiona
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 433c69c1c..77f0cdbfa 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 @@ public abstract class PersonalizationDictionaryUpdateSession {
dictionary.unRegisterUpdateSession(this);
}
+ public void clearAndFlushPredictionDictionary(Context context) {
+ final DynamicPredictionDictionaryBase dictionary = getPredictionDictionary();
+ if (dictionary == null) {
+ return;
+ }
+ dictionary.clearAndFlushDictionary();
+ }
public void closeSession(Context context) {
unsetPredictionDictionary();