Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79e2e9fa authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Add Dictionary.isInDictionary()."

parents dec599d1 1910392e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ public final class BinaryDictionary extends Dictionary {
    }

    @Override
    public boolean isValidWord(final String word) {
    public boolean isInDictionary(final String word) {
        return getFrequency(word) != NOT_A_PROBABILITY;
    }

+13 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.inputmethod.latin;

import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.keyboard.ProximityInfo;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;

@@ -85,11 +86,19 @@ public abstract class Dictionary {
            final int sessionId, final float[] inOutLanguageWeight);

    /**
     * Checks if the given word occurs in the dictionary
     * Checks if the given word has to be treated as a valid word. Please note that some
     * dictionaries have entries that should be treated as invalid words.
     * @param word the word to search for. The search should be case-insensitive.
     * @return true if the word exists, false otherwise
     * @return true if the word is valid, false otherwise
     */
    abstract public boolean isValidWord(final String word);
    public boolean isValidWord(final String word) {
        return isInDictionary(word);
    }

    /**
     * Checks if the given word is in the dictionary regardless of it being valid or not.
     */
    abstract public boolean isInDictionary(final String word);

    public int getFrequency(final String word) {
        return NOT_A_PROBABILITY;
@@ -165,7 +174,7 @@ public abstract class Dictionary {
        }

        @Override
        public boolean isValidWord(String word) {
        public boolean isInDictionary(String word) {
            return false;
        }
    }
+2 −2
Original line number Diff line number Diff line
@@ -78,9 +78,9 @@ public final class DictionaryCollection extends Dictionary {
    }

    @Override
    public boolean isValidWord(final String word) {
    public boolean isInDictionary(final String word) {
        for (int i = mDictionaries.size() - 1; i >= 0; --i)
            if (mDictionaries.get(i).isValidWord(word)) return true;
            if (mDictionaries.get(i).isInDictionary(word)) return true;
        return false;
    }

+5 −19
Original line number Diff line number Diff line
@@ -414,7 +414,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
    }

    @Override
    public boolean isValidWord(final String word) {
    public boolean isInDictionary(final String word) {
        reloadDictionaryIfRequired();
        boolean lockAcquired = false;
        try {
@@ -424,10 +424,10 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
                if (mBinaryDictionary == null) {
                    return false;
                }
                return isValidWordLocked(word);
                return isInDictionaryLocked(word);
            }
        } catch (final InterruptedException e) {
            Log.e(TAG, "Interrupted tryLock() in isValidWord().", e);
            Log.e(TAG, "Interrupted tryLock() in isInDictionary().", e);
        } finally {
            if (lockAcquired) {
                mLock.readLock().unlock();
@@ -436,9 +436,9 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
        return false;
    }

    protected boolean isValidWordLocked(final String word) {
    protected boolean isInDictionaryLocked(final String word) {
        if (mBinaryDictionary == null) return false;
        return mBinaryDictionary.isValidWord(word);
        return mBinaryDictionary.isInDictionary(word);
    }

    @Override
@@ -590,20 +590,6 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
        });
    }

    // TODO: Implement BinaryDictionary.isInDictionary().
    @UsedForTesting
    public boolean isInUnderlyingBinaryDictionaryForTests(final String word) {
        mLock.readLock().lock();
        try {
            if (mBinaryDictionary != null && mDictType == Dictionary.TYPE_USER_HISTORY) {
                return mBinaryDictionary.isValidWord(word);
            }
            return false;
        } finally {
            mLock.readLock().unlock();
        }
    }

    @UsedForTesting
    public void waitAllTasksForTests() {
        final CountDownLatch countDownLatch = new CountDownLatch(1);
+2 −2
Original line number Diff line number Diff line
@@ -66,10 +66,10 @@ public final class ReadOnlyBinaryDictionary extends Dictionary {
    }

    @Override
    public boolean isValidWord(final String word) {
    public boolean isInDictionary(final String word) {
        if (mLock.readLock().tryLock()) {
            try {
                return mBinaryDictionary.isValidWord(word);
                return mBinaryDictionary.isInDictionary(word);
            } finally {
                mLock.readLock().unlock();
            }
Loading