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

Commit 3d01cb93 authored by Gilles Debunne's avatar Gilles Debunne Committed by Android (Google) Code Review
Browse files

Merge "Removed "Select word" option on password fields." into gingerbread

parents 83366dfb 0dcad2bd
Loading
Loading
Loading
Loading
+28 −4
Original line number Diff line number Diff line
@@ -2956,6 +2956,25 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        if (imm != null) imm.restartInput(this);
    }

    /**
     * It would be better to rely on the input type for everything. A password inputType should have
     * a password transformation. We should hence use isPasswordInputType instead of this method.
     *
     * We should:
     * - Call setInputType in setKeyListener instead of changing the input type directly (which
     * would install the correct transformation).
     * - Refuse the installation of a non-password transformation in setTransformation if the input
     * type is password.
     *
     * However, this is like this for legacy reasons and we cannot break existing apps. This method
     * is useful since it matches what the user can see (obfuscated text or not).
     *
     * @return true if the current transformation method is of the password type.
     */
    private boolean hasPasswordTransformationMethod() {
        return mTransformation instanceof PasswordTransformationMethod;
    }

    private boolean isPasswordInputType(int inputType) {
        final int variation = inputType & (EditorInfo.TYPE_MASK_CLASS
                | EditorInfo.TYPE_MASK_VARIATION);
@@ -7135,7 +7154,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
    }

    private boolean canCut() {
        if (mTransformation instanceof PasswordTransformationMethod) {
        if (hasPasswordTransformationMethod()) {
            return false;
        }

@@ -7149,7 +7168,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
    }

    private boolean canCopy() {
        if (mTransformation instanceof PasswordTransformationMethod) {
        if (hasPasswordTransformationMethod()) {
            return false;
        }

@@ -7398,8 +7417,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            MenuHandler handler = new MenuHandler();

            if (canSelectText()) {
                if (!hasPasswordTransformationMethod()) {
                    // selectCurrentWord is not available on a password field and would return an
                    // arbitrary 10-charater selection around pressed position. Discard it.
                    // SelectAll is still useful to be able to clear the field using the delete key.
                    menu.add(0, ID_START_SELECTING_TEXT, 0, com.android.internal.R.string.selectText).
                    setOnMenuItemClickListener(handler);
                }
                menu.add(0, ID_SELECT_ALL, 0, com.android.internal.R.string.selectAll).
                     setOnMenuItemClickListener(handler).
                     setAlphabeticShortcut('a');