diff options
author | 2011-08-18 19:29:29 +0900 | |
---|---|---|
committer | 2011-08-19 17:19:49 +0900 | |
commit | 150bad6fd4b401177c480acf5640b4db0f821886 (patch) | |
tree | ef7810891468e876f5558eb6471a4e1bef3382a0 /java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java | |
parent | f0025a50aca633753753d393a2d0286782b29365 (diff) | |
download | latinime-150bad6fd4b401177c480acf5640b4db0f821886.tar.gz latinime-150bad6fd4b401177c480acf5640b4db0f821886.tar.xz latinime-150bad6fd4b401177c480acf5640b4db0f821886.zip |
Have the spell checker use the User dictionary.
Bug: 5175868
Change-Id: I165eee4c865caa5ee1daf3e0b1acde8788b996ef
Diffstat (limited to 'java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java index 649774d78..ec82f9e80 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java @@ -30,7 +30,9 @@ import com.android.inputmethod.keyboard.ProximityInfo; import com.android.inputmethod.latin.Dictionary; import com.android.inputmethod.latin.Dictionary.DataType; import com.android.inputmethod.latin.Dictionary.WordCallback; +import com.android.inputmethod.latin.DictionaryCollection; import com.android.inputmethod.latin.DictionaryFactory; +import com.android.inputmethod.latin.UserDictionary; import com.android.inputmethod.latin.Utils; import com.android.inputmethod.latin.WordComposer; @@ -51,6 +53,8 @@ public class AndroidSpellCheckerService extends SpellCheckerService { private final static String[] emptyArray = new String[0]; private Map<String, DictionaryPool> mDictionaryPools = Collections.synchronizedMap(new TreeMap<String, DictionaryPool>()); + private Map<String, Dictionary> mUserDictionaries = + Collections.synchronizedMap(new TreeMap<String, Dictionary>()); @Override public Session createSession() { @@ -109,9 +113,14 @@ public class AndroidSpellCheckerService extends SpellCheckerService { public boolean onUnbind(final Intent intent) { final Map<String, DictionaryPool> oldPools = mDictionaryPools; mDictionaryPools = Collections.synchronizedMap(new TreeMap<String, DictionaryPool>()); + final Map<String, Dictionary> oldUserDictionaries = mUserDictionaries; + mUserDictionaries = Collections.synchronizedMap(new TreeMap<String, Dictionary>()); for (DictionaryPool pool : oldPools.values()) { pool.close(); } + for (Dictionary dict : oldUserDictionaries.values()) { + dict.close(); + } return false; } @@ -129,9 +138,16 @@ public class AndroidSpellCheckerService extends SpellCheckerService { final ProximityInfo proximityInfo = ProximityInfo.createSpellCheckerProximityInfo(); final Resources resources = getResources(); final int fallbackResourceId = Utils.getMainDictionaryResourceId(resources); - final Dictionary dictionary = + final DictionaryCollection dictionaryCollection = DictionaryFactory.createDictionaryFromManager(this, locale, fallbackResourceId); - return new DictAndProximity(dictionary, proximityInfo); + final String localeStr = locale.toString(); + Dictionary userDict = mUserDictionaries.get(localeStr); + if (null == userDict) { + userDict = new UserDictionary(this, localeStr); + mUserDictionaries.put(localeStr, userDict); + } + dictionaryCollection.addDictionary(userDict); + return new DictAndProximity(dictionaryCollection, proximityInfo); } private class AndroidSpellCheckerSession extends Session { |