aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-01-17 10:30:16 -0800
committerKeisuke Kuroyanagi <ksk@google.com>2014-01-17 10:30:16 -0800
commited95d79cc4c7f4646a388005f99a195b4794623b (patch)
tree6705757ec8aa839553764c9453f25e4f3eabcf23 /java/src/com/android/inputmethod
parentf4bf620502198202b98882254d7a355e1f5a6e45 (diff)
downloadlatinime-ed95d79cc4c7f4646a388005f99a195b4794623b.tar.gz
latinime-ed95d79cc4c7f4646a388005f99a195b4794623b.tar.xz
latinime-ed95d79cc4c7f4646a388005f99a195b4794623b.zip
Make contacts dict and user dict version 4.
Bug: 12515251 Change-Id: I0b332e03b9102957bffaea56d4de17b9ee3cef23
Diffstat (limited to 'java/src/com/android/inputmethod')
-rw-r--r--java/src/com/android/inputmethod/latin/AbstractDictionaryWriter.java16
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryWriter.java9
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java14
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java7
4 files changed, 14 insertions, 32 deletions
diff --git a/java/src/com/android/inputmethod/latin/AbstractDictionaryWriter.java b/java/src/com/android/inputmethod/latin/AbstractDictionaryWriter.java
index 1aee22baf..1c6a14efe 100644
--- a/java/src/com/android/inputmethod/latin/AbstractDictionaryWriter.java
+++ b/java/src/com/android/inputmethod/latin/AbstractDictionaryWriter.java
@@ -16,12 +16,12 @@
package com.android.inputmethod.latin;
-import android.content.Context;
import android.util.Log;
import com.android.inputmethod.latin.makedict.DictEncoder;
import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
-import com.android.inputmethod.latin.makedict.Ver2DictEncoder;
+import com.android.inputmethod.latin.makedict.Ver4DictEncoder;
+import com.android.inputmethod.latin.utils.FileUtils;
import java.io.File;
import java.io.IOException;
@@ -31,10 +31,7 @@ abstract public class AbstractDictionaryWriter {
/** Used for Log actions from this class */
private static final String TAG = AbstractDictionaryWriter.class.getSimpleName();
- private final Context mContext;
-
- public AbstractDictionaryWriter(final Context context) {
- mContext = context;
+ public AbstractDictionaryWriter() {
}
abstract public void clear();
@@ -61,12 +58,11 @@ abstract public class AbstractDictionaryWriter {
final Map<String, String> attributeMap) throws IOException, UnsupportedFormatException;
public void write(final File file, final Map<String, String> attributeMap) {
- final String tempFilePath = file.getAbsolutePath() + ".temp";
- final File tempFile = new File(tempFilePath);
try {
- final DictEncoder dictEncoder = new Ver2DictEncoder(tempFile);
+ FileUtils.deleteRecursively(file);
+ file.mkdir();
+ final DictEncoder dictEncoder = new Ver4DictEncoder(file);
writeDictionary(dictEncoder, attributeMap);
- tempFile.renameTo(file);
} catch (IOException e) {
Log.e(TAG, "IO exception while writing file", e);
} catch (UnsupportedFormatException e) {
diff --git a/java/src/com/android/inputmethod/latin/DictionaryWriter.java b/java/src/com/android/inputmethod/latin/DictionaryWriter.java
index 89ef96d7f..84898680e 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryWriter.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryWriter.java
@@ -16,8 +16,6 @@
package com.android.inputmethod.latin;
-import android.content.Context;
-
import com.android.inputmethod.latin.makedict.DictEncoder;
import com.android.inputmethod.latin.makedict.FormatSpec;
import com.android.inputmethod.latin.makedict.FusionDictionary;
@@ -35,14 +33,13 @@ import java.util.Map;
* An in memory dictionary for memorizing entries and writing a binary dictionary.
*/
public class DictionaryWriter extends AbstractDictionaryWriter {
- private static final int BINARY_DICT_VERSION = 2;
+ private static final int BINARY_DICT_VERSION = FormatSpec.VERSION4;
private static final FormatSpec.FormatOptions FORMAT_OPTIONS =
- new FormatSpec.FormatOptions(BINARY_DICT_VERSION, false /* supportsDynamicUpdate */);
+ new FormatSpec.FormatOptions(BINARY_DICT_VERSION, false /* hasTimestamp */);
private FusionDictionary mFusionDictionary;
- public DictionaryWriter(final Context context) {
- super(context);
+ public DictionaryWriter() {
clear();
}
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index ecef20efc..8e1675b2a 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -136,12 +136,8 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
*/
protected abstract boolean hasContentChanged();
- protected boolean matchesExpectedBinaryDictFormatVersionForThisType(final int formatVersion) {
- // This class is using format 2 because it's used by the User and Contacts dictionary
- // only, which right now use format 2 (dicts using format 4 use Decaying*, which overrides
- // this method).
- // TODO: Migrate these dicts to ver4 format, and remove this function.
- return formatVersion == FormatSpec.VERSION2;
+ private boolean matchesExpectedBinaryDictFormatVersionForThisType(final int formatVersion) {
+ return formatVersion == FormatSpec.VERSION4;
}
public boolean isValidDictionary() {
@@ -194,12 +190,12 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
}
}
- private static AbstractDictionaryWriter getDictionaryWriter(final Context context,
+ private static AbstractDictionaryWriter getDictionaryWriter(
final boolean isDynamicPersonalizationDictionary) {
if (isDynamicPersonalizationDictionary) {
return null;
} else {
- return new DictionaryWriter(context);
+ return new DictionaryWriter();
}
}
@@ -233,7 +229,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
mBinaryDictionary = null;
mDictNameDictionaryUpdateController = getDictionaryUpdateController(dictName);
// Currently, only dynamic personalization dictionary is updatable.
- mDictionaryWriter = getDictionaryWriter(context, isUpdatable);
+ mDictionaryWriter = getDictionaryWriter(isUpdatable);
}
protected static String getDictNameWithLocale(final String name, final Locale locale) {
diff --git a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
index cc57d13dc..4a610e6f9 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
@@ -116,13 +116,6 @@ public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableB
return false;
}
- @Override
- protected boolean matchesExpectedBinaryDictFormatVersionForThisType(final int formatVersion) {
- // This class is using format 4 because it's used by all version 4 dictionaries.
- // TODO: remove this when all dynamically generated dicts use version 4.
- return formatVersion == REQUIRED_BINARY_DICTIONARY_VERSION;
- }
-
public void addMultipleDictionaryEntriesToDictionary(
final ArrayList<LanguageModelParam> languageModelParams,
final ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback callback) {