From 613aa283bdcab3d8d6e26fbe08aedcc49a8fe571 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Thu, 10 Aug 2023 20:55:42 +0200 Subject: [PATCH] LayoutsPreference: Remove cross button for custom layouts Remove the cross button on the right of custom layouts to reduce accidental removal. A remove button is added in the dialog for modifying the layout. --- res/values-cs/strings.xml | 1 + res/values-de/strings.xml | 1 + res/values-es/strings.xml | 1 + res/values-fa/strings.xml | 1 + res/values-fr/strings.xml | 1 + res/values-it/strings.xml | 1 + res/values-ko/strings.xml | 1 + res/values-lv/strings.xml | 1 + res/values-pl/strings.xml | 1 + res/values-pt/strings.xml | 1 + res/values-ro/strings.xml | 1 + res/values-ru/strings.xml | 1 + res/values-tr/strings.xml | 1 + res/values-vi/strings.xml | 1 + res/values-zh-rCN/strings.xml | 1 + res/values/strings.xml | 1 + srcs/juloo.keyboard2/LayoutsPreference.java | 18 ++++++++++---- 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 f4df5440..2072e7a9 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -14,6 +14,7 @@ Vlastní rozvržení Přidat alternativní rozložení Rozložení %1$d: %2$s + Vlastní rozvržení Zobrazit NumPad Nikdy diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index cebedd44..003f0472 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -14,6 +14,7 @@ Eigenes Layout Alternatives Layout hinzufügen Layout %1$d: %2$s + Eigenes Layout Ziffernblock anzeigen Nie diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 9b26c535..8f8703cd 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -14,6 +14,7 @@ Formato personalizado + Formato personalizado Mostrar pad numérico Nunca diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 32cd8e0b..7c58ca1f 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -14,6 +14,7 @@ طرح صفارشی + طرح شخصی نمایش پد شماره‌ها هرگز diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index b5407bbf..42933356 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -14,6 +14,7 @@ Disposition personnalisée Ajouter un clavier alternatif Disposition %1$d: %2$s + Disposition personnalisée Afficher le pavé numérique Jamais diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index d8424ad2..1c7b96ad 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -14,6 +14,7 @@ + diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 1ee49df4..e8e9f4a2 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -14,6 +14,7 @@ + diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 829cd3cd..b297df07 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -14,6 +14,7 @@ Pielāgots izkārtojums Pievienot aizstājējizkārtojumu Izkārtojums %1$d: %2$s + Pielāgots izkārtojums Rādīt ciparnīcu Nekad diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 867d3c51..4aef205d 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -14,6 +14,7 @@ Własny układ Dodaj dodatkowy układ Układ %1$d: %2$s + Własny układ Pokaż klawiaturę numeryczną Nigdy diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index f7ac20f7..b5c2bbcc 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -14,6 +14,7 @@ Layout personalizado Adicione um layout alternativo Layout %1$d: %2$s + Layout personalizado Mostrar Teclado Numérico Nunca diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 0b3beec9..1de85fb5 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -14,6 +14,7 @@ Aranjament personalizat + Aranjament personalizat Arată NumPad Niciodată diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index e79648da..c3490f45 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -14,6 +14,7 @@ Пользовательская раскладка + Пользовательская раскладка Показывать NumPad Никогда diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 4022f2cb..cf6133c2 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -14,6 +14,7 @@ + diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 1037d9b0..1580bf3d 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -14,6 +14,7 @@ Tùy chỉnh bố cục + Tùy chỉnh bố cục Hiện NumPad Không bao giờ diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 80277b03..3a8f6af8 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -14,6 +14,7 @@ 自定义布局 + 自定义布局 显示数字小键盘 从不 diff --git a/res/values/strings.xml b/res/values/strings.xml index c8620f76..dbf25813 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -14,6 +14,7 @@ Custom layout Add an alternate layout Layout %1$d: %2$s + Remove layout Custom layout Show NumPad Never diff --git a/srcs/juloo.keyboard2/LayoutsPreference.java b/srcs/juloo.keyboard2/LayoutsPreference.java index 87a7c3bb..d6669ba9 100644 --- a/srcs/juloo.keyboard2/LayoutsPreference.java +++ b/srcs/juloo.keyboard2/LayoutsPreference.java @@ -122,9 +122,9 @@ public class LayoutsPreference extends ListGroupPreference 1); + return (_values.size() > 1 && !(value instanceof CustomLayout)); } @Override @@ -163,7 +163,7 @@ public class LayoutsPreference extends ListGroupPreference 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 72ff9d3e..ad474117 100644 --- a/srcs/juloo.keyboard2/ListGroupPreference.java +++ b/srcs/juloo.keyboard2/ListGroupPreference.java @@ -48,7 +48,7 @@ public abstract class ListGroupPreference 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 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 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 extends PreferenceGroup select(new SelectionCallback() { 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 extends PreferenceGroup { add_item(value); } + + public boolean allow_remove() { return false; } }); } } @@ -251,6 +257,10 @@ public abstract class ListGroupPreference extends PreferenceGroup public interface SelectionCallback { 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.