aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-08-01 15:38:40 +0900
committerSatoshi Kataoka <satok@google.com>2013-08-01 16:33:20 +0900
commit60586b57cf4ca4af16cf9a9261aaba9490f128bc (patch)
tree12b1a509970a278af8246572dc40f832a291b6fa /java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryHelper.java
parent932aeb9d22a9e612dbeff7e45629bcdd6b99486c (diff)
downloadlatinime-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.java39
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;
}
}