From 0269cd65ea57a5046783bcc88243f8f2407952d8 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Tue, 8 Aug 2023 17:58:27 +0200 Subject: 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. --- srcs/juloo.keyboard2/LayoutsPreference.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'srcs/juloo.keyboard2/LayoutsPreference.java') 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 { static final String KEY = "layouts"; static final List DEFAULT = Collections.singletonList("system"); + static final ListGroupPreference.Serializer SERIALIZER = + new ListGroupPreference.StringSerializer(); /** Layout names as stored in the preferences. */ List _layout_names; @@ -34,7 +36,7 @@ public class LayoutsPreference extends ListGroupPreference public static List 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 get_serializer() { return SERIALIZER; } + void select(final SelectionCallback callback) { ArrayAdapter layouts = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, _layout_display_names); -- cgit v1.2.3