diff --git a/CHANGELOG.md b/CHANGELOG.md index 1814c25..8f6747b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,25 +2,37 @@ The changelog for `Superwall`. Also see the [releases](https://github.com/superwall/Superwall-Flutter/releases) on GitHub. +## 2.4.11 + +### Enhancements + +- All `SuperwallDelegate` methods now have default empty implementations, making them optional to override. +- Updates iOS SDK to 4.14.0 [View iOS SDK release notes](https://github.com/superwall/Superwall-iOS/releases/tag/4.14.0). +- Updates Android SDK to 2.7.4 [View Android SDK release notes](https://github.com/superwall/Superwall-Android/releases/tag/2.7.4). +- Adds `TestModeBehavior` enum and `testModeBehavior` property to `SuperwallOptions`. +- Adds new event types: `stripeCheckoutStart`, `stripeCheckoutSubmit`, `stripeCheckoutComplete`, `stripeCheckoutFail`, `testModeModalOpen`, `testModeModalClose`. + ## 2.4.10 ## Updates + - Updates pigeon to 26.1.5 to support analyzer 9.+.+ versions ## 2.4.9 ## Enhancements + - Updates iOS SDK to 4.13.0 [View iOS SDK release notes](https://github.com/superwall/Superwall-iOS/releases/tag/4.13.0). - Updates Android SDK to 2.7.1 [View Android SDK release notes](https://github.com/superwall/Superwall-Android/releases/tag/2.7.1). - ## 2.4.8 ## Enhancements + - Adds `onCustomCallback` method to `PaywallPresentationHandler` that allows invoking custom callbacks and passing data from and to the paywall - Updates iOS SDK to 4.12.10 [View iOS SDK release notes](https://github.com/superwall/Superwall-iOS/releases/tag/4.12.10). - Updates Android SDK to 2.7.0 [View Android SDK release notes](https://github.com/superwall/Superwall-Android/releases/tag/2.7.0). - + ### Fixes - Fixes an issue where `IdentityOptions` passed to `identify()` were not being sent to the native SDK due to a variable shadowing bug. diff --git a/android/build.gradle b/android/build.gradle index b1dd0eb..a6a182e 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -83,7 +83,7 @@ dependencies { testImplementation 'org.jetbrains.kotlin:kotlin-test' testImplementation 'org.mockito:mockito-core:5.0.0' - implementation "com.superwall.sdk:superwall-android:2.7.1" + implementation "com.superwall.sdk:superwall-android:2.7.4" implementation 'com.android.billingclient:billing:8.0.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0' implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.2' diff --git a/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHostGenerated.g.kt b/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHostGenerated.g.kt index 42d59db..ce10793 100644 --- a/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHostGenerated.g.kt +++ b/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHostGenerated.g.kt @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v26.1.7), do not edit directly. +// Autogenerated from Pigeon (v26.1.10), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @@ -80,6 +80,19 @@ class FlutterError ( val details: Any? = null ) : Throwable() +enum class PTestModeBehavior(val raw: Int) { + AUTOMATIC(0), + WHEN_ENABLED_FOR_USER(1), + NEVER(2), + ALWAYS(3); + + companion object { + fun ofRaw(raw: Int): PTestModeBehavior? { + return values().firstOrNull { it.raw == raw } + } + } +} + enum class PFeatureGatingBehavior(val raw: Int) { GATED(0), NON_GATED(1); @@ -435,7 +448,13 @@ enum class PEventType(val raw: Int) { REVIEW_REQUESTED(69), PERMISSION_REQUESTED(70), PERMISSION_GRANTED(71), - PERMISSION_DENIED(72); + PERMISSION_DENIED(72), + STRIPE_CHECKOUT_START(73), + STRIPE_CHECKOUT_SUBMIT(74), + STRIPE_CHECKOUT_COMPLETE(75), + STRIPE_CHECKOUT_FAIL(76), + TEST_MODE_MODAL_OPEN(77), + TEST_MODE_MODAL_CLOSE(78); companion object { fun ofRaw(raw: Int): PEventType? { @@ -1035,7 +1054,8 @@ data class PSuperwallOptions ( val isGameControllerEnabled: Boolean? = null, val enableExperimentalDeviceVariables: Boolean? = null, val logging: PLogging? = null, - val passIdentifiersToPlayStore: Boolean? = null + val passIdentifiersToPlayStore: Boolean? = null, + val testModeBehavior: PTestModeBehavior? = null ) { companion object { @@ -1048,7 +1068,8 @@ data class PSuperwallOptions ( val enableExperimentalDeviceVariables = pigeonVar_list[5] as Boolean? val logging = pigeonVar_list[6] as PLogging? val passIdentifiersToPlayStore = pigeonVar_list[7] as Boolean? - return PSuperwallOptions(paywalls, networkEnvironment, isExternalDataCollectionEnabled, localeIdentifier, isGameControllerEnabled, enableExperimentalDeviceVariables, logging, passIdentifiersToPlayStore) + val testModeBehavior = pigeonVar_list[8] as PTestModeBehavior? + return PSuperwallOptions(paywalls, networkEnvironment, isExternalDataCollectionEnabled, localeIdentifier, isGameControllerEnabled, enableExperimentalDeviceVariables, logging, passIdentifiersToPlayStore, testModeBehavior) } } fun toList(): List { @@ -1061,6 +1082,7 @@ data class PSuperwallOptions ( enableExperimentalDeviceVariables, logging, passIdentifiersToPlayStore, + testModeBehavior, ) } override fun equals(other: Any?): Boolean { @@ -3425,490 +3447,495 @@ private open class SuperwallHostGeneratedPigeonCodec : StandardMessageCodec() { return when (type) { 129.toByte() -> { return (readValue(buffer) as Long?)?.let { - PFeatureGatingBehavior.ofRaw(it.toInt()) + PTestModeBehavior.ofRaw(it.toInt()) } } 130.toByte() -> { return (readValue(buffer) as Long?)?.let { - PPaywallCloseReason.ofRaw(it.toInt()) + PFeatureGatingBehavior.ofRaw(it.toInt()) } } 131.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLocalNotificationType.ofRaw(it.toInt()) + PPaywallCloseReason.ofRaw(it.toInt()) } } 132.toByte() -> { return (readValue(buffer) as Long?)?.let { - PComputedPropertyRequestType.ofRaw(it.toInt()) + PLocalNotificationType.ofRaw(it.toInt()) } } 133.toByte() -> { return (readValue(buffer) as Long?)?.let { - PSurveyShowCondition.ofRaw(it.toInt()) + PComputedPropertyRequestType.ofRaw(it.toInt()) } } 134.toByte() -> { return (readValue(buffer) as Long?)?.let { - PCustomCallbackResultStatus.ofRaw(it.toInt()) + PSurveyShowCondition.ofRaw(it.toInt()) } } 135.toByte() -> { return (readValue(buffer) as Long?)?.let { - PProductStore.ofRaw(it.toInt()) + PCustomCallbackResultStatus.ofRaw(it.toInt()) } } 136.toByte() -> { return (readValue(buffer) as Long?)?.let { - PEntitlementType.ofRaw(it.toInt()) + PProductStore.ofRaw(it.toInt()) } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLatestSubscriptionState.ofRaw(it.toInt()) + PEntitlementType.ofRaw(it.toInt()) } } 138.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLatestSubscriptionOfferType.ofRaw(it.toInt()) + PLatestSubscriptionState.ofRaw(it.toInt()) } } 139.toByte() -> { return (readValue(buffer) as Long?)?.let { - PIntegrationAttribute.ofRaw(it.toInt()) + PLatestSubscriptionOfferType.ofRaw(it.toInt()) } } 140.toByte() -> { return (readValue(buffer) as Long?)?.let { - PNetworkEnvironment.ofRaw(it.toInt()) + PIntegrationAttribute.ofRaw(it.toInt()) } } 141.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLogLevel.ofRaw(it.toInt()) + PNetworkEnvironment.ofRaw(it.toInt()) } } 142.toByte() -> { return (readValue(buffer) as Long?)?.let { - PTransactionBackgroundView.ofRaw(it.toInt()) + PLogLevel.ofRaw(it.toInt()) } } 143.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLogScope.ofRaw(it.toInt()) + PTransactionBackgroundView.ofRaw(it.toInt()) } } 144.toByte() -> { return (readValue(buffer) as Long?)?.let { - PConfigurationStatus.ofRaw(it.toInt()) + PLogScope.ofRaw(it.toInt()) } } 145.toByte() -> { return (readValue(buffer) as Long?)?.let { - PEventType.ofRaw(it.toInt()) + PConfigurationStatus.ofRaw(it.toInt()) } } 146.toByte() -> { return (readValue(buffer) as Long?)?.let { - PSubscriptionStatusType.ofRaw(it.toInt()) + PEventType.ofRaw(it.toInt()) } } 147.toByte() -> { return (readValue(buffer) as Long?)?.let { - PPaywallPresentationRequestStatusType.ofRaw(it.toInt()) + PSubscriptionStatusType.ofRaw(it.toInt()) } } 148.toByte() -> { return (readValue(buffer) as Long?)?.let { - PVariantType.ofRaw(it.toInt()) + PPaywallPresentationRequestStatusType.ofRaw(it.toInt()) } } 149.toByte() -> { return (readValue(buffer) as Long?)?.let { - PPaywallSkippedReason.ofRaw(it.toInt()) + PVariantType.ofRaw(it.toInt()) } } 150.toByte() -> { + return (readValue(buffer) as Long?)?.let { + PPaywallSkippedReason.ofRaw(it.toInt()) + } + } + 151.toByte() -> { return (readValue(buffer) as? List)?.let { PSuccessRedemptionResult.fromList(it) } } - 151.toByte() -> { + 152.toByte() -> { return (readValue(buffer) as? List)?.let { PErrorRedemptionResult.fromList(it) } } - 152.toByte() -> { + 153.toByte() -> { return (readValue(buffer) as? List)?.let { PErrorInfo.fromList(it) } } - 153.toByte() -> { + 154.toByte() -> { return (readValue(buffer) as? List)?.let { PExpiredCodeRedemptionResult.fromList(it) } } - 154.toByte() -> { + 155.toByte() -> { return (readValue(buffer) as? List)?.let { PExpiredCodeInfo.fromList(it) } } - 155.toByte() -> { + 156.toByte() -> { return (readValue(buffer) as? List)?.let { PInvalidCodeRedemptionResult.fromList(it) } } - 156.toByte() -> { + 157.toByte() -> { return (readValue(buffer) as? List)?.let { PExpiredSubscriptionCode.fromList(it) } } - 157.toByte() -> { + 158.toByte() -> { return (readValue(buffer) as? List)?.let { PRedemptionInfo.fromList(it) } } - 158.toByte() -> { + 159.toByte() -> { return (readValue(buffer) as? List)?.let { PAppUserOwnership.fromList(it) } } - 159.toByte() -> { + 160.toByte() -> { return (readValue(buffer) as? List)?.let { PDeviceOwnership.fromList(it) } } - 160.toByte() -> { + 161.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaserInfo.fromList(it) } } - 161.toByte() -> { + 162.toByte() -> { return (readValue(buffer) as? List)?.let { PStripeStoreIdentifiers.fromList(it) } } - 162.toByte() -> { + 163.toByte() -> { return (readValue(buffer) as? List)?.let { PPaddleStoreIdentifiers.fromList(it) } } - 163.toByte() -> { + 164.toByte() -> { return (readValue(buffer) as? List)?.let { PUnknownStoreIdentifiers.fromList(it) } } - 164.toByte() -> { + 165.toByte() -> { return (readValue(buffer) as? List)?.let { PRedemptionPaywallInfo.fromList(it) } } - 165.toByte() -> { + 166.toByte() -> { return (readValue(buffer) as? List)?.let { PSuperwallOptions.fromList(it) } } - 166.toByte() -> { + 167.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallInfo.fromList(it) } } - 167.toByte() -> { + 168.toByte() -> { return (readValue(buffer) as? List)?.let { PProduct.fromList(it) } } - 168.toByte() -> { + 169.toByte() -> { return (readValue(buffer) as? List)?.let { PLocalNotification.fromList(it) } } - 169.toByte() -> { + 170.toByte() -> { return (readValue(buffer) as? List)?.let { PComputedPropertyRequest.fromList(it) } } - 170.toByte() -> { + 171.toByte() -> { return (readValue(buffer) as? List)?.let { PSurvey.fromList(it) } } - 171.toByte() -> { + 172.toByte() -> { return (readValue(buffer) as? List)?.let { PSurveyOption.fromList(it) } } - 172.toByte() -> { + 173.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaseCancelled.fromList(it) } } - 173.toByte() -> { + 174.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchasePurchased.fromList(it) } } - 174.toByte() -> { + 175.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchasePending.fromList(it) } } - 175.toByte() -> { + 176.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaseFailed.fromList(it) } } - 176.toByte() -> { + 177.toByte() -> { return (readValue(buffer) as? List)?.let { PRestorationRestored.fromList(it) } } - 177.toByte() -> { + 178.toByte() -> { return (readValue(buffer) as? List)?.let { PRestorationFailed.fromList(it) } } - 178.toByte() -> { + 179.toByte() -> { return (readValue(buffer) as? List)?.let { PViaPurchase.fromList(it) } } - 179.toByte() -> { + 180.toByte() -> { return (readValue(buffer) as? List)?.let { PViaRestore.fromList(it) } } - 180.toByte() -> { + 181.toByte() -> { return (readValue(buffer) as? List)?.let { PRestoreFailed.fromList(it) } } - 181.toByte() -> { + 182.toByte() -> { return (readValue(buffer) as? List)?.let { PLogging.fromList(it) } } - 182.toByte() -> { + 183.toByte() -> { return (readValue(buffer) as? List)?.let { PStoreTransaction.fromList(it) } } - 183.toByte() -> { + 184.toByte() -> { return (readValue(buffer) as? List)?.let { PStoreProduct.fromList(it) } } - 184.toByte() -> { + 185.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallOptions.fromList(it) } } - 185.toByte() -> { + 186.toByte() -> { return (readValue(buffer) as? List)?.let { POnBackPressedHost.fromList(it) } } - 186.toByte() -> { + 187.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaseControllerHost.fromList(it) } } - 187.toByte() -> { + 188.toByte() -> { return (readValue(buffer) as? List)?.let { PConfigureCompletionHost.fromList(it) } } - 188.toByte() -> { + 189.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallPresentationHandlerHost.fromList(it) } } - 189.toByte() -> { + 190.toByte() -> { return (readValue(buffer) as? List)?.let { PFeatureHandlerHost.fromList(it) } } - 190.toByte() -> { + 191.toByte() -> { return (readValue(buffer) as? List)?.let { PCustomCallback.fromList(it) } } - 191.toByte() -> { + 192.toByte() -> { return (readValue(buffer) as? List)?.let { PCustomCallbackResult.fromList(it) } } - 192.toByte() -> { + 193.toByte() -> { return (readValue(buffer) as? List)?.let { PSubscriptionTransaction.fromList(it) } } - 193.toByte() -> { + 194.toByte() -> { return (readValue(buffer) as? List)?.let { PNonSubscriptionTransaction.fromList(it) } } - 194.toByte() -> { + 195.toByte() -> { return (readValue(buffer) as? List)?.let { PEntitlement.fromList(it) } } - 195.toByte() -> { + 196.toByte() -> { return (readValue(buffer) as? List)?.let { PCustomerInfo.fromList(it) } } - 196.toByte() -> { + 197.toByte() -> { return (readValue(buffer) as? List)?.let { PEntitlements.fromList(it) } } - 197.toByte() -> { + 198.toByte() -> { return (readValue(buffer) as? List)?.let { PActive.fromList(it) } } - 198.toByte() -> { + 199.toByte() -> { return (readValue(buffer) as? List)?.let { PInactive.fromList(it) } } - 199.toByte() -> { + 200.toByte() -> { return (readValue(buffer) as? List)?.let { PUnknown.fromList(it) } } - 200.toByte() -> { + 201.toByte() -> { return (readValue(buffer) as? List)?.let { PSuperwallEventInfo.fromList(it) } } - 201.toByte() -> { + 202.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonDebuggerPresented.fromList(it) } } - 202.toByte() -> { + 203.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonPaywallAlreadyPresented.fromList(it) } } - 203.toByte() -> { + 204.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonHoldout.fromList(it) } } - 204.toByte() -> { + 205.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoAudienceMatch.fromList(it) } } - 205.toByte() -> { + 206.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonPlacementNotFound.fromList(it) } } - 206.toByte() -> { + 207.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoPaywallVc.fromList(it) } } - 207.toByte() -> { + 208.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoPresenter.fromList(it) } } - 208.toByte() -> { + 209.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoConfig.fromList(it) } } - 209.toByte() -> { + 210.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonSubsStatusTimeout.fromList(it) } } - 210.toByte() -> { + 211.toByte() -> { return (readValue(buffer) as? List)?.let { PIdentityOptions.fromList(it) } } - 211.toByte() -> { + 212.toByte() -> { return (readValue(buffer) as? List)?.let { PExperiment.fromList(it) } } - 212.toByte() -> { + 213.toByte() -> { return (readValue(buffer) as? List)?.let { PPlacementNotFoundTriggerResult.fromList(it) } } - 213.toByte() -> { + 214.toByte() -> { return (readValue(buffer) as? List)?.let { PNoAudienceMatchTriggerResult.fromList(it) } } - 214.toByte() -> { + 215.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallTriggerResult.fromList(it) } } - 215.toByte() -> { + 216.toByte() -> { return (readValue(buffer) as? List)?.let { PHoldoutTriggerResult.fromList(it) } } - 216.toByte() -> { + 217.toByte() -> { return (readValue(buffer) as? List)?.let { PErrorTriggerResult.fromList(it) } } - 217.toByte() -> { + 218.toByte() -> { return (readValue(buffer) as? List)?.let { PVariant.fromList(it) } } - 218.toByte() -> { + 219.toByte() -> { return (readValue(buffer) as? List)?.let { PConfirmedAssignment.fromList(it) } } - 219.toByte() -> { + 220.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchasedPaywallResult.fromList(it) } } - 220.toByte() -> { + 221.toByte() -> { return (readValue(buffer) as? List)?.let { PDeclinedPaywallResult.fromList(it) } } - 221.toByte() -> { + 222.toByte() -> { return (readValue(buffer) as? List)?.let { PRestoredPaywallResult.fromList(it) } } - 222.toByte() -> { + 223.toByte() -> { return (readValue(buffer) as? List)?.let { PPlacementNotFoundPresentationResult.fromList(it) } } - 223.toByte() -> { + 224.toByte() -> { return (readValue(buffer) as? List)?.let { PNoAudienceMatchPresentationResult.fromList(it) } } - 224.toByte() -> { + 225.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallPresentationResult.fromList(it) } } - 225.toByte() -> { + 226.toByte() -> { return (readValue(buffer) as? List)?.let { PHoldoutPresentationResult.fromList(it) } } - 226.toByte() -> { + 227.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallNotAvailablePresentationResult.fromList(it) } @@ -3918,396 +3945,400 @@ private open class SuperwallHostGeneratedPigeonCodec : StandardMessageCodec() { } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { - is PFeatureGatingBehavior -> { + is PTestModeBehavior -> { stream.write(129) writeValue(stream, value.raw.toLong()) } - is PPaywallCloseReason -> { + is PFeatureGatingBehavior -> { stream.write(130) writeValue(stream, value.raw.toLong()) } - is PLocalNotificationType -> { + is PPaywallCloseReason -> { stream.write(131) writeValue(stream, value.raw.toLong()) } - is PComputedPropertyRequestType -> { + is PLocalNotificationType -> { stream.write(132) writeValue(stream, value.raw.toLong()) } - is PSurveyShowCondition -> { + is PComputedPropertyRequestType -> { stream.write(133) writeValue(stream, value.raw.toLong()) } - is PCustomCallbackResultStatus -> { + is PSurveyShowCondition -> { stream.write(134) writeValue(stream, value.raw.toLong()) } - is PProductStore -> { + is PCustomCallbackResultStatus -> { stream.write(135) writeValue(stream, value.raw.toLong()) } - is PEntitlementType -> { + is PProductStore -> { stream.write(136) writeValue(stream, value.raw.toLong()) } - is PLatestSubscriptionState -> { + is PEntitlementType -> { stream.write(137) writeValue(stream, value.raw.toLong()) } - is PLatestSubscriptionOfferType -> { + is PLatestSubscriptionState -> { stream.write(138) writeValue(stream, value.raw.toLong()) } - is PIntegrationAttribute -> { + is PLatestSubscriptionOfferType -> { stream.write(139) writeValue(stream, value.raw.toLong()) } - is PNetworkEnvironment -> { + is PIntegrationAttribute -> { stream.write(140) writeValue(stream, value.raw.toLong()) } - is PLogLevel -> { + is PNetworkEnvironment -> { stream.write(141) writeValue(stream, value.raw.toLong()) } - is PTransactionBackgroundView -> { + is PLogLevel -> { stream.write(142) writeValue(stream, value.raw.toLong()) } - is PLogScope -> { + is PTransactionBackgroundView -> { stream.write(143) writeValue(stream, value.raw.toLong()) } - is PConfigurationStatus -> { + is PLogScope -> { stream.write(144) writeValue(stream, value.raw.toLong()) } - is PEventType -> { + is PConfigurationStatus -> { stream.write(145) writeValue(stream, value.raw.toLong()) } - is PSubscriptionStatusType -> { + is PEventType -> { stream.write(146) writeValue(stream, value.raw.toLong()) } - is PPaywallPresentationRequestStatusType -> { + is PSubscriptionStatusType -> { stream.write(147) writeValue(stream, value.raw.toLong()) } - is PVariantType -> { + is PPaywallPresentationRequestStatusType -> { stream.write(148) writeValue(stream, value.raw.toLong()) } - is PPaywallSkippedReason -> { + is PVariantType -> { stream.write(149) writeValue(stream, value.raw.toLong()) } - is PSuccessRedemptionResult -> { + is PPaywallSkippedReason -> { stream.write(150) + writeValue(stream, value.raw.toLong()) + } + is PSuccessRedemptionResult -> { + stream.write(151) writeValue(stream, value.toList()) } is PErrorRedemptionResult -> { - stream.write(151) + stream.write(152) writeValue(stream, value.toList()) } is PErrorInfo -> { - stream.write(152) + stream.write(153) writeValue(stream, value.toList()) } is PExpiredCodeRedemptionResult -> { - stream.write(153) + stream.write(154) writeValue(stream, value.toList()) } is PExpiredCodeInfo -> { - stream.write(154) + stream.write(155) writeValue(stream, value.toList()) } is PInvalidCodeRedemptionResult -> { - stream.write(155) + stream.write(156) writeValue(stream, value.toList()) } is PExpiredSubscriptionCode -> { - stream.write(156) + stream.write(157) writeValue(stream, value.toList()) } is PRedemptionInfo -> { - stream.write(157) + stream.write(158) writeValue(stream, value.toList()) } is PAppUserOwnership -> { - stream.write(158) + stream.write(159) writeValue(stream, value.toList()) } is PDeviceOwnership -> { - stream.write(159) + stream.write(160) writeValue(stream, value.toList()) } is PPurchaserInfo -> { - stream.write(160) + stream.write(161) writeValue(stream, value.toList()) } is PStripeStoreIdentifiers -> { - stream.write(161) + stream.write(162) writeValue(stream, value.toList()) } is PPaddleStoreIdentifiers -> { - stream.write(162) + stream.write(163) writeValue(stream, value.toList()) } is PUnknownStoreIdentifiers -> { - stream.write(163) + stream.write(164) writeValue(stream, value.toList()) } is PRedemptionPaywallInfo -> { - stream.write(164) + stream.write(165) writeValue(stream, value.toList()) } is PSuperwallOptions -> { - stream.write(165) + stream.write(166) writeValue(stream, value.toList()) } is PPaywallInfo -> { - stream.write(166) + stream.write(167) writeValue(stream, value.toList()) } is PProduct -> { - stream.write(167) + stream.write(168) writeValue(stream, value.toList()) } is PLocalNotification -> { - stream.write(168) + stream.write(169) writeValue(stream, value.toList()) } is PComputedPropertyRequest -> { - stream.write(169) + stream.write(170) writeValue(stream, value.toList()) } is PSurvey -> { - stream.write(170) + stream.write(171) writeValue(stream, value.toList()) } is PSurveyOption -> { - stream.write(171) + stream.write(172) writeValue(stream, value.toList()) } is PPurchaseCancelled -> { - stream.write(172) + stream.write(173) writeValue(stream, value.toList()) } is PPurchasePurchased -> { - stream.write(173) + stream.write(174) writeValue(stream, value.toList()) } is PPurchasePending -> { - stream.write(174) + stream.write(175) writeValue(stream, value.toList()) } is PPurchaseFailed -> { - stream.write(175) + stream.write(176) writeValue(stream, value.toList()) } is PRestorationRestored -> { - stream.write(176) + stream.write(177) writeValue(stream, value.toList()) } is PRestorationFailed -> { - stream.write(177) + stream.write(178) writeValue(stream, value.toList()) } is PViaPurchase -> { - stream.write(178) + stream.write(179) writeValue(stream, value.toList()) } is PViaRestore -> { - stream.write(179) + stream.write(180) writeValue(stream, value.toList()) } is PRestoreFailed -> { - stream.write(180) + stream.write(181) writeValue(stream, value.toList()) } is PLogging -> { - stream.write(181) + stream.write(182) writeValue(stream, value.toList()) } is PStoreTransaction -> { - stream.write(182) + stream.write(183) writeValue(stream, value.toList()) } is PStoreProduct -> { - stream.write(183) + stream.write(184) writeValue(stream, value.toList()) } is PPaywallOptions -> { - stream.write(184) + stream.write(185) writeValue(stream, value.toList()) } is POnBackPressedHost -> { - stream.write(185) + stream.write(186) writeValue(stream, value.toList()) } is PPurchaseControllerHost -> { - stream.write(186) + stream.write(187) writeValue(stream, value.toList()) } is PConfigureCompletionHost -> { - stream.write(187) + stream.write(188) writeValue(stream, value.toList()) } is PPaywallPresentationHandlerHost -> { - stream.write(188) + stream.write(189) writeValue(stream, value.toList()) } is PFeatureHandlerHost -> { - stream.write(189) + stream.write(190) writeValue(stream, value.toList()) } is PCustomCallback -> { - stream.write(190) + stream.write(191) writeValue(stream, value.toList()) } is PCustomCallbackResult -> { - stream.write(191) + stream.write(192) writeValue(stream, value.toList()) } is PSubscriptionTransaction -> { - stream.write(192) + stream.write(193) writeValue(stream, value.toList()) } is PNonSubscriptionTransaction -> { - stream.write(193) + stream.write(194) writeValue(stream, value.toList()) } is PEntitlement -> { - stream.write(194) + stream.write(195) writeValue(stream, value.toList()) } is PCustomerInfo -> { - stream.write(195) + stream.write(196) writeValue(stream, value.toList()) } is PEntitlements -> { - stream.write(196) + stream.write(197) writeValue(stream, value.toList()) } is PActive -> { - stream.write(197) + stream.write(198) writeValue(stream, value.toList()) } is PInactive -> { - stream.write(198) + stream.write(199) writeValue(stream, value.toList()) } is PUnknown -> { - stream.write(199) + stream.write(200) writeValue(stream, value.toList()) } is PSuperwallEventInfo -> { - stream.write(200) + stream.write(201) writeValue(stream, value.toList()) } is PStatusReasonDebuggerPresented -> { - stream.write(201) + stream.write(202) writeValue(stream, value.toList()) } is PStatusReasonPaywallAlreadyPresented -> { - stream.write(202) + stream.write(203) writeValue(stream, value.toList()) } is PStatusReasonHoldout -> { - stream.write(203) + stream.write(204) writeValue(stream, value.toList()) } is PStatusReasonNoAudienceMatch -> { - stream.write(204) + stream.write(205) writeValue(stream, value.toList()) } is PStatusReasonPlacementNotFound -> { - stream.write(205) + stream.write(206) writeValue(stream, value.toList()) } is PStatusReasonNoPaywallVc -> { - stream.write(206) + stream.write(207) writeValue(stream, value.toList()) } is PStatusReasonNoPresenter -> { - stream.write(207) + stream.write(208) writeValue(stream, value.toList()) } is PStatusReasonNoConfig -> { - stream.write(208) + stream.write(209) writeValue(stream, value.toList()) } is PStatusReasonSubsStatusTimeout -> { - stream.write(209) + stream.write(210) writeValue(stream, value.toList()) } is PIdentityOptions -> { - stream.write(210) + stream.write(211) writeValue(stream, value.toList()) } is PExperiment -> { - stream.write(211) + stream.write(212) writeValue(stream, value.toList()) } is PPlacementNotFoundTriggerResult -> { - stream.write(212) + stream.write(213) writeValue(stream, value.toList()) } is PNoAudienceMatchTriggerResult -> { - stream.write(213) + stream.write(214) writeValue(stream, value.toList()) } is PPaywallTriggerResult -> { - stream.write(214) + stream.write(215) writeValue(stream, value.toList()) } is PHoldoutTriggerResult -> { - stream.write(215) + stream.write(216) writeValue(stream, value.toList()) } is PErrorTriggerResult -> { - stream.write(216) + stream.write(217) writeValue(stream, value.toList()) } is PVariant -> { - stream.write(217) + stream.write(218) writeValue(stream, value.toList()) } is PConfirmedAssignment -> { - stream.write(218) + stream.write(219) writeValue(stream, value.toList()) } is PPurchasedPaywallResult -> { - stream.write(219) + stream.write(220) writeValue(stream, value.toList()) } is PDeclinedPaywallResult -> { - stream.write(220) + stream.write(221) writeValue(stream, value.toList()) } is PRestoredPaywallResult -> { - stream.write(221) + stream.write(222) writeValue(stream, value.toList()) } is PPlacementNotFoundPresentationResult -> { - stream.write(222) + stream.write(223) writeValue(stream, value.toList()) } is PNoAudienceMatchPresentationResult -> { - stream.write(223) + stream.write(224) writeValue(stream, value.toList()) } is PPaywallPresentationResult -> { - stream.write(224) + stream.write(225) writeValue(stream, value.toList()) } is PHoldoutPresentationResult -> { - stream.write(225) + stream.write(226) writeValue(stream, value.toList()) } is PPaywallNotAvailablePresentationResult -> { - stream.write(226) + stream.write(227) writeValue(stream, value.toList()) } else -> super.writeValue(stream, value) diff --git a/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/EventMapper.kt b/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/EventMapper.kt index 04c8102..4af8e6c 100644 --- a/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/EventMapper.kt +++ b/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/EventMapper.kt @@ -320,6 +320,9 @@ class EventMapper { is SuperwallEvent.PermissionGranted -> PSuperwallEventInfo(eventType = PEventType.PERMISSION_GRANTED, params = params) is SuperwallEvent.PermissionDenied -> PSuperwallEventInfo(eventType = PEventType.PERMISSION_DENIED, params = params) + is SuperwallEvent.TestModeModalOpen -> PSuperwallEventInfo(eventType = PEventType.TEST_MODE_MODAL_OPEN, params = params) + is SuperwallEvent.TestModeModalClose -> PSuperwallEventInfo(eventType = PEventType.TEST_MODE_MODAL_CLOSE, params = params) + else -> PSuperwallEventInfo( eventType = PEventType.CUSTOM_PLACEMENT, name = event.rawName, diff --git a/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/OptionsMapper.kt b/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/OptionsMapper.kt index 14e3e0e..4da1680 100644 --- a/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/OptionsMapper.kt +++ b/android/src/main/kotlin/com/superwall/superwallkit_flutter/utils/OptionsMapper.kt @@ -24,6 +24,7 @@ import com.superwall.sdk.models.product.PlayStoreProduct import com.superwall.sdk.models.product.ProductItem import com.superwall.sdk.models.triggers.Experiment import com.superwall.sdk.store.abstractions.product.OfferType +import com.superwall.sdk.store.testmode.TestModeBehavior import java.util.EnumSet /** @@ -51,6 +52,17 @@ fun PSuperwallOptions.toSdkOptions(): SuperwallOptions { this.isGameControllerEnabled?.let { sdkOptions.isGameControllerEnabled = it } this.passIdentifiersToPlayStore?.let { sdkOptions.passIdentifiersToPlayStore = it } + this.testModeBehavior?.let { hostTestModeBehavior -> + sdkOptions.testModeBehavior = + when (hostTestModeBehavior) { + PTestModeBehavior.AUTOMATIC -> TestModeBehavior.AUTOMATIC + PTestModeBehavior.WHEN_ENABLED_FOR_USER -> TestModeBehavior.WHEN_ENABLED_FOR_USER + PTestModeBehavior.NEVER -> TestModeBehavior.NEVER + PTestModeBehavior.ALWAYS -> TestModeBehavior.ALWAYS + else -> TestModeBehavior.AUTOMATIC + } + } + this.logging?.let { hostLogging -> hostLogging.level?.let { hostLevel -> sdkOptions.logging.level = diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index ba6d7d4..ca6a625 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -11,11 +11,11 @@ PODS: - RevenueCat (= 5.43.0) - RevenueCat (5.43.0) - Superscript (1.0.13) - - SuperwallKit (4.13.0): + - SuperwallKit (4.14.0): - Superscript (= 1.0.13) - superwallkit_flutter (0.0.1): - Flutter - - SuperwallKit (= 4.13.0) + - SuperwallKit (= 4.14.0) DEPENDENCIES: - app_links (from `.symlinks/plugins/app_links/ios`) @@ -44,16 +44,16 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/superwallkit_flutter/ios" SPEC CHECKSUMS: - app_links: f3e17e4ee5e357b39d8b95290a9b2c299fca71c6 + app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 - integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 - purchases_flutter: 037ed5ccef5d69cb21ab9b19ffe7e0f5c44d511e + integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e + purchases_flutter: a5cdfe4efd74e1beb23a069d02f960efdbf327dd PurchasesHybridCommon: b7b4eafb55fbaaac19b4c36d4082657a3f0d8490 RevenueCat: a51003d4cb33820cc504cf177c627832b462a98e Superscript: bcb4099b41bed108ab7e88cfc56af0ed1170b582 - SuperwallKit: ded61b361f1893a5679fccdddd07f7ac273e290c - superwallkit_flutter: 56e20785a3fcadab31c17a6cb99efe2374eeb4a3 + SuperwallKit: ea1dfef1df59c45e9996d106a45993dec08fe711 + superwallkit_flutter: 78f4b9979fa1fec41cc38ee5f704a319580f56f2 PODFILE CHECKSUM: 1959d098c91d8a792531a723c4a9d7e9f6a01e38 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 48acdfe..4d2b6c5 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -297,10 +297,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 647663f..c2c5036 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -37,6 +37,8 @@ CFBundleVersion $(FLUTTER_BUILD_NUMBER) + FlutterDeepLinkingEnabled + LSRequiresIPhoneOS UIApplicationSupportsIndirectInputEvents @@ -58,7 +60,5 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - FlutterDeepLinkingEnabled - diff --git a/example/lib/MySuperwallDelegate.dart b/example/lib/MySuperwallDelegate.dart index 240471b..ba19cf0 100644 --- a/example/lib/MySuperwallDelegate.dart +++ b/example/lib/MySuperwallDelegate.dart @@ -96,6 +96,7 @@ class MySuperwallDelegate extends SuperwallDelegate { @override void customerInfoDidChange(CustomerInfo from, CustomerInfo to) { - logging.info('customerInfoDidChange: userId=${to.userId}, subscriptions=${to.subscriptions.length}, entitlements=${to.entitlements.length}'); + logging.info( + 'customerInfoDidChange: userId=${to.userId}, subscriptions=${to.subscriptions.length}, entitlements=${to.entitlements.length}'); } } diff --git a/example/pubspec.lock b/example/pubspec.lock index a941cdb..d989f43 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" clock: dependency: transitive description: @@ -291,26 +291,26 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.18" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" package_config: dependency: transitive description: @@ -447,10 +447,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636" url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.9" typed_data: dependency: transitive description: diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 495780d..91e92ad 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -58,6 +58,9 @@ flutter: # the material Icons class. uses-material-design: true + config: + enable-uiscene-migration: false + # To add assets to your application, add an assets section, like this: # assets: # - images/a_dot_burr.jpeg diff --git a/ios/Classes/Mappers/OptionsMapper.swift b/ios/Classes/Mappers/OptionsMapper.swift index e3c49f1..5f15122 100644 --- a/ios/Classes/Mappers/OptionsMapper.swift +++ b/ios/Classes/Mappers/OptionsMapper.swift @@ -82,6 +82,19 @@ extension PSuperwallOptions { options.isGameControllerEnabled = isGameControllerEnabled } + if let testModeBehavior = self.testModeBehavior { + switch testModeBehavior { + case .automatic: + options.testModeBehavior = .automatic + case .whenEnabledForUser: + options.testModeBehavior = .whenEnabledForUser + case .never: + options.testModeBehavior = .never + case .always: + options.testModeBehavior = .always + } + } + if let logging = self.logging { if let level = logging.level { switch level { diff --git a/ios/Classes/SuperwallDelegate.swift b/ios/Classes/SuperwallDelegate.swift index 66547ae..cc36b78 100644 --- a/ios/Classes/SuperwallDelegate.swift +++ b/ios/Classes/SuperwallDelegate.swift @@ -422,6 +422,40 @@ final class SuperwallDelegateHost: SuperwallDelegate { eventType: .permissionDenied, params: params ) + case .stripeCheckoutStart(let paywallInfo): + pEventInfo = PSuperwallEventInfo( + eventType: .stripeCheckoutStart, + params: params, + paywallInfo: paywallInfo.pigeonify() + ) + case .stripeCheckoutSubmit(let paywallInfo): + pEventInfo = PSuperwallEventInfo( + eventType: .stripeCheckoutSubmit, + params: params, + paywallInfo: paywallInfo.pigeonify() + ) + case .stripeCheckoutComplete(let paywallInfo): + pEventInfo = PSuperwallEventInfo( + eventType: .stripeCheckoutComplete, + params: params, + paywallInfo: paywallInfo.pigeonify() + ) + case .stripeCheckoutFail(let paywallInfo): + pEventInfo = PSuperwallEventInfo( + eventType: .stripeCheckoutFail, + params: params, + paywallInfo: paywallInfo.pigeonify() + ) + case .testModeModalOpen: + pEventInfo = PSuperwallEventInfo( + eventType: .testModeModalOpen, + params: params + ) + case .testModeModalClose: + pEventInfo = PSuperwallEventInfo( + eventType: .testModeModalClose, + params: params + ) @unknown default: pEventInfo = PSuperwallEventInfo( eventType: .customPlacement, diff --git a/ios/Classes/SuperwallHostGenerated.swift b/ios/Classes/SuperwallHostGenerated.swift index 87000b9..14f186c 100644 --- a/ios/Classes/SuperwallHostGenerated.swift +++ b/ios/Classes/SuperwallHostGenerated.swift @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v26.1.7), do not edit directly. +// Autogenerated from Pigeon (v26.1.10), do not edit directly. // See also: https://pub.dev/packages/pigeon import Foundation @@ -132,6 +132,13 @@ func deepHashSuperwallHostGenerated(value: Any?, hasher: inout Hasher) { +enum PTestModeBehavior: Int { + case automatic = 0 + case whenEnabledForUser = 1 + case never = 2 + case always = 3 +} + enum PFeatureGatingBehavior: Int { case gated = 0 case nonGated = 1 @@ -386,6 +393,12 @@ enum PEventType: Int { case permissionRequested = 70 case permissionGranted = 71 case permissionDenied = 72 + case stripeCheckoutStart = 73 + case stripeCheckoutSubmit = 74 + case stripeCheckoutComplete = 75 + case stripeCheckoutFail = 76 + case testModeModalOpen = 77 + case testModeModalClose = 78 } enum PSubscriptionStatusType: Int { @@ -915,6 +928,7 @@ struct PSuperwallOptions: Hashable { var enableExperimentalDeviceVariables: Bool? = nil var logging: PLogging? = nil var passIdentifiersToPlayStore: Bool? = nil + var testModeBehavior: PTestModeBehavior? = nil // swift-format-ignore: AlwaysUseLowerCamelCase @@ -927,6 +941,7 @@ struct PSuperwallOptions: Hashable { let enableExperimentalDeviceVariables: Bool? = nilOrValue(pigeonVar_list[5]) let logging: PLogging? = nilOrValue(pigeonVar_list[6]) let passIdentifiersToPlayStore: Bool? = nilOrValue(pigeonVar_list[7]) + let testModeBehavior: PTestModeBehavior? = nilOrValue(pigeonVar_list[8]) return PSuperwallOptions( paywalls: paywalls, @@ -936,7 +951,8 @@ struct PSuperwallOptions: Hashable { isGameControllerEnabled: isGameControllerEnabled, enableExperimentalDeviceVariables: enableExperimentalDeviceVariables, logging: logging, - passIdentifiersToPlayStore: passIdentifiersToPlayStore + passIdentifiersToPlayStore: passIdentifiersToPlayStore, + testModeBehavior: testModeBehavior ) } func toList() -> [Any?] { @@ -949,6 +965,7 @@ struct PSuperwallOptions: Hashable { enableExperimentalDeviceVariables, logging, passIdentifiersToPlayStore, + testModeBehavior, ] } static func == (lhs: PSuperwallOptions, rhs: PSuperwallOptions) -> Bool { @@ -3301,282 +3318,288 @@ private class SuperwallHostGeneratedPigeonCodecReader: FlutterStandardReader { case 129: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PFeatureGatingBehavior(rawValue: enumResultAsInt) + return PTestModeBehavior(rawValue: enumResultAsInt) } return nil case 130: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PPaywallCloseReason(rawValue: enumResultAsInt) + return PFeatureGatingBehavior(rawValue: enumResultAsInt) } return nil case 131: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLocalNotificationType(rawValue: enumResultAsInt) + return PPaywallCloseReason(rawValue: enumResultAsInt) } return nil case 132: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PComputedPropertyRequestType(rawValue: enumResultAsInt) + return PLocalNotificationType(rawValue: enumResultAsInt) } return nil case 133: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PSurveyShowCondition(rawValue: enumResultAsInt) + return PComputedPropertyRequestType(rawValue: enumResultAsInt) } return nil case 134: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PCustomCallbackResultStatus(rawValue: enumResultAsInt) + return PSurveyShowCondition(rawValue: enumResultAsInt) } return nil case 135: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PProductStore(rawValue: enumResultAsInt) + return PCustomCallbackResultStatus(rawValue: enumResultAsInt) } return nil case 136: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PEntitlementType(rawValue: enumResultAsInt) + return PProductStore(rawValue: enumResultAsInt) } return nil case 137: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLatestSubscriptionState(rawValue: enumResultAsInt) + return PEntitlementType(rawValue: enumResultAsInt) } return nil case 138: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLatestSubscriptionOfferType(rawValue: enumResultAsInt) + return PLatestSubscriptionState(rawValue: enumResultAsInt) } return nil case 139: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PIntegrationAttribute(rawValue: enumResultAsInt) + return PLatestSubscriptionOfferType(rawValue: enumResultAsInt) } return nil case 140: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PNetworkEnvironment(rawValue: enumResultAsInt) + return PIntegrationAttribute(rawValue: enumResultAsInt) } return nil case 141: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLogLevel(rawValue: enumResultAsInt) + return PNetworkEnvironment(rawValue: enumResultAsInt) } return nil case 142: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PTransactionBackgroundView(rawValue: enumResultAsInt) + return PLogLevel(rawValue: enumResultAsInt) } return nil case 143: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLogScope(rawValue: enumResultAsInt) + return PTransactionBackgroundView(rawValue: enumResultAsInt) } return nil case 144: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PConfigurationStatus(rawValue: enumResultAsInt) + return PLogScope(rawValue: enumResultAsInt) } return nil case 145: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PEventType(rawValue: enumResultAsInt) + return PConfigurationStatus(rawValue: enumResultAsInt) } return nil case 146: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PSubscriptionStatusType(rawValue: enumResultAsInt) + return PEventType(rawValue: enumResultAsInt) } return nil case 147: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PPaywallPresentationRequestStatusType(rawValue: enumResultAsInt) + return PSubscriptionStatusType(rawValue: enumResultAsInt) } return nil case 148: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PVariantType(rawValue: enumResultAsInt) + return PPaywallPresentationRequestStatusType(rawValue: enumResultAsInt) } return nil case 149: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PPaywallSkippedReason(rawValue: enumResultAsInt) + return PVariantType(rawValue: enumResultAsInt) } return nil case 150: - return PSuccessRedemptionResult.fromList(self.readValue() as! [Any?]) + let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) + if let enumResultAsInt = enumResultAsInt { + return PPaywallSkippedReason(rawValue: enumResultAsInt) + } + return nil case 151: - return PErrorRedemptionResult.fromList(self.readValue() as! [Any?]) + return PSuccessRedemptionResult.fromList(self.readValue() as! [Any?]) case 152: - return PErrorInfo.fromList(self.readValue() as! [Any?]) + return PErrorRedemptionResult.fromList(self.readValue() as! [Any?]) case 153: - return PExpiredCodeRedemptionResult.fromList(self.readValue() as! [Any?]) + return PErrorInfo.fromList(self.readValue() as! [Any?]) case 154: - return PExpiredCodeInfo.fromList(self.readValue() as! [Any?]) + return PExpiredCodeRedemptionResult.fromList(self.readValue() as! [Any?]) case 155: - return PInvalidCodeRedemptionResult.fromList(self.readValue() as! [Any?]) + return PExpiredCodeInfo.fromList(self.readValue() as! [Any?]) case 156: - return PExpiredSubscriptionCode.fromList(self.readValue() as! [Any?]) + return PInvalidCodeRedemptionResult.fromList(self.readValue() as! [Any?]) case 157: - return PRedemptionInfo.fromList(self.readValue() as! [Any?]) + return PExpiredSubscriptionCode.fromList(self.readValue() as! [Any?]) case 158: - return PAppUserOwnership.fromList(self.readValue() as! [Any?]) + return PRedemptionInfo.fromList(self.readValue() as! [Any?]) case 159: - return PDeviceOwnership.fromList(self.readValue() as! [Any?]) + return PAppUserOwnership.fromList(self.readValue() as! [Any?]) case 160: - return PPurchaserInfo.fromList(self.readValue() as! [Any?]) + return PDeviceOwnership.fromList(self.readValue() as! [Any?]) case 161: - return PStripeStoreIdentifiers.fromList(self.readValue() as! [Any?]) + return PPurchaserInfo.fromList(self.readValue() as! [Any?]) case 162: - return PPaddleStoreIdentifiers.fromList(self.readValue() as! [Any?]) + return PStripeStoreIdentifiers.fromList(self.readValue() as! [Any?]) case 163: - return PUnknownStoreIdentifiers.fromList(self.readValue() as! [Any?]) + return PPaddleStoreIdentifiers.fromList(self.readValue() as! [Any?]) case 164: - return PRedemptionPaywallInfo.fromList(self.readValue() as! [Any?]) + return PUnknownStoreIdentifiers.fromList(self.readValue() as! [Any?]) case 165: - return PSuperwallOptions.fromList(self.readValue() as! [Any?]) + return PRedemptionPaywallInfo.fromList(self.readValue() as! [Any?]) case 166: - return PPaywallInfo.fromList(self.readValue() as! [Any?]) + return PSuperwallOptions.fromList(self.readValue() as! [Any?]) case 167: - return PProduct.fromList(self.readValue() as! [Any?]) + return PPaywallInfo.fromList(self.readValue() as! [Any?]) case 168: - return PLocalNotification.fromList(self.readValue() as! [Any?]) + return PProduct.fromList(self.readValue() as! [Any?]) case 169: - return PComputedPropertyRequest.fromList(self.readValue() as! [Any?]) + return PLocalNotification.fromList(self.readValue() as! [Any?]) case 170: - return PSurvey.fromList(self.readValue() as! [Any?]) + return PComputedPropertyRequest.fromList(self.readValue() as! [Any?]) case 171: - return PSurveyOption.fromList(self.readValue() as! [Any?]) + return PSurvey.fromList(self.readValue() as! [Any?]) case 172: - return PPurchaseCancelled.fromList(self.readValue() as! [Any?]) + return PSurveyOption.fromList(self.readValue() as! [Any?]) case 173: - return PPurchasePurchased.fromList(self.readValue() as! [Any?]) + return PPurchaseCancelled.fromList(self.readValue() as! [Any?]) case 174: - return PPurchasePending.fromList(self.readValue() as! [Any?]) + return PPurchasePurchased.fromList(self.readValue() as! [Any?]) case 175: - return PPurchaseFailed.fromList(self.readValue() as! [Any?]) + return PPurchasePending.fromList(self.readValue() as! [Any?]) case 176: - return PRestorationRestored.fromList(self.readValue() as! [Any?]) + return PPurchaseFailed.fromList(self.readValue() as! [Any?]) case 177: - return PRestorationFailed.fromList(self.readValue() as! [Any?]) + return PRestorationRestored.fromList(self.readValue() as! [Any?]) case 178: - return PViaPurchase.fromList(self.readValue() as! [Any?]) + return PRestorationFailed.fromList(self.readValue() as! [Any?]) case 179: - return PViaRestore.fromList(self.readValue() as! [Any?]) + return PViaPurchase.fromList(self.readValue() as! [Any?]) case 180: - return PRestoreFailed.fromList(self.readValue() as! [Any?]) + return PViaRestore.fromList(self.readValue() as! [Any?]) case 181: - return PLogging.fromList(self.readValue() as! [Any?]) + return PRestoreFailed.fromList(self.readValue() as! [Any?]) case 182: - return PStoreTransaction.fromList(self.readValue() as! [Any?]) + return PLogging.fromList(self.readValue() as! [Any?]) case 183: - return PStoreProduct.fromList(self.readValue() as! [Any?]) + return PStoreTransaction.fromList(self.readValue() as! [Any?]) case 184: - return PPaywallOptions.fromList(self.readValue() as! [Any?]) + return PStoreProduct.fromList(self.readValue() as! [Any?]) case 185: - return POnBackPressedHost.fromList(self.readValue() as! [Any?]) + return PPaywallOptions.fromList(self.readValue() as! [Any?]) case 186: - return PPurchaseControllerHost.fromList(self.readValue() as! [Any?]) + return POnBackPressedHost.fromList(self.readValue() as! [Any?]) case 187: - return PConfigureCompletionHost.fromList(self.readValue() as! [Any?]) + return PPurchaseControllerHost.fromList(self.readValue() as! [Any?]) case 188: - return PPaywallPresentationHandlerHost.fromList(self.readValue() as! [Any?]) + return PConfigureCompletionHost.fromList(self.readValue() as! [Any?]) case 189: - return PFeatureHandlerHost.fromList(self.readValue() as! [Any?]) + return PPaywallPresentationHandlerHost.fromList(self.readValue() as! [Any?]) case 190: - return PCustomCallback.fromList(self.readValue() as! [Any?]) + return PFeatureHandlerHost.fromList(self.readValue() as! [Any?]) case 191: - return PCustomCallbackResult.fromList(self.readValue() as! [Any?]) + return PCustomCallback.fromList(self.readValue() as! [Any?]) case 192: - return PSubscriptionTransaction.fromList(self.readValue() as! [Any?]) + return PCustomCallbackResult.fromList(self.readValue() as! [Any?]) case 193: - return PNonSubscriptionTransaction.fromList(self.readValue() as! [Any?]) + return PSubscriptionTransaction.fromList(self.readValue() as! [Any?]) case 194: - return PEntitlement.fromList(self.readValue() as! [Any?]) + return PNonSubscriptionTransaction.fromList(self.readValue() as! [Any?]) case 195: - return PCustomerInfo.fromList(self.readValue() as! [Any?]) + return PEntitlement.fromList(self.readValue() as! [Any?]) case 196: - return PEntitlements.fromList(self.readValue() as! [Any?]) + return PCustomerInfo.fromList(self.readValue() as! [Any?]) case 197: - return PActive.fromList(self.readValue() as! [Any?]) + return PEntitlements.fromList(self.readValue() as! [Any?]) case 198: - return PInactive.fromList(self.readValue() as! [Any?]) + return PActive.fromList(self.readValue() as! [Any?]) case 199: - return PUnknown.fromList(self.readValue() as! [Any?]) + return PInactive.fromList(self.readValue() as! [Any?]) case 200: - return PSuperwallEventInfo.fromList(self.readValue() as! [Any?]) + return PUnknown.fromList(self.readValue() as! [Any?]) case 201: - return PStatusReasonDebuggerPresented.fromList(self.readValue() as! [Any?]) + return PSuperwallEventInfo.fromList(self.readValue() as! [Any?]) case 202: - return PStatusReasonPaywallAlreadyPresented.fromList(self.readValue() as! [Any?]) + return PStatusReasonDebuggerPresented.fromList(self.readValue() as! [Any?]) case 203: - return PStatusReasonHoldout.fromList(self.readValue() as! [Any?]) + return PStatusReasonPaywallAlreadyPresented.fromList(self.readValue() as! [Any?]) case 204: - return PStatusReasonNoAudienceMatch.fromList(self.readValue() as! [Any?]) + return PStatusReasonHoldout.fromList(self.readValue() as! [Any?]) case 205: - return PStatusReasonPlacementNotFound.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoAudienceMatch.fromList(self.readValue() as! [Any?]) case 206: - return PStatusReasonNoPaywallVc.fromList(self.readValue() as! [Any?]) + return PStatusReasonPlacementNotFound.fromList(self.readValue() as! [Any?]) case 207: - return PStatusReasonNoPresenter.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoPaywallVc.fromList(self.readValue() as! [Any?]) case 208: - return PStatusReasonNoConfig.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoPresenter.fromList(self.readValue() as! [Any?]) case 209: - return PStatusReasonSubsStatusTimeout.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoConfig.fromList(self.readValue() as! [Any?]) case 210: - return PIdentityOptions.fromList(self.readValue() as! [Any?]) + return PStatusReasonSubsStatusTimeout.fromList(self.readValue() as! [Any?]) case 211: - return PExperiment.fromList(self.readValue() as! [Any?]) + return PIdentityOptions.fromList(self.readValue() as! [Any?]) case 212: - return PPlacementNotFoundTriggerResult.fromList(self.readValue() as! [Any?]) + return PExperiment.fromList(self.readValue() as! [Any?]) case 213: - return PNoAudienceMatchTriggerResult.fromList(self.readValue() as! [Any?]) + return PPlacementNotFoundTriggerResult.fromList(self.readValue() as! [Any?]) case 214: - return PPaywallTriggerResult.fromList(self.readValue() as! [Any?]) + return PNoAudienceMatchTriggerResult.fromList(self.readValue() as! [Any?]) case 215: - return PHoldoutTriggerResult.fromList(self.readValue() as! [Any?]) + return PPaywallTriggerResult.fromList(self.readValue() as! [Any?]) case 216: - return PErrorTriggerResult.fromList(self.readValue() as! [Any?]) + return PHoldoutTriggerResult.fromList(self.readValue() as! [Any?]) case 217: - return PVariant.fromList(self.readValue() as! [Any?]) + return PErrorTriggerResult.fromList(self.readValue() as! [Any?]) case 218: - return PConfirmedAssignment.fromList(self.readValue() as! [Any?]) + return PVariant.fromList(self.readValue() as! [Any?]) case 219: - return PPurchasedPaywallResult.fromList(self.readValue() as! [Any?]) + return PConfirmedAssignment.fromList(self.readValue() as! [Any?]) case 220: - return PDeclinedPaywallResult.fromList(self.readValue() as! [Any?]) + return PPurchasedPaywallResult.fromList(self.readValue() as! [Any?]) case 221: - return PRestoredPaywallResult.fromList(self.readValue() as! [Any?]) + return PDeclinedPaywallResult.fromList(self.readValue() as! [Any?]) case 222: - return PPlacementNotFoundPresentationResult.fromList(self.readValue() as! [Any?]) + return PRestoredPaywallResult.fromList(self.readValue() as! [Any?]) case 223: - return PNoAudienceMatchPresentationResult.fromList(self.readValue() as! [Any?]) + return PPlacementNotFoundPresentationResult.fromList(self.readValue() as! [Any?]) case 224: - return PPaywallPresentationResult.fromList(self.readValue() as! [Any?]) + return PNoAudienceMatchPresentationResult.fromList(self.readValue() as! [Any?]) case 225: - return PHoldoutPresentationResult.fromList(self.readValue() as! [Any?]) + return PPaywallPresentationResult.fromList(self.readValue() as! [Any?]) case 226: + return PHoldoutPresentationResult.fromList(self.readValue() as! [Any?]) + case 227: return PPaywallNotAvailablePresentationResult.fromList(self.readValue() as! [Any?]) default: return super.readValue(ofType: type) @@ -3586,299 +3609,302 @@ private class SuperwallHostGeneratedPigeonCodecReader: FlutterStandardReader { private class SuperwallHostGeneratedPigeonCodecWriter: FlutterStandardWriter { override func writeValue(_ value: Any) { - if let value = value as? PFeatureGatingBehavior { + if let value = value as? PTestModeBehavior { super.writeByte(129) super.writeValue(value.rawValue) - } else if let value = value as? PPaywallCloseReason { + } else if let value = value as? PFeatureGatingBehavior { super.writeByte(130) super.writeValue(value.rawValue) - } else if let value = value as? PLocalNotificationType { + } else if let value = value as? PPaywallCloseReason { super.writeByte(131) super.writeValue(value.rawValue) - } else if let value = value as? PComputedPropertyRequestType { + } else if let value = value as? PLocalNotificationType { super.writeByte(132) super.writeValue(value.rawValue) - } else if let value = value as? PSurveyShowCondition { + } else if let value = value as? PComputedPropertyRequestType { super.writeByte(133) super.writeValue(value.rawValue) - } else if let value = value as? PCustomCallbackResultStatus { + } else if let value = value as? PSurveyShowCondition { super.writeByte(134) super.writeValue(value.rawValue) - } else if let value = value as? PProductStore { + } else if let value = value as? PCustomCallbackResultStatus { super.writeByte(135) super.writeValue(value.rawValue) - } else if let value = value as? PEntitlementType { + } else if let value = value as? PProductStore { super.writeByte(136) super.writeValue(value.rawValue) - } else if let value = value as? PLatestSubscriptionState { + } else if let value = value as? PEntitlementType { super.writeByte(137) super.writeValue(value.rawValue) - } else if let value = value as? PLatestSubscriptionOfferType { + } else if let value = value as? PLatestSubscriptionState { super.writeByte(138) super.writeValue(value.rawValue) - } else if let value = value as? PIntegrationAttribute { + } else if let value = value as? PLatestSubscriptionOfferType { super.writeByte(139) super.writeValue(value.rawValue) - } else if let value = value as? PNetworkEnvironment { + } else if let value = value as? PIntegrationAttribute { super.writeByte(140) super.writeValue(value.rawValue) - } else if let value = value as? PLogLevel { + } else if let value = value as? PNetworkEnvironment { super.writeByte(141) super.writeValue(value.rawValue) - } else if let value = value as? PTransactionBackgroundView { + } else if let value = value as? PLogLevel { super.writeByte(142) super.writeValue(value.rawValue) - } else if let value = value as? PLogScope { + } else if let value = value as? PTransactionBackgroundView { super.writeByte(143) super.writeValue(value.rawValue) - } else if let value = value as? PConfigurationStatus { + } else if let value = value as? PLogScope { super.writeByte(144) super.writeValue(value.rawValue) - } else if let value = value as? PEventType { + } else if let value = value as? PConfigurationStatus { super.writeByte(145) super.writeValue(value.rawValue) - } else if let value = value as? PSubscriptionStatusType { + } else if let value = value as? PEventType { super.writeByte(146) super.writeValue(value.rawValue) - } else if let value = value as? PPaywallPresentationRequestStatusType { + } else if let value = value as? PSubscriptionStatusType { super.writeByte(147) super.writeValue(value.rawValue) - } else if let value = value as? PVariantType { + } else if let value = value as? PPaywallPresentationRequestStatusType { super.writeByte(148) super.writeValue(value.rawValue) - } else if let value = value as? PPaywallSkippedReason { + } else if let value = value as? PVariantType { super.writeByte(149) super.writeValue(value.rawValue) - } else if let value = value as? PSuccessRedemptionResult { + } else if let value = value as? PPaywallSkippedReason { super.writeByte(150) + super.writeValue(value.rawValue) + } else if let value = value as? PSuccessRedemptionResult { + super.writeByte(151) super.writeValue(value.toList()) } else if let value = value as? PErrorRedemptionResult { - super.writeByte(151) + super.writeByte(152) super.writeValue(value.toList()) } else if let value = value as? PErrorInfo { - super.writeByte(152) + super.writeByte(153) super.writeValue(value.toList()) } else if let value = value as? PExpiredCodeRedemptionResult { - super.writeByte(153) + super.writeByte(154) super.writeValue(value.toList()) } else if let value = value as? PExpiredCodeInfo { - super.writeByte(154) + super.writeByte(155) super.writeValue(value.toList()) } else if let value = value as? PInvalidCodeRedemptionResult { - super.writeByte(155) + super.writeByte(156) super.writeValue(value.toList()) } else if let value = value as? PExpiredSubscriptionCode { - super.writeByte(156) + super.writeByte(157) super.writeValue(value.toList()) } else if let value = value as? PRedemptionInfo { - super.writeByte(157) + super.writeByte(158) super.writeValue(value.toList()) } else if let value = value as? PAppUserOwnership { - super.writeByte(158) + super.writeByte(159) super.writeValue(value.toList()) } else if let value = value as? PDeviceOwnership { - super.writeByte(159) + super.writeByte(160) super.writeValue(value.toList()) } else if let value = value as? PPurchaserInfo { - super.writeByte(160) + super.writeByte(161) super.writeValue(value.toList()) } else if let value = value as? PStripeStoreIdentifiers { - super.writeByte(161) + super.writeByte(162) super.writeValue(value.toList()) } else if let value = value as? PPaddleStoreIdentifiers { - super.writeByte(162) + super.writeByte(163) super.writeValue(value.toList()) } else if let value = value as? PUnknownStoreIdentifiers { - super.writeByte(163) + super.writeByte(164) super.writeValue(value.toList()) } else if let value = value as? PRedemptionPaywallInfo { - super.writeByte(164) + super.writeByte(165) super.writeValue(value.toList()) } else if let value = value as? PSuperwallOptions { - super.writeByte(165) + super.writeByte(166) super.writeValue(value.toList()) } else if let value = value as? PPaywallInfo { - super.writeByte(166) + super.writeByte(167) super.writeValue(value.toList()) } else if let value = value as? PProduct { - super.writeByte(167) + super.writeByte(168) super.writeValue(value.toList()) } else if let value = value as? PLocalNotification { - super.writeByte(168) + super.writeByte(169) super.writeValue(value.toList()) } else if let value = value as? PComputedPropertyRequest { - super.writeByte(169) + super.writeByte(170) super.writeValue(value.toList()) } else if let value = value as? PSurvey { - super.writeByte(170) + super.writeByte(171) super.writeValue(value.toList()) } else if let value = value as? PSurveyOption { - super.writeByte(171) + super.writeByte(172) super.writeValue(value.toList()) } else if let value = value as? PPurchaseCancelled { - super.writeByte(172) + super.writeByte(173) super.writeValue(value.toList()) } else if let value = value as? PPurchasePurchased { - super.writeByte(173) + super.writeByte(174) super.writeValue(value.toList()) } else if let value = value as? PPurchasePending { - super.writeByte(174) + super.writeByte(175) super.writeValue(value.toList()) } else if let value = value as? PPurchaseFailed { - super.writeByte(175) + super.writeByte(176) super.writeValue(value.toList()) } else if let value = value as? PRestorationRestored { - super.writeByte(176) + super.writeByte(177) super.writeValue(value.toList()) } else if let value = value as? PRestorationFailed { - super.writeByte(177) + super.writeByte(178) super.writeValue(value.toList()) } else if let value = value as? PViaPurchase { - super.writeByte(178) + super.writeByte(179) super.writeValue(value.toList()) } else if let value = value as? PViaRestore { - super.writeByte(179) + super.writeByte(180) super.writeValue(value.toList()) } else if let value = value as? PRestoreFailed { - super.writeByte(180) + super.writeByte(181) super.writeValue(value.toList()) } else if let value = value as? PLogging { - super.writeByte(181) + super.writeByte(182) super.writeValue(value.toList()) } else if let value = value as? PStoreTransaction { - super.writeByte(182) + super.writeByte(183) super.writeValue(value.toList()) } else if let value = value as? PStoreProduct { - super.writeByte(183) + super.writeByte(184) super.writeValue(value.toList()) } else if let value = value as? PPaywallOptions { - super.writeByte(184) + super.writeByte(185) super.writeValue(value.toList()) } else if let value = value as? POnBackPressedHost { - super.writeByte(185) + super.writeByte(186) super.writeValue(value.toList()) } else if let value = value as? PPurchaseControllerHost { - super.writeByte(186) + super.writeByte(187) super.writeValue(value.toList()) } else if let value = value as? PConfigureCompletionHost { - super.writeByte(187) + super.writeByte(188) super.writeValue(value.toList()) } else if let value = value as? PPaywallPresentationHandlerHost { - super.writeByte(188) + super.writeByte(189) super.writeValue(value.toList()) } else if let value = value as? PFeatureHandlerHost { - super.writeByte(189) + super.writeByte(190) super.writeValue(value.toList()) } else if let value = value as? PCustomCallback { - super.writeByte(190) + super.writeByte(191) super.writeValue(value.toList()) } else if let value = value as? PCustomCallbackResult { - super.writeByte(191) + super.writeByte(192) super.writeValue(value.toList()) } else if let value = value as? PSubscriptionTransaction { - super.writeByte(192) + super.writeByte(193) super.writeValue(value.toList()) } else if let value = value as? PNonSubscriptionTransaction { - super.writeByte(193) + super.writeByte(194) super.writeValue(value.toList()) } else if let value = value as? PEntitlement { - super.writeByte(194) + super.writeByte(195) super.writeValue(value.toList()) } else if let value = value as? PCustomerInfo { - super.writeByte(195) + super.writeByte(196) super.writeValue(value.toList()) } else if let value = value as? PEntitlements { - super.writeByte(196) + super.writeByte(197) super.writeValue(value.toList()) } else if let value = value as? PActive { - super.writeByte(197) + super.writeByte(198) super.writeValue(value.toList()) } else if let value = value as? PInactive { - super.writeByte(198) + super.writeByte(199) super.writeValue(value.toList()) } else if let value = value as? PUnknown { - super.writeByte(199) + super.writeByte(200) super.writeValue(value.toList()) } else if let value = value as? PSuperwallEventInfo { - super.writeByte(200) + super.writeByte(201) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonDebuggerPresented { - super.writeByte(201) + super.writeByte(202) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonPaywallAlreadyPresented { - super.writeByte(202) + super.writeByte(203) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonHoldout { - super.writeByte(203) + super.writeByte(204) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoAudienceMatch { - super.writeByte(204) + super.writeByte(205) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonPlacementNotFound { - super.writeByte(205) + super.writeByte(206) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoPaywallVc { - super.writeByte(206) + super.writeByte(207) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoPresenter { - super.writeByte(207) + super.writeByte(208) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoConfig { - super.writeByte(208) + super.writeByte(209) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonSubsStatusTimeout { - super.writeByte(209) + super.writeByte(210) super.writeValue(value.toList()) } else if let value = value as? PIdentityOptions { - super.writeByte(210) + super.writeByte(211) super.writeValue(value.toList()) } else if let value = value as? PExperiment { - super.writeByte(211) + super.writeByte(212) super.writeValue(value.toList()) } else if let value = value as? PPlacementNotFoundTriggerResult { - super.writeByte(212) + super.writeByte(213) super.writeValue(value.toList()) } else if let value = value as? PNoAudienceMatchTriggerResult { - super.writeByte(213) + super.writeByte(214) super.writeValue(value.toList()) } else if let value = value as? PPaywallTriggerResult { - super.writeByte(214) + super.writeByte(215) super.writeValue(value.toList()) } else if let value = value as? PHoldoutTriggerResult { - super.writeByte(215) + super.writeByte(216) super.writeValue(value.toList()) } else if let value = value as? PErrorTriggerResult { - super.writeByte(216) + super.writeByte(217) super.writeValue(value.toList()) } else if let value = value as? PVariant { - super.writeByte(217) + super.writeByte(218) super.writeValue(value.toList()) } else if let value = value as? PConfirmedAssignment { - super.writeByte(218) + super.writeByte(219) super.writeValue(value.toList()) } else if let value = value as? PPurchasedPaywallResult { - super.writeByte(219) + super.writeByte(220) super.writeValue(value.toList()) } else if let value = value as? PDeclinedPaywallResult { - super.writeByte(220) + super.writeByte(221) super.writeValue(value.toList()) } else if let value = value as? PRestoredPaywallResult { - super.writeByte(221) + super.writeByte(222) super.writeValue(value.toList()) } else if let value = value as? PPlacementNotFoundPresentationResult { - super.writeByte(222) + super.writeByte(223) super.writeValue(value.toList()) } else if let value = value as? PNoAudienceMatchPresentationResult { - super.writeByte(223) + super.writeByte(224) super.writeValue(value.toList()) } else if let value = value as? PPaywallPresentationResult { - super.writeByte(224) + super.writeByte(225) super.writeValue(value.toList()) } else if let value = value as? PHoldoutPresentationResult { - super.writeByte(225) + super.writeByte(226) super.writeValue(value.toList()) } else if let value = value as? PPaywallNotAvailablePresentationResult { - super.writeByte(226) + super.writeByte(227) super.writeValue(value.toList()) } else { super.writeValue(value) diff --git a/ios/superwallkit_flutter.podspec b/ios/superwallkit_flutter.podspec index ff94904..537fb0e 100644 --- a/ios/superwallkit_flutter.podspec +++ b/ios/superwallkit_flutter.podspec @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'SuperwallKit', '4.13.0' + s.dependency 'SuperwallKit', '4.14.0' s.platform = :ios, '14.0' # Flutter.framework does not contain a i386 slice. diff --git a/lib/src/generated/superwallhost.g.dart b/lib/src/generated/superwallhost.g.dart index 9bf554e..4518e25 100644 --- a/lib/src/generated/superwallhost.g.dart +++ b/lib/src/generated/superwallhost.g.dart @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v26.1.7), do not edit directly. +// Autogenerated from Pigeon (v26.1.10), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, omit_obvious_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers @@ -8,13 +8,32 @@ import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; -PlatformException _createConnectionError(String channelName) { - return PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel: "$channelName".', - ); +Object? _extractReplyValueOrThrow( + List? replyList, + String channelName, { + required bool isNullValid, +}) { + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } + return replyList.firstOrNull; } + List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; @@ -39,6 +58,13 @@ bool _deepEquals(Object? a, Object? b) { } +enum PTestModeBehavior { + automatic, + whenEnabledForUser, + never, + always, +} + enum PFeatureGatingBehavior { gated, nonGated, @@ -293,6 +319,12 @@ enum PEventType { permissionRequested, permissionGranted, permissionDenied, + stripeCheckoutStart, + stripeCheckoutSubmit, + stripeCheckoutComplete, + stripeCheckoutFail, + testModeModalOpen, + testModeModalClose, } enum PSubscriptionStatusType { @@ -1061,6 +1093,7 @@ class PSuperwallOptions { this.enableExperimentalDeviceVariables, this.logging, this.passIdentifiersToPlayStore, + this.testModeBehavior, }); PPaywallOptions? paywalls; @@ -1079,6 +1112,8 @@ class PSuperwallOptions { bool? passIdentifiersToPlayStore; + PTestModeBehavior? testModeBehavior; + List _toList() { return [ paywalls, @@ -1089,6 +1124,7 @@ class PSuperwallOptions { enableExperimentalDeviceVariables, logging, passIdentifiersToPlayStore, + testModeBehavior, ]; } @@ -1106,6 +1142,7 @@ class PSuperwallOptions { enableExperimentalDeviceVariables: result[5] as bool?, logging: result[6] as PLogging?, passIdentifiersToPlayStore: result[7] as bool?, + testModeBehavior: result[8] as PTestModeBehavior?, ); } @@ -4596,299 +4633,302 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is PFeatureGatingBehavior) { + } else if (value is PTestModeBehavior) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is PPaywallCloseReason) { + } else if (value is PFeatureGatingBehavior) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is PLocalNotificationType) { + } else if (value is PPaywallCloseReason) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is PComputedPropertyRequestType) { + } else if (value is PLocalNotificationType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is PSurveyShowCondition) { + } else if (value is PComputedPropertyRequestType) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is PCustomCallbackResultStatus) { + } else if (value is PSurveyShowCondition) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is PProductStore) { + } else if (value is PCustomCallbackResultStatus) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is PEntitlementType) { + } else if (value is PProductStore) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is PLatestSubscriptionState) { + } else if (value is PEntitlementType) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is PLatestSubscriptionOfferType) { + } else if (value is PLatestSubscriptionState) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is PIntegrationAttribute) { + } else if (value is PLatestSubscriptionOfferType) { buffer.putUint8(139); writeValue(buffer, value.index); - } else if (value is PNetworkEnvironment) { + } else if (value is PIntegrationAttribute) { buffer.putUint8(140); writeValue(buffer, value.index); - } else if (value is PLogLevel) { + } else if (value is PNetworkEnvironment) { buffer.putUint8(141); writeValue(buffer, value.index); - } else if (value is PTransactionBackgroundView) { + } else if (value is PLogLevel) { buffer.putUint8(142); writeValue(buffer, value.index); - } else if (value is PLogScope) { + } else if (value is PTransactionBackgroundView) { buffer.putUint8(143); writeValue(buffer, value.index); - } else if (value is PConfigurationStatus) { + } else if (value is PLogScope) { buffer.putUint8(144); writeValue(buffer, value.index); - } else if (value is PEventType) { + } else if (value is PConfigurationStatus) { buffer.putUint8(145); writeValue(buffer, value.index); - } else if (value is PSubscriptionStatusType) { + } else if (value is PEventType) { buffer.putUint8(146); writeValue(buffer, value.index); - } else if (value is PPaywallPresentationRequestStatusType) { + } else if (value is PSubscriptionStatusType) { buffer.putUint8(147); writeValue(buffer, value.index); - } else if (value is PVariantType) { + } else if (value is PPaywallPresentationRequestStatusType) { buffer.putUint8(148); writeValue(buffer, value.index); - } else if (value is PPaywallSkippedReason) { + } else if (value is PVariantType) { buffer.putUint8(149); writeValue(buffer, value.index); - } else if (value is PSuccessRedemptionResult) { + } else if (value is PPaywallSkippedReason) { buffer.putUint8(150); + writeValue(buffer, value.index); + } else if (value is PSuccessRedemptionResult) { + buffer.putUint8(151); writeValue(buffer, value.encode()); } else if (value is PErrorRedemptionResult) { - buffer.putUint8(151); + buffer.putUint8(152); writeValue(buffer, value.encode()); } else if (value is PErrorInfo) { - buffer.putUint8(152); + buffer.putUint8(153); writeValue(buffer, value.encode()); } else if (value is PExpiredCodeRedemptionResult) { - buffer.putUint8(153); + buffer.putUint8(154); writeValue(buffer, value.encode()); } else if (value is PExpiredCodeInfo) { - buffer.putUint8(154); + buffer.putUint8(155); writeValue(buffer, value.encode()); } else if (value is PInvalidCodeRedemptionResult) { - buffer.putUint8(155); + buffer.putUint8(156); writeValue(buffer, value.encode()); } else if (value is PExpiredSubscriptionCode) { - buffer.putUint8(156); + buffer.putUint8(157); writeValue(buffer, value.encode()); } else if (value is PRedemptionInfo) { - buffer.putUint8(157); + buffer.putUint8(158); writeValue(buffer, value.encode()); } else if (value is PAppUserOwnership) { - buffer.putUint8(158); + buffer.putUint8(159); writeValue(buffer, value.encode()); } else if (value is PDeviceOwnership) { - buffer.putUint8(159); + buffer.putUint8(160); writeValue(buffer, value.encode()); } else if (value is PPurchaserInfo) { - buffer.putUint8(160); + buffer.putUint8(161); writeValue(buffer, value.encode()); } else if (value is PStripeStoreIdentifiers) { - buffer.putUint8(161); + buffer.putUint8(162); writeValue(buffer, value.encode()); } else if (value is PPaddleStoreIdentifiers) { - buffer.putUint8(162); + buffer.putUint8(163); writeValue(buffer, value.encode()); } else if (value is PUnknownStoreIdentifiers) { - buffer.putUint8(163); + buffer.putUint8(164); writeValue(buffer, value.encode()); } else if (value is PRedemptionPaywallInfo) { - buffer.putUint8(164); + buffer.putUint8(165); writeValue(buffer, value.encode()); } else if (value is PSuperwallOptions) { - buffer.putUint8(165); + buffer.putUint8(166); writeValue(buffer, value.encode()); } else if (value is PPaywallInfo) { - buffer.putUint8(166); + buffer.putUint8(167); writeValue(buffer, value.encode()); } else if (value is PProduct) { - buffer.putUint8(167); + buffer.putUint8(168); writeValue(buffer, value.encode()); } else if (value is PLocalNotification) { - buffer.putUint8(168); + buffer.putUint8(169); writeValue(buffer, value.encode()); } else if (value is PComputedPropertyRequest) { - buffer.putUint8(169); + buffer.putUint8(170); writeValue(buffer, value.encode()); } else if (value is PSurvey) { - buffer.putUint8(170); + buffer.putUint8(171); writeValue(buffer, value.encode()); } else if (value is PSurveyOption) { - buffer.putUint8(171); + buffer.putUint8(172); writeValue(buffer, value.encode()); } else if (value is PPurchaseCancelled) { - buffer.putUint8(172); + buffer.putUint8(173); writeValue(buffer, value.encode()); } else if (value is PPurchasePurchased) { - buffer.putUint8(173); + buffer.putUint8(174); writeValue(buffer, value.encode()); } else if (value is PPurchasePending) { - buffer.putUint8(174); + buffer.putUint8(175); writeValue(buffer, value.encode()); } else if (value is PPurchaseFailed) { - buffer.putUint8(175); + buffer.putUint8(176); writeValue(buffer, value.encode()); } else if (value is PRestorationRestored) { - buffer.putUint8(176); + buffer.putUint8(177); writeValue(buffer, value.encode()); } else if (value is PRestorationFailed) { - buffer.putUint8(177); + buffer.putUint8(178); writeValue(buffer, value.encode()); } else if (value is PViaPurchase) { - buffer.putUint8(178); + buffer.putUint8(179); writeValue(buffer, value.encode()); } else if (value is PViaRestore) { - buffer.putUint8(179); + buffer.putUint8(180); writeValue(buffer, value.encode()); } else if (value is PRestoreFailed) { - buffer.putUint8(180); + buffer.putUint8(181); writeValue(buffer, value.encode()); } else if (value is PLogging) { - buffer.putUint8(181); + buffer.putUint8(182); writeValue(buffer, value.encode()); } else if (value is PStoreTransaction) { - buffer.putUint8(182); + buffer.putUint8(183); writeValue(buffer, value.encode()); } else if (value is PStoreProduct) { - buffer.putUint8(183); + buffer.putUint8(184); writeValue(buffer, value.encode()); } else if (value is PPaywallOptions) { - buffer.putUint8(184); + buffer.putUint8(185); writeValue(buffer, value.encode()); } else if (value is POnBackPressedHost) { - buffer.putUint8(185); + buffer.putUint8(186); writeValue(buffer, value.encode()); } else if (value is PPurchaseControllerHost) { - buffer.putUint8(186); + buffer.putUint8(187); writeValue(buffer, value.encode()); } else if (value is PConfigureCompletionHost) { - buffer.putUint8(187); + buffer.putUint8(188); writeValue(buffer, value.encode()); } else if (value is PPaywallPresentationHandlerHost) { - buffer.putUint8(188); + buffer.putUint8(189); writeValue(buffer, value.encode()); } else if (value is PFeatureHandlerHost) { - buffer.putUint8(189); + buffer.putUint8(190); writeValue(buffer, value.encode()); } else if (value is PCustomCallback) { - buffer.putUint8(190); + buffer.putUint8(191); writeValue(buffer, value.encode()); } else if (value is PCustomCallbackResult) { - buffer.putUint8(191); + buffer.putUint8(192); writeValue(buffer, value.encode()); } else if (value is PSubscriptionTransaction) { - buffer.putUint8(192); + buffer.putUint8(193); writeValue(buffer, value.encode()); } else if (value is PNonSubscriptionTransaction) { - buffer.putUint8(193); + buffer.putUint8(194); writeValue(buffer, value.encode()); } else if (value is PEntitlement) { - buffer.putUint8(194); + buffer.putUint8(195); writeValue(buffer, value.encode()); } else if (value is PCustomerInfo) { - buffer.putUint8(195); + buffer.putUint8(196); writeValue(buffer, value.encode()); } else if (value is PEntitlements) { - buffer.putUint8(196); + buffer.putUint8(197); writeValue(buffer, value.encode()); } else if (value is PActive) { - buffer.putUint8(197); + buffer.putUint8(198); writeValue(buffer, value.encode()); } else if (value is PInactive) { - buffer.putUint8(198); + buffer.putUint8(199); writeValue(buffer, value.encode()); } else if (value is PUnknown) { - buffer.putUint8(199); + buffer.putUint8(200); writeValue(buffer, value.encode()); } else if (value is PSuperwallEventInfo) { - buffer.putUint8(200); + buffer.putUint8(201); writeValue(buffer, value.encode()); } else if (value is PStatusReasonDebuggerPresented) { - buffer.putUint8(201); + buffer.putUint8(202); writeValue(buffer, value.encode()); } else if (value is PStatusReasonPaywallAlreadyPresented) { - buffer.putUint8(202); + buffer.putUint8(203); writeValue(buffer, value.encode()); } else if (value is PStatusReasonHoldout) { - buffer.putUint8(203); + buffer.putUint8(204); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoAudienceMatch) { - buffer.putUint8(204); + buffer.putUint8(205); writeValue(buffer, value.encode()); } else if (value is PStatusReasonPlacementNotFound) { - buffer.putUint8(205); + buffer.putUint8(206); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoPaywallVc) { - buffer.putUint8(206); + buffer.putUint8(207); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoPresenter) { - buffer.putUint8(207); + buffer.putUint8(208); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoConfig) { - buffer.putUint8(208); + buffer.putUint8(209); writeValue(buffer, value.encode()); } else if (value is PStatusReasonSubsStatusTimeout) { - buffer.putUint8(209); + buffer.putUint8(210); writeValue(buffer, value.encode()); } else if (value is PIdentityOptions) { - buffer.putUint8(210); + buffer.putUint8(211); writeValue(buffer, value.encode()); } else if (value is PExperiment) { - buffer.putUint8(211); + buffer.putUint8(212); writeValue(buffer, value.encode()); } else if (value is PPlacementNotFoundTriggerResult) { - buffer.putUint8(212); + buffer.putUint8(213); writeValue(buffer, value.encode()); } else if (value is PNoAudienceMatchTriggerResult) { - buffer.putUint8(213); + buffer.putUint8(214); writeValue(buffer, value.encode()); } else if (value is PPaywallTriggerResult) { - buffer.putUint8(214); + buffer.putUint8(215); writeValue(buffer, value.encode()); } else if (value is PHoldoutTriggerResult) { - buffer.putUint8(215); + buffer.putUint8(216); writeValue(buffer, value.encode()); } else if (value is PErrorTriggerResult) { - buffer.putUint8(216); + buffer.putUint8(217); writeValue(buffer, value.encode()); } else if (value is PVariant) { - buffer.putUint8(217); + buffer.putUint8(218); writeValue(buffer, value.encode()); } else if (value is PConfirmedAssignment) { - buffer.putUint8(218); + buffer.putUint8(219); writeValue(buffer, value.encode()); } else if (value is PPurchasedPaywallResult) { - buffer.putUint8(219); + buffer.putUint8(220); writeValue(buffer, value.encode()); } else if (value is PDeclinedPaywallResult) { - buffer.putUint8(220); + buffer.putUint8(221); writeValue(buffer, value.encode()); } else if (value is PRestoredPaywallResult) { - buffer.putUint8(221); + buffer.putUint8(222); writeValue(buffer, value.encode()); } else if (value is PPlacementNotFoundPresentationResult) { - buffer.putUint8(222); + buffer.putUint8(223); writeValue(buffer, value.encode()); } else if (value is PNoAudienceMatchPresentationResult) { - buffer.putUint8(223); + buffer.putUint8(224); writeValue(buffer, value.encode()); } else if (value is PPaywallPresentationResult) { - buffer.putUint8(224); + buffer.putUint8(225); writeValue(buffer, value.encode()); } else if (value is PHoldoutPresentationResult) { - buffer.putUint8(225); + buffer.putUint8(226); writeValue(buffer, value.encode()); } else if (value is PPaywallNotAvailablePresentationResult) { - buffer.putUint8(226); + buffer.putUint8(227); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); @@ -4898,222 +4938,225 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: + final value = readValue(buffer) as int?; + return value == null ? null : PTestModeBehavior.values[value]; + case 130: final value = readValue(buffer) as int?; return value == null ? null : PFeatureGatingBehavior.values[value]; - case 130: + case 131: final value = readValue(buffer) as int?; return value == null ? null : PPaywallCloseReason.values[value]; - case 131: + case 132: final value = readValue(buffer) as int?; return value == null ? null : PLocalNotificationType.values[value]; - case 132: + case 133: final value = readValue(buffer) as int?; return value == null ? null : PComputedPropertyRequestType.values[value]; - case 133: + case 134: final value = readValue(buffer) as int?; return value == null ? null : PSurveyShowCondition.values[value]; - case 134: + case 135: final value = readValue(buffer) as int?; return value == null ? null : PCustomCallbackResultStatus.values[value]; - case 135: + case 136: final value = readValue(buffer) as int?; return value == null ? null : PProductStore.values[value]; - case 136: + case 137: final value = readValue(buffer) as int?; return value == null ? null : PEntitlementType.values[value]; - case 137: + case 138: final value = readValue(buffer) as int?; return value == null ? null : PLatestSubscriptionState.values[value]; - case 138: + case 139: final value = readValue(buffer) as int?; return value == null ? null : PLatestSubscriptionOfferType.values[value]; - case 139: + case 140: final value = readValue(buffer) as int?; return value == null ? null : PIntegrationAttribute.values[value]; - case 140: + case 141: final value = readValue(buffer) as int?; return value == null ? null : PNetworkEnvironment.values[value]; - case 141: + case 142: final value = readValue(buffer) as int?; return value == null ? null : PLogLevel.values[value]; - case 142: + case 143: final value = readValue(buffer) as int?; return value == null ? null : PTransactionBackgroundView.values[value]; - case 143: + case 144: final value = readValue(buffer) as int?; return value == null ? null : PLogScope.values[value]; - case 144: + case 145: final value = readValue(buffer) as int?; return value == null ? null : PConfigurationStatus.values[value]; - case 145: + case 146: final value = readValue(buffer) as int?; return value == null ? null : PEventType.values[value]; - case 146: + case 147: final value = readValue(buffer) as int?; return value == null ? null : PSubscriptionStatusType.values[value]; - case 147: + case 148: final value = readValue(buffer) as int?; return value == null ? null : PPaywallPresentationRequestStatusType.values[value]; - case 148: + case 149: final value = readValue(buffer) as int?; return value == null ? null : PVariantType.values[value]; - case 149: + case 150: final value = readValue(buffer) as int?; return value == null ? null : PPaywallSkippedReason.values[value]; - case 150: + case 151: return PSuccessRedemptionResult.decode(readValue(buffer)!); - case 151: + case 152: return PErrorRedemptionResult.decode(readValue(buffer)!); - case 152: + case 153: return PErrorInfo.decode(readValue(buffer)!); - case 153: + case 154: return PExpiredCodeRedemptionResult.decode(readValue(buffer)!); - case 154: + case 155: return PExpiredCodeInfo.decode(readValue(buffer)!); - case 155: + case 156: return PInvalidCodeRedemptionResult.decode(readValue(buffer)!); - case 156: + case 157: return PExpiredSubscriptionCode.decode(readValue(buffer)!); - case 157: + case 158: return PRedemptionInfo.decode(readValue(buffer)!); - case 158: + case 159: return PAppUserOwnership.decode(readValue(buffer)!); - case 159: + case 160: return PDeviceOwnership.decode(readValue(buffer)!); - case 160: + case 161: return PPurchaserInfo.decode(readValue(buffer)!); - case 161: + case 162: return PStripeStoreIdentifiers.decode(readValue(buffer)!); - case 162: + case 163: return PPaddleStoreIdentifiers.decode(readValue(buffer)!); - case 163: + case 164: return PUnknownStoreIdentifiers.decode(readValue(buffer)!); - case 164: + case 165: return PRedemptionPaywallInfo.decode(readValue(buffer)!); - case 165: + case 166: return PSuperwallOptions.decode(readValue(buffer)!); - case 166: + case 167: return PPaywallInfo.decode(readValue(buffer)!); - case 167: + case 168: return PProduct.decode(readValue(buffer)!); - case 168: + case 169: return PLocalNotification.decode(readValue(buffer)!); - case 169: + case 170: return PComputedPropertyRequest.decode(readValue(buffer)!); - case 170: + case 171: return PSurvey.decode(readValue(buffer)!); - case 171: + case 172: return PSurveyOption.decode(readValue(buffer)!); - case 172: + case 173: return PPurchaseCancelled.decode(readValue(buffer)!); - case 173: + case 174: return PPurchasePurchased.decode(readValue(buffer)!); - case 174: + case 175: return PPurchasePending.decode(readValue(buffer)!); - case 175: + case 176: return PPurchaseFailed.decode(readValue(buffer)!); - case 176: + case 177: return PRestorationRestored.decode(readValue(buffer)!); - case 177: + case 178: return PRestorationFailed.decode(readValue(buffer)!); - case 178: + case 179: return PViaPurchase.decode(readValue(buffer)!); - case 179: + case 180: return PViaRestore.decode(readValue(buffer)!); - case 180: + case 181: return PRestoreFailed.decode(readValue(buffer)!); - case 181: + case 182: return PLogging.decode(readValue(buffer)!); - case 182: + case 183: return PStoreTransaction.decode(readValue(buffer)!); - case 183: + case 184: return PStoreProduct.decode(readValue(buffer)!); - case 184: + case 185: return PPaywallOptions.decode(readValue(buffer)!); - case 185: + case 186: return POnBackPressedHost.decode(readValue(buffer)!); - case 186: + case 187: return PPurchaseControllerHost.decode(readValue(buffer)!); - case 187: + case 188: return PConfigureCompletionHost.decode(readValue(buffer)!); - case 188: + case 189: return PPaywallPresentationHandlerHost.decode(readValue(buffer)!); - case 189: + case 190: return PFeatureHandlerHost.decode(readValue(buffer)!); - case 190: + case 191: return PCustomCallback.decode(readValue(buffer)!); - case 191: + case 192: return PCustomCallbackResult.decode(readValue(buffer)!); - case 192: + case 193: return PSubscriptionTransaction.decode(readValue(buffer)!); - case 193: + case 194: return PNonSubscriptionTransaction.decode(readValue(buffer)!); - case 194: + case 195: return PEntitlement.decode(readValue(buffer)!); - case 195: + case 196: return PCustomerInfo.decode(readValue(buffer)!); - case 196: + case 197: return PEntitlements.decode(readValue(buffer)!); - case 197: + case 198: return PActive.decode(readValue(buffer)!); - case 198: + case 199: return PInactive.decode(readValue(buffer)!); - case 199: + case 200: return PUnknown.decode(readValue(buffer)!); - case 200: + case 201: return PSuperwallEventInfo.decode(readValue(buffer)!); - case 201: + case 202: return PStatusReasonDebuggerPresented.decode(readValue(buffer)!); - case 202: + case 203: return PStatusReasonPaywallAlreadyPresented.decode(readValue(buffer)!); - case 203: + case 204: return PStatusReasonHoldout.decode(readValue(buffer)!); - case 204: + case 205: return PStatusReasonNoAudienceMatch.decode(readValue(buffer)!); - case 205: + case 206: return PStatusReasonPlacementNotFound.decode(readValue(buffer)!); - case 206: + case 207: return PStatusReasonNoPaywallVc.decode(readValue(buffer)!); - case 207: + case 208: return PStatusReasonNoPresenter.decode(readValue(buffer)!); - case 208: + case 209: return PStatusReasonNoConfig.decode(readValue(buffer)!); - case 209: + case 210: return PStatusReasonSubsStatusTimeout.decode(readValue(buffer)!); - case 210: + case 211: return PIdentityOptions.decode(readValue(buffer)!); - case 211: + case 212: return PExperiment.decode(readValue(buffer)!); - case 212: + case 213: return PPlacementNotFoundTriggerResult.decode(readValue(buffer)!); - case 213: + case 214: return PNoAudienceMatchTriggerResult.decode(readValue(buffer)!); - case 214: + case 215: return PPaywallTriggerResult.decode(readValue(buffer)!); - case 215: + case 216: return PHoldoutTriggerResult.decode(readValue(buffer)!); - case 216: + case 217: return PErrorTriggerResult.decode(readValue(buffer)!); - case 217: + case 218: return PVariant.decode(readValue(buffer)!); - case 218: + case 219: return PConfirmedAssignment.decode(readValue(buffer)!); - case 219: + case 220: return PPurchasedPaywallResult.decode(readValue(buffer)!); - case 220: + case 221: return PDeclinedPaywallResult.decode(readValue(buffer)!); - case 221: + case 222: return PRestoredPaywallResult.decode(readValue(buffer)!); - case 222: + case 223: return PPlacementNotFoundPresentationResult.decode(readValue(buffer)!); - case 223: + case 224: return PNoAudienceMatchPresentationResult.decode(readValue(buffer)!); - case 224: + case 225: return PPaywallPresentationResult.decode(readValue(buffer)!); - case 225: + case 226: return PHoldoutPresentationResult.decode(readValue(buffer)!); - case 226: + case 227: return PPaywallNotAvailablePresentationResult.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -5145,17 +5188,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([apiKey, purchaseController, options, completion]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future reset() async { @@ -5167,17 +5206,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future setDelegate(bool hasDelegate) async { @@ -5189,17 +5224,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([hasDelegate]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future> confirmAllAssignments() async { @@ -5211,22 +5242,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as List?)!.cast(); - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return (pigeonVar_replyValue as List).cast(); } Future restorePurchases() async { @@ -5238,22 +5261,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as PRestorationResult?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as PRestorationResult; } Future getLogLevel() async { @@ -5265,22 +5280,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as String?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as String; } Future setLogLevel(String logLevel) async { @@ -5292,17 +5299,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([logLevel]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future> getUserAttributes() async { @@ -5314,22 +5317,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as Map?)!.cast(); - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return (pigeonVar_replyValue as Map).cast(); } Future setUserAttributes(Map userAttributes) async { @@ -5341,17 +5336,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([userAttributes]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future setIntegrationAttribute(PIntegrationAttribute attribute, String? value) async { @@ -5363,17 +5354,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([attribute, value]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future setIntegrationAttributes(Map attributes) async { @@ -5385,17 +5372,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([attributes]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future> getDeviceAttributes() async { @@ -5407,22 +5390,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as Map?)!.cast(); - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return (pigeonVar_replyValue as Map).cast(); } Future consume(String purchaseToken) async { @@ -5434,22 +5409,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([purchaseToken]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as String?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as String; } Future getLocaleIdentifier() async { @@ -5461,17 +5428,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as String?); - } + + final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; + return pigeonVar_replyValue as String?; } Future setLocaleIdentifier(String? localeIdentifier) async { @@ -5483,17 +5447,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([localeIdentifier]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future getUserId() async { @@ -5505,22 +5465,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as String?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as String; } Future getIsLoggedIn() async { @@ -5532,22 +5484,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as bool?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as bool; } Future getIsInitialized() async { @@ -5559,22 +5503,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as bool?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as bool; } Future identify(String userId, PIdentityOptions? identityOptions) async { @@ -5586,17 +5522,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([userId, identityOptions]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future getEntitlements() async { @@ -5608,22 +5540,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as PEntitlements?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as PEntitlements; } Future> getEntitlementsByProductIds(List productIds) async { @@ -5635,22 +5559,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([productIds]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as List?)!.cast(); - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return (pigeonVar_replyValue as List).cast(); } Future getCustomerInfo() async { @@ -5662,22 +5578,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as PCustomerInfo?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as PCustomerInfo; } Future getSubscriptionStatus() async { @@ -5689,22 +5597,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as PSubscriptionStatus?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as PSubscriptionStatus; } Future setSubscriptionStatus(PSubscriptionStatus subscriptionStatus) async { @@ -5716,17 +5616,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([subscriptionStatus]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future getConfigurationStatus() async { @@ -5738,22 +5634,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as PConfigurationStatus?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as PConfigurationStatus; } Future getIsConfigured() async { @@ -5765,22 +5653,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as bool?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as bool; } Future getPresentationResult(String placement, Map? params) async { @@ -5792,22 +5672,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([placement, params]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as PPresentationResult?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as PPresentationResult; } Future getIsPaywallPresented() async { @@ -5819,22 +5691,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as bool?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as bool; } Future preloadAllPaywalls() async { @@ -5846,17 +5710,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future preloadPaywallsForPlacements(List placementNames) async { @@ -5868,17 +5728,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([placementNames]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future handleDeepLink(String url) async { @@ -5890,22 +5746,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([url]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as bool?)!; - } + + final Object pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: false, + ) + !; + return pigeonVar_replyValue as bool; } Future togglePaywallSpinner(bool isHidden) async { @@ -5917,17 +5765,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([isHidden]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future getLatestPaywallInfo() async { @@ -5939,17 +5783,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as PPaywallInfo?); - } + + final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; + return pigeonVar_replyValue as PPaywallInfo?; } Future registerPlacement(String placement, {Map? params, PPaywallPresentationHandlerHost? handler, PFeatureHandlerHost? feature, }) async { @@ -5961,17 +5802,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([placement, params, handler, feature]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future dismiss() async { @@ -5983,17 +5820,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } Future?> getOverrideProductsByName() async { @@ -6005,17 +5838,14 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return (pigeonVar_replyList[0] as Map?)?.cast(); - } + + final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; + return (pigeonVar_replyValue as Map?)?.cast(); } Future setOverrideProductsByName(Map? overrideProducts) async { @@ -6027,17 +5857,13 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([overrideProducts]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ) + ; } } diff --git a/lib/src/public/Superwall.dart b/lib/src/public/Superwall.dart index 44732f4..2421ef1 100644 --- a/lib/src/public/Superwall.dart +++ b/lib/src/public/Superwall.dart @@ -90,6 +90,9 @@ class Superwall { // Convert Logging if available generatedOptions.logging = _convertLogging(options.logging); + generatedOptions.testModeBehavior = + _convertTestModeBehavior(options.testModeBehavior); + return generatedOptions; } @@ -150,6 +153,21 @@ class Superwall { } } + // Helper method to convert TestModeBehavior + static generated.PTestModeBehavior _convertTestModeBehavior( + TestModeBehavior behavior) { + switch (behavior) { + case TestModeBehavior.automatic: + return generated.PTestModeBehavior.automatic; + case TestModeBehavior.whenEnabledForUser: + return generated.PTestModeBehavior.whenEnabledForUser; + case TestModeBehavior.never: + return generated.PTestModeBehavior.never; + case TestModeBehavior.always: + return generated.PTestModeBehavior.always; + } + } + // Helper method to convert Logging object static generated.PLogging _convertLogging(Logging logging) { final generatedLogging = generated.PLogging(); diff --git a/lib/src/public/SuperwallDelegate.dart b/lib/src/public/SuperwallDelegate.dart index 2787934..4188cca 100644 --- a/lib/src/public/SuperwallDelegate.dart +++ b/lib/src/public/SuperwallDelegate.dart @@ -16,52 +16,52 @@ import 'package:superwallkit_flutter/src/generated/superwallhost.g.dart'; /// [our docs](https://docs.superwall.com/docs/3rd-party-analytics). abstract class SuperwallDelegate { /// Called when the property `subscriptionStatus` of `Superwall` changes. - void subscriptionStatusDidChange(SubscriptionStatus newValue); + void subscriptionStatusDidChange(SubscriptionStatus newValue) {} /// Called whenever an internal analytics placement is tracked. - void handleSuperwallEvent(SuperwallEventInfo eventInfo); + void handleSuperwallEvent(SuperwallEventInfo eventInfo) {} /// Called when the user taps an element on your paywall with a custom action. - void handleCustomPaywallAction(String name); + void handleCustomPaywallAction(String name) {} /// Called right before the paywall is dismissed. - void willDismissPaywall(PaywallInfo paywallInfo); + void willDismissPaywall(PaywallInfo paywallInfo) {} /// Called right before the paywall is presented. - void willPresentPaywall(PaywallInfo paywallInfo); + void willPresentPaywall(PaywallInfo paywallInfo) {} /// Called right after the paywall is dismissed. - void didDismissPaywall(PaywallInfo paywallInfo); + void didDismissPaywall(PaywallInfo paywallInfo) {} /// Called right after the paywall is presented. - void didPresentPaywall(PaywallInfo paywallInfo); + void didPresentPaywall(PaywallInfo paywallInfo) {} /// Called when the user opens a URL with a specific tag on your paywall. - void paywallWillOpenURL(Uri url); + void paywallWillOpenURL(Uri url) {} /// Called when the user taps a deep link in your paywall. - void paywallWillOpenDeepLink(Uri url); + void paywallWillOpenDeepLink(Uri url) {} /// Receive all log messages generated by the SDK. void handleLog(String level, String scope, String? message, - Map? info, String? error); + Map? info, String? error) {} /// Called before the redemption of a code from a web paywall. - void willRedeemLink() => {}; + void willRedeemLink() {} /// A code was redeemed from a web paywall. - void didRedeemLink(RedemptionResult result) => {}; + void didRedeemLink(RedemptionResult result) {} /// Called after handling a Superwall deep link with the format /// `yoursubdomain.superwall.app/app-link/...`. void handleSuperwallDeepLink(Uri fullURL, List pathComponents, - Map queryParameters); + Map queryParameters) {} /// Called when the `customerInfo` property of `Superwall` changes. - void customerInfoDidChange(CustomerInfo from, CustomerInfo to) => {}; + void customerInfoDidChange(CustomerInfo from, CustomerInfo to) {} /// Called when user attributes change. - void userAttributesDidChange(Map newAttributes) => {}; + void userAttributesDidChange(Map newAttributes) {} } class SuperwallDelegateHost implements PSuperwallDelegateGenerated { diff --git a/lib/src/public/SuperwallEventInfo.dart b/lib/src/public/SuperwallEventInfo.dart index c4675db..f5d28e3 100644 --- a/lib/src/public/SuperwallEventInfo.dart +++ b/lib/src/public/SuperwallEventInfo.dart @@ -98,7 +98,13 @@ enum EventType { reviewRequested, permissionRequested, permissionGranted, - permissionDenied + permissionDenied, + stripeCheckoutStart, + stripeCheckoutSubmit, + stripeCheckoutComplete, + stripeCheckoutFail, + testModeModalOpen, + testModeModalClose } class SuperwallEvent { @@ -373,6 +379,24 @@ class SuperwallEvent { break; case PEventType.permissionDenied: type = EventType.permissionDenied; + break; + case PEventType.stripeCheckoutStart: + type = EventType.stripeCheckoutStart; + break; + case PEventType.stripeCheckoutSubmit: + type = EventType.stripeCheckoutSubmit; + break; + case PEventType.stripeCheckoutComplete: + type = EventType.stripeCheckoutComplete; + break; + case PEventType.stripeCheckoutFail: + type = EventType.stripeCheckoutFail; + break; + case PEventType.testModeModalOpen: + type = EventType.testModeModalOpen; + break; + case PEventType.testModeModalClose: + type = EventType.testModeModalClose; } return SuperwallEvent._( diff --git a/lib/src/public/SuperwallOptions.dart b/lib/src/public/SuperwallOptions.dart index 32af753..c64361d 100644 --- a/lib/src/public/SuperwallOptions.dart +++ b/lib/src/public/SuperwallOptions.dart @@ -27,6 +27,9 @@ class SuperwallOptions { /// Enables passing identifier to the Play Store as AccountId's. Defaults to `false`. bool passIdentifiersToPlayStore = false; + + /// Determines the behavior of test mode. Defaults to `TestModeBehavior.automatic`. + TestModeBehavior testModeBehavior = TestModeBehavior.automatic; } extension SuperwallOptionsJson on SuperwallOptions { @@ -38,7 +41,8 @@ extension SuperwallOptionsJson on SuperwallOptions { 'localeIdentifier': localeIdentifier, 'isGameControllerEnabled': isGameControllerEnabled, 'logging': logging.toJson(), - 'passIdentifiersToPlayStore': passIdentifiersToPlayStore + 'passIdentifiersToPlayStore': passIdentifiersToPlayStore, + 'testModeBehavior': testModeBehavior.index }; } } @@ -116,3 +120,18 @@ extension LoggingJson on Logging { }; } } + +/// Determines the behavior of test mode. +enum TestModeBehavior { + /// Automatically determines test mode based on the environment. + automatic, + + /// Only enables test mode when it is enabled for the user. + whenEnabledForUser, + + /// Never enables test mode. + never, + + /// Always enables test mode. + always, +} diff --git a/pigeons/configure.dart b/pigeons/configure.dart index e74690d..08f2eeb 100644 --- a/pigeons/configure.dart +++ b/pigeons/configure.dart @@ -197,6 +197,13 @@ class PRedemptionPaywallInfo { }); } +enum PTestModeBehavior { + automatic, + whenEnabledForUser, + never, + always, +} + // Options for configuring Superwall class PSuperwallOptions { PPaywallOptions? paywalls; @@ -207,6 +214,7 @@ class PSuperwallOptions { bool? enableExperimentalDeviceVariables; PLogging? logging; bool? passIdentifiersToPlayStore; + PTestModeBehavior? testModeBehavior; } // PaywallInfo class for getting latest paywall info @@ -1148,7 +1156,13 @@ enum PEventType { reviewRequested, permissionRequested, permissionGranted, - permissionDenied + permissionDenied, + stripeCheckoutStart, + stripeCheckoutSubmit, + stripeCheckoutComplete, + stripeCheckoutFail, + testModeModalOpen, + testModeModalClose } // SubscriptionStatus enum diff --git a/pubspec.yaml b/pubspec.yaml index 7ceefbf..68e9dd4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: superwallkit_flutter description: "Remotely configure every aspect of your paywall and double your revenue." -version: 2.4.10 +version: 2.4.11 homepage: "https://superwall.com" environment: