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

Commit 30f4a2a4 authored by Adrian Velicu's avatar Adrian Velicu
Browse files

Hiding SuggestedWords.EMPTY and refactoring code that compares SuggestedWords...

Hiding SuggestedWords.EMPTY and refactoring code that compares SuggestedWords instances directly to it to use isEmpty instead

Bug: 17560717
Change-Id: I7032bf0ab46f9cf5e3b3312a14e689b5496764c1
parent 1c810c67
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ public class DrawingHandler extends LeakGuardHandlerWrapper<Callbacks> {
            callbacks.dismissKeyPreviewWithoutDelay((Key)msg.obj);
            break;
        case MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT:
            callbacks.showGestureFloatingPreviewText(SuggestedWords.EMPTY);
            callbacks.showGestureFloatingPreviewText(SuggestedWords.getEmptyInstance());
            break;
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ public class GestureFloatingTextDrawingPreview extends AbstractDrawingPreview {
    private final RectF mGesturePreviewRectangle = new RectF();
    private int mPreviewTextX;
    private int mPreviewTextY;
    private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
    private SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
    private final int[] mLastPointerCoords = CoordinateUtils.newInstance();

    public GestureFloatingTextDrawingPreview(final TypedArray mainKeyboardViewAttr) {
+7 −8
Original line number Diff line number Diff line
@@ -1491,7 +1491,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        final boolean isEmptyApplicationSpecifiedCompletions =
                currentSettingsValues.isApplicationSpecifiedCompletionsOn()
                && suggestedWords.isEmpty();
        final boolean noSuggestionsFromDictionaries = (SuggestedWords.EMPTY == suggestedWords)
        final boolean noSuggestionsFromDictionaries = suggestedWords.isEmpty()
                || suggestedWords.isPunctuationSuggestions()
                || isEmptyApplicationSpecifiedCompletions;
        final boolean isBeginningOfSentencePrediction = (suggestedWords.mInputStyle
@@ -1518,7 +1518,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            final OnGetSuggestedWordsCallback callback) {
        final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
        if (keyboard == null) {
            callback.onGetSuggestedWords(SuggestedWords.EMPTY);
            callback.onGetSuggestedWords(SuggestedWords.getEmptyInstance());
            return;
        }
        mInputLogic.getSuggestedWords(mSettings.getCurrent(), keyboard.getProximityInfo(),
@@ -1526,10 +1526,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    }

    @Override
    public void showSuggestionStrip(final SuggestedWords sourceSuggestedWords) {
        final SuggestedWords suggestedWords =
                sourceSuggestedWords.isEmpty() ? SuggestedWords.EMPTY : sourceSuggestedWords;
        if (SuggestedWords.EMPTY == suggestedWords) {
    public void showSuggestionStrip(final SuggestedWords suggestedWords) {
        if (suggestedWords.isEmpty()) {
            setNeutralSuggestionStrip();
        } else {
            setSuggestedWords(suggestedWords);
@@ -1537,7 +1535,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        // Cache the auto-correction in accessibility code so we can speak it if the user
        // touches a key that will insert it.
        AccessibilityUtils.getInstance().setAutoCorrection(suggestedWords,
                sourceSuggestedWords.mTypedWord);
                suggestedWords.mTypedWord);
    }

    // Called from {@link SuggestionStripView} through the {@link SuggestionStripView#Listener}
@@ -1572,7 +1570,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    public void setNeutralSuggestionStrip() {
        final SettingsValues currentSettings = mSettings.getCurrent();
        final SuggestedWords neutralSuggestions = currentSettings.mBigramPredictionEnabled
                ? SuggestedWords.EMPTY : currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
                ? SuggestedWords.getEmptyInstance()
                : currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
        setSuggestedWords(neutralSuggestions);
    }

+5 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ public class SuggestedWords {
    public static final int MAX_SUGGESTIONS = 18;

    private static final ArrayList<SuggestedWordInfo> EMPTY_WORD_INFO_LIST = new ArrayList<>(0);
    public static final SuggestedWords EMPTY = new SuggestedWords(
    private static final SuggestedWords EMPTY = new SuggestedWords(
            EMPTY_WORD_INFO_LIST, null /* rawSuggestions */, false /* typedWordValid */,
            false /* willAutoCorrect */, false /* isObsoleteSuggestions */, INPUT_STYLE_NONE);

@@ -196,6 +196,10 @@ public class SuggestedWords {
        return result;
    }

    public static final SuggestedWords getEmptyInstance() {
        return SuggestedWords.EMPTY;
    }

    // Should get rid of the first one (what the user typed previously) from suggestions
    // and replace it with what the user currently typed.
    public static ArrayList<SuggestedWordInfo> getTypedWordAndPreviousSuggestions(
+9 −10
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ public final class InputLogic {
    // Current space state of the input method. This can be any of the above constants.
    private int mSpaceState;
    // Never null
    public SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
    public SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
    public final Suggest mSuggest;
    private final DictionaryFacilitator mDictionaryFacilitator;

@@ -151,7 +151,7 @@ public final class InputLogic {
        mSpaceState = SpaceState.NONE;
        mRecapitalizeStatus.disable(); // Do not perform recapitalize until the cursor is moved once
        mCurrentlyPressedHardwareKeys.clear();
        mSuggestedWords = SuggestedWords.EMPTY;
        mSuggestedWords = SuggestedWords.getEmptyInstance();
        // In some cases (namely, after rotation of the device) editorInfo.initialSelStart is lying
        // so we try using some heuristics to find out about these and fix them.
        mConnection.tryFixLyingCursorPosition();
@@ -325,7 +325,7 @@ public final class InputLogic {
        // however need to reset the suggestion strip right away, because we know we can't take
        // the risk of calling commitCompletion twice because we don't know how the app will react.
        if (suggestionInfo.isKindOf(SuggestedWordInfo.KIND_APP_DEFINED)) {
            mSuggestedWords = SuggestedWords.EMPTY;
            mSuggestedWords = SuggestedWords.getEmptyInstance();
            mSuggestionStripViewAccessor.setNeutralSuggestionStrip();
            inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
            resetComposingState(true /* alsoResetLastComposedWord */);
@@ -501,7 +501,7 @@ public final class InputLogic {
            final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler) {
        mInputLogicHandler.onStartBatchInput();
        handler.showGesturePreviewAndSuggestionStrip(
                SuggestedWords.EMPTY, false /* dismissGestureFloatingPreviewText */);
                SuggestedWords.getEmptyInstance(), false /* dismissGestureFloatingPreviewText */);
        handler.cancelUpdateSuggestionStrip();
        ++mAutoCommitSequenceNumber;
        mConnection.beginBatchEdit();
@@ -600,14 +600,14 @@ public final class InputLogic {
    public void onCancelBatchInput(final LatinIME.UIHandler handler) {
        mInputLogicHandler.onCancelBatchInput();
        handler.showGesturePreviewAndSuggestionStrip(
                SuggestedWords.EMPTY, true /* dismissGestureFloatingPreviewText */);
                SuggestedWords.getEmptyInstance(), true /* dismissGestureFloatingPreviewText */);
    }

    // TODO: on the long term, this method should become private, but it will be difficult.
    // Especially, how do we deal with InputMethodService.onDisplayCompletions?
    public void setSuggestedWords(final SuggestedWords suggestedWords,
            final SettingsValues settingsValues, final LatinIME.UIHandler handler) {
        if (SuggestedWords.EMPTY != suggestedWords) {
        if (!suggestedWords.isEmpty()) {
            final String autoCorrection;
            final String dictType;
            if (suggestedWords.mWillAutoCorrect) {
@@ -1393,7 +1393,7 @@ public final class InputLogic {
                        + "requested!");
            }
            // Clear the suggestions strip.
            mSuggestionStripViewAccessor.showSuggestionStrip(SuggestedWords.EMPTY);
            mSuggestionStripViewAccessor.showSuggestionStrip(SuggestedWords.getEmptyInstance());
            return;
        }

@@ -1885,9 +1885,8 @@ public final class InputLogic {
     */
    private SuggestedWords retrieveOlderSuggestions(final String typedWord,
            final SuggestedWords previousSuggestedWords) {
        final SuggestedWords oldSuggestedWords =
                previousSuggestedWords.isPunctuationSuggestions() ? SuggestedWords.EMPTY
                        : previousSuggestedWords;
        final SuggestedWords oldSuggestedWords = previousSuggestedWords.isPunctuationSuggestions()
                ? SuggestedWords.getEmptyInstance() : previousSuggestedWords;
        final ArrayList<SuggestedWords.SuggestedWordInfo> typedWordAndPreviousSuggestions =
                SuggestedWords.getTypedWordAndPreviousSuggestions(typedWord, oldSuggestedWords);
        return new SuggestedWords(typedWordAndPreviousSuggestions, null /* rawSuggestions */,
Loading