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