diff options
| -rw-r--r-- | res/values-cs/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-de/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-es/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-fa/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-fr/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-it/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-ko/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-lv/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-pl/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-pt/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-ro/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-ru/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-tr/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-vi/strings.xml | 1 | ||||
| -rw-r--r-- | res/values-zh-rCN/strings.xml | 1 | ||||
| -rw-r--r-- | res/values/strings.xml | 1 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/LayoutsPreference.java | 18 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/ListGroupPreference.java | 24 |
18 files changed, 46 insertions, 12 deletions
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index f4df544..2072e7a 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Vlastní rozvržení</string> <string name="pref_layouts_add">Přidat alternativní rozložení</string> <string name="pref_layouts_item">Rozložení %1$d: %2$s</string> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Vlastní rozvržení</string> <string name="pref_show_numpad_title">Zobrazit NumPad</string> <string name="pref_show_numpad_never">Nikdy</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index cebedd4..003f047 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Eigenes Layout</string> <string name="pref_layouts_add">Alternatives Layout hinzufügen</string> <string name="pref_layouts_item">Layout %1$d: %2$s</string> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Eigenes Layout</string> <string name="pref_show_numpad_title">Ziffernblock anzeigen</string> <string name="pref_show_numpad_never">Nie</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 9b26c53..8f8703c 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Formato personalizado</string> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Formato personalizado</string> <string name="pref_show_numpad_title">Mostrar pad numérico</string> <string name="pref_show_numpad_never">Nunca</string> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 32cd8e0..7c58ca1 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">طرح صفارشی</string> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">طرح شخصی</string> <string name="pref_show_numpad_title">نمایش پد شمارهها</string> <string name="pref_show_numpad_never">هرگز</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index b5407bb..4293335 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Disposition personnalisée</string> <string name="pref_layouts_add">Ajouter un clavier alternatif</string> <string name="pref_layouts_item">Disposition %1$d: %2$s</string> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Disposition personnalisée</string> <string name="pref_show_numpad_title">Afficher le pavé numérique</string> <string name="pref_show_numpad_never">Jamais</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index d8424ad..1c7b96a 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -14,6 +14,7 @@ <!-- <string name="pref_layout_e_custom">Custom layout</string> --> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_show_numpad_title">Show NumPad</string> --> <!-- <string name="pref_show_numpad_never">Never</string> --> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 1ee49df..e8e9f4a 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -14,6 +14,7 @@ <!-- <string name="pref_layout_e_custom">Custom layout</string> --> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_show_numpad_title">Show NumPad</string> --> <!-- <string name="pref_show_numpad_never">Never</string> --> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 829cd3c..b297df0 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Pielāgots izkārtojums</string> <string name="pref_layouts_add">Pievienot aizstājējizkārtojumu</string> <string name="pref_layouts_item">Izkārtojums %1$d: %2$s</string> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Pielāgots izkārtojums</string> <string name="pref_show_numpad_title">Rādīt ciparnīcu</string> <string name="pref_show_numpad_never">Nekad</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 867d3c5..4aef205 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Własny układ</string> <string name="pref_layouts_add">Dodaj dodatkowy układ</string> <string name="pref_layouts_item">Układ %1$d: %2$s</string> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Własny układ</string> <string name="pref_show_numpad_title">Pokaż klawiaturę numeryczną</string> <string name="pref_show_numpad_never">Nigdy</string> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index f7ac20f..b5c2bbc 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Layout personalizado</string> <string name="pref_layouts_add">Adicione um layout alternativo</string> <string name="pref_layouts_item">Layout %1$d: %2$s</string> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Layout personalizado</string> <string name="pref_show_numpad_title">Mostrar Teclado Numérico</string> <string name="pref_show_numpad_never">Nunca</string> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 0b3beec..1de85fb 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Aranjament personalizat</string> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Aranjament personalizat</string> <string name="pref_show_numpad_title">Arată NumPad</string> <string name="pref_show_numpad_never">Niciodată</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index e79648d..c3490f4 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Пользовательская раскладка</string> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Пользовательская раскладка</string> <string name="pref_show_numpad_title">Показывать NumPad</string> <string name="pref_show_numpad_never">Никогда</string> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 4022f2c..cf6133c 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -14,6 +14,7 @@ <!-- <string name="pref_layout_e_custom">Custom layout</string> --> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <!-- <string name="pref_custom_layout_title">Custom layout</string> --> <!-- <string name="pref_show_numpad_title">Show NumPad</string> --> <!-- <string name="pref_show_numpad_never">Never</string> --> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 1037d9b..1580bf3 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Tùy chỉnh bố cục</string> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">Tùy chỉnh bố cục</string> <string name="pref_show_numpad_title">Hiện NumPad</string> <string name="pref_show_numpad_never">Không bao giờ</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 80277b0..3a8f6af 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">自定义布局</string> <!-- <string name="pref_layouts_add">Add an alternate layout</string> --> <!-- <string name="pref_layouts_item">Layout %1$d: %2$s</string> --> + <!-- <string name="pref_layouts_remove_custom">Remove layout</string> --> <string name="pref_custom_layout_title">自定义布局</string> <string name="pref_show_numpad_title">显示数字小键盘</string> <string name="pref_show_numpad_never">从不</string> diff --git a/res/values/strings.xml b/res/values/strings.xml index c8620f7..dbf2581 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -14,6 +14,7 @@ <string name="pref_layout_e_custom">Custom layout</string> <string name="pref_layouts_add">Add an alternate layout</string> <string name="pref_layouts_item">Layout %1$d: %2$s</string> + <string name="pref_layouts_remove_custom">Remove layout</string> <string name="pref_custom_layout_title">Custom layout</string> <string name="pref_show_numpad_title">Show NumPad</string> <string name="pref_show_numpad_never">Never</string> diff --git a/srcs/juloo.keyboard2/LayoutsPreference.java b/srcs/juloo.keyboard2/LayoutsPreference.java index 87a7c3b..d6669ba 100644 --- a/srcs/juloo.keyboard2/LayoutsPreference.java +++ b/srcs/juloo.keyboard2/LayoutsPreference.java @@ -122,9 +122,9 @@ public class LayoutsPreference extends ListGroupPreference<LayoutsPreference.Lay } @Override - boolean should_allow_remove_item() + boolean should_allow_remove_item(Layout value) { - return (_values.size() > 1); + return (_values.size() > 1 && !(value instanceof CustomLayout)); } @Override @@ -163,7 +163,7 @@ public class LayoutsPreference extends ListGroupPreference<LayoutsPreference.Lay { final EditText input = new EditText(getContext()); input.setText(initial_text); - new AlertDialog.Builder(getContext()) + AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()) .setView(input) .setTitle(R.string.pref_custom_layout_title) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ @@ -172,8 +172,16 @@ public class LayoutsPreference extends ListGroupPreference<LayoutsPreference.Lay callback.select(new CustomLayout(input.getText().toString())); } }) - .setNegativeButton(android.R.string.cancel, null) - .show(); + .setNegativeButton(android.R.string.cancel, null); + // Might be true when modifying an existing layout + if (callback.allow_remove() && _values.size() > 1) + dialog.setNeutralButton(R.string.pref_layouts_remove_custom, new DialogInterface.OnClickListener(){ + public void onClick(DialogInterface _dialog, int _which) + { + callback.select(null); + } + }); + dialog.show(); } /** Called when modifying a layout. Custom layouts behave differently. */ diff --git a/srcs/juloo.keyboard2/ListGroupPreference.java b/srcs/juloo.keyboard2/ListGroupPreference.java index 72ff9d3..ad47411 100644 --- a/srcs/juloo.keyboard2/ListGroupPreference.java +++ b/srcs/juloo.keyboard2/ListGroupPreference.java @@ -48,7 +48,7 @@ public abstract class ListGroupPreference<E> extends PreferenceGroup /** Called every time the list changes and allows to disable the "Remove" buttons on every items. Might be used to enforce a minimum number of items. */ - boolean should_allow_remove_item() + boolean should_allow_remove_item(E _value) { return true; } @@ -170,11 +170,10 @@ public abstract class ListGroupPreference<E> extends PreferenceGroup if (!_attached) return; removeAll(); - boolean allow_remove_item = should_allow_remove_item(); int i = 0; for (E v : _values) { - addPreference(this.new Item(getContext(), i, v, allow_remove_item)); + addPreference(this.new Item(getContext(), i, v)); i++; } _add_button = on_attach_add_button(_add_button); @@ -187,14 +186,14 @@ public abstract class ListGroupPreference<E> extends PreferenceGroup final E _value; final int _index; - public Item(Context ctx, int index, E value, boolean allow_remove) + public Item(Context ctx, int index, E value) { super(ctx); _value = value; _index = index; setPersistent(false); setTitle(label_of_value(value, index)); - if (allow_remove) + if (should_allow_remove_item(value)) setWidgetLayoutResource(R.layout.pref_listgroup_item_widget); } @@ -218,9 +217,14 @@ public abstract class ListGroupPreference<E> extends PreferenceGroup select(new SelectionCallback<E>() { public void select(E value) { - change_item(_index, value); + if (value == null) + remove_item(_index); + else + change_item(_index, value); } - }); + + public boolean allow_remove() { return true; } + }, _value); } }); return v; @@ -244,6 +248,8 @@ public abstract class ListGroupPreference<E> extends PreferenceGroup { add_item(value); } + + public boolean allow_remove() { return false; } }); } } @@ -251,6 +257,10 @@ public abstract class ListGroupPreference<E> extends PreferenceGroup public interface SelectionCallback<E> { public void select(E value); + + /** If this method returns [true], [null] might be passed to [select] to + remove the item. */ + public boolean allow_remove(); } /** Methods for serializing and deserializing abstract items. |
