summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-10-24 03:56:22 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-10-24 03:56:22 +0000
commit9e58ae469843fd2c293e8ebf87df3a03c7603b58 (patch)
treede7fadbaa60e0856beeb95b649542ae43d207c6f /tools
parent40c11fdbffa157773c581e8c606ab0ad0a756b77 (diff)
parentafdde633744e7e93a04d3f966cd118eee86936d2 (diff)
downloadandroid_packages_inputmethods_LatinIME-9e58ae469843fd2c293e8ebf87df3a03c7603b58.tar.gz
android_packages_inputmethods_LatinIME-9e58ae469843fd2c293e8ebf87df3a03c7603b58.tar.bz2
android_packages_inputmethods_LatinIME-9e58ae469843fd2c293e8ebf87df3a03c7603b58.zip
Merge "Some more simplification of DecoderSpec works"
Diffstat (limited to 'tools')
-rw-r--r--tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java19
-rw-r--r--tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java2
2 files changed, 14 insertions, 7 deletions
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
index d7497e623..f169641f0 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
@@ -32,6 +32,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
+import java.util.Arrays;
import java.util.ArrayList;
/**
@@ -52,12 +53,18 @@ public final class BinaryDictOffdeviceUtils {
public final static int ENCRYPTION = 2;
private final static int MAX_DECODE_DEPTH = 4;
- ArrayList<Integer> mDecoderSpec = new ArrayList<>();
+ final int[] mDecoderSpec;
File mFile;
- public DecoderChainSpec addStep(final int stepDescription) {
- mDecoderSpec.add(stepDescription);
- return this;
+ public DecoderChainSpec() {
+ mDecoderSpec = new int[0];
+ mFile = null;
+ }
+
+ public DecoderChainSpec(final DecoderChainSpec src, final int newStep) {
+ mDecoderSpec = Arrays.copyOf(src.mDecoderSpec, src.mDecoderSpec.length + 1);
+ mDecoderSpec[src.mDecoderSpec.length] = newStep;
+ mFile = src.mFile;
}
private String getStepDescription(final int step) {
@@ -120,7 +127,7 @@ public final class BinaryDictOffdeviceUtils {
final DecoderChainSpec newSpec =
getRawDictionaryOrNullInternal(spec, uncompressedFile, depth + 1);
if (null == newSpec) return null;
- return newSpec.addStep(DecoderChainSpec.COMPRESSION);
+ return new DecoderChainSpec(newSpec, DecoderChainSpec.COMPRESSION);
}
// It's not a compressed either - try to see if it's crypted.
final File decryptedFile = tryGetDecryptedFile(src);
@@ -128,7 +135,7 @@ public final class BinaryDictOffdeviceUtils {
final DecoderChainSpec newSpec =
getRawDictionaryOrNullInternal(spec, decryptedFile, depth + 1);
if (null == newSpec) return null;
- return newSpec.addStep(DecoderChainSpec.ENCRYPTION);
+ return new DecoderChainSpec(newSpec, DecoderChainSpec.ENCRYPTION);
}
return null;
}
diff --git a/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java b/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java
index fc0cbfd27..6cdbff7e5 100644
--- a/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java
+++ b/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java
@@ -82,7 +82,7 @@ public class BinaryDictOffdeviceUtilsTests extends TestCase {
assertEquals("Wrong decode spec",
BinaryDictOffdeviceUtils.DecoderChainSpec.COMPRESSION, step);
}
- assertEquals("Wrong decode spec", 3, decodeSpec.mDecoderSpec.size());
+ assertEquals("Wrong decode spec", 3, decodeSpec.mDecoderSpec.length);
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(decodeSpec.mFile, 0,
decodeSpec.mFile.length());
final FusionDictionary resultDict =