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

Commit e04c8b10 authored by Jean Chalard's avatar Jean Chalard Committed by Android Git Automerger
Browse files

am b8d76477: Add the input style to SuggestedWords.

* commit 'b8d76477':
  Add the input style to SuggestedWords.
parents 1901c331 b8d76477
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -257,6 +257,8 @@ public class Event {

    public boolean isConsumed() { return 0 != (FLAG_CONSUMED & mFlags); }

    public boolean isGesture() { return EVENT_TYPE_GESTURE == mEventType; }

    // Returns whether this is a fake key press from the suggestion strip. This happens with
    // punctuation signs selected from the suggestion strip.
    public boolean isSuggestionStripPress() {
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ public class InputTransaction {

    // Initial conditions
    public final SettingsValues mSettingsValues;
    private final Event mEvent;
    public final Event mEvent;
    public final long mTimestamp;
    public final int mSpaceState;
    public final int mShiftState;
+19 −8
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                    new Runnable() {
                        @Override
                        public void run() {
                            mHandler.postUpdateSuggestionStrip();
                            mHandler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_NONE);
                        }
                    });
    private final InputLogic mInputLogic = new InputLogic(this /* LatinIME */,
@@ -220,7 +220,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            case MSG_UPDATE_SUGGESTION_STRIP:
                cancelUpdateSuggestionStrip();
                latinIme.mInputLogic.performUpdateSuggestionStripSync(
                        latinIme.mSettings.getCurrent());
                        latinIme.mSettings.getCurrent(), msg.arg1 /* inputStyle */);
                break;
            case MSG_UPDATE_SHIFT_STATE:
                switcher.requestUpdatingShiftState(latinIme.getCurrentAutoCapsState(),
@@ -270,8 +270,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            }
        }

        public void postUpdateSuggestionStrip() {
            sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTION_STRIP), mDelayUpdateSuggestions);
        public void postUpdateSuggestionStrip(final int inputStyle) {
            sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTION_STRIP, inputStyle,
                    0 /* ignored */), mDelayUpdateSuggestions);
        }

        public void postReopenDictionaries() {
@@ -1060,7 +1061,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                        applicationSpecifiedCompletions);
        final SuggestedWords suggestedWords = new SuggestedWords(applicationSuggestedWords,
                null /* rawSuggestions */, false /* typedWordValid */, false /* willAutoCorrect */,
                false /* isObsoleteSuggestions */, false /* isPrediction */);
                false /* isObsoleteSuggestions */, false /* isPrediction */,
                SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED /* inputStyle */);
        // When in fullscreen mode, show completions generated by the application forcibly
        setSuggestedWords(suggestedWords);
    }
@@ -1451,7 +1453,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    }

    // TODO[IL]: Move this out of LatinIME.
    public void getSuggestedWords(final int sessionId, final int sequenceNumber,
    public void getSuggestedWords(final int inputStyle, final int sequenceNumber,
            final OnGetSuggestedWordsCallback callback) {
        final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
        if (keyboard == null) {
@@ -1459,7 +1461,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            return;
        }
        mInputLogic.getSuggestedWords(mSettings.getCurrent(), keyboard.getProximityInfo(),
                mKeyboardSwitcher.getKeyboardShiftMode(), sessionId, sequenceNumber, callback);
                mKeyboardSwitcher.getKeyboardShiftMode(), inputStyle, sequenceNumber, callback);
    }

    @Override
