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

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

resolved conflicts for merge of b7e6bbae to master

Change-Id: Ic02809190721472d138532d2189328519117e042
parents 41a77f9e b7e6bbae
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,7 @@ public final class InputAttributes {
    final public boolean mInputTypeNoAutoCorrect;
    final public boolean mInputTypeNoAutoCorrect;
    final public boolean mIsSettingsSuggestionStripOn;
    final public boolean mIsSettingsSuggestionStripOn;
    final public boolean mApplicationSpecifiedCompletionOn;
    final public boolean mApplicationSpecifiedCompletionOn;
    final public boolean mShouldInsertSpacesAutomatically;
    final private int mInputType;
    final private int mInputType;


    public InputAttributes(final EditorInfo editorInfo, final boolean isFullscreenMode) {
    public InputAttributes(final EditorInfo editorInfo, final boolean isFullscreenMode) {
@@ -54,6 +55,7 @@ public final class InputAttributes {
            mIsSettingsSuggestionStripOn = false;
            mIsSettingsSuggestionStripOn = false;
            mInputTypeNoAutoCorrect = false;
            mInputTypeNoAutoCorrect = false;
            mApplicationSpecifiedCompletionOn = false;
            mApplicationSpecifiedCompletionOn = false;
            mShouldInsertSpacesAutomatically = false;
        } else {
        } else {
            final int variation = inputType & InputType.TYPE_MASK_VARIATION;
            final int variation = inputType & InputType.TYPE_MASK_VARIATION;
            final boolean flagNoSuggestions =
            final boolean flagNoSuggestions =
@@ -65,6 +67,7 @@ public final class InputAttributes {
            final boolean flagAutoComplete =
            final boolean flagAutoComplete =
                    0 != (inputType & InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
                    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}.
            // Make sure that passwords are not displayed in {@link SuggestionStripView}.
            if (InputTypeUtils.isPasswordInputType(inputType)
            if (InputTypeUtils.isPasswordInputType(inputType)
                    || InputTypeUtils.isVisiblePasswordInputType(inputType)
                    || InputTypeUtils.isVisiblePasswordInputType(inputType)
@@ -78,6 +81,8 @@ public final class InputAttributes {
                mIsSettingsSuggestionStripOn = true;
                mIsSettingsSuggestionStripOn = true;
            }
            }


            mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType);

            // If it's a browser edit field and auto correct is not ON explicitly, then
            // If it's a browser edit field and auto correct is not ON explicitly, then
            // disable auto correction, but keep suggestions on.
            // disable auto correction, but keep suggestions on.
            // If NO_SUGGESTIONS is set, don't do prediction.
            // If NO_SUGGESTIONS is set, don't do prediction.
+24 −9
Original line number Original line Diff line number Diff line
@@ -29,31 +29,37 @@ public final class InputTypeUtils implements InputType {
            TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD;
            TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD;
    private static final int TEXT_VISIBLE_PASSWORD_INPUT_TYPE =
    private static final int TEXT_VISIBLE_PASSWORD_INPUT_TYPE =
            TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
            TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
    private static final int[] SUPPRESSING_AUTO_SPACES_FIELD_VARIATION = {
        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() {
    private InputTypeUtils() {
        // This utility class is not publicly instantiable.
        // 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);
        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
        return WEB_TEXT_PASSWORD_INPUT_TYPE != 0
                && inputType == WEB_TEXT_PASSWORD_INPUT_TYPE;
                && 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
        return WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE != 0
                && inputType == WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE;
                && 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
        return NUMBER_PASSWORD_INPUT_TYPE != 0
                && inputType == NUMBER_PASSWORD_INPUT_TYPE;
                && inputType == NUMBER_PASSWORD_INPUT_TYPE;
    }
    }


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


@@ -61,12 +67,12 @@ public final class InputTypeUtils implements InputType {
        return variation == TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS;
        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
        return variation == TYPE_TEXT_VARIATION_EMAIL_ADDRESS
                || isWebEmailAddressVariation(variation);
                || isWebEmailAddressVariation(variation);
    }
    }


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


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


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

    public static boolean isAutoSpaceFriendlyType(final int inputType) {
        if (TYPE_CLASS_TEXT != (TYPE_MASK_CLASS & inputType)) return false;
        final int variation = TYPE_MASK_VARIATION & inputType;
        for (final int fieldVariation : SUPPRESSING_AUTO_SPACES_FIELD_VARIATION) {
            if (variation == fieldVariation) return false;
        }
        return true;
    }
}
}
+3 −1
Original line number Original line Diff line number Diff line
@@ -2252,8 +2252,10 @@ public final class LatinIME extends InputMethodService implements KeyboardAction


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


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


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

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