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

Commit 90538624 authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "Remove dependency on WordCallback from BinaryDictionary (A7)"

parents b9f99c86 bda7eaa6
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -20,7 +20,9 @@ import android.content.Context;
import android.text.TextUtils;

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Locale;

@@ -125,6 +127,7 @@ public class BinaryDictionary extends Dictionary {
            count = MAX_BIGRAMS;
        }

        final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<SuggestedWordInfo>();
        for (int j = 0; j < count; ++j) {
            if (codesSize > 0 && mBigramScores[j] < 1) break;
            final int start = j * MAX_WORD_LENGTH;
@@ -133,19 +136,22 @@ public class BinaryDictionary extends Dictionary {
                ++len;
            }
            if (len > 0) {
                callback.addWord(mOutputChars_bigrams, null, start, len, mBigramScores[j],
                        mDicTypeId, Dictionary.BIGRAM);
                suggestions.add(new SuggestedWordInfo(
                        new String(mOutputChars_bigrams, start, len),
                        mBigramScores[j], SuggestedWordInfo.KIND_CORRECTION));
            }
        }
        Utils.addAllSuggestions(mDicTypeId, Dictionary.BIGRAM, suggestions, callback);
    }

    // proximityInfo and/or prevWordForBigrams may not be null.
    @Override
    public void getWords(final WordComposer codes, final CharSequence prevWordForBigrams,
            final WordCallback callback, final ProximityInfo proximityInfo) {

        final int count = getSuggestions(codes, prevWordForBigrams, proximityInfo, mOutputChars,
                mScores, mSpaceIndices);

        final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<SuggestedWordInfo>();
        for (int j = 0; j < count; ++j) {
            if (mScores[j] < 1) break;
            final int start = j * MAX_WORD_LENGTH;
@@ -154,10 +160,13 @@ public class BinaryDictionary extends Dictionary {
                ++len;
            }
            if (len > 0) {
                callback.addWord(mOutputChars, null, start, len, mScores[j], mDicTypeId,
                        Dictionary.UNIGRAM);
                // TODO: actually get the kind from native code
                suggestions.add(new SuggestedWordInfo(
                        new String(mOutputChars, start, len),
                        mScores[j], SuggestedWordInfo.KIND_CORRECTION));
            }
        }
        Utils.addAllSuggestions(mDicTypeId, Dictionary.UNIGRAM, suggestions, callback);
    }

    /* package for test */ boolean isValidDictionary() {