diff options
author | 2014-09-19 20:58:07 +0900 | |
---|---|---|
committer | 2014-09-22 10:26:19 +0900 | |
commit | 743a9b4499c9b53ffedc63f76137ce2eaa3301d0 (patch) | |
tree | 3d7b7deec22b377748b36a0fe6788a725355a92f /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | |
parent | c724864c612d899b7942f007c58a2727ce31b7ad (diff) | |
download | latinime-743a9b4499c9b53ffedc63f76137ce2eaa3301d0.tar.gz latinime-743a9b4499c9b53ffedc63f76137ce2eaa3301d0.tar.xz latinime-743a9b4499c9b53ffedc63f76137ce2eaa3301d0.zip |
Get stats from dictionary.
Bug: 16553957
Change-Id: I70c7a7be3c902dc8a0dfe8f946f9ef75ba6c9655
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); |