abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2024-02-14 22:41:35 +0100
committerJules Aguillon2024-02-14 22:52:25 +0100
commitd96577963e309c30bfc3e4d840eb5c3145961580 (patch)
treedb9ab381534fde4a9a6f994b5292f59cff3674af
parentf369b5d90bf6e19b0cf145d4ad484df47202ddaa (diff)
downloadunexpected-keyboard-d96577963e309c30bfc3e4d840eb5c3145961580.tar.gz
unexpected-keyboard-d96577963e309c30bfc3e4d840eb5c3145961580.zip
Don't invert the pin entry layout
The pin entry layout shouldn't be inverted as the letter indications would be meaningless and the order would be opposite to what the option specifies. The enter and action key are swapped as the automatic swapping is also removed.
-rw-r--r--res/xml/pin.xml2
-rw-r--r--srcs/juloo.keyboard2/Config.java21
-rw-r--r--srcs/juloo.keyboard2/Keyboard2.java10
3 files changed, 30 insertions, 3 deletions
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 @@
<key shift="1.0" key0="*" key1="switch_text" key3="switch_numeric"/>
<key key0="0" key3="+" key4="space"/>
<key key0="\#" key7="up" key6="right" key5="left" key8="down"/>
- <key key0="enter" key2="action"/>
+ <key key0="action" key2="enter"/>
</row>
</keyboard>
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: