diff options
author | 2014-10-24 03:56:22 +0000 | |
---|---|---|
committer | 2014-10-24 03:56:22 +0000 | |
commit | 9e58ae469843fd2c293e8ebf87df3a03c7603b58 (patch) | |
tree | de7fadbaa60e0856beeb95b649542ae43d207c6f /tools/dicttool/src | |
parent | 40c11fdbffa157773c581e8c606ab0ad0a756b77 (diff) | |
parent | afdde633744e7e93a04d3f966cd118eee86936d2 (diff) | |
download | latinime-9e58ae469843fd2c293e8ebf87df3a03c7603b58.tar.gz latinime-9e58ae469843fd2c293e8ebf87df3a03c7603b58.tar.xz latinime-9e58ae469843fd2c293e8ebf87df3a03c7603b58.zip |
Merge "Some more simplification of DecoderSpec works"
Diffstat (limited to 'tools/dicttool/src')
-rw-r--r-- | tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java | 19 |
1 files changed, 13 insertions, 6 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; } |