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

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

Merge "Remove the input connection sidework from handleCharacter"

parents 5a603f3f dafa7a8e
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -1495,12 +1495,19 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
    private void handleCharacter(final int primaryCode, final int[] keyCodes, final int x,
            final int y, final int spaceState) {
        mVoiceProxy.handleCharacter();

        final InputConnection ic = getCurrentInputConnection();
        if (ic != null) ic.beginBatchEdit();
        if (null != ic) ic.beginBatchEdit();
        // TODO: if ic is null, does it make any sense to call this?
        handleCharacterWhileInBatchEdit(primaryCode, keyCodes, x, y, spaceState, ic);
        if (null != ic) ic.endBatchEdit();
    }

    // "ic" may be null without this crashing, but the behavior will be really strange
    private void handleCharacterWhileInBatchEdit(final int primaryCode, final int[] keyCodes,
            final int x, final int y, final int spaceState, final InputConnection ic) {
        if (SPACE_STATE_MAGIC == spaceState
                && mSettingsValues.isMagicSpaceStripper(primaryCode)) {
            removeTrailingSpaceWhileInBatchEdit(ic);
            if (null != ic) removeTrailingSpaceWhileInBatchEdit(ic);
        }

        int code = primaryCode;
@@ -1519,7 +1526,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        if (switcher.isShiftedOrShiftLocked()) {
            if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
                    || keyCodes[0] > Character.MAX_CODE_POINT) {
                if (null != ic) ic.endBatchEdit();
                return;
            }
            code = keyCodes[0];
@@ -1533,7 +1539,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
                } else {
                    // Some keys, such as [eszett], have upper case as multi-characters.
                    onTextInput(upperCaseString);
                    if (null != ic) ic.endBatchEdit();
                    return;
                }
            }
@@ -1563,7 +1568,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        } else {
            Utils.Stats.onNonSeparator((char)code, x, y);
        }
        if (null != ic) ic.endBatchEdit();
    }

    private void handleSeparator(final int primaryCode, final int x, final int y,