mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-06-03 21:30:12 +00:00
move toolbar preferences to a separate fragment
with 2 more settings coming soon this is probably justified
This commit is contained in:
parent
388366c242
commit
f8a2e2adcc
8 changed files with 127 additions and 48 deletions
|
@ -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));
|
||||
|
|
|
@ -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<Preference>(Settings.PREF_TOOLBAR_KEYS)?.onPreferenceClickListener =
|
||||
Preference.OnPreferenceClickListener {
|
||||
reorderDialog(
|
||||
requireContext(), Settings.PREF_TOOLBAR_KEYS, defaultToolbarPref,
|
||||
R.string.toolbar_keys
|
||||
) { getToolbarIconByName(it, requireContext()) }
|
||||
true
|
||||
}
|
||||
findPreference<Preference>(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<Preference>(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
|
||||
}
|
||||
}
|
||||
}
|
4
app/src/main/res/drawable/ic_settings_toolbar.xml
Normal file
4
app/src/main/res/drawable/ic_settings_toolbar.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:inset="@dimen/settings_screen_icon_inset"
|
||||
android:drawable="@drawable/ic_settings_toolbar_foreground"/>
|
13
app/src/main/res/drawable/ic_settings_toolbar_foreground.xml
Normal file
13
app/src/main/res/drawable/ic_settings_toolbar_foreground.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!--
|
||||
icon available in Android Studio
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="40dp"
|
||||
android:width="40dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@color/foreground"
|
||||
android:pathData="M8.59,16.59L13.17,12 8.59,7.41 10,6l6,6 -6,6 -1.41,-1.41z"/>
|
||||
</vector>
|
|
@ -756,8 +756,10 @@ New dictionary:
|
|||
<string name="text_tap_languages">Tap the language to open settings</string>
|
||||
<!-- Title of internal InputMethodPicker, strings should be same as the ones from Android system -->
|
||||
<string name="select_input_method">Choose input method</string>
|
||||
<!-- Settings screen title for appearance preferences [CHAR LIMIT=33] -->
|
||||
<string name="settings_screen_appearance">"Appearance"</string>
|
||||
<!-- Settings screen title for appearance preferences -->
|
||||
<string name="settings_screen_appearance">Appearance</string>
|
||||
<!-- Settings screen title for toolbar preferences -->
|
||||
<string name="settings_screen_toolbar">Toolbar</string>
|
||||
<!-- Hidden features title -->
|
||||
<string name="hidden_features_title">Description of hidden features</string>
|
||||
<!-- Hidden features summary -->
|
||||
|
|
|
@ -25,6 +25,12 @@
|
|||
android:key="screen_appearance"
|
||||
android:icon="@drawable/ic_settings_appearance"
|
||||
latin:singleLineTitle="false" />
|
||||
<PreferenceScreen
|
||||
android:fragment="helium314.keyboard.latin.settings.ToolbarSettingsFragment"
|
||||
android:title="@string/settings_screen_toolbar"
|
||||
android:key="screen_toolbar"
|
||||
android:icon="@drawable/ic_settings_toolbar"
|
||||
latin:singleLineTitle="false" />
|
||||
<PreferenceScreen
|
||||
android:fragment="helium314.keyboard.latin.settings.GestureSettingsFragment"
|
||||
android:title="@string/settings_screen_gesture"
|
||||
|
|
|
@ -95,32 +95,6 @@
|
|||
android:defaultValue="false"
|
||||
android:persistent="true" />
|
||||
|
||||
<Preference
|
||||
android:key="toolbar_keys"
|
||||
android:title="@string/toolbar_keys" />
|
||||
|
||||
<Preference
|
||||
android:key="pinned_toolbar_keys"
|
||||
android:title="@string/pinned_toolbar_keys" />
|
||||
|
||||
<Preference
|
||||
android:key="clipboard_toolbar_keys"
|
||||
android:title="@string/clipboard_toolbar_keys" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="quick_pin_toolbar_keys"
|
||||
android:title="@string/quick_pin_toolbar_keys"
|
||||
android:summary="@string/quick_pin_toolbar_keys_summary"
|
||||
android:defaultValue="false"
|
||||
android:persistent="true" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="var_toolbar_direction"
|
||||
android:title="@string/var_toolbar_direction"
|
||||
android:summary="@string/var_toolbar_direction_summary"
|
||||
android:defaultValue="true"
|
||||
android:persistent="true" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/settings_category_clipboard_history">
|
||||
|
|
38
app/src/main/res/xml/prefs_screen_toolbar.xml
Normal file
38
app/src/main/res/xml/prefs_screen_toolbar.xml
Normal file
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2014 The Android Open Source Project
|
||||
modified
|
||||
SPDX-License-Identifier: Apache-2.0 AND GPL-3.0-only
|
||||
-->
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:title="@string/settings_screen_toolbar"
|
||||
android:key="screen_toolbar">
|
||||
|
||||
<Preference
|
||||
android:key="toolbar_keys"
|
||||
android:title="@string/toolbar_keys" />
|
||||
|
||||
<Preference
|
||||
android:key="pinned_toolbar_keys"
|
||||
android:title="@string/pinned_toolbar_keys" />
|
||||
|
||||
<Preference
|
||||
android:key="clipboard_toolbar_keys"
|
||||
android:title="@string/clipboard_toolbar_keys" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="quick_pin_toolbar_keys"
|
||||
android:title="@string/quick_pin_toolbar_keys"
|
||||
android:summary="@string/quick_pin_toolbar_keys_summary"
|
||||
android:defaultValue="false"
|
||||
android:persistent="true" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="var_toolbar_direction"
|
||||
android:title="@string/var_toolbar_direction"
|
||||
android:summary="@string/var_toolbar_direction_summary"
|
||||
android:defaultValue="true"
|
||||
android:persistent="true" />
|
||||
|
||||
</PreferenceScreen>
|
Loading…
Add table
Add a link
Reference in a new issue