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

Commit c28f0288 authored by Jean Chalard's avatar Jean Chalard
Browse files

[IL42] Inline getSuggestedWordsOrOlderSuggestionsAsync

Bug: 8636060
Change-Id: I5c47370a3ea5962caff4d40db2faa62accfc7147
parent 70433efc
Loading
Loading
Loading
Loading
+7 −17
Original line number Diff line number Diff line
@@ -182,7 +182,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            switch (msg.what) {
            case MSG_UPDATE_SUGGESTION_STRIP:
                latinIme.mInputLogic.performUpdateSuggestionStripSync(
                        latinIme.mSettings.getCurrent(), this);
                        latinIme.mSettings.getCurrent(), this /* handler */,
                        latinIme.mInputUpdater);
                break;
            case MSG_UPDATE_SHIFT_STATE:
                switcher.updateShiftState();
@@ -1245,13 +1246,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    // Implementation of {@link KeyboardActionListener}.
    @Override
    public void onCodeInput(final int primaryCode, final int x, final int y) {
        mInputLogic.onCodeInput(primaryCode, x, y, mHandler, mKeyboardSwitcher, mSubtypeSwitcher);
        mInputLogic.onCodeInput(primaryCode, x, y, mHandler, mInputUpdater,
                mKeyboardSwitcher, mSubtypeSwitcher);
    }

    // Called from PointerTracker through the KeyboardActionListener interface
    @Override
    public void onTextInput(final String rawText) {
        mInputLogic.onTextInput(mSettings.getCurrent(), rawText, mHandler);
        mInputLogic.onTextInput(mSettings.getCurrent(), rawText, mHandler, mInputUpdater);
        mKeyboardSwitcher.updateShiftState();
        mKeyboardSwitcher.onCodeInput(Constants.CODE_OUTPUT_TEXT);
    }
