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

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

Move an editing method to the RichInputConnection

Change-Id: Ie143ad008ca8deb1c5034cb80ec1cb28a6b0682d
parent 243e370f
Loading
Loading
Loading
Loading
+1 −24
Original line number Diff line number Diff line
@@ -1395,7 +1395,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            }
            if (SPACE_STATE_DOUBLE == spaceState) {
                mHandler.cancelDoubleSpacesTimer();
                if (revertDoubleSpaceWhileInBatchEdit()) {
                if (mConnection.revertDoubleSpace()) {
                    // No need to reset mSpaceState, it has already be done (that's why we
                    // receive it as a parameter)
                    return;
@@ -2075,29 +2075,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        mHandler.postUpdateSuggestions();
    }

    private boolean revertDoubleSpaceWhileInBatchEdit() {
        // Here we test whether we indeed have a period and a space before us. This should not
        // be needed, but it's there just in case something went wrong.
        final CharSequence textBeforeCursor = mConnection.getTextBeforeCursor(2, 0);
        if (!". ".equals(textBeforeCursor)) {
            // Theoretically we should not be coming here if there isn't ". " before the
            // cursor, but the application may be changing the text while we are typing, so
            // anything goes. We should not crash.
            Log.d(TAG, "Tried to revert double-space combo but we didn't find "
                    + "\". \" just before the cursor.");
            return false;
        }
        mConnection.deleteSurroundingText(2, 0);
        if (ProductionFlag.IS_EXPERIMENTAL) {
            ResearchLogger.latinIME_deleteSurroundingText(2);
        }
        mConnection.commitText("  ", 1);
        if (ProductionFlag.IS_EXPERIMENTAL) {
            ResearchLogger.latinIME_revertDoubleSpaceWhileInBatchEdit();
        }
        return true;
    }

    private boolean revertSwapPunctuation() {
        // Here we test whether we indeed have a space and something else before us. This should not
        // be needed, but it's there just in case something went wrong.
+23 −0
Original line number Diff line number Diff line
@@ -370,4 +370,27 @@ public class RichInputConnection {

        return word;
    }

    public boolean revertDoubleSpace() {
        // Here we test whether we indeed have a period and a space before us. This should not
        // be needed, but it's there just in case something went wrong.
        final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0);
        if (!". ".equals(textBeforeCursor)) {
            // Theoretically we should not be coming here if there isn't ". " before the
            // cursor, but the application may be changing the text while we are typing, so
            // anything goes. We should not crash.
            Log.d(TAG, "Tried to revert double-space combo but we didn't find "
                    + "\". \" just before the cursor.");
            return false;
        }
        deleteSurroundingText(2, 0);
        if (ProductionFlag.IS_EXPERIMENTAL) {
            ResearchLogger.latinIME_deleteSurroundingText(2);
        }
        commitText("  ", 1);
        if (ProductionFlag.IS_EXPERIMENTAL) {
            ResearchLogger.latinIME_revertDoubleSpaceWhileInBatchEdit();
        }
        return true;
    }
}