mirror of
https://github.com/Docile-Alligator/Infinity-For-Reddit.git
synced 2025-10-29 11:35:08 +00:00
Custom style edit text preference.
This commit is contained in:
parent
2f104fa153
commit
d3d3556fda
@ -11,6 +11,7 @@ import androidx.core.view.OnApplyWindowInsetsListener;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.preference.EditTextPreference;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
@ -79,6 +80,11 @@ public abstract class CustomFontPreferenceFragmentCompat extends PreferenceFragm
|
||||
f.setTargetFragment(this, 0);
|
||||
f.show(getParentFragmentManager(), DIALOG_FRAGMENT_TAG);
|
||||
return true;
|
||||
} else if (pref instanceof EditTextPreference) {
|
||||
DialogFragment f = CustomStyleEditTextPreferenceDialogFragmentCompat.newInstance(pref.getKey());
|
||||
f.setTargetFragment(this, 0);
|
||||
f.show(getParentFragmentManager(), DIALOG_FRAGMENT_TAG);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@ -0,0 +1,41 @@
|
||||
package ml.docilealligator.infinityforreddit.customviews.preference
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
import androidx.preference.EditTextPreferenceDialogFragmentCompat
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import ml.docilealligator.infinityforreddit.R
|
||||
|
||||
class CustomStyleEditTextPreferenceDialogFragmentCompat : EditTextPreferenceDialogFragmentCompat() {
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(key: String?): CustomStyleEditTextPreferenceDialogFragmentCompat {
|
||||
val fragment = CustomStyleEditTextPreferenceDialogFragmentCompat()
|
||||
val b = Bundle(1)
|
||||
b.putString(ARG_KEY, key)
|
||||
fragment.arguments = b
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
val builder = MaterialAlertDialogBuilder(requireContext(), R.style.MaterialAlertDialogTheme)
|
||||
.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()
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user