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

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

Merge "Only add spaces automatically when appropriate." into jb-mr1.1-dev

parents 187e683a 6ce66d1c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ public final class InputAttributes {
            final boolean flagAutoComplete =
                    0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

            // TODO: Have a helper method in InputTypeUtils
            // Make sure that passwords are not displayed in {@link SuggestionStripView}.
            if (InputTypeUtils.isPasswordInputType(inputType)
                    || InputTypeUtils.isVisiblePasswordInputType(inputType)
@@ -161,6 +162,10 @@ public final class InputAttributes {
            Log.i(TAG, "  TYPE_TEXT_FLAG_AUTO_COMPLETE");
    }

    public boolean shouldInsertSpacesAutomatically() {
        return InputTypeUtils.isAutoSpaceFriendlyType(mInputType);
    }

    // Pretty print
    @Override
    public String toString() {
+19 −9
Original line number Diff line number Diff line
@@ -29,31 +29,37 @@ public final class InputTypeUtils implements InputType {
            TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD;
    private static final int TEXT_VISIBLE_PASSWORD_INPUT_TYPE =
            TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
    private static final int SUPPRESSING_AUTO_SPACES_FIELD_TYPE =
            InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
            | InputType.TYPE_TEXT_VARIATION_PASSWORD
            | InputType.TYPE_TEXT_VARIATION_URI
            | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
            | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD;

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

    private static boolean isWebEditTextInputType(int inputType) {
    private static boolean isWebEditTextInputType(final int inputType) {
        return inputType == (TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_WEB_EDIT_TEXT);
    }

    private static boolean isWebPasswordInputType(int inputType) {
    private static boolean isWebPasswordInputType(final int inputType) {
        return WEB_TEXT_PASSWORD_INPUT_TYPE != 0
                && inputType == WEB_TEXT_PASSWORD_INPUT_TYPE;
    }

    private static boolean isWebEmailAddressInputType(int inputType) {
    private static boolean isWebEmailAddressInputType(final int inputType) {
        return WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE != 0
                && inputType == WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE;
    }

    private static boolean isNumberPasswordInputType(int inputType) {
    private static boolean isNumberPasswordInputType(final int inputType) {
        return NUMBER_PASSWORD_INPUT_TYPE != 0
                && inputType == NUMBER_PASSWORD_INPUT_TYPE;
    }

    private static boolean isTextPasswordInputType(int inputType) {
    private static boolean isTextPasswordInputType(final int inputType) {
        return inputType == TEXT_PASSWORD_INPUT_TYPE;
    }

@@ -61,12 +67,12 @@ public final class InputTypeUtils implements InputType {
        return variation == TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS;
    }

    public static boolean isEmailVariation(int variation) {
    public static boolean isEmailVariation(final int variation) {
        return variation == TYPE_TEXT_VARIATION_EMAIL_ADDRESS
                || isWebEmailAddressVariation(variation);
    }

    public static boolean isWebInputType(int inputType) {
    public static boolean isWebInputType(final int inputType) {
        final int maskedInputType =
                inputType & (TYPE_MASK_CLASS | TYPE_MASK_VARIATION);
        return isWebEditTextInputType(maskedInputType) || isWebPasswordInputType(maskedInputType)
@@ -74,7 +80,7 @@ public final class InputTypeUtils implements InputType {
    }

    // Please refer to TextView.isPasswordInputType
    public static boolean isPasswordInputType(int inputType) {
    public static boolean isPasswordInputType(final int inputType) {
        final int maskedInputType =
                inputType & (TYPE_MASK_CLASS | TYPE_MASK_VARIATION);
        return isTextPasswordInputType(maskedInputType) || isWebPasswordInputType(maskedInputType)
@@ -82,9 +88,13 @@ public final class InputTypeUtils implements InputType {
    }

    // Please refer to TextView.isVisiblePasswordInputType
    public static boolean isVisiblePasswordInputType(int inputType) {
    public static boolean isVisiblePasswordInputType(final int inputType) {
        final int maskedInputType =
                inputType & (TYPE_MASK_CLASS | TYPE_MASK_VARIATION);
        return maskedInputType == TEXT_VISIBLE_PASSWORD_INPUT_TYPE;
    }

    public static boolean isAutoSpaceFriendlyType(final int inputType) {
        return 0 == (inputType & SUPPRESSING_AUTO_SPACES_FIELD_TYPE);
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -2257,8 +2257,10 @@ public final class LatinIME extends InputMethodService implements KeyboardAction

    // This essentially inserts a space, and that's it.
    public void promotePhantomSpace() {
        if (mCurrentSettings.shouldInsertSpacesAutomatically()) {
            sendKeyCodePoint(Keyboard.CODE_SPACE);
        }
    }

    // Used by the RingCharBuffer
    public boolean isWordSeparator(final int code) {
+4 −0
Original line number Diff line number Diff line
@@ -271,6 +271,10 @@ public final class SettingsValues {
        return mPhantomSpacePromotingSymbols.contains(String.valueOf((char)code));
    }

    public boolean shouldInsertSpacesAutomatically() {
        return mInputAttributes.shouldInsertSpacesAutomatically();
    }

    private static boolean isAutoCorrectEnabled(final Resources res,
            final String currentAutoCorrectionSetting) {
        final String autoCorrectionOff = res.getString(