Add a functionality to clear and flush prediction dictionary

Bug: 9429906
Change-Id: I84ec444e9d46a0080dc3450b8ab32bfb99407cfe
This commit is contained in:
Satoshi Kataoka 2013-08-20 12:07:17 +09:00
parent dadf3bf107
commit 22f01a42fc
2 changed files with 21 additions and 0 deletions

View file

@ -411,4 +411,18 @@ public abstract class DynamicPredictionDictionaryBase extends ExpandableDictiona
public void unRegisterUpdateSession(PersonalizationDictionaryUpdateSession session) { public void unRegisterUpdateSession(PersonalizationDictionaryUpdateSession session) {
mSessions.remove(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();
}
} }

View file

@ -69,6 +69,13 @@ public abstract class PersonalizationDictionaryUpdateSession {
dictionary.unRegisterUpdateSession(this); dictionary.unRegisterUpdateSession(this);
} }
public void clearAndFlushPredictionDictionary(Context context) {
final DynamicPredictionDictionaryBase dictionary = getPredictionDictionary();
if (dictionary == null) {
return;
}
dictionary.clearAndFlushDictionary();
}
public void closeSession(Context context) { public void closeSession(Context context) {
unsetPredictionDictionary(); unsetPredictionDictionary();