diff options
author | 2012-10-03 15:29:07 -0700 | |
---|---|---|
committer | 2012-10-03 15:29:09 -0700 | |
commit | 56b4a040ff044761268dbeaa2407ebbcf100cb69 (patch) | |
tree | 2a37c6504b916b314969ea87df83f8dcae8a44fc /java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java | |
parent | 4a80d4132de2b228e8c9a12095dc9fed844ec277 (diff) | |
parent | f1e13f1fb10db4152b2617093d827c66615ee16d (diff) | |
download | latinime-56b4a040ff044761268dbeaa2407ebbcf100cb69.tar.gz latinime-56b4a040ff044761268dbeaa2407ebbcf100cb69.tar.xz latinime-56b4a040ff044761268dbeaa2407ebbcf100cb69.zip |
Reconcile with jb-dev - do not merge
Change-Id: Ie0db4cf684b9f45cdf5a729f3b62adb2128a7c91
Diffstat (limited to 'java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java index 88efc5a85..ba974ff7f 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java @@ -16,9 +16,12 @@ package com.android.inputmethod.latin.spellcheck; +import android.content.ContentResolver; import android.content.Intent; import android.content.SharedPreferences; +import android.database.ContentObserver; import android.preference.PreferenceManager; +import android.provider.UserDictionary.Words; import android.service.textservice.SpellCheckerService; import android.text.TextUtils; import android.util.Log; @@ -490,6 +493,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService private final AndroidSpellCheckerService mService; private final SuggestionsCache mSuggestionsCache = new SuggestionsCache(); + private final ContentObserver mObserver; private static class SuggestionsParams { public final String[] mSuggestions; @@ -516,10 +520,23 @@ public class AndroidSpellCheckerService extends SpellCheckerService } mUnigramSuggestionsInfoCache.put(query, new SuggestionsParams(suggestions, flags)); } + + public void clearCache() { + mUnigramSuggestionsInfoCache.evictAll(); + } } AndroidSpellCheckerSession(final AndroidSpellCheckerService service) { mService = service; + final ContentResolver cres = service.getContentResolver(); + + mObserver = new ContentObserver(null) { + @Override + public void onChange(boolean self) { + mSuggestionsCache.clearCache(); + } + }; + cres.registerContentObserver(Words.CONTENT_URI, true, mObserver); } @Override @@ -530,6 +547,12 @@ public class AndroidSpellCheckerService extends SpellCheckerService mScript = getScriptFromLocale(mLocale); } + @Override + public void onClose() { + final ContentResolver cres = mService.getContentResolver(); + cres.unregisterContentObserver(mObserver); + } + /* * Returns whether the code point is a letter that makes sense for the specified * locale for this spell checker. |