From 11a368b7c835af4d6a72c55b069da9579f888b89 Mon Sep 17 00:00:00 2001 From: Wally Hackenslacker Date: Thu, 30 Apr 2026 12:44:29 -0400 Subject: [PATCH] fix: defer settings fragment transaction until dialog is shown --- .../app/settings/SettingsDialogFragment.kt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/space/hackenslacker/kanbn4droid/app/settings/SettingsDialogFragment.kt b/app/src/main/java/space/hackenslacker/kanbn4droid/app/settings/SettingsDialogFragment.kt index d4026e5..7fef9e1 100644 --- a/app/src/main/java/space/hackenslacker/kanbn4droid/app/settings/SettingsDialogFragment.kt +++ b/app/src/main/java/space/hackenslacker/kanbn4droid/app/settings/SettingsDialogFragment.kt @@ -47,14 +47,6 @@ class SettingsDialogFragment : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialogView = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_settings, null) - childFragmentManager.commitNow { - replace( - R.id.settingsFragmentContainer, - SettingsPreferencesFragment(), - SETTINGS_PREFS_TAG, - ) - } - progress = dialogView.findViewById(R.id.settingsApplyProgress) errorText = dialogView.findViewById(R.id.settingsErrorText) saveButton = dialogView.findViewById(R.id.settingsSaveAndCloseButton) @@ -69,6 +61,15 @@ class SettingsDialogFragment : DialogFragment() { dialog.setCanceledOnTouchOutside(false) dialog.setOnShowListener { + if (findPreferencesFragment() == null) { + childFragmentManager.commitNow { + replace( + R.id.settingsFragmentContainer, + SettingsPreferencesFragment(), + SETTINGS_PREFS_TAG, + ) + } + } saveButton?.setOnClickListener { onSaveClicked() }