diff options
author | 2013-08-01 15:38:40 +0900 | |
---|---|---|
committer | 2013-08-01 16:33:20 +0900 | |
commit | 60586b57cf4ca4af16cf9a9261aaba9490f128bc (patch) | |
tree | 12b1a509970a278af8246572dc40f832a291b6fa /java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java | |
parent | 932aeb9d22a9e612dbeff7e45629bcdd6b99486c (diff) | |
download | latinime-60586b57cf4ca4af16cf9a9261aaba9490f128bc.tar.gz latinime-60586b57cf4ca4af16cf9a9261aaba9490f128bc.tar.xz latinime-60586b57cf4ca4af16cf9a9261aaba9490f128bc.zip |
Connect the personalization dictionary
Bug: 9429906
Bug: 4192129
Change-Id: I9c9f3ed7699f74339ad92be6dcddb8a52c377545
Diffstat (limited to 'java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java index f5dae99ef..9f013df1c 100644 --- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java +++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java @@ -30,25 +30,52 @@ public class PersonalizationDictionaryHelper { private static final boolean DEBUG = false; private static final ConcurrentHashMap<String, SoftReference<UserHistoryPredictionDictionary>> - sLangDictCache = CollectionUtils.newConcurrentHashMap(); + sLangUserHistoryDictCache = CollectionUtils.newConcurrentHashMap(); + + private static final ConcurrentHashMap<String, + SoftReference<PersonalizationPredictionDictionary>> + sLangPersonalizationDictCache = CollectionUtils.newConcurrentHashMap(); public static UserHistoryPredictionDictionary getUserHistoryPredictionDictionary( final Context context, final String locale, final SharedPreferences sp) { - synchronized (sLangDictCache) { - if (sLangDictCache.containsKey(locale)) { + synchronized (sLangUserHistoryDictCache) { + if (sLangUserHistoryDictCache.containsKey(locale)) { final SoftReference<UserHistoryPredictionDictionary> ref = - sLangDictCache.get(locale); + sLangUserHistoryDictCache.get(locale); final UserHistoryPredictionDictionary dict = ref == null ? null : ref.get(); if (dict != null) { if (DEBUG) { - Log.w(TAG, "Use cached UserHistoryDictionary for " + locale); + Log.w(TAG, "Use cached UserHistoryPredictionDictionary for " + locale); } return dict; } } final UserHistoryPredictionDictionary dict = new UserHistoryPredictionDictionary(context, locale, sp); - sLangDictCache.put(locale, new SoftReference<UserHistoryPredictionDictionary>(dict)); + sLangUserHistoryDictCache.put( + locale, new SoftReference<UserHistoryPredictionDictionary>(dict)); + return dict; + } + } + + public static PersonalizationPredictionDictionary getPersonalizationPredictionDictionary( + final Context context, final String locale, final SharedPreferences sp) { + synchronized (sLangPersonalizationDictCache) { + if (sLangPersonalizationDictCache.containsKey(locale)) { + final SoftReference<PersonalizationPredictionDictionary> ref = + sLangPersonalizationDictCache.get(locale); + final PersonalizationPredictionDictionary dict = ref == null ? null : ref.get(); + if (dict != null) { + if (DEBUG) { + Log.w(TAG, "Use cached PersonalizationPredictionDictionary for " + locale); + } + return dict; + } + } + final PersonalizationPredictionDictionary dict = + new PersonalizationPredictionDictionary(context, locale, sp); + sLangPersonalizationDictCache.put( + locale, new SoftReference<PersonalizationPredictionDictionary>(dict)); return dict; } } |