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

Commit 553e2f19 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Change auto caps mode argument to int type

Bug: 6501446
Change-Id: I3f7bc0fc39edd29ebf96107c3d43b9ccc9b8022e
parent 468ac358
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.text.TextUtils;
import android.util.Log;

import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.ResearchLogger;
import com.android.inputmethod.latin.define.ProductionFlag;

@@ -30,8 +31,8 @@ import com.android.inputmethod.latin.define.ProductionFlag;
 *
 * The input events are {@link #onLoadKeyboard(String)}, {@link #onSaveKeyboardState()},
 * {@link #onPressKey(int)}, {@link #onReleaseKey(int, boolean)},
 * {@link #onCodeInput(int, boolean, boolean)}, {@link #onCancelInput(boolean)},
 * {@link #onUpdateShiftState(boolean)}, {@link #onLongPressTimeout(int)}.
 * {@link #onCodeInput(int, boolean, int)}, {@link #onCancelInput(boolean)},
 * {@link #onUpdateShiftState(int)}, {@link #onLongPressTimeout(int)}.
 *
 * The actions are {@link SwitchActions}'s methods.
 */
@@ -50,7 +51,7 @@ public class KeyboardState {
        public void setSymbolsShiftedKeyboard();

        /**
         * Request to call back {@link KeyboardState#onUpdateShiftState(boolean)}.
         * Request to call back {@link KeyboardState#onUpdateShiftState(int)}.
         */
        public void requestUpdatingShiftState();

@@ -371,14 +372,14 @@ public class KeyboardState {
        }
    }

    public void onUpdateShiftState(boolean autoCaps) {
    public void onUpdateShiftState(int autoCaps) {
        if (DEBUG_EVENT) {
            Log.d(TAG, "onUpdateShiftState: autoCaps=" + autoCaps + " " + this);
        }
        updateAlphabetShiftState(autoCaps);
    }

    private void updateAlphabetShiftState(boolean autoCaps) {
    private void updateAlphabetShiftState(int autoCaps) {
        if (!mIsAlphabetMode) return;
        if (!mShiftKeyState.isReleasing()) {
            // Ignore update shift state event while the shift key is being pressed (including
@@ -386,7 +387,7 @@ public class KeyboardState {
            return;
        }
        if (!mAlphabetShiftState.isShiftLocked() && !mShiftKeyState.isIgnoring()) {
            if (mShiftKeyState.isReleasing() && autoCaps) {
            if (mShiftKeyState.isReleasing() && autoCaps != Constants.TextUtils.CAP_MODE_OFF) {
                // Only when shift key is releasing, automatic temporary upper case will be set.
                setShifted(AUTOMATIC_SHIFT);
            } else {
@@ -521,7 +522,7 @@ public class KeyboardState {
        return false;
    }

    public void onCodeInput(int code, boolean isSinglePointer, boolean autoCaps) {
    public void onCodeInput(int code, boolean isSinglePointer, int autoCaps) {
        if (DEBUG_EVENT) {
            Log.d(TAG, "onCodeInput: code=" + Keyboard.printableCode(code)
                    + " single=" + isSinglePointer
+15 −0
Original line number Diff line number Diff line
@@ -106,6 +106,21 @@ public final class Constants {
        }
    }

    public static class TextUtils {
        /**
         * Capitalization mode for {@link android.text.TextUtils#getCapsMode}: don't capitalize
         * characters.  This value may be used with
         * {@link android.text.TextUtils#CAP_MODE_CHARACTERS},
         * {@link android.text.TextUtils#CAP_MODE_WORDS}, and
         * {@link android.text.TextUtils#CAP_MODE_SENTENCES}.
         */
        public static final int CAP_MODE_OFF = 0;

        private TextUtils() {
            // This utility class is not publicly instantiable.
        }
    }

    private Constants() {
        // This utility class is not publicly instantiable.
    }
+11 −8
Original line number Diff line number Diff line
@@ -1032,26 +1032,28 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        updateSuggestions();
    }

    public boolean getCurrentAutoCapsState() {
        if (!mSettingsValues.mAutoCap) return false;
    public int getCurrentAutoCapsState() {
        if (!mSettingsValues.mAutoCap) return Constants.TextUtils.CAP_MODE_OFF;

        final EditorInfo ei = getCurrentInputEditorInfo();
        if (ei == null) return false;
        if (ei == null) return Constants.TextUtils.CAP_MODE_OFF;

        final int inputType = ei.inputType;
        if ((inputType & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS) != 0) return true;
        if ((inputType & InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS) != 0) {
            return TextUtils.CAP_MODE_CHARACTERS;
        }

        final boolean noNeedToCheckCapsMode = (inputType & (InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
                | InputType.TYPE_TEXT_FLAG_CAP_WORDS)) == 0;
        if (noNeedToCheckCapsMode) return false;
        if (noNeedToCheckCapsMode) return Constants.TextUtils.CAP_MODE_OFF;

        final InputConnection ic = getCurrentInputConnection();
        if (ic == null) return false;
        if (ic == null) return Constants.TextUtils.CAP_MODE_OFF;
        // TODO: This blocking IPC call is heavy. Consider doing this without using IPC calls.
        // Note: getCursorCapsMode() returns the current capitalization mode that is any
        // combination of CAP_MODE_CHARACTERS, CAP_MODE_WORDS, and CAP_MODE_SENTENCES. 0 means none
        // of them.
        return ic.getCursorCapsMode(inputType) != 0;
        return ic.getCursorCapsMode(inputType);
    }

    // "ic" may be null
@@ -1522,7 +1524,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            if (ic != null) {
                // If it's the first letter, make note of auto-caps state
                if (mWordComposer.size() == 1) {
                    mWordComposer.setAutoCapitalized(getCurrentAutoCapsState());
                    mWordComposer.setAutoCapitalized(
                            getCurrentAutoCapsState() != Constants.TextUtils.CAP_MODE_OFF);
                }
                ic.setComposingText(getTextWithUnderline(mWordComposer.getTypedWord()), 1);
            }
+1 −1
Original line number Diff line number Diff line
@@ -444,7 +444,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
    }

    public static void keyboardState_onCodeInput(
            final int code, final boolean isSinglePointer, final boolean autoCaps,
            final int code, final boolean isSinglePointer, final int autoCaps,
            final KeyboardState keyboardState) {
        if (UnsLogGroup.KEYBOARDSTATE_ONCODEINPUT_ENABLED) {
            final String s = "onCodeInput: code=" + Keyboard.printableCode(code)
+2 −2
Original line number Diff line number Diff line
@@ -206,8 +206,8 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {

    // Chording input in automatic upper case.
    public void testChordingAutomaticUpperCase() {
        // Set auto caps mode on.
        setAutoCapsMode(AUTO_CAPS);
        // Set capitalize the first character of all words mode.
        setAutoCapsMode(CAP_MODE_WORDS);

        // Update shift state with auto caps enabled.
        pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
Loading