From 540384bb0a29b9e43dd4fe69fd5fc8f380fd6cbd Mon Sep 17 00:00:00 2001
From: Jules Aguillon
Date: Mon, 30 Jan 2023 23:58:47 +0100
Subject: Add optional number row
An option is added to enable an extra number row at the top of the
keyboard. Digits are removed from the keyboard while the number row is
visible.
---
res/values-cs/strings.xml | 2 ++
res/values-de/strings.xml | 2 ++
res/values-es/strings.xml | 2 ++
res/values-fr/strings.xml | 2 ++
res/values-it/strings.xml | 2 ++
res/values-ko/strings.xml | 2 ++
res/values-lv/strings.xml | 2 ++
res/values-pl/strings.xml | 2 ++
res/values-pt/strings.xml | 2 ++
res/values-ru/strings.xml | 2 ++
res/values-tr/strings.xml | 2 ++
res/values-zh-rCN/strings.xml | 2 ++
res/values/strings.xml | 2 ++
res/xml/number_row.xml | 13 +++++++++++++
res/xml/settings.xml | 1 +
srcs/juloo.keyboard2/Config.java | 8 ++++++++
srcs/juloo.keyboard2/KeyboardData.java | 14 +++++++++++---
17 files changed, 59 insertions(+), 3 deletions(-)
create mode 100644 res/xml/number_row.xml
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index fc084f6..5d03797 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -21,6 +21,8 @@
+
+
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index e810baa..b6c887e 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -21,6 +21,8 @@
Nie
Nur im Querformat
Immer
+
+
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e029a3c..1abfe80 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -21,6 +21,8 @@
+
+
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 773398b..cdd1977 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -21,6 +21,8 @@
Jamais
Seulement en mode paysage
Toujour
+
+
Disposition du pavé numérique
Du plus haut au plus bas
Du plus bas au plus haut
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index ef467bf..294693e 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -21,6 +21,8 @@
+
+
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index d11c6f7..27eb581 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -21,6 +21,8 @@
+
+
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 6854892..9abf452 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -21,6 +21,8 @@
Nekad
Tikai guleniskajā skatā
Vienmēr
+
+
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 2313c63..685f4f8 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -21,6 +21,8 @@
Nigdy
Tylko w orientacji poziomej
Zawsze
+
+
Układ klawiatury numerycznej
Od największej cyfry
Od najmniejszej cyfry
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5c3f4ed..27d7758 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -21,6 +21,8 @@
+
+
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index a845ccf..f26d0a6 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -21,6 +21,8 @@
Никогда
Только в ландшафтном режиме
Всегда
+
+
NumPad раскладка
Старшие цифры сверху
Младшие цифры сверху
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 1e9aba4..33455b1 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -21,6 +21,8 @@
+
+
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index c3c1412..f217d58 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -21,6 +21,8 @@
从不
只在横屏显示
一直显示
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8a717a4..0e1850a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -21,6 +21,8 @@
Never
Only in landscape mode
Always
+ Show number row
+ Add a number row at the top of the keyboard when the numpad is hidden
NumPad layout
High digits first
Low digits first
diff --git a/res/xml/number_row.xml b/res/xml/number_row.xml
new file mode 100644
index 0000000..de49a54
--- /dev/null
+++ b/res/xml/number_row.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index 8633ae0..4eccb02 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -5,6 +5,7 @@
+
diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java
index 5ff7951..bd0db23 100644
--- a/srcs/juloo.keyboard2/Config.java
+++ b/srcs/juloo.keyboard2/Config.java
@@ -28,6 +28,7 @@ final class Config
public boolean show_numpad = false;
// From the 'numpad_layout' option, also apply to the numeric pane.
public boolean inverse_numpad = false;
+ public boolean number_row;
public float swipe_dist_px;
public float slide_step_px;
public boolean vibrateEnabled;
@@ -111,6 +112,7 @@ final class Config
second_layout = tweak_secondary_layout(layout_of_string(res, _prefs.getString("second_layout", "none")));
custom_layout = KeyboardData.load_string(_prefs.getString("custom_layout", ""));
inverse_numpad = _prefs.getString("numpad_layout", "default").equals("low_first");
+ number_row = _prefs.getBoolean("number_row", false);
// The baseline for the swipe distance correspond to approximately the
// width of a key in portrait mode, as most layouts have 10 columns.
// Multipled by the DPI ratio because most swipes are made in the diagonals.
@@ -165,6 +167,7 @@ final class Config
* - Remove "localized" keys from other locales (not in 'extra_keys')
* - Replace the action key to show the right label
* - Swap the enter and action keys
+ * - Add the optional numpad and number row
*/
public KeyboardData modify_layout(KeyboardData kw)
{
@@ -176,8 +179,11 @@ final class Config
if (extra_keys_subtype != null)
extra_keys.addAll(extra_keys_subtype);
extra_keys.addAll(extra_keys_param);
+ boolean number_row = this.number_row && !show_numpad;
if (show_numpad)
KeyboardData.num_pad.getKeys(remove_keys);
+ if (number_row)
+ KeyboardData.number_row.getKeys(remove_keys);
kw = kw.mapKeys(new KeyboardData.MapKeyValues() {
public KeyValue apply(KeyValue key, boolean localized)
{
@@ -223,6 +229,8 @@ final class Config
});
if (show_numpad)
kw = kw.addNumPad();
+ if (number_row)
+ kw = kw.addNumberRow();
if (extra_keys.size() > 0)
kw = kw.addExtraKeys(extra_keys.iterator());
return kw;
diff --git a/srcs/juloo.keyboard2/KeyboardData.java b/srcs/juloo.keyboard2/KeyboardData.java
index 5130284..078e849 100644
--- a/srcs/juloo.keyboard2/KeyboardData.java
+++ b/srcs/juloo.keyboard2/KeyboardData.java
@@ -72,6 +72,12 @@ class KeyboardData
return new KeyboardData(extendedRows, compute_max_width(extendedRows));
}
+ public KeyboardData addNumberRow()
+ {
+ rows.add(0, number_row.updateWidth(keysWidth));
+ return this;
+ }
+
public Key findKeyWithValue(KeyValue kv)
{
for (Row r : rows)
@@ -104,6 +110,7 @@ class KeyboardData
}
public static Row bottom_row;
+ public static Row number_row;
public static KeyboardData num_pad;
public static KeyboardData pin_entry;
private static Map _layoutCache = new HashMap();
@@ -112,7 +119,8 @@ class KeyboardData
{
try
{
- bottom_row = parse_bottom_row(res.getXml(R.xml.bottom_row));
+ bottom_row = parse_row(res.getXml(R.xml.bottom_row));
+ number_row = parse_row(res.getXml(R.xml.number_row));
num_pad = parse_keyboard(res.getXml(R.xml.numpad));
}
catch (Exception e)
@@ -187,10 +195,10 @@ class KeyboardData
return w;
}
- private static Row parse_bottom_row(XmlPullParser parser) throws Exception
+ private static Row parse_row(XmlPullParser parser) throws Exception
{
if (!expect_tag(parser, "row"))
- throw new Exception("Failed to parse bottom row");
+ throw new Exception("Failed to parse row");
return Row.parse(parser);
}
--
cgit v1.2.3