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

Commit 16bfac9f authored by Mohammadinamul Sheik's avatar Mohammadinamul Sheik
Browse files

Add StatsUtils.onAutoCorrection method.

Change-Id: I9547b6c0f082ef7c09b251a6458badb65a841229
parent e3db14ca
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());
            }
        }
    }