am 01a5a7d0
: Merge "Clear cache of user dic" into jb-mr1-dev
* commit '01a5a7d061f392a31f7bd3d8f1a19ec37f1b5435': Clear cache of user dic
This commit is contained in:
commit
113259a58b
1 changed files with 23 additions and 0 deletions
|
@ -16,6 +16,9 @@
|
||||||
|
|
||||||
package com.android.inputmethod.latin.spellcheck;
|
package com.android.inputmethod.latin.spellcheck;
|
||||||
|
|
||||||
|
import android.content.ContentResolver;
|
||||||
|
import android.database.ContentObserver;
|
||||||
|
import android.provider.UserDictionary.Words;
|
||||||
import android.service.textservice.SpellCheckerService.Session;
|
import android.service.textservice.SpellCheckerService.Session;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
@ -45,6 +48,7 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
|
||||||
private int mScript; // One of SCRIPT_LATIN or SCRIPT_CYRILLIC for now.
|
private int mScript; // One of SCRIPT_LATIN or SCRIPT_CYRILLIC for now.
|
||||||
private final AndroidSpellCheckerService mService;
|
private final AndroidSpellCheckerService mService;
|
||||||
protected final SuggestionsCache mSuggestionsCache = new SuggestionsCache();
|
protected final SuggestionsCache mSuggestionsCache = new SuggestionsCache();
|
||||||
|
private final ContentObserver mObserver;
|
||||||
|
|
||||||
private static class SuggestionsParams {
|
private static class SuggestionsParams {
|
||||||
public final String[] mSuggestions;
|
public final String[] mSuggestions;
|
||||||
|
@ -83,10 +87,23 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
|
||||||
mUnigramSuggestionsInfoCache.put(
|
mUnigramSuggestionsInfoCache.put(
|
||||||
generateKey(query, prevWord), new SuggestionsParams(suggestions, flags));
|
generateKey(query, prevWord), new SuggestionsParams(suggestions, flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clearCache() {
|
||||||
|
mUnigramSuggestionsInfoCache.evictAll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidWordLevelSpellCheckerSession(final AndroidSpellCheckerService service) {
|
AndroidWordLevelSpellCheckerSession(final AndroidSpellCheckerService service) {
|
||||||
mService = 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
|
@Override
|
||||||
|
@ -97,6 +114,12 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
|
||||||
mScript = AndroidSpellCheckerService.getScriptFromLocale(mLocale);
|
mScript = AndroidSpellCheckerService.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
|
* Returns whether the code point is a letter that makes sense for the specified
|
||||||
* locale for this spell checker.
|
* locale for this spell checker.
|
||||||
|
|
Loading…
Reference in a new issue