HeliBoard/app/src/main/java/helium314/keyboard/latin/settings/GestureSettingsFragment.java

86 lines
3 KiB
Java
Raw Normal View History

2019-12-31 18:19:35 +01:00
/*
* Copyright (C) 2014 The Android Open Source Project
* modified
* SPDX-License-Identifier: Apache-2.0 AND GPL-3.0-only
2019-12-31 18:19:35 +01:00
*/
package helium314.keyboard.latin.settings;
2019-12-31 18:19:35 +01:00
2023-09-07 13:29:21 +02:00
import android.content.SharedPreferences;
import android.content.res.Resources;
2019-12-31 18:19:35 +01:00
import android.os.Bundle;
import helium314.keyboard.latin.R;
2019-12-31 18:19:35 +01:00
/**
* "Gesture typing preferences" settings sub screen.
* <p>
2019-12-31 18:19:35 +01:00
* This settings sub screen handles the following gesture typing preferences.
* - Enable gesture typing
* - Dynamic floating preview
* - Show gesture trail
* - Phrase gesture
*/
public final class GestureSettingsFragment extends SubScreenFragment {
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.prefs_screen_gesture);
setupGestureFastTypingCooldownPref();
2023-09-07 13:29:21 +02:00
refreshSettingsEnablement();
}
@Override
public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
refreshSettingsEnablement();
}
private void refreshSettingsEnablement() {
final SharedPreferences prefs = getSharedPreferences();
setPreferenceVisible(Settings.PREF_GESTURE_PREVIEW_TRAIL, Settings.readGestureInputEnabled(prefs));
setPreferenceVisible(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, Settings.readGestureInputEnabled(prefs));
setPreferenceVisible(Settings.PREF_GESTURE_SPACE_AWARE, Settings.readGestureInputEnabled(prefs));
setPreferenceVisible(Settings.PREF_GESTURE_FAST_TYPING_COOLDOWN, Settings.readGestureInputEnabled(prefs));
}
private void setupGestureFastTypingCooldownPref() {
final SeekBarDialogPreference pref = findPreference(
Settings.PREF_GESTURE_FAST_TYPING_COOLDOWN);
if (pref == null) return;
final SharedPreferences prefs = getSharedPreferences();
final Resources res = getResources();
pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
@Override
public void writeValue(final int value, final String key) {
prefs.edit().putInt(key, value).apply();
}
@Override
public void writeDefaultValue(final String key) {
prefs.edit().remove(key).apply();
}
@Override
public int readValue(final String key) {
return Settings.readGestureFastTypingCooldown(prefs, res);
}
@Override
public int readDefaultValue(final String key) {
return Settings.readDefaultGestureFastTypingCooldown(res);
}
@Override
public String getValueText(final int value) {
if (value == 0) {
return res.getString(R.string.gesture_fast_typing_cooldown_instant);
}
return res.getString(R.string.abbreviation_unit_milliseconds, String.valueOf(value));
}
@Override
public void feedbackValue(final int value) {}
});
2019-12-31 18:19:35 +01:00
}
}