diff options
author | 2014-09-25 08:24:54 +0000 | |
---|---|---|
committer | 2014-09-25 08:24:55 +0000 | |
commit | 951252bf478c924372397ecfc0fdf5a7d6445bff (patch) | |
tree | de5c9514019d8d73dc965d8efac7e5e4dc95b2a5 /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | |
parent | 22e2fa372c888e64a48eca8f98f0606c891f17ff (diff) | |
parent | 743a9b4499c9b53ffedc63f76137ce2eaa3301d0 (diff) | |
download | latinime-951252bf478c924372397ecfc0fdf5a7d6445bff.tar.gz latinime-951252bf478c924372397ecfc0fdf5a7d6445bff.tar.xz latinime-951252bf478c924372397ecfc0fdf5a7d6445bff.zip |
Merge "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); |