abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2021-04-13 02:00:08 +0200
committerJules Aguillon2021-04-13 02:00:08 +0200
commiteac74d3f2283ec9f36e595261ab21716d910c15a (patch)
tree12adc9bf71a1306249919372202af5fdd3596ea5
parent0b1befcc8802331b15389509e77f723d992861ee (diff)
downloadunexpected-keyboard-eac74d3f2283ec9f36e595261ab21716d910c15a.tar.gz
unexpected-keyboard-eac74d3f2283ec9f36e595261ab21716d910c15a.zip
Add an option to toggle accent keys
These keys are not useful at all in English. A new option allows to hide them, [false] by default.
-rw-r--r--res/values/strings.xml2
-rw-r--r--res/xml/settings.xml6
-rw-r--r--srcs/juloo.keyboard2/Config.java4
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java3
-rw-r--r--srcs/juloo.keyboard2/KeyboardData.java21
5 files changed, 35 insertions, 1 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0d2adeb..db45f85 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -34,4 +34,6 @@
<string name="pref_key_height_summary">%sdp</string>
<string name="pref_horizontal_margin_title">Horizontal margin</string>
<string name="pref_horizontal_margin_summary">%sdp</string>
+ <string name="pref_disable_accent_keys_title">Toggle accent keys</string>
+ <string name="pref_disable_accent_keys_summary">Whether to remove the accent keys from the keyboard.</string>
</resources>
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index e25f185..a4cf7ff 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -9,6 +9,12 @@
android:entries="@array/pref_layout_entries"
android:entryValues="@array/pref_layout_values"
/>
+ <CheckBoxPreference
+ android:key="disable_accent_keys"
+ android:title="@string/pref_disable_accent_keys_title"
+ android:summary="@string/pref_disable_accent_keys_summary"
+ android:defaultValue="false"
+ />
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_category_typing">
<juloo.common.SlideBarPreference
diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java
index baecc1b..20e0311 100644
--- a/srcs/juloo.keyboard2/Config.java
+++ b/srcs/juloo.keyboard2/Config.java
@@ -9,7 +9,6 @@ class Config
{
private Keyboard2 _context;
-
public final float marginTop;
public final float keyPadding;
public final float keyBgPadding;
@@ -23,6 +22,7 @@ class Config
public float marginBottom;
public float keyHeight;
public float horizontalMargin;
+ public boolean disableAccentKeys;
public Config(Keyboard2 context)
{
@@ -43,6 +43,7 @@ class Config
marginBottom = res.getDimension(R.dimen.margin_bottom);
keyHeight = res.getDimension(R.dimen.key_height);
horizontalMargin = res.getDimension(R.dimen.horizontal_margin);
+ disableAccentKeys = false;
// from prefs
refresh();
}
@@ -62,6 +63,7 @@ class Config
marginBottom = getDipPref(prefs, "margin_bottom", marginBottom);
keyHeight = getDipPref(prefs, "key_height", keyHeight);
horizontalMargin = getDipPref(prefs, "horizontal_margin", horizontalMargin);
+ disableAccentKeys = prefs.getBoolean("disable_accent_keys", disableAccentKeys);
}
private float getDipPref(SharedPreferences prefs, String pref_name, float def)
diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java
index 50a528d..06af9ab 100644
--- a/srcs/juloo.keyboard2/KeyValue.java
+++ b/srcs/juloo.keyboard2/KeyValue.java
@@ -33,6 +33,9 @@ class KeyValue
public static final int FLAG_ACCENT5 = (1 << 20);
public static final int FLAG_ACCENT6 = (1 << 21);
+ public static final int FLAGS_ACCENTS = FLAG_ACCENT1 | FLAG_ACCENT2 |
+ FLAG_ACCENT3 | FLAG_ACCENT4 | FLAG_ACCENT5 | FLAG_ACCENT6;
+
private String _name;
private String _symbol;
private char _char;
diff --git a/srcs/juloo.keyboard2/KeyboardData.java b/srcs/juloo.keyboard2/KeyboardData.java
index 0b73b3d..b52a172 100644
--- a/srcs/juloo.keyboard2/KeyboardData.java
+++ b/srcs/juloo.keyboard2/KeyboardData.java
@@ -43,6 +43,27 @@ class KeyboardData
return (_rows);
}
+ // Remove every keys that has the given flags.
+ public void removeKeysByFlag(int flags)
+ {
+ for (Row r : _rows)
+ {
+ for (Key k : r)
+ {
+ k.key0 = _removeKeyValueFlag(k.key0, flags);
+ k.key1 = _removeKeyValueFlag(k.key1, flags);
+ k.key2 = _removeKeyValueFlag(k.key2, flags);
+ k.key3 = _removeKeyValueFlag(k.key3, flags);
+ k.key4 = _removeKeyValueFlag(k.key4, flags);
+ }
+ }
+ }
+
+ private KeyValue _removeKeyValueFlag(KeyValue v, int flags)
+ {
+ return (v != null && (v.getFlags() & flags) != 0) ? null : v;
+ }
+
public class Row extends ArrayList<Key>
{
private float _keysWidth;