From 60586b57cf4ca4af16cf9a9261aaba9490f128bc Mon Sep 17 00:00:00 2001 From: Satoshi Kataoka Date: Thu, 1 Aug 2013 15:38:40 +0900 Subject: Connect the personalization dictionary Bug: 9429906 Bug: 4192129 Change-Id: I9c9f3ed7699f74339ad92be6dcddb8a52c377545 --- .../PersonalizationDictionaryHelper.java | 39 ++++++++++++++++++---- 1 file changed, 33 insertions(+), 6 deletions(-) (limited to 'java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java') 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> - sLangDictCache = CollectionUtils.newConcurrentHashMap(); + sLangUserHistoryDictCache = CollectionUtils.newConcurrentHashMap(); + + private static final ConcurrentHashMap> + 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 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(dict)); + sLangUserHistoryDictCache.put( + locale, new SoftReference(dict)); + return dict; + } + } + + public static PersonalizationPredictionDictionary getPersonalizationPredictionDictionary( + final Context context, final String locale, final SharedPreferences sp) { + synchronized (sLangPersonalizationDictCache) { + if (sLangPersonalizationDictCache.containsKey(locale)) { + final SoftReference 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(dict)); return dict; } } -- cgit v1.2.3-83-g751a