Show keys description in settings

The symbols alone might be hard to understand when scrolling through the
"extra keys" option.
This commit is contained in:
Jules Aguillon 2022-10-23 21:51:43 +02:00
parent 344df4c5c1
commit ff0c0354d6
2 changed files with 25 additions and 2 deletions

View File

@ -57,10 +57,14 @@ public class ExtraKeyCheckBoxPreference extends CheckBoxPreference
int index = a.getInteger(R.styleable.ExtraKeyCheckBoxPreference_index, 0); int index = a.getInteger(R.styleable.ExtraKeyCheckBoxPreference_index, 0);
a.recycle(); a.recycle();
String key_name = extra_keys[index]; String key_name = extra_keys[index];
KeyValue kv = KeyValue.getKeyByName(key_name);
String title = kv.getString();
String descr = KeyValue.getKeyDescription(key_name);
if (descr != null)
title += " (" + descr + ")";
setKey(pref_key_of_key_name(key_name)); setKey(pref_key_of_key_name(key_name));
setDefaultValue(default_checked(key_name)); setDefaultValue(default_checked(key_name));
KeyValue kv = KeyValue.getKeyByName(key_name); setTitle(title);
setTitle(kv.getString());
_key_font = kv.hasFlags(KeyValue.FLAG_KEY_FONT); _key_font = kv.hasFlags(KeyValue.FLAG_KEY_FONT);
} }

View File

@ -342,6 +342,25 @@ final class KeyValue
addPlaceholderKey("f12_placeholder"); addPlaceholderKey("f12_placeholder");
} }
static final HashMap<String, String> keys_descr = new HashMap<String, String>();
/* Some keys have a description attached. Return [null] if otherwise. */
public static String getKeyDescription(String name)
{
return keys_descr.get(name);
}
static void addKeyDescr(String name, String descr)
{
keys_descr.put(name, descr);
}
static {
/* Keys description is shown in the settings. */
addKeyDescr("capslock", "Caps lock");
addKeyDescr("switch_greekmath", "Greek & math symbols");
}
// Substitute for [assert], which has no effect on Android. // Substitute for [assert], which has no effect on Android.
private static void check(boolean b) private static void check(boolean b)
{ {