diff --git a/res/xml/pin.xml b/res/xml/pin.xml index d3f6846..2f0447e 100644 --- a/res/xml/pin.xml +++ b/res/xml/pin.xml @@ -22,6 +22,6 @@ - + diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java index 9f95519..e4dbe2b 100644 --- a/srcs/juloo.keyboard2/Config.java +++ b/srcs/juloo.keyboard2/Config.java @@ -325,6 +325,27 @@ public final class Config }); } + /** Modify the pin entry layout. [main_kw] is used to map the digits into the + same script. */ + public KeyboardData modify_pinentry(KeyboardData kw, KeyboardData main_kw) + { + final KeyModifier.Map_char map_digit = KeyModifier.modify_numpad_script(main_kw.numpad_script); + return kw.mapKeys(new KeyboardData.MapKeyValues() { + public KeyValue apply(KeyValue key, boolean localized) + { + switch (key.getKind()) + { + case Char: + String modified = map_digit.apply(key.getChar()); + if (modified != null) + return key.withSymbol(modified); + break; + } + return key; + } + }); + } + private float get_dip_pref(DisplayMetrics dm, String pref_name, float def) { float value; diff --git a/srcs/juloo.keyboard2/Keyboard2.java b/srcs/juloo.keyboard2/Keyboard2.java index 6440c7d..2a6025b 100644 --- a/srcs/juloo.keyboard2/Keyboard2.java +++ b/srcs/juloo.keyboard2/Keyboard2.java @@ -88,13 +88,19 @@ public class Keyboard2 extends InputMethodService return KeyboardData.load(getResources(), layout_id); } - /** Load a layout that contains a numpad (eg. the pin entry). */ + /** Load a layout that contains a numpad. */ KeyboardData loadNumpad(int layout_id) { return _config.modify_numpad(KeyboardData.load(getResources(), layout_id), current_layout_unmodified()); } + KeyboardData loadPinentry(int layout_id) + { + return _config.modify_pinentry(KeyboardData.load(getResources(), layout_id), + current_layout_unmodified()); + } + @Override public void onCreate() { @@ -230,7 +236,7 @@ public class Keyboard2 extends InputMethodService case InputType.TYPE_CLASS_PHONE: case InputType.TYPE_CLASS_DATETIME: if (_config.pin_entry_enabled) - return loadNumpad(R.xml.pin); + return loadPinentry(R.xml.pin); else return loadNumpad(R.xml.numeric); default: