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 a236a7e40..2863302b0 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 bf0c823f5..ac6c0ae24 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(forceCleanup: Boolean = false) { + if (state.isBrowserViewPresented && !forceCleanup) { return } factory.updatePaywallInfo(info) @@ -408,8 +408,8 @@ class PaywallView( .willDismissPaywall(info) } - suspend fun destroyed() { - if (state.isBrowserViewPresented) { + 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 9a18a892d..47e0ab6a2 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(forceCleanup = isFinishing) } } @@ -723,7 +723,7 @@ class SuperwallPaywallActivity : AppCompatActivity() { val paywallVc = paywallView() ?: return mainScope.launch { - paywallVc.destroyed() + paywallVc.destroyed(forceCleanup = isFinishing) } }