aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-06-05 10:10:12 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-06-05 10:10:12 +0000
commitf91a47a2da7e986df19cf9dbadd95f7f2ac664aa (patch)
treea6c7bb7f5c7c26746982375d4c76c9b3440a7f17 /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
parent6357f6329828e610865be98a00465795ff3c8876 (diff)
parent0ee8644666c01431adcc7d651ab1841c61f0bb43 (diff)
downloadlatinime-f91a47a2da7e986df19cf9dbadd95f7f2ac664aa.tar.gz
latinime-f91a47a2da7e986df19cf9dbadd95f7f2ac664aa.tar.xz
latinime-f91a47a2da7e986df19cf9dbadd95f7f2ac664aa.zip
am 0ee86446: Merge "Add getMaxFrequencyOfExactMatches() to Dictionary."
* commit '0ee8644666c01431adcc7d651ab1841c61f0bb43': Add getMaxFrequencyOfExactMatches() to Dictionary.
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java')
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index b10bae01a..8664c09e4 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -441,6 +441,30 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
return mBinaryDictionary.isValidWord(word);
}
+ @Override
+ public int getMaxFrequencyOfExactMatches(final String word) {
+ reloadDictionaryIfRequired();
+ boolean lockAcquired = false;
+ try {
+ lockAcquired = mLock.readLock().tryLock(
+ TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS, TimeUnit.MILLISECONDS);
+ if (lockAcquired) {
+ if (mBinaryDictionary == null) {
+ return NOT_A_PROBABILITY;
+ }
+ return mBinaryDictionary.getMaxFrequencyOfExactMatches(word);
+ }
+ } catch (final InterruptedException e) {
+ Log.e(TAG, "Interrupted tryLock() in getMaxFrequencyOfExactMatches().", e);
+ } finally {
+ if (lockAcquired) {
+ mLock.readLock().unlock();
+ }
+ }
+ return NOT_A_PROBABILITY;
+ }
+
+
protected boolean isValidNgramLocked(final PrevWordsInfo prevWordsInfo, final String word) {
if (mBinaryDictionary == null) return false;
return mBinaryDictionary.isValidNgram(prevWordsInfo, word);