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

Commit 16ee377b authored by Ken Wakasa's avatar Ken Wakasa
Browse files

Fix password variation check code

Change-Id: Id994112a029982b4dabd6ebca34edd1d787e5ae2
parent 58e01050
Loading
Loading
Loading
Loading
+21 −7
Original line number Diff line number Diff line
@@ -494,10 +494,24 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        return container;
    }

    private static boolean isPasswordVariation(int variation) {
        return variation == InputType.TYPE_TEXT_VARIATION_PASSWORD
                || variation == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
                || variation == InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD;
    // Please refer to TextView.isPasswordInputType
    private static boolean isPasswordInputType(int inputType) {
        final int variation =
                inputType & (InputType.TYPE_MASK_CLASS | InputType.TYPE_MASK_VARIATION);
        return (variation
                == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD))
                || (variation
                == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD))
                || (variation
                == (InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD));
    }

    // Please refer to TextView.isVisiblePasswordInputType
    private static boolean isVisiblePasswordInputType(int inputType) {
        final int variation =
                inputType & (InputType.TYPE_MASK_CLASS | InputType.TYPE_MASK_VARIATION);
        return variation
                == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
    }

    private static boolean isEmailVariation(int variation) {
@@ -525,8 +539,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        // Most such things we decide below in initializeInputAttributesAndGetMode, but we need to
        // know now whether this is a password text field, because we need to know now whether we
        // want to enable the voice button.
        mVoiceConnector.resetVoiceStates(isPasswordVariation(
                attribute.inputType & InputType.TYPE_MASK_VARIATION));
        mVoiceConnector.resetVoiceStates(isPasswordInputType(attribute.inputType)
                || isVisiblePasswordInputType(attribute.inputType));

        final int mode = initializeInputAttributesAndGetMode(attribute.inputType);

@@ -583,7 +597,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            case InputType.TYPE_CLASS_TEXT:
                mIsSettingsSuggestionStripOn = true;
                // Make sure that passwords are not displayed in candidate view
                if (isPasswordVariation(variation)) {
                if (isPasswordInputType(inputType) || isVisiblePasswordInputType(inputType)) {
                    mIsSettingsSuggestionStripOn = false;
                }
                if (isEmailVariation(variation)