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

Commit 1910392e authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi
Browse files

Add Dictionary.isInDictionary().

Bug: 13142176
Bug: 15428247
Change-Id: If2d1c1fea7a69e41809a828da8dd032211ad144e
parent 166d8c22
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