forked from extern/Unexpected-Keyboard
6a7fbf5e50
The 'accent_slash' was missing in the extra keys setting. Allow to type more latin letters "with oblique stroke" or "with stroke" that visually have an oblique bar, that were not added to 'accent_bar'.
94 lines
2.3 KiB
Java
94 lines
2.3 KiB
Java
package juloo.keyboard2;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.TypedArray;
|
|
import android.content.SharedPreferences;
|
|
import android.preference.CheckBoxPreference;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
|
|
public class ExtraKeyCheckBoxPreference extends CheckBoxPreference
|
|
{
|
|
public static String[] extra_keys = new String[]
|
|
{
|
|
"alt",
|
|
"meta",
|
|
"accent_aigu",
|
|
"accent_grave",
|
|
"accent_double_aigu",
|
|
"accent_dot_above",
|
|
"accent_circonflexe",
|
|
"accent_tilde",
|
|
"accent_cedille",
|
|
"accent_trema",
|
|
"accent_ring",
|
|
"accent_caron",
|
|
"accent_macron",
|
|
"accent_ogonek",
|
|
"accent_breve",
|
|
"accent_slash",
|
|
"accent_bar",
|
|
"€",
|
|
"ß",
|
|
"£",
|
|
"switch_greekmath",
|
|
"capslock",
|
|
};
|
|
|
|
public static boolean default_checked(String name)
|
|
{
|
|
switch (name)
|
|
{
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
boolean _key_font;
|
|
|
|
public ExtraKeyCheckBoxPreference(Context context, AttributeSet attrs)
|
|
{
|
|
super(context, attrs);
|
|
final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ExtraKeyCheckBoxPreference);
|
|
int index = a.getInteger(R.styleable.ExtraKeyCheckBoxPreference_index, 0);
|
|
a.recycle();
|
|
String key_name = extra_keys[index];
|
|
KeyValue kv = KeyValue.getKeyByName(key_name);
|
|
String title = kv.getString();
|
|
String descr = KeyValue.getKeyDescription(key_name);
|
|
if (descr != null)
|
|
title += " (" + descr + ")";
|
|
setKey(pref_key_of_key_name(key_name));
|
|
setDefaultValue(default_checked(key_name));
|
|
setTitle(title);
|
|
_key_font = kv.hasFlags(KeyValue.FLAG_KEY_FONT);
|
|
}
|
|
|
|
@Override
|
|
protected void onBindView(View view)
|
|
{
|
|
super.onBindView(view);
|
|
TextView title = (TextView)view.findViewById(android.R.id.title);
|
|
title.setTypeface(_key_font ? Theme.getKeyFont(getContext()) : null);
|
|
}
|
|
|
|
static String pref_key_of_key_name(String key_name)
|
|
{
|
|
return "extra_key_" + key_name;
|
|
}
|
|
|
|
public static Set<KeyValue> get_extra_keys(SharedPreferences prefs)
|
|
{
|
|
HashSet<KeyValue> ks = new HashSet<KeyValue>();
|
|
for (String key_name : extra_keys)
|
|
{
|
|
if (prefs.getBoolean(pref_key_of_key_name(key_name), default_checked(key_name)))
|
|
ks.add(KeyValue.getKeyByName(key_name));
|
|
}
|
|
return ks;
|
|
}
|
|
}
|