From 24c282437dd7dd4b135e3410b5459ca83d304524 Mon Sep 17 00:00:00 2001 From: Mohammadinamul Sheik Date: Tue, 24 Feb 2015 15:45:10 -0800 Subject: [PATCH] Do not crash when dictioanryInfo is NULL Bug: 19417599 Change-Id: I82174401c595b57b42fc74bc478b551869729ba6 --- .../inputmethod/latin/utils/DictionaryInfoUtils.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java index 6734ca8c5..293623cae 100644 --- a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java @@ -359,8 +359,11 @@ public class DictionaryInfoUtils { * @param fileAddress the asset dictionary file address. * @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) { @@ -436,7 +439,8 @@ 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)) { + // TODO: Remove dictionaryInfo == null when the static LMs have the headers. + if (dictionaryInfo == null || !dictionaryInfo.mLocale.equals(locale)) { continue; } addOrUpdateDictInfo(dictList, dictionaryInfo);