From bcc63e025500c723b88bdf89a23c67c752a1b1e8 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Wed, 16 Jul 2025 22:40:29 +0200 Subject: [PATCH] fragment exisiting check --- .../api/GeckoBrowserApiImpl.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/api/GeckoBrowserApiImpl.kt b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/api/GeckoBrowserApiImpl.kt index 6f3dd7f1..a384f544 100644 --- a/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/api/GeckoBrowserApiImpl.kt +++ b/packages/flutter_mozilla_components/android/src/main/kotlin/eu/weblibre/flutter_mozilla_components/api/GeckoBrowserApiImpl.kt @@ -190,8 +190,16 @@ class GeckoBrowserApiImpl : GeckoBrowserApi { return false } - val nativeFragment = BrowserFragment.create() val fm = fragmentActivity.supportFragmentManager + + // Check if fragment already exists in the container + val existingFragment = fm.findFragmentById(FRAGMENT_CONTAINER_ID) + if (existingFragment is BrowserFragment) { + // Fragment already replaced, no need to do it again + return true + } + + val nativeFragment = BrowserFragment.create() fm.beginTransaction() .replace(FRAGMENT_CONTAINER_ID, nativeFragment) .commitAllowingStateLoss()