abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2
diff options
context:
space:
mode:
authorJules Aguillon2023-07-30 23:34:48 +0200
committerJules Aguillon2023-07-30 23:34:48 +0200
commit9bd8b0854476a7d16b675dd04febf946c0f156f6 (patch)
tree414a18c14b3e288c3dfbd6a65ae4db5202930cca /srcs/juloo.keyboard2
parentdad5f57a036e3f0ad7278ccee5bd248192cbbad2 (diff)
downloadunexpected-keyboard-9bd8b0854476a7d16b675dd04febf946c0f156f6.tar.gz
unexpected-keyboard-9bd8b0854476a7d16b675dd04febf946c0f156f6.zip
ListGroupPreference: Allow to modify items
Diffstat (limited to 'srcs/juloo.keyboard2')
-rw-r--r--srcs/juloo.keyboard2/ListGroupPreference.java32
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;