mirror of
https://github.com/Julow/Unexpected-Keyboard.git
synced 2024-12-03 20:53:36 +01:00
90 lines
2.4 KiB
Java
90 lines
2.4 KiB
Java
|
package juloo.keyboard2;
|
||
|
|
||
|
import android.app.AlertDialog;
|
||
|
import android.content.Context;
|
||
|
import android.content.DialogInterface;
|
||
|
import android.content.SharedPreferences;
|
||
|
import android.content.res.Resources;
|
||
|
import android.util.AttributeSet;
|
||
|
import android.widget.ArrayAdapter;
|
||
|
import android.widget.EditText;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.Collections;
|
||
|
import java.util.List;
|
||
|
|
||
|
public class LayoutsPreference extends ListGroupPreference
|
||
|
{
|
||
|
static final String KEY = "layouts";
|
||
|
static final List<String> DEFAULT = Collections.singletonList("system");
|
||
|
|
||
|
/** Layout names as stored in the preferences. */
|
||
|
String[] _layout_names;
|
||
|
/** Text displayed for each layout in the dialog list. */
|
||
|
String[] _layout_display_names;
|
||
|
|
||
|
public LayoutsPreference(Context ctx, AttributeSet attrs)
|
||
|
{
|
||
|
super(ctx, attrs);
|
||
|
setKey(KEY);
|
||
|
Resources res = ctx.getResources();
|
||
|
_layout_names = res.getStringArray(R.array.pref_layout_values);
|
||
|
_layout_display_names = res.getStringArray(R.array.pref_layout_entries);
|
||
|
}
|
||
|
|
||
|
public static List<String> load_from_preferences(SharedPreferences prefs)
|
||
|
{
|
||
|
return load_from_preferences(KEY, prefs, DEFAULT);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
protected void onSetInitialValue(boolean restoreValue, Object defaultValue)
|
||
|
{
|
||
|
super.onSetInitialValue(restoreValue, defaultValue);
|
||
|
if (_values.size() == 0)
|
||
|
set_values(new ArrayList<String>(DEFAULT), false);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
String label_of_value(String value, int i)
|
||
|
{
|
||
|
return getContext().getString(R.string.pref_layouts_item, i + 1, value);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
AddButton on_attach_add_button(AddButton prev_btn)
|
||
|
{
|
||
|
if (prev_btn == null)
|
||
|
return new LayoutsAddButton(getContext());
|
||
|
return prev_btn;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
boolean should_allow_remove_item()
|
||
|
{
|
||
|
return (_values.size() > 1);
|
||
|
}
|
||
|
|
||
|
void select(final SelectionCallback callback)
|
||
|
{
|
||
|
ArrayAdapter layouts = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, _layout_display_names);
|
||
|
new AlertDialog.Builder(getContext())
|
||
|
.setView(R.layout.custom_extra_key_add_dialog)
|
||
|
.setAdapter(layouts, new DialogInterface.OnClickListener(){
|
||
|
public void onClick(DialogInterface dialog, int which)
|
||
|
{
|
||
|
callback.select(_layout_names[which]);
|
||
|
}
|
||
|
})
|
||
|
.show();
|
||
|
}
|
||
|
|
||
|
class LayoutsAddButton extends AddButton
|
||
|
{
|
||
|
public LayoutsAddButton(Context ctx)
|
||
|
{
|
||
|
super(ctx);
|
||
|
setLayoutResource(R.layout.pref_layouts_add_btn);
|
||
|
}
|
||
|
}
|
||
|
}
|