aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-09-22 02:51:28 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-09-22 02:51:28 +0000
commita890979a23591ff35c2a151bf012eb6f7c8cc95a (patch)
treefe81c611161c8b5bd3f29a1fd0e63307d5ff5f43 /java/src
parent8487625fbc14c8de48d706eb7c01d12e3e7278da (diff)
parent825747348b2fdc33d9593afd5ff29dbe9587524d (diff)
downloadlatinime-a890979a23591ff35c2a151bf012eb6f7c8cc95a.tar.gz
latinime-a890979a23591ff35c2a151bf012eb6f7c8cc95a.tar.xz
latinime-a890979a23591ff35c2a151bf012eb6f7c8cc95a.zip
am 82574734: Merge "Create DictionaryStats in executor."
* commit '825747348b2fdc33d9593afd5ff29dbe9587524d': Create DictionaryStats in executor.
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index ad967c133..53abd2ecc 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -27,6 +27,7 @@ import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
import com.android.inputmethod.latin.makedict.WordProperty;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
+import com.android.inputmethod.latin.utils.AsyncResultHolder;
import com.android.inputmethod.latin.utils.CombinedFormatUtils;
import com.android.inputmethod.latin.utils.DistracterFilter;
import com.android.inputmethod.latin.utils.ExecutorUtils;
@@ -645,13 +646,15 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
public DictionaryStats getDictionaryStats() {
reloadDictionaryIfRequired();
- mLock.readLock().lock();
- try {
- // TODO: Get stats form the dictionary.
- return new DictionaryStats(mLocale, mDictName, mDictFile);
- } finally {
- mLock.readLock().unlock();
- }
+ 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));
+ }
+ });
+ return result.get(null /* defaultValue */, TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS);
}
@UsedForTesting