diff options
author | 2014-09-25 09:26:44 +0000 | |
---|---|---|
committer | 2014-09-25 09:26:44 +0000 | |
commit | 54357ccb72ae1e3976206bc663f28a7e854d483e (patch) | |
tree | 3ff812c4b92c4f658b4af9b93ebffc3ec91d4829 /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | |
parent | 899d54f9e84b7f63bc2b05424904fc3fcb0fb1c6 (diff) | |
parent | 951252bf478c924372397ecfc0fdf5a7d6445bff (diff) | |
download | latinime-54357ccb72ae1e3976206bc663f28a7e854d483e.tar.gz latinime-54357ccb72ae1e3976206bc663f28a7e854d483e.tar.xz latinime-54357ccb72ae1e3976206bc663f28a7e854d483e.zip |
am 951252bf: Merge "Get stats from dictionary."
* commit '951252bf478c924372397ecfc0fdf5a7d6445bff':
Get stats from dictionary.
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index 53abd2ecc..68f2b62f0 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -644,14 +644,36 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { }); } + private static int parseEntryCount(final String entryCountStr) { + int entryCount; + try { + entryCount = Integer.parseInt(entryCountStr); + } catch (final NumberFormatException e) { + entryCount = DictionaryStats.NOT_AN_ENTRY_COUNT; + } + return entryCount; + } + public DictionaryStats getDictionaryStats() { reloadDictionaryIfRequired(); final AsyncResultHolder<DictionaryStats> result = new AsyncResultHolder<>(); asyncExecuteTaskWithLock(mLock.readLock(), mDictName /* executorName */, new Runnable() { @Override public void run() { - // TODO: Get stats from the dictionary. - result.set(new DictionaryStats(mLocale, mDictName, mDictFile)); + if (mBinaryDictionary == null) { + result.set(new DictionaryStats(mLocale, mDictName, mDictFile, + DictionaryStats.NOT_AN_ENTRY_COUNT, + DictionaryStats.NOT_AN_ENTRY_COUNT)); + } + final int unigramCount = parseEntryCount( + mBinaryDictionary.getPropertyForGettingStats( + BinaryDictionary.MAX_UNIGRAM_COUNT_QUERY)); + // TODO: Get dedicated entry counts for bigram, trigram, and so on. + final int ngramCount = parseEntryCount(mBinaryDictionary.getPropertyForGettingStats( + BinaryDictionary.MAX_BIGRAM_COUNT_QUERY)); + // TODO: Get more information from dictionary. + result.set(new DictionaryStats(mLocale, mDictName, mDictFile, unigramCount, + ngramCount)); } }); return result.get(null /* defaultValue */, TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS); |