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

Commit da9bd4b9 authored by Mohammadinamul Sheik's avatar Mohammadinamul Sheik Committed by Android (Google) Code Review
Browse files

Merge "Add StatsUtils.onAutoCorrection method."

parents 0c37e99e 16bfac9f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import com.android.inputmethod.latin.RichInputMethodManager;
import com.android.inputmethod.latin.SuggestedWords;
import com.android.inputmethod.latin.settings.SettingsValues;

import javax.annotation.Nullable;

public final class StatsUtils {

    private StatsUtils() {
@@ -63,4 +65,8 @@ public final class StatsUtils {

    public static void onStartInputView(int inputType, int displayOrientation, boolean restarting) {
    }

    public static void onAutoCorrection(final String typedWord, final String autoCorrectionWord,
            final boolean isBatchInput, @Nullable final String dictionaryType) {
    }
}
+10 −1
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ public final class WordComposer {
    private final ArrayList<Event> mEvents;
    private final InputPointers mInputPointers = new InputPointers(MAX_WORD_LENGTH);
    private String mAutoCorrection;
    private String mAutoCorrectionDictionaryType;
    private boolean mIsResumed;
    private boolean mIsBatchMode;
    // A memory of the last rejected batch mode suggestion, if any. This goes like this: the user
@@ -418,8 +419,9 @@ public final class WordComposer {
    /**
     * Sets the auto-correction for this word.
     */
    public void setAutoCorrection(final String correction) {
    public void setAutoCorrection(final String correction, String dictType) {
        mAutoCorrection = correction;
        mAutoCorrectionDictionaryType = dictType;
    }

    /**
@@ -429,6 +431,13 @@ public final class WordComposer {
        return mAutoCorrection;
    }

    /**
     * @return the auto-correction dictionary type or null if none.
     */
    public String getAutoCorrectionDictionaryTypeOrNull() {
        return mAutoCorrectionDictionaryType;
    }

    /**
     * @return whether we started composing this word by resuming suggestion on an existing string
     */
+11 −2
Original line number Diff line number Diff line
@@ -612,14 +612,21 @@ public final class InputLogic {
            final SettingsValues settingsValues, final LatinIME.UIHandler handler) {
        if (SuggestedWords.EMPTY != suggestedWords) {
            final String autoCorrection;
            final String dictType;
            if (suggestedWords.mWillAutoCorrect) {
                autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION);
                SuggestedWordInfo info = suggestedWords.getInfo(
                        SuggestedWords.INDEX_OF_AUTO_CORRECTION);
                autoCorrection = info.mWord;
                dictType = info.mSourceDict.mDictType;
            } else {
                // We can't use suggestedWords.getWord(SuggestedWords.INDEX_OF_TYPED_WORD)
                // because it may differ from mWordComposer.mTypedWord.
                autoCorrection = suggestedWords.mTypedWord;
                dictType = Dictionary.TYPE_USER_TYPED;
            }
            mWordComposer.setAutoCorrection(autoCorrection);
            // TODO: Use the SuggestedWordInfo to set the auto correction when
            // user typed word is available via SuggestedWordInfo.
            mWordComposer.setAutoCorrection(autoCorrection, dictType);
        }
        mSuggestedWords = suggestedWords;
        final boolean newAutoCorrectionIndicator = suggestedWords.mWillAutoCorrect;
@@ -2100,6 +2107,8 @@ public final class InputLogic {
                mConnection.commitCorrection(new CorrectionInfo(
                        mConnection.getExpectedSelectionEnd() - autoCorrection.length(),
                        typedWord, autoCorrection));
                StatsUtils.onAutoCorrection(typedWord, autoCorrection, mWordComposer.isBatchMode(),
                        mWordComposer.getAutoCorrectionDictionaryTypeOrNull());
            }
        }
    }