@@ -1543,7 +1545,16 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        default: // SHIFT_NO_UPDATE
        }
        if (inputTransaction.requiresUpdateSuggestions()) {
            mHandler.postUpdateSuggestionStrip();
            final int inputStyle;
            if (inputTransaction.mEvent.isSuggestionStripPress()) {
                // Suggestion strip press: no input.
                inputStyle = SuggestedWords.INPUT_STYLE_NONE;
            } else if (inputTransaction.mEvent.isGesture()) {
                inputStyle = SuggestedWords.INPUT_STYLE_TAIL_BATCH;
            } else {
                inputStyle = SuggestedWords.INPUT_STYLE_TYPING;
            }
            mHandler.postUpdateSuggestionStrip(inputStyle);
        }
        if (inputTransaction.didAffectContents()) {
            mSubtypeState.setCurrentSubtypeHasBeenUsed();
+2 −1
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ public final class PunctuationSuggestions extends SuggestedWords {
                false /* typedWordValid */,
                false /* hasAutoCorrectionCandidate */,
                false /* isObsoleteSuggestions */,
                false /* isPrediction */);
                false /* isPrediction */,
                INPUT_STYLE_NONE /* inputStyle */);
    }

    /**
+18 −19
Original line number Diff line number Diff line
@@ -40,13 +40,8 @@ public final class Suggest {
    // Session id for
    // {@link #getSuggestedWords(WordComposer,String,ProximityInfo,boolean,int)}.
    // We are sharing the same ID between typing and gesture to save RAM footprint.
    public static final int SESSION_TYPING = 0;
    public static final int SESSION_GESTURE = 0;

    // TODO: rename this to CORRECTION_OFF
    public static final int CORRECTION_NONE = 0;
    // TODO: rename this to CORRECTION_ON
    public static final int CORRECTION_FULL = 1;
    public static final int SESSION_ID_TYPING = 0;
    public static final int SESSION_ID_GESTURE = 0;

    // Close to -2**31
    private static final int SUPPRESS_SUGGEST_THRESHOLD = -2000000000;
@@ -75,14 +70,15 @@ public final class Suggest {
    public void getSuggestedWords(final WordComposer wordComposer,
            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
            final SettingsValuesForSuggestion settingsValuesForSuggestion,
            final boolean isCorrectionEnabled, final int sessionId, final int sequenceNumber,
            final boolean isCorrectionEnabled, final int inputStyle, final int sequenceNumber,
            final OnGetSuggestedWordsCallback callback) {
        if (wordComposer.isBatchMode()) {
            getSuggestedWordsForBatchInput(wordComposer, prevWordsInfo, proximityInfo,
                    settingsValuesForSuggestion, sessionId, sequenceNumber, callback);
                    settingsValuesForSuggestion, inputStyle, sequenceNumber, callback);
        } else {
            getSuggestedWordsForTypingInput(wordComposer, prevWordsInfo, proximityInfo,
                    settingsValuesForSuggestion, isCorrectionEnabled, sequenceNumber, callback);
            getSuggestedWordsForNonBatchInput(wordComposer, prevWordsInfo, proximityInfo,
                    settingsValuesForSuggestion, inputStyle, isCorrectionEnabled,
                    sequenceNumber, callback);
        }
    }

@@ -120,11 +116,11 @@ public final class Suggest {
        return firstSuggestedWordInfo.mWord;
    }

    // Retrieves suggestions for the typing input
    // Retrieves suggestions for non-batch input (typing, recorrection, predictions...)
    // and calls the callback function with the suggestions.
    private void getSuggestedWordsForTypingInput(final WordComposer wordComposer,
    private void getSuggestedWordsForNonBatchInput(final WordComposer wordComposer,
            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
            final SettingsValuesForSuggestion settingsValuesForSuggestion,
            final SettingsValuesForSuggestion settingsValuesForSuggestion, final int inputStyle,
            final boolean isCorrectionEnabled, final int sequenceNumber,
            final OnGetSuggestedWordsCallback callback) {
        final String typedWord = wordComposer.getTypedWord();
@@ -135,7 +131,7 @@ public final class Suggest {

        final SuggestionResults suggestionResults = mDictionaryFacilitator.getSuggestionResults(
                wordComposer, prevWordsInfo, proximityInfo, settingsValuesForSuggestion,
                SESSION_TYPING);
                SESSION_ID_TYPING);
        final ArrayList<SuggestedWordInfo> suggestionsContainer =
                getTransformedSuggestedWordInfoList(wordComposer, suggestionResults,
                        trailingSingleQuotesCount);
@@ -197,7 +193,8 @@ public final class Suggest {
                // rename the attribute or change the value.
                !resultsArePredictions && !allowsToBeAutoCorrected /* typedWordValid */,
                hasAutoCorrection /* willAutoCorrect */,
                false /* isObsoleteSuggestions */, resultsArePredictions, sequenceNumber));
                false /* isObsoleteSuggestions */, resultsArePredictions,
                inputStyle, sequenceNumber));
    }

    // Retrieves suggestions for the batch input
@@ -205,10 +202,11 @@ public final class Suggest {
    private void getSuggestedWordsForBatchInput(final WordComposer wordComposer,
            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
            final SettingsValuesForSuggestion settingsValuesForSuggestion,
            final int sessionId, final int sequenceNumber,
            final int inputStyle, final int sequenceNumber,
            final OnGetSuggestedWordsCallback callback) {
        final SuggestionResults suggestionResults = mDictionaryFacilitator.getSuggestionResults(
                wordComposer, prevWordsInfo, proximityInfo, settingsValuesForSuggestion, sessionId);
                wordComposer, prevWordsInfo, proximityInfo, settingsValuesForSuggestion,
                SESSION_ID_GESTURE);
        final ArrayList<SuggestedWordInfo> suggestionsContainer =
                new ArrayList<>(suggestionResults);
        final int suggestionsCount = suggestionsContainer.size();
@@ -246,7 +244,8 @@ public final class Suggest {
                true /* typedWordValid */,
                false /* willAutoCorrect */,
                false /* isObsoleteSuggestions */,
                false /* isPrediction */, sequenceNumber));
                false /* isPrediction */,
                inputStyle, sequenceNumber));
    }

    private static ArrayList<SuggestedWordInfo> getSuggestionsInfoListWithDebugInfo(
Loading