From 06d54a91d14eca0caff595fea674f3dfd46b067f Mon Sep 17 00:00:00 2001 From: Ian Rumac Date: Wed, 1 Apr 2026 11:59:54 +0200 Subject: [PATCH 1/2] Add guard to prevent pw from dismissing on deep link --- .../java/com/superwall/sdk/paywall/view/PaywallView.kt | 8 ++++---- .../sdk/paywall/view/SuperwallPaywallActivity.kt | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt b/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt index bf0c823f..fa2b06ea 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt @@ -398,8 +398,8 @@ class PaywallView( } } - fun beforeOnDestroy() { - if (state.isBrowserViewPresented) { + fun beforeOnDestroy(isActivityFinishing: Boolean = false) { + if (state.isBrowserViewPresented && !isActivityFinishing) { return } factory.updatePaywallInfo(info) @@ -408,8 +408,8 @@ class PaywallView( .willDismissPaywall(info) } - suspend fun destroyed() { - if (state.isBrowserViewPresented) { + suspend fun destroyed(isActivityFinishing: Boolean = false) { + if (state.isBrowserViewPresented && !isActivityFinishing) { return } diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt b/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt index 9a18a892..aff6ec22 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt @@ -713,7 +713,7 @@ class SuperwallPaywallActivity : AppCompatActivity() { val paywallVc = paywallView() ?: return mainScope.launch { - paywallVc.beforeOnDestroy() + paywallVc.beforeOnDestroy(isActivityFinishing = isFinishing) } } @@ -723,7 +723,7 @@ class SuperwallPaywallActivity : AppCompatActivity() { val paywallVc = paywallView() ?: return mainScope.launch { - paywallVc.destroyed() + paywallVc.destroyed(isActivityFinishing = isFinishing) } } From 869619eb7f811054f5ace0d426f5c8fa6eb2eba5 Mon Sep 17 00:00:00 2001 From: Ian Rumac Date: Wed, 1 Apr 2026 12:34:12 +0200 Subject: [PATCH 2/2] Fix compose reference --- .../java/com/superwall/sdk/compose/PaywallComposable.kt | 4 ++-- .../java/com/superwall/sdk/paywall/view/PaywallView.kt | 8 ++++---- .../sdk/paywall/view/SuperwallPaywallActivity.kt | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/superwall-compose/src/main/java/com/superwall/sdk/compose/PaywallComposable.kt b/superwall-compose/src/main/java/com/superwall/sdk/compose/PaywallComposable.kt index a236a7e4..2863302b 100644 --- a/superwall-compose/src/main/java/com/superwall/sdk/compose/PaywallComposable.kt +++ b/superwall-compose/src/main/java/com/superwall/sdk/compose/PaywallComposable.kt @@ -107,11 +107,11 @@ fun PaywallComposable( viewToRender }, onRelease = { - viewToRender.beforeOnDestroy() + viewToRender.beforeOnDestroy(forceCleanup = true) viewToRender.encapsulatingActivity = null CoroutineScope(Dispatchers.Main).launch { - viewToRender.destroyed() + viewToRender.destroyed(forceCleanup = true) viewToRender.cleanup() } }, diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt b/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt index fa2b06ea..ac6c0ae2 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/view/PaywallView.kt @@ -398,8 +398,8 @@ class PaywallView( } } - fun beforeOnDestroy(isActivityFinishing: Boolean = false) { - if (state.isBrowserViewPresented && !isActivityFinishing) { + fun beforeOnDestroy(forceCleanup: Boolean = false) { + if (state.isBrowserViewPresented && !forceCleanup) { return } factory.updatePaywallInfo(info) @@ -408,8 +408,8 @@ class PaywallView( .willDismissPaywall(info) } - suspend fun destroyed(isActivityFinishing: Boolean = false) { - if (state.isBrowserViewPresented && !isActivityFinishing) { + suspend fun destroyed(forceCleanup: Boolean = false) { + if (state.isBrowserViewPresented && !forceCleanup) { return } diff --git a/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt b/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt index aff6ec22..47e0ab6a 100644 --- a/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt +++ b/superwall/src/main/java/com/superwall/sdk/paywall/view/SuperwallPaywallActivity.kt @@ -713,7 +713,7 @@ class SuperwallPaywallActivity : AppCompatActivity() { val paywallVc = paywallView() ?: return mainScope.launch { - paywallVc.beforeOnDestroy(isActivityFinishing = isFinishing) + paywallVc.beforeOnDestroy(forceCleanup = isFinishing) } } @@ -723,7 +723,7 @@ class SuperwallPaywallActivity : AppCompatActivity() { val paywallVc = paywallView() ?: return mainScope.launch { - paywallVc.destroyed(isActivityFinishing = isFinishing) + paywallVc.destroyed(forceCleanup = isFinishing) } }