BasePreferenceFragment: Move Material3 preference logic to new fragment

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-03-05 14:41:37 +05:30
parent ac3065ab2c
commit 72d077decf
5 changed files with 25 additions and 62 deletions

View File

@@ -0,0 +1,21 @@
package com.aurora.store.view.ui.preferences
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat
abstract class BasePreferenceFragment : PreferenceFragmentCompat() {
override fun onDisplayPreferenceDialog(preference: Preference) {
if (preference is ListPreference) {
val dialogFragment = ListPreferenceMaterialDialogFragmentCompat.newInstance(preference.getKey())
dialogFragment.setTargetFragment(this, 0)
dialogFragment.show(parentFragmentManager,
ListPreferenceMaterialDialogFragmentCompat.PREFERENCE_DIALOG_FRAGMENT_TAG
)
} else {
super.onDisplayPreferenceDialog(preference)
}
}
}

View File

@@ -24,9 +24,7 @@ import android.os.Bundle
import android.view.View import android.view.View
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.aurora.extensions.isOAndAbove import com.aurora.extensions.isOAndAbove
import com.aurora.extensions.runOnUiThread import com.aurora.extensions.runOnUiThread
import com.aurora.extensions.showDialog import com.aurora.extensions.showDialog
@@ -42,15 +40,13 @@ import com.aurora.store.util.PackageUtil
import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences
import com.aurora.store.util.save import com.aurora.store.util.save
import com.aurora.store.view.custom.preference.AuroraListPreference import com.aurora.store.view.custom.preference.AuroraListPreference
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat.Companion.PREFERENCE_DIALOG_FRAGMENT_TAG
import com.topjohnwu.superuser.Shell import com.topjohnwu.superuser.Shell
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import rikka.shizuku.Shizuku import rikka.shizuku.Shizuku
import rikka.sui.Sui import rikka.sui.Sui
@AndroidEntryPoint @AndroidEntryPoint
class InstallationPreference : PreferenceFragmentCompat() { class InstallationPreference : BasePreferenceFragment() {
private var shizukuAlive = Sui.isSui() private var shizukuAlive = Sui.isSui()
private val shizukuAliveListener = Shizuku.OnBinderReceivedListener { private val shizukuAliveListener = Shizuku.OnBinderReceivedListener {
@@ -78,16 +74,6 @@ class InstallationPreference : PreferenceFragmentCompat() {
setPreferencesFromResource(R.xml.preferences_installation, rootKey) setPreferencesFromResource(R.xml.preferences_installation, rootKey)
} }
override fun onDisplayPreferenceDialog(preference: Preference) {
if (preference is ListPreference) {
val dialogFragment = ListPreferenceMaterialDialogFragmentCompat.newInstance(preference.getKey())
dialogFragment.setTargetFragment(this, 0)
dialogFragment.show(parentFragmentManager, PREFERENCE_DIALOG_FRAGMENT_TAG)
} else {
super.onDisplayPreferenceDialog(preference)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)

View File

@@ -25,9 +25,7 @@ import android.view.View
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.preference.EditTextPreference import androidx.preference.EditTextPreference
import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.runOnUiThread import com.aurora.extensions.runOnUiThread
@@ -37,8 +35,6 @@ import com.aurora.store.data.network.HttpClient
import com.aurora.store.util.CommonUtil import com.aurora.store.util.CommonUtil
import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences
import com.aurora.store.util.save import com.aurora.store.util.save
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat.Companion.PREFERENCE_DIALOG_FRAGMENT_TAG
import com.google.gson.Gson import com.google.gson.Gson
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
@@ -48,7 +44,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@AndroidEntryPoint @AndroidEntryPoint
class NetworkPreference : PreferenceFragmentCompat() { class NetworkPreference : BasePreferenceFragment() {
@Inject @Inject
lateinit var gson: Gson lateinit var gson: Gson
@@ -124,16 +120,6 @@ class NetworkPreference : PreferenceFragmentCompat() {
} }
} }
override fun onDisplayPreferenceDialog(preference: Preference) {
if (preference is ListPreference) {
val dialogFragment = ListPreferenceMaterialDialogFragmentCompat.newInstance(preference.getKey())
dialogFragment.setTargetFragment(this, 0)
dialogFragment.show(parentFragmentManager, PREFERENCE_DIALOG_FRAGMENT_TAG)
} else {
super.onDisplayPreferenceDialog(preference)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
view.findViewById<Toolbar>(R.id.toolbar)?.apply { view.findViewById<Toolbar>(R.id.toolbar)?.apply {

View File

@@ -28,18 +28,15 @@ import androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.aurora.extensions.isTAndAbove import com.aurora.extensions.isTAndAbove
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences
import com.aurora.store.util.save import com.aurora.store.util.save
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat.Companion.PREFERENCE_DIALOG_FRAGMENT_TAG
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import java.util.Locale import java.util.Locale
@AndroidEntryPoint @AndroidEntryPoint
class UIPreference : PreferenceFragmentCompat() { class UIPreference : BasePreferenceFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences_ui, rootKey) setPreferencesFromResource(R.xml.preferences_ui, rootKey)
@@ -59,16 +56,6 @@ class UIPreference : PreferenceFragmentCompat() {
} }
} }
override fun onDisplayPreferenceDialog(preference: Preference) {
if (preference is ListPreference) {
val dialogFragment = ListPreferenceMaterialDialogFragmentCompat.newInstance(preference.getKey())
dialogFragment.setTargetFragment(this, 0)
dialogFragment.show(parentFragmentManager, PREFERENCE_DIALOG_FRAGMENT_TAG)
} else {
super.onDisplayPreferenceDialog(preference)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)

View File

@@ -24,18 +24,15 @@ import android.view.View
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SeekBarPreference import androidx.preference.SeekBarPreference
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.work.UpdateWorker import com.aurora.store.data.work.UpdateWorker
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint @AndroidEntryPoint
class UpdatesPreference : PreferenceFragmentCompat() { class UpdatesPreference : BasePreferenceFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences_updates, rootKey) setPreferencesFromResource(R.xml.preferences_updates, rootKey)
@@ -56,20 +53,6 @@ class UpdatesPreference : PreferenceFragmentCompat() {
} }
} }
override fun onDisplayPreferenceDialog(preference: Preference) {
if (preference is ListPreference) {
val dialogFragment =
ListPreferenceMaterialDialogFragmentCompat.newInstance(preference.getKey())
dialogFragment.setTargetFragment(this, 0)
dialogFragment.show(
parentFragmentManager,
ListPreferenceMaterialDialogFragmentCompat.PREFERENCE_DIALOG_FRAGMENT_TAG
)
} else {
super.onDisplayPreferenceDialog(preference)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
view.findViewById<Toolbar>(R.id.toolbar)?.apply { view.findViewById<Toolbar>(R.id.toolbar)?.apply {