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

Commit 8bf93c4b authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Introduce timeout for "." shortcut"

parents 7e99a28d fc20f219
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@
    <integer name="config_long_press_key_timeout">400</integer>
    <integer name="config_long_press_shift_key_timeout">1200</integer>
    <integer name="config_touch_noise_threshold_millis">40</integer>
    <integer name="config_double_spaces_turn_into_period_timeout">1100</integer>
    <dimen name="config_touch_noise_threshold_distance">2.0mm</dimen>
    <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
    <string name="config_default_keyboard_theme_id" translatable="false">4</string>
+23 −2
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    private int mConfigDelayBeforeFadeoutLanguageOnSpacebar;
    private int mConfigDurationOfFadeoutLanguageOnSpacebar;
    private float mConfigFinalFadeoutFactorOfLanguageOnSpacebar;
    private long mConfigDoubleSpacesTurnIntoPeriodTimeout;

    private int mCorrectionMode;
    private int mCommittedLength;
@@ -269,6 +270,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        private static final int MSG_VOICE_RESULTS = 3;
        private static final int MSG_FADEOUT_LANGUAGE_ON_SPACEBAR = 4;
        private static final int MSG_DISMISS_LANGUAGE_ON_SPACEBAR = 5;
        private static final int MSG_SPACE_TYPED = 6;

        @Override
        public void handleMessage(Message msg) {
@@ -357,6 +359,20 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                }
            }
        }

        public void startDoubleSpacesTimer() {
            removeMessages(MSG_SPACE_TYPED);
            sendMessageDelayed(obtainMessage(MSG_SPACE_TYPED),
                    mConfigDoubleSpacesTurnIntoPeriodTimeout);
        }

        public void cancelDoubleSpacesTimer() {
            removeMessages(MSG_SPACE_TYPED);
        }

        public boolean isAcceptingDoubleSpaces() {
            return hasMessages(MSG_SPACE_TYPED);
        }
    }

    @Override
@@ -398,6 +414,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                R.integer.config_duration_of_fadeout_language_on_spacebar);
        mConfigFinalFadeoutFactorOfLanguageOnSpacebar = res.getInteger(
                R.integer.config_final_fadeout_percentage_of_language_on_spacebar) / 100.0f;
        mConfigDoubleSpacesTurnIntoPeriodTimeout = res.getInteger(
                R.integer.config_double_spaces_turn_into_period_timeout);

        Utils.GCUtils.getInstance().reset();
        boolean tryGC = true;
@@ -1004,7 +1022,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    }

    private void doubleSpace() {
        //if (!mAutoPunctuate) return;
        if (mCorrectionMode == Suggest.CORRECTION_NONE) return;
        final InputConnection ic = getCurrentInputConnection();
        if (ic == null) return;
@@ -1012,13 +1029,17 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        if (lastThree != null && lastThree.length() == 3
                && Character.isLetterOrDigit(lastThree.charAt(0))
                && lastThree.charAt(1) == Keyboard.CODE_SPACE
                && lastThree.charAt(2) == Keyboard.CODE_SPACE) {
                && lastThree.charAt(2) == Keyboard.CODE_SPACE
                && mHandler.isAcceptingDoubleSpaces()) {
            mHandler.cancelDoubleSpacesTimer();
            ic.beginBatchEdit();
            ic.deleteSurroundingText(2, 0);
            ic.commitText(". ", 1);
            ic.endBatchEdit();
            mKeyboardSwitcher.updateShiftState();
            mJustAddedAutoSpace = true;
        } else {
            mHandler.startDoubleSpacesTimer();
        }
    }