aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2012-10-03 15:29:07 -0700
committerJean-Baptiste Queru <jbq@google.com>2012-10-03 15:29:09 -0700
commit56b4a040ff044761268dbeaa2407ebbcf100cb69 (patch)
tree2a37c6504b916b314969ea87df83f8dcae8a44fc /java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
parent4a80d4132de2b228e8c9a12095dc9fed844ec277 (diff)
parentf1e13f1fb10db4152b2617093d827c66615ee16d (diff)
downloadlatinime-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.java23
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.