mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-06-02 04:42:28 +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.PopupKeysUtilsKt;
|
||||||
import helium314.keyboard.latin.utils.SubtypeSettingsKt;
|
import helium314.keyboard.latin.utils.SubtypeSettingsKt;
|
||||||
import helium314.keyboard.latin.utils.SubtypeUtilsKt;
|
import helium314.keyboard.latin.utils.SubtypeUtilsKt;
|
||||||
import helium314.keyboard.latin.utils.ToolbarUtilsKt;
|
|
||||||
|
|
||||||
import kotlin.collections.ArraysKt;
|
import kotlin.collections.ArraysKt;
|
||||||
|
|
||||||
|
@ -37,7 +36,6 @@ public final class PreferencesSettingsFragment extends SubScreenFragment {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
addPreferencesFromResource(R.xml.prefs_screen_preferences);
|
addPreferencesFromResource(R.xml.prefs_screen_preferences);
|
||||||
|
|
||||||
final Resources res = getResources();
|
|
||||||
final Context context = getActivity();
|
final Context context = getActivity();
|
||||||
|
|
||||||
// When we are called from the Settings application but we are not already running, some
|
// 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);
|
PopupKeysUtilsKt.POPUP_KEYS_LABEL_DEFAULT, R.string.hint_source, (x) -> null);
|
||||||
return true;
|
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
|
@Override
|
||||||
|
@ -94,9 +77,7 @@ public final class PreferencesSettingsFragment extends SubScreenFragment {
|
||||||
if (key == null) return;
|
if (key == null) return;
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case Settings.PREF_POPUP_KEYS_ORDER, Settings.PREF_SHOW_POPUP_HINTS, Settings.PREF_SHOW_NUMBER_ROW,
|
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_POPUP_KEYS_LABELS_ORDER -> mReloadKeyboard = true;
|
||||||
Settings.PREF_PINNED_TOOLBAR_KEYS, Settings.PREF_QUICK_PIN_TOOLBAR_KEYS
|
|
||||||
-> mReloadKeyboard = true;
|
|
||||||
case Settings.PREF_LOCALIZED_NUMBER_ROW -> KeyboardLayoutSet.onSystemLocaleChanged();
|
case Settings.PREF_LOCALIZED_NUMBER_ROW -> KeyboardLayoutSet.onSystemLocaleChanged();
|
||||||
case Settings.PREF_SHOW_HINTS
|
case Settings.PREF_SHOW_HINTS
|
||||||
-> findPreference(Settings.PREF_POPUP_KEYS_LABELS_ORDER).setVisible(prefs.getBoolean(Settings.PREF_SHOW_HINTS, false));
|
-> 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>
|
<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 -->
|
<!-- Title of internal InputMethodPicker, strings should be same as the ones from Android system -->
|
||||||
<string name="select_input_method">Choose input method</string>
|
<string name="select_input_method">Choose input method</string>
|
||||||
<!-- Settings screen title for appearance preferences [CHAR LIMIT=33] -->
|
<!-- Settings screen title for appearance preferences -->
|
||||||
<string name="settings_screen_appearance">"Appearance"</string>
|
<string name="settings_screen_appearance">Appearance</string>
|
||||||
|
<!-- Settings screen title for toolbar preferences -->
|
||||||
|
<string name="settings_screen_toolbar">Toolbar</string>
|
||||||
<!-- Hidden features title -->
|
<!-- Hidden features title -->
|
||||||
<string name="hidden_features_title">Description of hidden features</string>
|
<string name="hidden_features_title">Description of hidden features</string>
|
||||||
<!-- Hidden features summary -->
|
<!-- Hidden features summary -->
|
||||||
|
|
|
@ -25,6 +25,12 @@
|
||||||
android:key="screen_appearance"
|
android:key="screen_appearance"
|
||||||
android:icon="@drawable/ic_settings_appearance"
|
android:icon="@drawable/ic_settings_appearance"
|
||||||
latin:singleLineTitle="false" />
|
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
|
<PreferenceScreen
|
||||||
android:fragment="helium314.keyboard.latin.settings.GestureSettingsFragment"
|
android:fragment="helium314.keyboard.latin.settings.GestureSettingsFragment"
|
||||||
android:title="@string/settings_screen_gesture"
|
android:title="@string/settings_screen_gesture"
|
||||||
|
|
|
@ -95,32 +95,6 @@
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:persistent="true" />
|
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>
|
||||||
|
|
||||||
<PreferenceCategory android:title="@string/settings_category_clipboard_history">
|
<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