diff options
| author | Jules Aguillon | 2023-07-30 23:34:48 +0200 |
|---|---|---|
| committer | Jules Aguillon | 2023-07-30 23:34:48 +0200 |
| commit | 9bd8b0854476a7d16b675dd04febf946c0f156f6 (patch) | |
| tree | 414a18c14b3e288c3dfbd6a65ae4db5202930cca /srcs | |
| parent | dad5f57a036e3f0ad7278ccee5bd248192cbbad2 (diff) | |
| download | unexpected-keyboard-9bd8b0854476a7d16b675dd04febf946c0f156f6.tar.gz unexpected-keyboard-9bd8b0854476a7d16b675dd04febf946c0f156f6.zip | |
ListGroupPreference: Allow to modify items
Diffstat (limited to 'srcs')
| -rw-r--r-- | srcs/juloo.keyboard2/ListGroupPreference.java | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/srcs/juloo.keyboard2/ListGroupPreference.java b/srcs/juloo.keyboard2/ListGroupPreference.java index 771bb1c..5631aed 100644 --- a/srcs/juloo.keyboard2/ListGroupPreference.java +++ b/srcs/juloo.keyboard2/ListGroupPreference.java @@ -113,9 +113,15 @@ public abstract class ListGroupPreference extends PreferenceGroup set_values(_values, true); } - void remove_item(String v) + void change_item(int i, String v) { - _values.remove(v); + _values.set(i, v); + set_values(_values, true); + } + + void remove_item(int i) + { + _values.remove(i); set_values(_values, true); } @@ -152,9 +158,7 @@ public abstract class ListGroupPreference extends PreferenceGroup int i = 0; for (String v : _values) { - Item item = this.new Item(getContext(), v, allow_remove_item); - item.setTitle(label_of_value(v, i)); - addPreference(item); + addPreference(this.new Item(getContext(), i, v, allow_remove_item)); i++; } _add_button = on_attach_add_button(_add_button); @@ -165,17 +169,31 @@ public abstract class ListGroupPreference extends PreferenceGroup class Item extends Preference { final String _value; + final int _index; - public Item(Context ctx, String value, boolean allow_remove) + public Item(Context ctx, int index, String value, boolean allow_remove) { super(ctx); _value = value; + _index = index; setPersistent(false); + setTitle(label_of_value(value, index)); if (allow_remove) setWidgetLayoutResource(R.layout.pref_listgroup_item_widget); } @Override + protected void onClick() + { + select(new SelectionCallback() { + public void select(String value) + { + change_item(_index, value); + } + }); + } + + @Override protected View onCreateView(ViewGroup parent) { View v = super.onCreateView(parent); @@ -185,7 +203,7 @@ public abstract class ListGroupPreference extends PreferenceGroup @Override public void onClick(View _v) { - remove_item(_value); + remove_item(_index); } }); return v; |
