diff --git a/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/InternalPaywall.kt b/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/InternalPaywall.kt index 313d980a9b..42ba8225a4 100644 --- a/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/InternalPaywall.kt +++ b/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/InternalPaywall.kt @@ -175,6 +175,7 @@ internal fun getPaywallViewModel( ): PaywallViewModel { val applicationContext = LocalContext.current.applicationContext val viewModel = viewModel( + key = options.dataHash, factory = PaywallViewModelFactory( applicationContext.toResourceProvider(), options, diff --git a/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/PaywallOptions.kt b/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/PaywallOptions.kt index 658caa7392..320a8382bf 100644 --- a/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/PaywallOptions.kt +++ b/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/PaywallOptions.kt @@ -43,6 +43,14 @@ data class PaywallOptions internal constructor( dismissRequest = builder.dismissRequest, ) + internal val dataHash: String = run { + val hashMultiplier = 31 + var result = offeringSelection.offeringIdentifier.hashCode() + result = hashMultiplier * result + shouldDisplayDismissButton.hashCode() + result = hashMultiplier * result + mode.hashCode() + result.toString() + } + class Builder( internal val dismissRequest: () -> Unit, ) {