aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/personalization
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-08-01 00:39:39 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-08-01 00:39:39 -0700
commit3f30c09d889fd5cfde471e1cfb284dce77e3b44a (patch)
treedc4e7b5ff67830839d8347efda6eaedf19507c7e /java/src/com/android/inputmethod/latin/personalization
parent5bd60162009843842200c62b0573275bfb037ec0 (diff)
parent503b79029a41d672f6a4c22e2d4f24709a1dfc80 (diff)
downloadlatinime-3f30c09d889fd5cfde471e1cfb284dce77e3b44a.tar.gz
latinime-3f30c09d889fd5cfde471e1cfb284dce77e3b44a.tar.xz
latinime-3f30c09d889fd5cfde471e1cfb284dce77e3b44a.zip
am 503b7902: Merge "Connect the personalization dictionary"
* commit '503b79029a41d672f6a4c22e2d4f24709a1dfc80': Connect the personalization dictionary
Diffstat (limited to 'java/src/com/android/inputmethod/latin/personalization')
-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;
}
}