abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/LayoutsPreference.java
diff options
context:
space:
mode:
authorJules Aguillon2023-08-08 17:58:27 +0200
committerJules Aguillon2023-08-16 12:20:40 +0200
commit0269cd65ea57a5046783bcc88243f8f2407952d8 (patch)
tree784af928a8fffc5d5f8941cbfc053ca38af15097 /srcs/juloo.keyboard2/LayoutsPreference.java
parent20ab3915e8c7628e6e80c6bbb61b9a783b91d425 (diff)
downloadunexpected-keyboard-0269cd65ea57a5046783bcc88243f8f2407952d8.tar.gz
unexpected-keyboard-0269cd65ea57a5046783bcc88243f8f2407952d8.zip
ListGroupPreference: Make items abstract
Allow items to be of any class instead of strings. Item serialization and deserialization methods are in a separate class because they are also used in a static context.
Diffstat (limited to 'srcs/juloo.keyboard2/LayoutsPreference.java')
-rw-r--r--srcs/juloo.keyboard2/LayoutsPreference.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/srcs/juloo.keyboard2/LayoutsPreference.java b/srcs/juloo.keyboard2/LayoutsPreference.java
index 4ce8dfa..a891ed8 100644
--- a/srcs/juloo.keyboard2/LayoutsPreference.java
+++ b/srcs/juloo.keyboard2/LayoutsPreference.java
@@ -13,10 +13,12 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-public class LayoutsPreference extends ListGroupPreference
+public class LayoutsPreference extends ListGroupPreference<String>
{
static final String KEY = "layouts";
static final List<String> DEFAULT = Collections.singletonList("system");
+ static final ListGroupPreference.Serializer<String> SERIALIZER =
+ new ListGroupPreference.StringSerializer();
/** Layout names as stored in the preferences. */
List<String> _layout_names;
@@ -34,7 +36,7 @@ public class LayoutsPreference extends ListGroupPreference
public static List<String> load_from_preferences(SharedPreferences prefs)
{
- return load_from_preferences(KEY, prefs, DEFAULT);
+ return load_from_preferences(KEY, prefs, DEFAULT, SERIALIZER);
}
@Override
@@ -67,6 +69,9 @@ public class LayoutsPreference extends ListGroupPreference
return (_values.size() > 1);
}
+ @Override
+ Serializer<String> get_serializer() { return SERIALIZER; }
+
void select(final SelectionCallback callback)
{
ArrayAdapter layouts = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, _layout_display_names);