From e845ce798316100ccdf1bd00ed1313787ef96f37 Mon Sep 17 00:00:00 2001 From: ottoptj Date: Fri, 30 Aug 2024 23:22:39 +0300 Subject: [PATCH] Reorganized launcher settings --- app/build.gradle.kts | 1 + .../settings/AppMenuSettingsFragment.kt | 12 + .../settings/HomeSettingsFragment.kt | 76 ++++++ .../yamlauncher/settings/SettingsFragment.kt | 93 +++---- app/src/main/res/values/arrays.xml | 10 + app/src/main/res/xml/app_menu_preferences.xml | 77 ++++++ app/src/main/res/xml/home_preferences.xml | 199 +++++++++++++++ app/src/main/res/xml/root_preferences.xml | 240 +----------------- 8 files changed, 413 insertions(+), 295 deletions(-) create mode 100644 app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt create mode 100644 app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt create mode 100644 app/src/main/res/xml/app_menu_preferences.xml create mode 100644 app/src/main/res/xml/home_preferences.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b0964aa..fdaa6ce 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -50,4 +50,5 @@ dependencies { implementation("com.google.android.material:material:1.12.0") implementation("androidx.recyclerview:recyclerview:1.3.2") implementation("androidx.preference:preference-ktx:1.2.1") + implementation("androidx.preference:preference:1.2.1") } \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt new file mode 100644 index 0000000..7d596f8 --- /dev/null +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt @@ -0,0 +1,12 @@ +package eu.ottop.yamlauncher.settings + +import android.os.Bundle +import androidx.preference.PreferenceFragmentCompat +import eu.ottop.yamlauncher.R + +class AppMenuSettingsFragment : PreferenceFragmentCompat() { + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + setPreferencesFromResource(R.xml.app_menu_preferences, rootKey) + } +} \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt new file mode 100644 index 0000000..c160249 --- /dev/null +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt @@ -0,0 +1,76 @@ +package eu.ottop.yamlauncher.settings + +import android.os.Bundle +import androidx.preference.Preference +import androidx.preference.PreferenceFragmentCompat +import androidx.preference.SwitchPreference +import eu.ottop.yamlauncher.R + +class HomeSettingsFragment : PreferenceFragmentCompat() { + + private lateinit var sharedPreferenceManager: SharedPreferenceManager + + private var manualLocationPref: Preference? = null + private var leftSwipePref: Preference? = null + private var rightSwipePref: Preference? = null + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + setPreferencesFromResource(R.xml.home_preferences, rootKey) + + sharedPreferenceManager = SharedPreferenceManager(requireContext()) + + val gpsLocationPref = findPreference("gpsLocation") + manualLocationPref = findPreference("manualLocation") + leftSwipePref = findPreference("leftSwipeApp") + rightSwipePref = findPreference("rightSwipeApp") + + // Only enable manual location when gps location is disabled + if (gpsLocationPref != null && manualLocationPref != null) { + manualLocationPref?.isEnabled = !gpsLocationPref.isChecked + + gpsLocationPref.onPreferenceChangeListener = + Preference.OnPreferenceChangeListener { _, newValue -> + val isGpsEnabled = newValue as Boolean + manualLocationPref?.isEnabled = !isGpsEnabled + true + } + + manualLocationPref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, LocationFragment()) + .addToBackStack(null) + .commit() + true + } + } + + leftSwipePref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, GestureAppsFragment("left")) + .addToBackStack(null) + .commit() + true } + + rightSwipePref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, GestureAppsFragment("right")) + .addToBackStack(null) + .commit() + true } + } + + override fun onResume() { + super.onResume() + manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion() + + leftSwipePref?.summary = sharedPreferenceManager.getGestureName("left") + + rightSwipePref?.summary = sharedPreferenceManager.getGestureName("right") + } +} \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt index 78669f5..a9fca48 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt @@ -6,14 +6,10 @@ import android.provider.Settings import android.widget.Toast import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat -import androidx.preference.SwitchPreference import eu.ottop.yamlauncher.R class SettingsFragment : PreferenceFragmentCompat() { - private var manualLocationPref: Preference? = null - private var leftSwipePref: Preference? = null - private var rightSwipePref: Preference? = null private lateinit var sharedPreferenceManager: SharedPreferenceManager override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { @@ -21,35 +17,41 @@ class SettingsFragment : PreferenceFragmentCompat() { sharedPreferenceManager = SharedPreferenceManager(requireContext()) - val gpsLocationPref = findPreference("gpsLocation") - manualLocationPref = findPreference("manualLocation") - leftSwipePref = findPreference("leftSwipeApp") - rightSwipePref = findPreference("rightSwipeApp") - val aboutPref = findPreference("aboutPage") - val hiddenPref = findPreference("hiddenApps") val homePref = findPreference("defaultHome") - // Only enable manual location when gps location is disabled - if (gpsLocationPref != null && manualLocationPref != null) { - manualLocationPref?.isEnabled = !gpsLocationPref.isChecked + val homeSettings = findPreference("homeSettings") + val appMenuSettings = findPreference("appMenuSettings") - gpsLocationPref.onPreferenceChangeListener = - Preference.OnPreferenceChangeListener { _, newValue -> - val isGpsEnabled = newValue as Boolean - manualLocationPref?.isEnabled = !isGpsEnabled - true - } + val hiddenPref = findPreference("hiddenApps") + val aboutPref = findPreference("aboutPage") - manualLocationPref?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, LocationFragment()) - .addToBackStack(null) - .commit() - true + homePref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + val intent = Intent(Settings.ACTION_HOME_SETTINGS) + if (intent.resolveActivity(requireContext().packageManager) != null) { + startActivity(intent) + } else { + Toast.makeText(requireContext(), "Unable to launch settings", Toast.LENGTH_SHORT).show() } - } + true } + + homeSettings?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, HomeSettingsFragment()) + .addToBackStack(null) + .commit() + true } + + appMenuSettings?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, AppMenuSettingsFragment()) + .addToBackStack(null) + .commit() + true } hiddenPref?.onPreferenceClickListener = Preference.OnPreferenceClickListener { @@ -60,24 +62,6 @@ class SettingsFragment : PreferenceFragmentCompat() { .commit() true } - leftSwipePref?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, GestureAppsFragment("left")) - .addToBackStack(null) - .commit() - true } - - rightSwipePref?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, GestureAppsFragment("right")) - .addToBackStack(null) - .commit() - true } - aboutPref?.onPreferenceClickListener = Preference.OnPreferenceClickListener { requireActivity().supportFragmentManager @@ -87,23 +71,6 @@ class SettingsFragment : PreferenceFragmentCompat() { .commit() true } - homePref?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - val intent = Intent(Settings.ACTION_HOME_SETTINGS) - if (intent.resolveActivity(requireContext().packageManager) != null) { - startActivity(intent) - } else { - Toast.makeText(requireContext(), "Unable to launch settings", Toast.LENGTH_SHORT).show() - } - true } - } - override fun onResume() { - super.onResume() - manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion() - - leftSwipePref?.summary = sharedPreferenceManager.getGestureName("left") - - rightSwipePref?.summary = sharedPreferenceManager.getGestureName("right") } } \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 64efa66..507196e 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -143,4 +143,14 @@ celsius fahrenheit + + + Reply + Reply to all + + + + reply + reply_all + \ No newline at end of file diff --git a/app/src/main/res/xml/app_menu_preferences.xml b/app/src/main/res/xml/app_menu_preferences.xml new file mode 100644 index 0000000..f4ea0b9 --- /dev/null +++ b/app/src/main/res/xml/app_menu_preferences.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/home_preferences.xml b/app/src/main/res/xml/home_preferences.xml new file mode 100644 index 0000000..062d120 --- /dev/null +++ b/app/src/main/res/xml/home_preferences.xml @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 87e5623..6fbd59f 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -1,19 +1,17 @@ - - + app:title="Customization"> - - - - - - - - - - - - - - - - - - - - - - + app:summary="Configure the home screen" + app:title="Home Screen" /> - - - + app:summary="Configure the application menu" + app:title="App Menu" /> - - - - - - - - - - - -