diff options
author | 2015-03-03 16:17:27 -0800 | |
---|---|---|
committer | 2015-03-03 16:17:27 -0800 | |
commit | 6e29d261cb480ef0f0d90867d4582fabce0b9113 (patch) | |
tree | 0d5572f1d1bbfb478b3be090031bcbe2dd2d33a0 /java | |
parent | 2281ba76668db4343e1d01fff82e031657bfcfd5 (diff) | |
download | latinime-6e29d261cb480ef0f0d90867d4582fabce0b9113.tar.gz latinime-6e29d261cb480ef0f0d90867d4582fabce0b9113.tar.xz latinime-6e29d261cb480ef0f0d90867d4582fabce0b9113.zip |
Introduce DictionaryHeaderUtils to get dictionary header values
Change-Id: I86cef6c7f2f68a75428bb2b9c4d5a1dc1876b541
Diffstat (limited to 'java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java index 3ed6a021e..fd567f49d 100644 --- a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java @@ -340,7 +340,7 @@ public class DictionaryInfoUtils { return getDictionaryFileHeaderOrNull(file, 0, file.length()); } - private static DictionaryHeader getDictionaryFileHeaderOrNull(final File file, + public static DictionaryHeader getDictionaryFileHeaderOrNull(final File file, final long offset, final long length) { try { final DictionaryHeader header = @@ -357,23 +357,17 @@ public class DictionaryInfoUtils { * Returns information of the dictionary. * * @param fileAddress the asset dictionary file address. + * @param locale Locale for this file. * @return information of the specified dictionary. */ @Nullable private static DictionaryInfo createDictionaryInfoFromFileAddress( - final AssetFileAddress fileAddress) { - // TODO: Read the header and update the version number for the new dictionaries. - // This will make sure that the dictionary version is updated in the database. - final DictionaryHeader header = getDictionaryFileHeaderOrNull( - new File(fileAddress.mFilename), fileAddress.mOffset, fileAddress.mLength); - if (header == null) { - return null; - } - final String id = header.mIdString; - final Locale locale = LocaleUtils.constructLocaleFromString(header.mLocaleString); - final String description = header.getDescription(); - final String version = header.mVersionString; - return new DictionaryInfo(id, locale, description, fileAddress, Integer.parseInt(version)); + final AssetFileAddress fileAddress, Locale locale) { + final String id = getMainDictId(locale); + final int version = DictionaryHeaderUtils.getContentVersion(fileAddress); + final String description = SubtypeLocaleUtils + .getSubtypeLocaleDisplayName(locale.toString()); + return new DictionaryInfo(id, locale, description, fileAddress, version); } private static void addOrUpdateDictInfo(final ArrayList<DictionaryInfo> dictList, @@ -410,7 +404,7 @@ public class DictionaryInfoUtils { final Locale locale = LocaleUtils.constructLocaleFromString(localeString); final AssetFileAddress fileAddress = AssetFileAddress.makeFromFile(dict); final DictionaryInfo dictionaryInfo = - createDictionaryInfoFromFileAddress(fileAddress); + createDictionaryInfoFromFileAddress(fileAddress, locale); // 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. @@ -435,7 +429,8 @@ public class DictionaryInfoUtils { } final AssetFileAddress fileAddress = BinaryDictionaryGetter.loadFallbackResource(context, resourceId); - final DictionaryInfo dictionaryInfo = createDictionaryInfoFromFileAddress(fileAddress); + final DictionaryInfo dictionaryInfo = createDictionaryInfoFromFileAddress(fileAddress, + locale); // 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. |