override fun onPreferenceDisplayDialog()

in tv/src/main/java/com/github/shadowsocks/tv/MainFragment.kt [42:61]


    override fun onPreferenceDisplayDialog(caller: PreferenceFragmentCompat, pref: Preference?): Boolean {
        if (pref?.key == Key.id) {
            if ((childFragmentManager.findFragmentById(R.id.settings_preference_fragment_container)
                            as MainPreferenceFragment).state == BaseService.State.Stopped) {
                startPreferenceFragment(ProfilesDialogFragment().apply {
                    arguments = bundleOf(Pair(LeanbackPreferenceDialogFragmentCompat.ARG_KEY, Key.id))
                    setTargetFragment(caller, 0)
                })
            }
            return true
        }
        if (pref is ListPreference && pref !is MultiSelectListPreference) {
            startPreferenceFragment(LeanbackSingleListPreferenceDialogFragment().apply {
                arguments = bundleOf(Pair(LeanbackPreferenceDialogFragmentCompat.ARG_KEY, pref.key))
                setTargetFragment(caller, 0)
            })
            return true
        }
        return super.onPreferenceDisplayDialog(caller, pref)
    }