Unexpected-Keyboard/srcs/juloo.keyboard2/Config.java

89 lines
2.8 KiB
Java
Raw Normal View History

2015-10-29 12:49:40 +01:00
package juloo.keyboard2;
import android.content.res.Resources;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.util.TypedValue;
class Config
{
private Keyboard2 _context;
public final float marginTop;
public final float keyPadding;
public final float keyBgPadding;
public final float keyRound;
public float subValueDist;
public boolean vibrateEnabled;
public long vibrateDuration;
public long longPressTimeout;
public long longPressInterval;
public float marginBottom;
public float keyHeight;
public float horizontalMargin;
public boolean disableAccentKeys;
2021-04-20 00:34:21 +02:00
public boolean preciseRepeat;
2021-04-24 23:22:25 +02:00
public float characterSize; // Ratio
2015-10-29 12:49:40 +01:00
public boolean shouldOfferSwitchingToNextInputMethod;
2015-10-29 12:49:40 +01:00
public Config(Keyboard2 context)
{
Resources res = context.getResources();
_context = context;
// static values
marginTop = res.getDimension(R.dimen.margin_top);
keyPadding = res.getDimension(R.dimen.key_padding);
keyBgPadding = res.getDimension(R.dimen.key_bg_padding);
keyRound = res.getDimension(R.dimen.key_round);
// default values
subValueDist = 10f;
vibrateEnabled = true;
vibrateDuration = 20;
longPressTimeout = 600;
longPressInterval = 65;
marginBottom = res.getDimension(R.dimen.margin_bottom);
keyHeight = res.getDimension(R.dimen.key_height);
horizontalMargin = res.getDimension(R.dimen.horizontal_margin);
disableAccentKeys = false;
2021-04-20 00:34:21 +02:00
preciseRepeat = true;
2021-04-24 23:22:25 +02:00
characterSize = 1.f;
2015-10-29 12:49:40 +01:00
// from prefs
refresh();
// initialized later
shouldOfferSwitchingToNextInputMethod = false;
2015-10-29 12:49:40 +01:00
}
/*
** Reload prefs
*/
public void refresh()
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(_context);
subValueDist = prefs.getFloat("sub_value_dist", subValueDist);
vibrateEnabled = prefs.getBoolean("vibrate_enabled", vibrateEnabled);
vibrateDuration = prefs.getInt("vibrate_duration", (int)vibrateDuration);
longPressTimeout = prefs.getInt("longpress_timeout", (int)longPressTimeout);
longPressInterval = prefs.getInt("longpress_interval", (int)longPressInterval);
marginBottom = getDipPref(prefs, "margin_bottom", marginBottom);
keyHeight = getDipPref(prefs, "key_height", keyHeight);
horizontalMargin = getDipPref(prefs, "horizontal_margin", horizontalMargin);
disableAccentKeys = prefs.getBoolean("disable_accent_keys", disableAccentKeys);
2021-04-20 00:34:21 +02:00
preciseRepeat = prefs.getBoolean("precise_repeat", preciseRepeat);
2021-04-24 23:22:25 +02:00
characterSize = prefs.getFloat("character_size", characterSize);
2015-10-29 12:49:40 +01:00
}
private float getDipPref(SharedPreferences prefs, String pref_name, float def)
{
int value = prefs.getInt(pref_name, -1);
if (value < 0)
return (def);
return (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, value,
_context.getResources().getDisplayMetrics()));
}
}