aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-09-19 20:58:07 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2014-09-22 10:26:19 +0900
commit743a9b4499c9b53ffedc63f76137ce2eaa3301d0 (patch)
tree3d7b7deec22b377748b36a0fe6788a725355a92f /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
parentc724864c612d899b7942f007c58a2727ce31b7ad (diff)
downloadlatinime-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.java26
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);