@@ -1564,20 +1566,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                additionalFeaturesOptions, sessionId, sequenceNumber, callback);
    }

    // TODO[IL]: Move this to InputLogic?
    public void getSuggestedWordsOrOlderSuggestionsAsync(final int sessionId,
            final int sequenceNumber, final OnGetSuggestedWordsCallback callback) {
        mInputUpdater.getSuggestedWords(sessionId, sequenceNumber,
                new OnGetSuggestedWordsCallback() {
                    @Override
                    public void onGetSuggestedWords(SuggestedWords suggestedWords) {
                        callback.onGetSuggestedWords(maybeRetrieveOlderSuggestions(
                                mInputLogic.mWordComposer.getTypedWord(), suggestedWords));
                    }
                });
    }

    private SuggestedWords maybeRetrieveOlderSuggestions(final String typedWord,
    // TODO[IL]: Move this to InputLogic
    public SuggestedWords maybeRetrieveOlderSuggestions(final String typedWord,
            final SuggestedWords suggestedWords) {
        // TODO: consolidate this into getSuggestedWords
        // We update the suggestion strip only when we have some suggestions to show, i.e. when
+27 −22
Original line number Diff line number Diff line
@@ -140,11 +140,11 @@ public final class InputLogic {
     * @param rawText the text to input.
     */
    public void onTextInput(final SettingsValues settingsValues, final String rawText,
            // TODO: remove this argument
            final LatinIME.UIHandler handler) {
            // TODO: remove these arguments
            final LatinIME.UIHandler handler, final LatinIME.InputUpdater inputUpdater) {
        mConnection.beginBatchEdit();
        if (mWordComposer.isComposingWord()) {
            commitCurrentAutoCorrection(settingsValues, rawText, handler);
            commitCurrentAutoCorrection(settingsValues, rawText, handler, inputUpdater);
        } else {
            resetComposingState(true /* alsoResetLastComposedWord */);
        }
@@ -180,9 +180,9 @@ public final class InputLogic {
     * @param y the y-coordinate where the user pressed the key, or NOT_A_COORDINATE.
     */
    public void onCodeInput(final int code, final int x, final int y,
            // TODO: remove these three arguments
            final LatinIME.UIHandler handler, final KeyboardSwitcher keyboardSwitcher,
            final SubtypeSwitcher subtypeSwitcher) {
            // TODO: remove these four arguments
            final LatinIME.UIHandler handler, final LatinIME.InputUpdater inputUpdater,
            final KeyboardSwitcher keyboardSwitcher, final SubtypeSwitcher subtypeSwitcher) {
        if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
            ResearchLogger.latinIME_onCodeInput(code, x, y);
        }
@@ -273,17 +273,17 @@ public final class InputLogic {
            } else {
                // No action label, and the action from imeOptions is NONE: this is a regular
                // enter key that should input a carriage return.
                didAutoCorrect = handleNonSpecialCharacter(settingsValues,
                        Constants.CODE_ENTER, x, y, spaceState, keyboardSwitcher, handler);
                didAutoCorrect = handleNonSpecialCharacter(settingsValues, Constants.CODE_ENTER,
                        x, y, spaceState, keyboardSwitcher, handler, inputUpdater);
            }
            break;
        case Constants.CODE_SHIFT_ENTER:
            didAutoCorrect = handleNonSpecialCharacter(settingsValues,
                    Constants.CODE_ENTER, x, y, spaceState, keyboardSwitcher, handler);
            didAutoCorrect = handleNonSpecialCharacter(settingsValues, Constants.CODE_ENTER,
                    x, y, spaceState, keyboardSwitcher, handler, inputUpdater);
            break;
        default:
            didAutoCorrect = handleNonSpecialCharacter(settingsValues,
                    code, x, y, spaceState, keyboardSwitcher, handler);
                    code, x, y, spaceState, keyboardSwitcher, handler, inputUpdater);
            break;
        }
        keyboardSwitcher.onCodeInput(code);
@@ -329,7 +329,7 @@ public final class InputLogic {
                // so we do not attempt to correct, on the assumption that if that was a dictionary
                // word, the user would probably have gestured instead.
                commitCurrentAutoCorrection(settingsValues, LastComposedWord.NOT_A_SEPARATOR,
                        handler);
                        handler, inputUpdater);
            } else {
                commitTyped(settingsValues, LastComposedWord.NOT_A_SEPARATOR);
            }
@@ -431,13 +431,14 @@ public final class InputLogic {
    private boolean handleNonSpecialCharacter(final SettingsValues settingsValues,
            final int codePoint, final int x, final int y, final int spaceState,
            // TODO: remove these arguments
            final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler) {
            final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler,
            final LatinIME.InputUpdater inputUpdater) {
        mSpaceState = SpaceState.NONE;
        final boolean didAutoCorrect;
        if (settingsValues.isWordSeparator(codePoint)
                || Character.getType(codePoint) == Character.OTHER_SYMBOL) {
            didAutoCorrect = handleSeparator(settingsValues, codePoint, x, y, spaceState,
                    keyboardSwitcher, handler);
                    keyboardSwitcher, handler, inputUpdater);
        } else {
            didAutoCorrect = false;
            if (SpaceState.PHANTOM == spaceState) {
@@ -577,7 +578,8 @@ public final class InputLogic {
    private boolean handleSeparator(final SettingsValues settingsValues,
            final int codePoint, final int x, final int y, final int spaceState,
            // TODO: remove these arguments
            final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler) {
            final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler,
            final LatinIME.InputUpdater inputUpdater) {
        boolean didAutoCorrect = false;
        // We avoid sending spaces in languages without spaces if we were composing.
        final boolean shouldAvoidSendingCode = Constants.CODE_SPACE == codePoint
@@ -593,7 +595,7 @@ public final class InputLogic {
            if (settingsValues.mCorrectionEnabled) {
                final String separator = shouldAvoidSendingCode ? LastComposedWord.NOT_A_SEPARATOR
                        : StringUtils.newSingleCodePointString(codePoint);
                commitCurrentAutoCorrection(settingsValues, separator, handler);
                commitCurrentAutoCorrection(settingsValues, separator, handler, inputUpdater);
                didAutoCorrect = true;
            } else {
                commitTyped(settingsValues, StringUtils.newSingleCodePointString(codePoint));
@@ -991,7 +993,7 @@ public final class InputLogic {

    public void performUpdateSuggestionStripSync(final SettingsValues settingsValues,
            // TODO: Remove this variable
            final LatinIME.UIHandler handler) {
            final LatinIME.UIHandler handler, final LatinIME.InputUpdater inputUpdater) {
        handler.cancelUpdateSuggestionStrip();

        // Check if we have a suggestion engine attached.
@@ -1009,11 +1011,14 @@ public final class InputLogic {
        }

        final AsyncResultHolder<SuggestedWords> holder = new AsyncResultHolder<SuggestedWords>();
        mLatinIME.getSuggestedWordsOrOlderSuggestionsAsync(Suggest.SESSION_TYPING,
        inputUpdater.getSuggestedWords(Suggest.SESSION_TYPING,
                SuggestedWords.NOT_A_SEQUENCE_NUMBER, new OnGetSuggestedWordsCallback() {
                    @Override
                    public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
                        holder.set(suggestedWords);
                        final SuggestedWords suggestedWordsWithMaybeOlderSuggestions =
                                mLatinIME.maybeRetrieveOlderSuggestions(
                                        mWordComposer.getTypedWord(), suggestedWords);
                        holder.set(suggestedWordsWithMaybeOlderSuggestions);
                    }
                }
        );
@@ -1551,11 +1556,11 @@ public final class InputLogic {
    // TODO: Make this private
    public void commitCurrentAutoCorrection(final SettingsValues settingsValues,
            final String separator,
            // TODO: Remove this argument.
            final LatinIME.UIHandler handler) {
            // TODO: Remove these arguments.
            final LatinIME.UIHandler handler, final LatinIME.InputUpdater inputUpdater) {
        // Complete any pending suggestions query first
        if (handler.hasPendingUpdateSuggestions()) {
            performUpdateSuggestionStripSync(settingsValues, handler);
            performUpdateSuggestionStripSync(settingsValues, handler, inputUpdater);
        }
        final String typedAutoCorrection = mWordComposer.getAutoCorrectionOrNull();
        final String typedWord = mWordComposer.getTypedWord();