Loading java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java +5 −1 Original line number Diff line number Diff line Loading @@ -643,6 +643,10 @@ public final class BinaryDictDecoderUtils { * @return true if it's a binary dictionary, false otherwise */ public static boolean isBinaryDictionary(final File file) { return FormatSpec.getDictDecoder(file).hasValidRawBinaryDictionary(); final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file); if (dictDecoder == null) { return false; } return dictDecoder.hasValidRawBinaryDictionary(); } } java/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java +4 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,7 @@ public final class BinaryDictIOUtils { * @param file The file to read. * @param offset The offset in the file where to start reading the data. * @param length The length of the data file. * @return the header of the specified dictionary file. */ private static FileHeader getDictionaryFileHeader( final File file, final long offset, final long length) Loading @@ -330,6 +331,9 @@ public final class BinaryDictIOUtils { } } ); if (dictDecoder == null) { return null; } return dictDecoder.readHeader(); } Loading java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java +10 −1 Original line number Diff line number Diff line Loading @@ -282,10 +282,19 @@ public class DictionaryInfoUtils { return BinaryDictIOUtils.getDictionaryFileHeaderOrNull(file, 0, file.length()); } /** * Returns information of the dictionary. * * @param fileAddress the asset dictionary file address. * @return information of the specified dictionary. */ private static DictionaryInfo createDictionaryInfoFromFileAddress( final AssetFileAddress fileAddress) { final FileHeader header = BinaryDictIOUtils.getDictionaryFileHeaderOrNull( new File(fileAddress.mFilename), fileAddress.mOffset, fileAddress.mLength); if (header == null) { return null; } final String id = header.getId(); final Locale locale = LocaleUtils.constructLocaleFromString(header.getLocaleString()); final String description = header.getDescription(); Loading Loading @@ -328,7 +337,7 @@ public class DictionaryInfoUtils { // Protect against cases of a less-specific dictionary being found, like an // en dictionary being used for an en_US locale. In this case, the en dictionary // should be used for en_US but discounted for listing purposes. if (!dictionaryInfo.mLocale.equals(locale)) continue; if (dictionaryInfo == null || !dictionaryInfo.mLocale.equals(locale)) continue; addOrUpdateDictInfo(dictList, dictionaryInfo); } } Loading Loading
java/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java +5 −1 Original line number Diff line number Diff line Loading @@ -643,6 +643,10 @@ public final class BinaryDictDecoderUtils { * @return true if it's a binary dictionary, false otherwise */ public static boolean isBinaryDictionary(final File file) { return FormatSpec.getDictDecoder(file).hasValidRawBinaryDictionary(); final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file); if (dictDecoder == null) { return false; } return dictDecoder.hasValidRawBinaryDictionary(); } }
java/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java +4 −0 Original line number Diff line number Diff line Loading @@ -309,6 +309,7 @@ public final class BinaryDictIOUtils { * @param file The file to read. * @param offset The offset in the file where to start reading the data. * @param length The length of the data file. * @return the header of the specified dictionary file. */ private static FileHeader getDictionaryFileHeader( final File file, final long offset, final long length) Loading @@ -330,6 +331,9 @@ public final class BinaryDictIOUtils { } } ); if (dictDecoder == null) { return null; } return dictDecoder.readHeader(); } Loading
java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java +10 −1 Original line number Diff line number Diff line Loading @@ -282,10 +282,19 @@ public class DictionaryInfoUtils { return BinaryDictIOUtils.getDictionaryFileHeaderOrNull(file, 0, file.length()); } /** * Returns information of the dictionary. * * @param fileAddress the asset dictionary file address. * @return information of the specified dictionary. */ private static DictionaryInfo createDictionaryInfoFromFileAddress( final AssetFileAddress fileAddress) { final FileHeader header = BinaryDictIOUtils.getDictionaryFileHeaderOrNull( new File(fileAddress.mFilename), fileAddress.mOffset, fileAddress.mLength); if (header == null) { return null; } final String id = header.getId(); final Locale locale = LocaleUtils.constructLocaleFromString(header.getLocaleString()); final String description = header.getDescription(); Loading Loading @@ -328,7 +337,7 @@ public class DictionaryInfoUtils { // Protect against cases of a less-specific dictionary being found, like an // en dictionary being used for an en_US locale. In this case, the en dictionary // should be used for en_US but discounted for listing purposes. if (!dictionaryInfo.mLocale.equals(locale)) continue; if (dictionaryInfo == null || !dictionaryInfo.mLocale.equals(locale)) continue; addOrUpdateDictInfo(dictList, dictionaryInfo); } } Loading