Fix an excessive fallback problem.

LatinIME has several fallbacks to ensure a dictionary is used.
However, it should now be possible to deactivate the main dictionary
through the dictionary pack settings. In this case, Latin IME should
not fallback to the built-in dictionary.

Change-Id: Ibd992ad89793169f04a968b40781fce819b87b6f
main
Jean Chalard 2011-08-23 17:55:46 +09:00
parent 2d306a225c
commit 0ee3b69483
1 changed files with 4 additions and 18 deletions

View File

@ -64,25 +64,11 @@ public class DictionaryFactory {
}
}
// null == dictList is not supposed to be possible, but better safe than sorry and it's
// safer for future extension. In this case, rather than returning null, it should be safer
// to return an empty DictionaryCollection.
if (null == dictList) {
return new DictionaryCollection();
} else {
if (dictList.isEmpty()) {
// The list may be empty if no dictionaries have been added. The getter should not
// return an empty list, but if it does we end up here. Likewise, if the files
// we found could not be opened by the native code for any reason (format mismatch,
// file too big to fit in memory, etc) then we could have an empty list. In this
// case we want to fall back on the resource.
return new DictionaryCollection(createBinaryDictionary(context, fallbackResId,
locale));
} else {
// If the list is empty, that means we should not use any dictionary (for example, the user
// explicitly disabled the main dictionary), so the following is okay. dictList is never
// null, but if for some reason it is, DictionaryCollection handles it gracefully.
return new DictionaryCollection(dictList);
}
}
}
/**
* Initializes a dictionary from a raw resource file