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

Commit 4adf5d9a authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Disable non-ASCII symbol keys in password input

Bug: 3384942

Change-Id: Ifa10e84f22bb6ff85dfc397fac95a0294b2a6bea
parent a9f2fe2d
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -165,4 +165,19 @@
        latin:keyOutputText="@string/keylabel_for_popular_domain"
        latin:keyHintIcon="@drawable/hint_popup_holo"
        latin:popupCharacters="@string/alternates_for_popular_domain" />
    <switch>
        <case
            latin:passwordInput="true"
        >
            <key-style
                latin:styleName="nonPasswordSymbolKeyStyle"
                latin:enabled="false" />
        </case>
        <!-- latin:passwordInput="false" -->
        <default>
            <key-style
                latin:styleName="nonPasswordSymbolKeyStyle"
                latin:enabled="true" />
        </default>
    </switch>
</merge>
+19 −0
Original line number Diff line number Diff line
@@ -46,21 +46,28 @@
        <Key
            latin:keyLabel="|" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="•"
            latin:popupCharacters="♪,♥,♠,♦,♣" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="√" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="π"
            latin:popupCharacters="Π" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="÷" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="×" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="§"
            latin:popupCharacters="¶" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="Δ" />
        <Key
            latin:keyStyle="deleteKeyStyle"
@@ -76,19 +83,25 @@
            latin:keyWidth="11.167%p"
            latin:keyEdgeFlags="left" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="£" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="¢" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="€" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="¥" />
        <Key
            latin:keyLabel="^"
            latin:popupCharacters="↑,↓,←,→" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="°" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="±"
            latin:popupCharacters="∞" />
        <Key
@@ -110,20 +123,26 @@
        <Key
            latin:keyLabel="\\" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="©" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="®" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="™" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="℅" />
        <Key
            latin:keyLabel="[" />
        <Key
            latin:keyLabel="]" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="¡" />
        <Key
            latin:keyStyle="nonPasswordSymbolKeyStyle"
            latin:keyLabel="¿" />
        <Key
            latin:keyStyle="moreKeyStyle"
+3 −3
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ import java.util.List;
 */

public class KeyboardParser {
    private static final String TAG = "KeyboardParser";
    private static final String TAG = KeyboardParser.class.getSimpleName();
    private static final boolean DEBUG = false;

    // Keyboard XML Tags
@@ -279,8 +279,8 @@ public class KeyboardParser {
            checkEndTag(TAG_KEY, parser);
        } else {
            Key key = new Key(mResources, row, mCurrentX, mCurrentY, parser, mKeyStyles);
            if (DEBUG) Log.d(TAG, String.format("<%s keyLabel=%s code=%d popupCharacters=%s />",
                    TAG_KEY, key.mLabel, key.mCode,
            if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d popupCharacters=%s />",
                    TAG_KEY, (key.mEnabled ? "" : " disabled"), key.mLabel, key.mCode,
                    Arrays.toString(key.mPopupCharacters)));
            checkEndTag(TAG_KEY, parser);
            keys.add(key);
+8 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.PorterDuff;
@@ -705,8 +706,13 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
                } else {
                    paint.setColor(mKeyTextColor);
                }
                if (key.mEnabled) {
                    // Set a drop shadow for the text
                    paint.setShadowLayer(mShadowRadius, 0, 0, mShadowColor);
                } else {
                    // Make label invisible
                    paint.setColor(Color.TRANSPARENT);
                }
                canvas.drawText(label, positionX, baseline, paint);
                // Turn off drop shadow
                paint.setShadowLayer(0, 0, 0, 0);