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

Commit 4c911427 authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "Don't recapitalize just at the start of input"

parents 07706dc3 c84b1084
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ public final class InputLogic {
        resetComposingState(true /* alsoResetLastComposedWord */);
        mDeleteCount = 0;
        mSpaceState = SpaceState.NONE;
        mRecapitalizeStatus.stop(); // In case a recapitalization is started
        mRecapitalizeStatus.disable(); // Do not perform recapitalize until the cursor is moved once
        mCurrentlyPressedHardwareKeys.clear();
        mSuggestedWords = SuggestedWords.EMPTY;
        // In some cases (namely, after rotation of the device) editorInfo.initialSelStart is lying
@@ -345,6 +345,8 @@ public final class InputLogic {
                    newSelStart, newSelEnd, false /* shouldFinishComposition */);
        }

        // The cursor has been moved : we now accept to perform recapitalization
        mRecapitalizeStatus.enable();
        // We moved the cursor. If we are touching a word, we need to resume suggestion.
        mLatinIME.mHandler.postResumeSuggestions();
        // Stop the last recapitalization, if started.
@@ -369,10 +371,6 @@ public final class InputLogic {
            final int keyboardShiftMode,
            // TODO: remove this argument
            final LatinIME.UIHandler handler) {
        // TODO: rework the following to not squash the keycode and the code point into the same
        // var because it's confusing. Instead the switch() should handle this in a readable manner.
        final int code =
                Event.NOT_A_CODE_POINT == event.mCodePoint ? event.mKeyCode : event.mCodePoint;
        final InputTransaction inputTransaction = new InputTransaction(settingsValues, event,
                SystemClock.uptimeMillis(), mSpaceState,
                getActualCapsMode(settingsValues, keyboardShiftMode));
@@ -1138,8 +1136,8 @@ public final class InputLogic {
     * @param settingsValues The current settings values.
     */
    private void performRecapitalization(final SettingsValues settingsValues) {
        if (!mConnection.hasSelection()) {
            return; // No selection
        if (!mConnection.hasSelection() || !mRecapitalizeStatus.mIsEnabled()) {
            return; // No selection or recapitalize is disabled for now
        }
        final int selectionStart = mConnection.getExpectedSelectionStart();
        final int selectionEnd = mConnection.getExpectedSelectionEnd();
+16 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ public class RecapitalizeStatus {
    private int[] mSortedSeparators;
    private String mStringAfter;
    private boolean mIsStarted;
    private boolean mIsEnabled = true;

    private static final int[] EMPTY_STORTED_SEPARATORS = {};

@@ -74,6 +75,9 @@ public class RecapitalizeStatus {

    public void start(final int cursorStart, final int cursorEnd, final String string,
            final Locale locale, final int[] sortedSeparators) {
        if (!mIsEnabled) {
            return;
        }
        mCursorStartBefore = cursorStart;
        mStringBefore = string;
        mCursorStartAfter = cursorStart;
@@ -107,6 +111,18 @@ public class RecapitalizeStatus {
        return mIsStarted;
    }

    public void enable() {
        mIsEnabled = true;
    }

    public void disable() {
        mIsEnabled = false;
    }

    public boolean mIsEnabled() {
        return mIsEnabled;
    }

    public boolean isSetAt(final int cursorStart, final int cursorEnd) {
        return cursorStart == mCursorStartAfter && cursorEnd == mCursorEndAfter;
    }