Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22f01a42 authored by Satoshi Kataoka's avatar Satoshi Kataoka
Browse files

Add a functionality to clear and flush prediction dictionary

Bug: 9429906
Change-Id: I84ec444e9d46a0080dc3450b8ab32bfb99407cfe
parent dadf3bf1
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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();
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -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();