From 10f62c693618db5e172c052873ec9b7e8a54afe8 Mon Sep 17 00:00:00 2001 From: iovxw Date: Sun, 26 Jul 2026 15:47:44 +0800 Subject: [PATCH] Simplify onDisplayPreferenceDialog in MyPreferenceFragment --- .../ui/main/modified/MyPreferenceFragment.kt | 56 ++----------------- 1 file changed, 5 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MyPreferenceFragment.kt b/app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MyPreferenceFragment.kt index f44eea0b..134219d3 100644 --- a/app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MyPreferenceFragment.kt +++ b/app/src/main/java/org/fcitx/fcitx5/android/ui/main/modified/MyPreferenceFragment.kt @@ -4,9 +4,6 @@ */ package org.fcitx.fcitx5.android.ui.main.modified -import android.annotation.SuppressLint -import androidx.fragment.app.DialogFragment -import androidx.fragment.app.Fragment import androidx.preference.EditTextPreference import androidx.preference.ListPreference import androidx.preference.Preference @@ -14,55 +11,12 @@ import androidx.preference.PreferenceFragmentCompat abstract class MyPreferenceFragment : PreferenceFragmentCompat() { @Suppress("DEPRECATION") - @SuppressLint("RestrictedApi") override fun onDisplayPreferenceDialog(preference: Preference) { - - var handled = false - if (callbackFragment is OnPreferenceDisplayDialogCallback) { - handled = - (callbackFragment as OnPreferenceDisplayDialogCallback).onPreferenceDisplayDialog( - this, - preference - ) - } - - var callbackFragment: Fragment? = this - while (!handled && callbackFragment != null) { - if (callbackFragment is OnPreferenceDisplayDialogCallback) { - handled = (callbackFragment as OnPreferenceDisplayDialogCallback) - .onPreferenceDisplayDialog(this, preference) - } - callbackFragment = callbackFragment.parentFragment - } - if (!handled && context is OnPreferenceDisplayDialogCallback) { - handled = (context as OnPreferenceDisplayDialogCallback) - .onPreferenceDisplayDialog(this, preference) - } - if (!handled && activity is OnPreferenceDisplayDialogCallback) { - handled = (activity as OnPreferenceDisplayDialogCallback) - .onPreferenceDisplayDialog(this, preference) - } - - if (handled) { - return - } - - if (parentFragmentManager.findFragmentByTag(javaClass.name) != null) { - return - } - - val f: DialogFragment = when (preference) { - is EditTextPreference -> { - MyEditTextPreferenceDialogFragment.newInstance(preference.getKey()) - } - is ListPreference -> { - MyListPreferenceDialogFragment.newInstance(preference.getKey()) - } - else -> { - throw IllegalArgumentException( - "Cannot display dialog for an unknown Preference type: ${preference.javaClass.name}" - ) - } + if (parentFragmentManager.findFragmentByTag(javaClass.name) != null) return + val f = when (preference) { + is EditTextPreference -> MyEditTextPreferenceDialogFragment.newInstance(preference.key) + is ListPreference -> MyListPreferenceDialogFragment.newInstance(preference.key) + else -> return super.onDisplayPreferenceDialog(preference) } f.setTargetFragment(this, 0) f.show(parentFragmentManager, javaClass.name)