LayoutsPreference: Show layout display names

The internal name of layouts was rendered.
This commit is contained in:
Jules Aguillon 2023-08-06 19:54:38 +02:00
parent ddc4ff1378
commit 8d7b3efeb1

View File

@ -9,6 +9,7 @@ import android.util.AttributeSet;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.EditText; import android.widget.EditText;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -18,7 +19,7 @@ public class LayoutsPreference extends ListGroupPreference
static final List<String> DEFAULT = Collections.singletonList("system"); static final List<String> DEFAULT = Collections.singletonList("system");
/** Layout names as stored in the preferences. */ /** Layout names as stored in the preferences. */
String[] _layout_names; List<String> _layout_names;
/** Text displayed for each layout in the dialog list. */ /** Text displayed for each layout in the dialog list. */
String[] _layout_display_names; String[] _layout_display_names;
@ -27,7 +28,7 @@ public class LayoutsPreference extends ListGroupPreference
super(ctx, attrs); super(ctx, attrs);
setKey(KEY); setKey(KEY);
Resources res = ctx.getResources(); Resources res = ctx.getResources();
_layout_names = res.getStringArray(R.array.pref_layout_values); _layout_names = Arrays.asList(res.getStringArray(R.array.pref_layout_values));
_layout_display_names = res.getStringArray(R.array.pref_layout_entries); _layout_display_names = res.getStringArray(R.array.pref_layout_entries);
} }
@ -47,7 +48,9 @@ public class LayoutsPreference extends ListGroupPreference
@Override @Override
String label_of_value(String value, int i) String label_of_value(String value, int i)
{ {
return getContext().getString(R.string.pref_layouts_item, i + 1, value); int value_i = _layout_names.indexOf(value);
String lname = value_i < 0 ? value : _layout_display_names[value_i];
return getContext().getString(R.string.pref_layouts_item, i + 1, lname);
} }
@Override @Override
@ -72,7 +75,7 @@ public class LayoutsPreference extends ListGroupPreference
.setAdapter(layouts, new DialogInterface.OnClickListener(){ .setAdapter(layouts, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) public void onClick(DialogInterface dialog, int which)
{ {
callback.select(_layout_names[which]); callback.select(_layout_names.get(which));
} }
}) })
.show(); .show();