diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt index 677a175..9f2e672 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt @@ -5,6 +5,7 @@ import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreference import eu.ottop.yamlauncher.R +import eu.ottop.yamlauncher.utils.UIUtils class HomeSettingsFragment : PreferenceFragmentCompat(), TitleProvider { @@ -18,74 +19,55 @@ class HomeSettingsFragment : PreferenceFragmentCompat(), TitleProvider { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.home_preferences, rootKey) + val uiUtils = UIUtils(requireContext()) - sharedPreferenceManager = SharedPreferenceManager(requireContext()) + sharedPreferenceManager = SharedPreferenceManager(requireContext()) - clockApp = findPreference("clockSwipeApp") - dateApp = findPreference("dateSwipeApp") + clockApp = findPreference("clockSwipeApp") + dateApp = findPreference("dateSwipeApp") - val gpsLocationPref = findPreference("gpsLocation") - manualLocationPref = findPreference("manualLocation") - leftSwipePref = findPreference("leftSwipeApp") - rightSwipePref = findPreference("rightSwipeApp") + 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 + // 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 - } + gpsLocationPref.onPreferenceChangeListener = + Preference.OnPreferenceChangeListener { _, newValue -> + val isGpsEnabled = newValue as Boolean + manualLocationPref?.isEnabled = !isGpsEnabled + true + } - manualLocationPref?.onPreferenceClickListener = + manualLocationPref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + uiUtils.switchFragment(requireActivity(), LocationFragment()) + true + } + } + + leftSwipePref?.onPreferenceClickListener = Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, LocationFragment()) - .addToBackStack(null) - .commit() - true - } - } + uiUtils.switchFragment(requireActivity(), GestureAppsFragment("left")) + true } - leftSwipePref?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, GestureAppsFragment("left")) - .addToBackStack(null) - .commit() - true } + rightSwipePref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + uiUtils.switchFragment(requireActivity(), GestureAppsFragment("right")) + true } - rightSwipePref?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, GestureAppsFragment("right")) - .addToBackStack(null) - .commit() - true } + clockApp?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + uiUtils.switchFragment(requireActivity(), GestureAppsFragment("clock")) + true } - clockApp?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, GestureAppsFragment("clock")) - .addToBackStack(null) - .commit() - true } - - dateApp?.onPreferenceClickListener = - Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, GestureAppsFragment("date")) - .addToBackStack(null) - .commit() - true } + dateApp?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + uiUtils.switchFragment(requireActivity(), GestureAppsFragment("date")) + true } } override fun onResume() { 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 71b7529..43b942d 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt @@ -2,11 +2,16 @@ package eu.ottop.yamlauncher.settings import android.content.Intent import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.provider.Settings import android.widget.Toast +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import eu.ottop.yamlauncher.R +import eu.ottop.yamlauncher.utils.UIUtils class SettingsFragment : PreferenceFragmentCompat(), TitleProvider { @@ -15,6 +20,8 @@ class SettingsFragment : PreferenceFragmentCompat(), TitleProvider { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.root_preferences, rootKey) + val uiUtils = UIUtils(requireContext()) + sharedPreferenceManager = SharedPreferenceManager(requireContext()) val homePref = findPreference("defaultHome") @@ -39,47 +46,27 @@ class SettingsFragment : PreferenceFragmentCompat(), TitleProvider { uiSettings?.onPreferenceClickListener = Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, UISettingsFragment()) - .addToBackStack(null) - .commit() + uiUtils.switchFragment(requireActivity(), UISettingsFragment()) true } homeSettings?.onPreferenceClickListener = Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, HomeSettingsFragment()) - .addToBackStack(null) - .commit() + uiUtils.switchFragment(requireActivity(), HomeSettingsFragment()) true } appMenuSettings?.onPreferenceClickListener = Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, AppMenuSettingsFragment()) - .addToBackStack(null) - .commit() + uiUtils.switchFragment(requireActivity(), AppMenuSettingsFragment()) true } hiddenPref?.onPreferenceClickListener = Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, HiddenAppsFragment()) - .addToBackStack(null) - .commit() + uiUtils.switchFragment(requireActivity(), HiddenAppsFragment()) true } aboutPref?.onPreferenceClickListener = Preference.OnPreferenceClickListener { - requireActivity().supportFragmentManager - .beginTransaction() - .replace(R.id.settingsLayout, AboutFragment()) - .addToBackStack(null) - .commit() + uiUtils.switchFragment(requireActivity(), AboutFragment()) true } resetPref?.onPreferenceClickListener = @@ -92,4 +79,6 @@ class SettingsFragment : PreferenceFragmentCompat(), TitleProvider { return "Launcher Settings" } + + } \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/SpinnerPreference.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/SpinnerPreference.kt index 34fd6a2..1ad23bd 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/SpinnerPreference.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/SpinnerPreference.kt @@ -1,6 +1,7 @@ package eu.ottop.yamlauncher.settings import android.content.Context +import android.content.res.TypedArray import android.os.Handler import android.os.Looper import android.util.AttributeSet @@ -46,7 +47,7 @@ class SpinnerPreference (context: Context, attrs: AttributeSet? = null): Prefere spinner?.adapter = adapter } - val selectedIndex = entryValues?.indexOf(currentValue as? CharSequence) ?: 0 + val selectedIndex = entryValues?.indexOf(currentValue as? CharSequence) ?: entryValues?.indexOf(defaultNo as CharSequence) ?: 0 spinner?.setSelection(selectedIndex) // Somehow prevents an error :D @@ -76,13 +77,9 @@ class SpinnerPreference (context: Context, attrs: AttributeSet? = null): Prefere spinner?.performClick() } - override fun onSetInitialValue(defaultValue: Any?) { - currentValue = getPersistedString(defaultValue as? String) - } - - // This is required to ensure that default values are stored (needed for full settings reset) override fun onAttached() { super.onAttached() + currentValue = getPersistedString(defaultNo) persistString(getPersistedString(defaultNo)) } } \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt b/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt index 4ef302e..41a02ae 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt @@ -4,6 +4,8 @@ import android.content.Context import android.graphics.BlendMode import android.graphics.BlendModeColorFilter import android.graphics.Color +import android.os.Handler +import android.os.Looper import android.util.TypedValue import android.view.Gravity import android.view.View @@ -18,8 +20,12 @@ import android.widget.TextClock import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.children +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity import com.google.android.material.textfield.TextInputEditText +import eu.ottop.yamlauncher.R import eu.ottop.yamlauncher.settings.SharedPreferenceManager +import eu.ottop.yamlauncher.settings.UISettingsFragment class UIUtils(private val context: Context) { @@ -411,4 +417,12 @@ class UIUtils(private val context: Context) { } } } + + fun switchFragment(activity: FragmentActivity, fragment: Fragment) { + activity.supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, fragment) + .addToBackStack(null) + .commit() + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 8b6df29..6801b48 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -1,151 +1,161 @@ - + android:src="@drawable/ic_launcher_foreground" /> + android:textStyle="bold" /> + android:textSize="17sp" /> + android:textSize="24sp" /> + android:background="?android:attr/listDivider" /> - + android:layout_weight="1" + android:orientation="horizontal"> - + + + + + android:textSize="24sp" /> + android:background="?android:attr/listDivider" /> - + android:layout_weight="2" + android:orientation="horizontal"> - + + + + + android:textSize="16sp" /> - \ No newline at end of file + \ No newline at end of file