From 40c3e2dd7267cadf702649699efbc095481a940e Mon Sep 17 00:00:00 2001 From: ottoptj Date: Wed, 31 Jul 2024 01:19:07 +0300 Subject: [PATCH] Settings have all options now (not functional). --- .../eu/ottop/yamlauncher/ButtonPreference.kt | 31 +++++ .../eu/ottop/yamlauncher/SettingsActivity.kt | 2 +- .../eu/ottop/yamlauncher/SettingsFragment.kt | 18 +++ app/src/main/res/layout/activity_settings.xml | 15 ++- app/src/main/res/layout/location_button.xml | 5 + app/src/main/res/values/arrays.xml | 6 + app/src/main/res/xml/root_preferences.xml | 115 +++++++++++++++--- 7 files changed, 174 insertions(+), 18 deletions(-) create mode 100644 app/src/main/java/eu/ottop/yamlauncher/ButtonPreference.kt create mode 100644 app/src/main/res/layout/location_button.xml diff --git a/app/src/main/java/eu/ottop/yamlauncher/ButtonPreference.kt b/app/src/main/java/eu/ottop/yamlauncher/ButtonPreference.kt new file mode 100644 index 0000000..c54c4dc --- /dev/null +++ b/app/src/main/java/eu/ottop/yamlauncher/ButtonPreference.kt @@ -0,0 +1,31 @@ +package eu.ottop.yamlauncher + +import android.content.Context +import android.util.AttributeSet +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder + + +class ButtonPreference(context: Context?, attrs: AttributeSet?) : + Preference(context!!, attrs) { + init { + widgetLayoutResource = R.layout.location_button; + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + val view = holder.itemView + view.setOnClickListener { + when (this.key) { + "manual_location" -> { + println("Location pressed") + } + + "hidden_apps" -> { + println("Hidden apps pressed") + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/SettingsActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/SettingsActivity.kt index a0fe65d..d776dac 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/SettingsActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/SettingsActivity.kt @@ -16,7 +16,7 @@ class SettingsActivity : AppCompatActivity() { setContentView(binding.root) supportFragmentManager .beginTransaction() - .replace(R.id.settingsLayout, SettingsFragment()) + .replace(R.id.settings_layout, SettingsFragment()) .commit() } diff --git a/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt index 0ec6baf..6fee4e8 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt @@ -1,11 +1,29 @@ package eu.ottop.yamlauncher import android.os.Bundle +import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import androidx.preference.SwitchPreference class SettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.root_preferences, rootKey) + + val gpsLocationPref: SwitchPreference? = findPreference("gps_location") + val manualLocationPref: ButtonPreference? = findPreference("manual_location") + + if (gpsLocationPref != null && manualLocationPref != null) { + // Initial setup + manualLocationPref.isEnabled = !gpsLocationPref.isChecked + + // Set up a listener to update the enabled state of manualLocationPref + gpsLocationPref.onPreferenceChangeListener = + Preference.OnPreferenceChangeListener { _, newValue -> + val isGpsEnabled = newValue as Boolean + manualLocationPref.isEnabled = !isGpsEnabled + true // Returning true means the change is persisted + } + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 22ec46d..08e0ddb 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,6 +1,6 @@ - + + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/location_button.xml b/app/src/main/res/layout/location_button.xml new file mode 100644 index 0000000..82ac2de --- /dev/null +++ b/app/src/main/res/layout/location_button.xml @@ -0,0 +1,5 @@ + + \ 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 bd74b04..0e3ddd4 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -27,4 +27,10 @@ Medium Large + + + small + medium + large + \ 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 6923c3b..948d819 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -1,7 +1,9 @@ - + - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file