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 androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.aurora.extensions.isOAndAbove
import com.aurora.extensions.runOnUiThread
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.save
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 dagger.hilt.android.AndroidEntryPoint
import rikka.shizuku.Shizuku
import rikka.sui.Sui
@AndroidEntryPoint
class InstallationPreference : PreferenceFragmentCompat() {
class InstallationPreference : BasePreferenceFragment() {
private var shizukuAlive = Sui.isSui()
private val shizukuAliveListener = Shizuku.OnBinderReceivedListener {
@@ -78,16 +74,6 @@ class InstallationPreference : PreferenceFragmentCompat() {
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?) {
super.onViewCreated(view, savedInstanceState)

View File

@@ -25,9 +25,7 @@ import android.view.View
import androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController
import androidx.preference.EditTextPreference
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreferenceCompat
import com.aurora.Constants
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.Preferences
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 dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@@ -48,7 +44,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
@AndroidEntryPoint
class NetworkPreference : PreferenceFragmentCompat() {
class NetworkPreference : BasePreferenceFragment() {
@Inject
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?) {
super.onViewCreated(view, savedInstanceState)
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.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.aurora.extensions.isTAndAbove
import com.aurora.store.R
import com.aurora.store.util.Preferences
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 java.util.Locale
@AndroidEntryPoint
class UIPreference : PreferenceFragmentCompat() {
class UIPreference : BasePreferenceFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
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?) {
super.onViewCreated(view, savedInstanceState)

View File

@@ -24,18 +24,15 @@ import android.view.View
import androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SeekBarPreference
import com.aurora.store.R
import com.aurora.store.data.work.UpdateWorker
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class UpdatesPreference : PreferenceFragmentCompat() {
class UpdatesPreference : BasePreferenceFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
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?) {
super.onViewCreated(view, savedInstanceState)
view.findViewById<Toolbar>(R.id.toolbar)?.apply {