aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-04-20 18:56:03 +0900
committerJean Chalard <jchalard@google.com>2012-04-20 18:56:03 +0900
commit04b03f4dd63a6cc5ea1b4d6afc93c442b907b282 (patch)
tree115b90e7d1becd9d5b01ac72b27bb5d8e34a6b78 /java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
parent78173bdf535e38a4f9c3bcc8038151de86071728 (diff)
downloadlatinime-04b03f4dd63a6cc5ea1b4d6afc93c442b907b282.tar.gz
latinime-04b03f4dd63a6cc5ea1b4d6afc93c442b907b282.tar.xz
latinime-04b03f4dd63a6cc5ea1b4d6afc93c442b907b282.zip
Allow using a format version 2 word list in LatinIME
Change-Id: I73a4df3a83e49be6e8d3a7d14eb027cfe10f1a23
Diffstat (limited to 'java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java')
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java20
1 files changed, 13 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index e4d081b56..a4670daf2 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -49,7 +49,10 @@ public class BinaryDictionaryFileDumper {
*/
private static final int FILE_READ_BUFFER_SIZE = 1024;
// TODO: make the following data common with the native code
- private static final byte[] MAGIC_NUMBER = new byte[] { 0x78, (byte)0xB1 };
+ private static final byte[] MAGIC_NUMBER_VERSION_1 =
+ new byte[] { (byte)0x78, (byte)0xB1, (byte)0x00, (byte)0x00 };
+ private static final byte[] MAGIC_NUMBER_VERSION_2 =
+ new byte[] { (byte)0x9B, (byte)0xC1, (byte)0x3A, (byte)0xFE };
private static final String DICTIONARY_PROJECTION[] = { "id" };
@@ -268,15 +271,18 @@ public class BinaryDictionaryFileDumper {
private static void checkMagicAndCopyFileTo(final BufferedInputStream input,
final FileOutputStream output) throws FileNotFoundException, IOException {
// Check the magic number
- final byte[] magicNumberBuffer = new byte[MAGIC_NUMBER.length];
- final int readMagicNumberSize = input.read(magicNumberBuffer, 0, MAGIC_NUMBER.length);
- if (readMagicNumberSize < MAGIC_NUMBER.length) {
+ final int length = MAGIC_NUMBER_VERSION_2.length;
+ final byte[] magicNumberBuffer = new byte[length];
+ final int readMagicNumberSize = input.read(magicNumberBuffer, 0, length);
+ if (readMagicNumberSize < length) {
throw new IOException("Less bytes to read than the magic number length");
}
- if (!Arrays.equals(MAGIC_NUMBER, magicNumberBuffer)) {
- throw new IOException("Wrong magic number for downloaded file");
+ if (!Arrays.equals(MAGIC_NUMBER_VERSION_2, magicNumberBuffer)) {
+ if (!Arrays.equals(MAGIC_NUMBER_VERSION_1, magicNumberBuffer)) {
+ throw new IOException("Wrong magic number for downloaded file");
+ }
}
- output.write(MAGIC_NUMBER);
+ output.write(magicNumberBuffer);
// Actually copy the file
final byte[] buffer = new byte[FILE_READ_BUFFER_SIZE];