From f8a2e2adcc4bef1685783e59710a845ff09d7f45 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Tue, 28 May 2024 22:02:31 +0200 Subject: [PATCH] move toolbar preferences to a separate fragment with 2 more settings coming soon this is probably justified --- .../settings/PreferencesSettingsFragment.java | 21 +------ .../latin/settings/ToolbarSettingsFragment.kt | 61 +++++++++++++++++++ .../main/res/drawable/ic_settings_toolbar.xml | 4 ++ .../ic_settings_toolbar_foreground.xml | 13 ++++ app/src/main/res/values/strings.xml | 6 +- app/src/main/res/xml/prefs.xml | 6 ++ .../main/res/xml/prefs_screen_preferences.xml | 26 -------- app/src/main/res/xml/prefs_screen_toolbar.xml | 38 ++++++++++++ 8 files changed, 127 insertions(+), 48 deletions(-) create mode 100644 app/src/main/java/helium314/keyboard/latin/settings/ToolbarSettingsFragment.kt create mode 100644 app/src/main/res/drawable/ic_settings_toolbar.xml create mode 100644 app/src/main/res/drawable/ic_settings_toolbar_foreground.xml create mode 100644 app/src/main/res/xml/prefs_screen_toolbar.xml diff --git a/app/src/main/java/helium314/keyboard/latin/settings/PreferencesSettingsFragment.java b/app/src/main/java/helium314/keyboard/latin/settings/PreferencesSettingsFragment.java index 9379113f2..ea2269cee 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/PreferencesSettingsFragment.java +++ b/app/src/main/java/helium314/keyboard/latin/settings/PreferencesSettingsFragment.java @@ -24,7 +24,6 @@ import helium314.keyboard.latin.utils.DialogUtilsKt; import helium314.keyboard.latin.utils.PopupKeysUtilsKt; import helium314.keyboard.latin.utils.SubtypeSettingsKt; import helium314.keyboard.latin.utils.SubtypeUtilsKt; -import helium314.keyboard.latin.utils.ToolbarUtilsKt; import kotlin.collections.ArraysKt; @@ -37,7 +36,6 @@ public final class PreferencesSettingsFragment extends SubScreenFragment { super.onCreate(icicle); addPreferencesFromResource(R.xml.prefs_screen_preferences); - final Resources res = getResources(); final Context context = getActivity(); // When we are called from the Settings application but we are not already running, some @@ -66,21 +64,6 @@ public final class PreferencesSettingsFragment extends SubScreenFragment { PopupKeysUtilsKt.POPUP_KEYS_LABEL_DEFAULT, R.string.hint_source, (x) -> null); return true; }); - findPreference(Settings.PREF_TOOLBAR_KEYS).setOnPreferenceClickListener((pref) -> { - DialogUtilsKt.reorderDialog(requireContext(), Settings.PREF_TOOLBAR_KEYS, ToolbarUtilsKt.getDefaultToolbarPref(), - R.string.toolbar_keys, (name) -> ToolbarUtilsKt.getToolbarIconByName(name, requireContext())); - return true; - }); - findPreference(Settings.PREF_PINNED_TOOLBAR_KEYS).setOnPreferenceClickListener((pref) -> { - DialogUtilsKt.reorderDialog(requireContext(), Settings.PREF_PINNED_TOOLBAR_KEYS, ToolbarUtilsKt.getDefaultPinnedToolbarPref(), - R.string.pinned_toolbar_keys, (name) -> ToolbarUtilsKt.getToolbarIconByName(name, requireContext())); - return true; - }); - findPreference(Settings.PREF_CLIPBOARD_TOOLBAR_KEYS).setOnPreferenceClickListener((pref) -> { - DialogUtilsKt.reorderDialog(requireContext(), Settings.PREF_CLIPBOARD_TOOLBAR_KEYS, ToolbarUtilsKt.getDefaultClipboardToolbarPref(), - R.string.clipboard_toolbar_keys, (name) -> ToolbarUtilsKt.getToolbarIconByName(name, requireContext())); - return true; - }); } @Override @@ -94,9 +77,7 @@ public final class PreferencesSettingsFragment extends SubScreenFragment { if (key == null) return; switch (key) { case Settings.PREF_POPUP_KEYS_ORDER, Settings.PREF_SHOW_POPUP_HINTS, Settings.PREF_SHOW_NUMBER_ROW, - Settings.PREF_POPUP_KEYS_LABELS_ORDER, Settings.PREF_TOOLBAR_KEYS, Settings.PREF_CLIPBOARD_TOOLBAR_KEYS, - Settings.PREF_PINNED_TOOLBAR_KEYS, Settings.PREF_QUICK_PIN_TOOLBAR_KEYS - -> mReloadKeyboard = true; + Settings.PREF_POPUP_KEYS_LABELS_ORDER -> mReloadKeyboard = true; case Settings.PREF_LOCALIZED_NUMBER_ROW -> KeyboardLayoutSet.onSystemLocaleChanged(); case Settings.PREF_SHOW_HINTS -> findPreference(Settings.PREF_POPUP_KEYS_LABELS_ORDER).setVisible(prefs.getBoolean(Settings.PREF_SHOW_HINTS, false)); diff --git a/app/src/main/java/helium314/keyboard/latin/settings/ToolbarSettingsFragment.kt b/app/src/main/java/helium314/keyboard/latin/settings/ToolbarSettingsFragment.kt new file mode 100644 index 000000000..b2f1b4ce3 --- /dev/null +++ b/app/src/main/java/helium314/keyboard/latin/settings/ToolbarSettingsFragment.kt @@ -0,0 +1,61 @@ +package helium314.keyboard.latin.settings + +import android.content.SharedPreferences +import android.os.Bundle +import androidx.preference.Preference +import helium314.keyboard.keyboard.KeyboardSwitcher +import helium314.keyboard.latin.R +import helium314.keyboard.latin.utils.defaultClipboardToolbarPref +import helium314.keyboard.latin.utils.defaultPinnedToolbarPref +import helium314.keyboard.latin.utils.defaultToolbarPref +import helium314.keyboard.latin.utils.getToolbarIconByName +import helium314.keyboard.latin.utils.reorderDialog + +class ToolbarSettingsFragment : SubScreenFragment() { + private var reloadKeyboard = false + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + addPreferencesFromResource(R.xml.prefs_screen_toolbar) + + findPreference(Settings.PREF_TOOLBAR_KEYS)?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + reorderDialog( + requireContext(), Settings.PREF_TOOLBAR_KEYS, defaultToolbarPref, + R.string.toolbar_keys + ) { getToolbarIconByName(it, requireContext()) } + true + } + findPreference(Settings.PREF_PINNED_TOOLBAR_KEYS)?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + reorderDialog( + requireContext(), Settings.PREF_PINNED_TOOLBAR_KEYS, defaultPinnedToolbarPref, + R.string.pinned_toolbar_keys + ) { getToolbarIconByName(it, requireContext()) } + true + } + findPreference(Settings.PREF_CLIPBOARD_TOOLBAR_KEYS)?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + reorderDialog( + requireContext(), Settings.PREF_CLIPBOARD_TOOLBAR_KEYS, defaultClipboardToolbarPref, + R.string.clipboard_toolbar_keys + ) { getToolbarIconByName(it, requireContext()) } + true + } + } + + override fun onPause() { + super.onPause() + if (reloadKeyboard) + KeyboardSwitcher.getInstance().forceUpdateKeyboardTheme(requireContext()) + reloadKeyboard = false + } + + override fun onSharedPreferenceChanged(prefs: SharedPreferences, key: String?) { + if (key == null) return + when (key) { + Settings.PREF_TOOLBAR_KEYS, Settings.PREF_CLIPBOARD_TOOLBAR_KEYS, Settings.PREF_PINNED_TOOLBAR_KEYS, + Settings.PREF_QUICK_PIN_TOOLBAR_KEYS -> reloadKeyboard = true + } + } +} diff --git a/app/src/main/res/drawable/ic_settings_toolbar.xml b/app/src/main/res/drawable/ic_settings_toolbar.xml new file mode 100644 index 000000000..5db7c5eb7 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_toolbar.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_settings_toolbar_foreground.xml b/app/src/main/res/drawable/ic_settings_toolbar_foreground.xml new file mode 100644 index 000000000..3831fb738 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_toolbar_foreground.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 51132e979..4e0ec40ce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -756,8 +756,10 @@ New dictionary: Tap the language to open settings Choose input method - - "Appearance" + + Appearance + + Toolbar Description of hidden features diff --git a/app/src/main/res/xml/prefs.xml b/app/src/main/res/xml/prefs.xml index 313c1e9de..cbe4fe762 100644 --- a/app/src/main/res/xml/prefs.xml +++ b/app/src/main/res/xml/prefs.xml @@ -25,6 +25,12 @@ android:key="screen_appearance" android:icon="@drawable/ic_settings_appearance" latin:singleLineTitle="false" /> + - - - - - - - - - - diff --git a/app/src/main/res/xml/prefs_screen_toolbar.xml b/app/src/main/res/xml/prefs_screen_toolbar.xml new file mode 100644 index 000000000..1c0d50333 --- /dev/null +++ b/app/src/main/res/xml/prefs_screen_toolbar.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + +