From 800b4b9cdc9f6148857710a206c20eb6207953c5 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Wed, 28 Feb 2024 18:20:50 +0200 Subject: [PATCH] Fix showing discard dialog --- .../auth/feature/uia/UIADialogFragment.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/auth/src/main/java/org/futo/circles/auth/feature/uia/UIADialogFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/uia/UIADialogFragment.kt index 246475f86..9e388e259 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/uia/UIADialogFragment.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/uia/UIADialogFragment.kt @@ -1,5 +1,6 @@ package org.futo.circles.auth.feature.uia +import android.app.Dialog import android.net.Uri import android.os.Bundle import android.view.View @@ -54,6 +55,14 @@ class UIADialogFragment : childFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment } + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = + object : Dialog(requireContext(), theme) { + @Suppress("OVERRIDE_DEPRECATION") + override fun onBackPressed() { + activity?.onBackPressedDispatcher?.onBackPressed() + } + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setupViews() @@ -71,7 +80,7 @@ class UIADialogFragment : else -> R.string.log_in } ) - setNavigationOnClickListener { onBackPressed() } + setNavigationOnClickListener { handleBackAction() } } } @@ -178,10 +187,14 @@ class UIADialogFragment : } override fun onChildBackPress(callback: OnBackPressedCallback) { + handleBackAction(callback) + } + + private fun handleBackAction(callback: OnBackPressedCallback? = null) { val includedFragmentsManager = childNavHostFragment.childFragmentManager if (includedFragmentsManager.backStackEntryCount == 1) { cancelReAuth() - callback.remove() + callback?.remove() onBackPressed() } else { showDiscardDialog() -- GitLab