aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/personalization
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2013-12-03 19:22:17 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2013-12-03 19:22:17 +0900
commit8bfc8c46ffc755752dbf11a105ef40b8fc5ae390 (patch)
tree41a183e85ad20025247144808754161c7e7fade4 /java/src/com/android/inputmethod/latin/personalization
parentb6764c51ab6acc8b5acf3ce3513e30c9ce82d02c (diff)
downloadlatinime-8bfc8c46ffc755752dbf11a105ef40b8fc5ae390.tar.gz
latinime-8bfc8c46ffc755752dbf11a105ef40b8fc5ae390.tar.xz
latinime-8bfc8c46ffc755752dbf11a105ef40b8fc5ae390.zip
Add required header attributes for user/contacts dictionary.
Bug: 11973488 Change-Id: I91ef720a24633aec0f4e81cd4f7c49c749805c49
Diffstat (limited to 'java/src/com/android/inputmethod/latin/personalization')
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java18
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java12
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java31
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationPredictionDictionary.java6
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java7
5 files changed, 40 insertions, 34 deletions
diff --git a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
index dbf6d0046..8f26f8442 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
@@ -35,7 +35,9 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
/**
* This class is a base class of a dictionary that supports decaying for the personalized language
@@ -55,7 +57,7 @@ public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableB
public static final int REQUIRED_BINARY_DICTIONARY_VERSION = 4;
/** Locale for which this user history dictionary is storing words */
- private final String mLocale;
+ private final Locale mLocale;
private final String mFileName;
@@ -66,11 +68,11 @@ public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableB
@UsedForTesting boolean mIsTest = false;
/* package */ DecayingExpandableBinaryDictionaryBase(final Context context,
- final String locale, final String dictionaryType, final String fileName) {
- super(context, fileName, dictionaryType, true);
+ final Locale locale, final String dictionaryType, final String fileName) {
+ super(context, fileName, locale, dictionaryType, true);
mLocale = locale;
mFileName = fileName;
- if (mLocale != null && mLocale.length() > 1) {
+ if (mLocale != null && mLocale.toString().length() > 1) {
reloadDictionaryIfRequired();
}
}
@@ -93,7 +95,9 @@ public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableB
attributeMap.put(FormatSpec.FileHeader.USES_FORGETTING_CURVE_ATTRIBUTE,
FormatSpec.FileHeader.ATTRIBUTE_VALUE_TRUE);
attributeMap.put(FormatSpec.FileHeader.DICTIONARY_ID_ATTRIBUTE, mFileName);
- attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, mLocale);
+ attributeMap.put(FormatSpec.FileHeader.DICTIONARY_LOCALE_ATTRIBUTE, mLocale.toString());
+ attributeMap.put(FormatSpec.FileHeader.DICTIONARY_VERSION_ATTRIBUTE,
+ String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
return attributeMap;
}
@@ -164,10 +168,6 @@ public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableB
// Never loaded to memory in Java side.
}
- protected String getLocale() {
- return mLocale;
- }
-
public void registerUpdateSession(PersonalizationDictionaryUpdateSession session) {
session.setPredictionDictionary(this);
mSessions.add(session);
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
index 67015f491..8d3dcc31c 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
@@ -21,9 +21,9 @@ import com.android.inputmethod.latin.ExpandableBinaryDictionary;
import com.android.inputmethod.latin.utils.CollectionUtils;
import android.content.Context;
-import android.content.SharedPreferences;
import java.util.ArrayList;
+import java.util.Locale;
/**
* This class is a dictionary for the personalized language model that uses binary dictionary.
@@ -33,14 +33,10 @@ public class PersonalizationDictionary extends ExpandableBinaryDictionary {
private final ArrayList<PersonalizationDictionaryUpdateSession> mSessions =
CollectionUtils.newArrayList();
- /** Locale for which this user history dictionary is storing words */
- private final String mLocale;
-
- public PersonalizationDictionary(final Context context, final String locale) {
+ public PersonalizationDictionary(final Context context, final Locale locale) {
// TODO: Make isUpdatable true.
- super(context, getFilenameWithLocale(NAME, locale), Dictionary.TYPE_PERSONALIZATION,
- false /* isUpdatable */);
- mLocale = locale;
+ super(context, getFilenameWithLocale(NAME, locale), locale,
+ Dictionary.TYPE_PERSONALIZATION, false /* isUpdatable */);
// TODO: Restore last updated time
loadDictionary();
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index a47cc4db9..f73bb28af 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -24,6 +24,7 @@ import android.preference.PreferenceManager;
import android.util.Log;
import java.lang.ref.SoftReference;
+import java.util.Locale;
import java.util.concurrent.ConcurrentHashMap;
public class PersonalizationHelper {
@@ -41,11 +42,12 @@ public class PersonalizationHelper {
CollectionUtils.newConcurrentHashMap();
public static UserHistoryDictionary getUserHistoryDictionary(
- final Context context, final String locale) {
+ final Context context, final Locale locale) {
+ final String localeStr = locale.toString();
synchronized (sLangUserHistoryDictCache) {
- if (sLangUserHistoryDictCache.containsKey(locale)) {
+ if (sLangUserHistoryDictCache.containsKey(localeStr)) {
final SoftReference<UserHistoryDictionary> ref =
- sLangUserHistoryDictCache.get(locale);
+ sLangUserHistoryDictCache.get(localeStr);
final UserHistoryDictionary dict = ref == null ? null : ref.get();
if (dict != null) {
if (DEBUG) {
@@ -56,7 +58,8 @@ public class PersonalizationHelper {
}
}
final UserHistoryDictionary dict = new UserHistoryDictionary(context, locale);
- sLangUserHistoryDictCache.put(locale, new SoftReference<UserHistoryDictionary>(dict));
+ sLangUserHistoryDictCache.put(localeStr,
+ new SoftReference<UserHistoryDictionary>(dict));
return dict;
}
}
@@ -74,7 +77,7 @@ public class PersonalizationHelper {
}
public static void registerPersonalizationDictionaryUpdateSession(final Context context,
- final PersonalizationDictionaryUpdateSession session, String locale) {
+ final PersonalizationDictionaryUpdateSession session, Locale locale) {
final PersonalizationPredictionDictionary predictionDictionary =
getPersonalizationPredictionDictionary(context, locale);
predictionDictionary.registerUpdateSession(session);
@@ -83,11 +86,12 @@ public class PersonalizationHelper {
}
public static PersonalizationDictionary getPersonalizationDictionary(
- final Context context, final String locale) {
+ final Context context, final Locale locale) {
+ final String localeStr = locale.toString();
synchronized (sLangPersonalizationDictCache) {
- if (sLangPersonalizationDictCache.containsKey(locale)) {
+ if (sLangPersonalizationDictCache.containsKey(localeStr)) {
final SoftReference<PersonalizationDictionary> ref =
- sLangPersonalizationDictCache.get(locale);
+ sLangPersonalizationDictCache.get(localeStr);
final PersonalizationDictionary dict = ref == null ? null : ref.get();
if (dict != null) {
if (DEBUG) {
@@ -98,17 +102,18 @@ public class PersonalizationHelper {
}
final PersonalizationDictionary dict = new PersonalizationDictionary(context, locale);
sLangPersonalizationDictCache.put(
- locale, new SoftReference<PersonalizationDictionary>(dict));
+ localeStr, new SoftReference<PersonalizationDictionary>(dict));
return dict;
}
}
public static PersonalizationPredictionDictionary getPersonalizationPredictionDictionary(
- final Context context, final String locale) {
+ final Context context, final Locale locale) {
+ final String localeStr = locale.toString();
synchronized (sLangPersonalizationPredictionDictCache) {
- if (sLangPersonalizationPredictionDictCache.containsKey(locale)) {
+ if (sLangPersonalizationPredictionDictCache.containsKey(localeStr)) {
final SoftReference<PersonalizationPredictionDictionary> ref =
- sLangPersonalizationPredictionDictCache.get(locale);
+ sLangPersonalizationPredictionDictCache.get(localeStr);
final PersonalizationPredictionDictionary dict = ref == null ? null : ref.get();
if (dict != null) {
if (DEBUG) {
@@ -120,7 +125,7 @@ public class PersonalizationHelper {
final PersonalizationPredictionDictionary dict =
new PersonalizationPredictionDictionary(context, locale);
sLangPersonalizationPredictionDictCache.put(
- locale, new SoftReference<PersonalizationPredictionDictionary>(dict));
+ localeStr, new SoftReference<PersonalizationPredictionDictionary>(dict));
return dict;
}
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationPredictionDictionary.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationPredictionDictionary.java
index 16107e29f..6d947162d 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationPredictionDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationPredictionDictionary.java
@@ -19,14 +19,16 @@ package com.android.inputmethod.latin.personalization;
import com.android.inputmethod.latin.Dictionary;
import com.android.inputmethod.latin.ExpandableBinaryDictionary;
+import java.util.Locale;
+
import android.content.Context;
public class PersonalizationPredictionDictionary extends DecayingExpandableBinaryDictionaryBase {
private static final String NAME = PersonalizationPredictionDictionary.class.getSimpleName();
- /* package */ PersonalizationPredictionDictionary(final Context context, final String locale) {
+ /* package */ PersonalizationPredictionDictionary(final Context context, final Locale locale) {
super(context, locale, Dictionary.TYPE_PERSONALIZATION_PREDICTION_IN_JAVA,
- getDictionaryFileName(locale));
+ getDictionaryFileName(locale.toString()));
}
private static String getDictionaryFileName(final String locale) {
diff --git a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
index 95a6fe142..60370d84e 100644
--- a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
@@ -19,6 +19,8 @@ package com.android.inputmethod.latin.personalization;
import com.android.inputmethod.latin.Dictionary;
import com.android.inputmethod.latin.ExpandableBinaryDictionary;
+import java.util.Locale;
+
import android.content.Context;
/**
@@ -28,8 +30,9 @@ import android.content.Context;
public class UserHistoryDictionary extends DecayingExpandableBinaryDictionaryBase {
/* package for tests */ static final String NAME =
UserHistoryDictionary.class.getSimpleName();
- /* package */ UserHistoryDictionary(final Context context, final String locale) {
- super(context, locale, Dictionary.TYPE_USER_HISTORY, getDictionaryFileName(locale));
+ /* package */ UserHistoryDictionary(final Context context, final Locale locale) {
+ super(context, locale, Dictionary.TYPE_USER_HISTORY,
+ getDictionaryFileName(locale.toString()));
}
private static String getDictionaryFileName(final String locale) {