Override ListPreferenceDialogs to use MaterialAlertDialog
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package com.aurora.store.view.custom.preference
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
import androidx.preference.ListPreferenceDialogFragmentCompat
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
||||
class ListPreferenceMaterialDialogFragmentCompat : ListPreferenceDialogFragmentCompat() {
|
||||
|
||||
companion object {
|
||||
const val PREFERENCE_DIALOG_FRAGMENT_TAG = "androidx.preference.PreferenceFragment.DIALOG"
|
||||
|
||||
fun newInstance(key: String?): ListPreferenceMaterialDialogFragmentCompat {
|
||||
val fragment = ListPreferenceMaterialDialogFragmentCompat()
|
||||
val bundle = Bundle(1)
|
||||
bundle.putString(ARG_KEY, key)
|
||||
fragment.arguments = bundle
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
val builder = MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(preference.dialogTitle)
|
||||
.setIcon(preference.dialogIcon)
|
||||
.setPositiveButton(preference.positiveButtonText, this)
|
||||
.setNegativeButton(preference.negativeButtonText, this)
|
||||
|
||||
val contentView = onCreateDialogView(requireContext())
|
||||
if (contentView != null) {
|
||||
onBindDialogView(contentView)
|
||||
builder.setView(contentView)
|
||||
} else {
|
||||
builder.setMessage(preference.dialogMessage)
|
||||
}
|
||||
|
||||
onPrepareDialogBuilder(builder)
|
||||
return builder.create()
|
||||
}
|
||||
}
|
||||
@@ -24,6 +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
|
||||
@@ -42,6 +43,8 @@ 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 rikka.shizuku.Shizuku
|
||||
|
||||
@@ -74,6 +77,16 @@ 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)
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ 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 java.util.Locale
|
||||
|
||||
|
||||
@@ -56,6 +58,16 @@ 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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user