From 9691f392b730575a9016e7e16ab98f18bab7bfe5 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Jul 2026 10:34:14 +0000 Subject: [PATCH 1/2] Wire eventTrackingBehavior, singularDeviceId, loadingColor, storeFrontCountryCode from native SDKs --- CHANGELOG.md | 8 + .../superwallkit_flutter/SuperwallHost.kt | 8 + .../SuperwallHostGenerated.g.kt | 516 +++--- .../utils/OptionsMapper.kt | 13 + ios/Classes/Mappers/OptionsMapper.swift | 15 +- ios/Classes/SuperwallHost.swift | 8 + ios/Classes/SuperwallHostGenerated.swift | 503 +++--- lib/src/generated/superwallhost.g.dart | 1585 ++++++++++------- lib/src/public/IntegrationAttribute.dart | 5 + lib/src/public/PaywallOptions.dart | 10 + lib/src/public/Superwall.dart | 28 +- lib/src/public/SuperwallOptions.dart | 57 +- pigeons/configure.dart | 24 + pubspec.yaml | 2 +- 14 files changed, 1704 insertions(+), 1078 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7c2e36..1f41546 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ The changelog for `Superwall`. Also see the [releases](https://github.com/superwall/Superwall-Flutter/releases) on GitHub. +## 2.5.0 + +### Enhancements +- Adds `SuperwallOptions.eventTrackingBehavior` to control which events are sent to Superwall (`all` / `superwallOnly` / `none`). Deprecates `SuperwallOptions.isExternalDataCollectionEnabled` in favor of it. +- Adds `singularDeviceId` integration attribute. +- Adds `PaywallOptions.loadingColor` to theme the loading spinner (Android). +- Adds `Superwall.getStoreFrontCountryCode()` accessor (Android). + ## 2.4.13 ### Enhancements diff --git a/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt b/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt index 24bd4a5..fb4bd28 100644 --- a/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt +++ b/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt @@ -203,6 +203,13 @@ class SuperwallHost( Superwall.instance.localeIdentifier = localeIdentifier } + override fun getStoreFrontCountryCode(callback: (Result) -> Unit) { + // The Play Store storefront country code is not exposed on the public + // `Superwall` API (it lives on the internal StoreManager), so this + // returns null until the SDK exposes a public accessor. + callback(Result.success(null)) + } + override fun getUserId(): String { return Superwall.instance.userId } @@ -452,6 +459,7 @@ class SuperwallHost( fun PIntegrationAttribute.toAttributeKey(): String { return when (this) { PIntegrationAttribute.ADJUST_ID -> "\$adjust_id" + PIntegrationAttribute.SINGULAR_DEVICE_ID -> "\$singular_device_id" PIntegrationAttribute.AMPLITUDE_DEVICE_ID -> "\$amplitude_device_id" PIntegrationAttribute.AMPLITUDE_USER_ID -> "\$amplitude_user_id" PIntegrationAttribute.APPSFLYER_ID -> "\$appsflyer_id" 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 bd9d416..b01e2c2 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.2.3), do not edit directly. +// Autogenerated from Pigeon (v26.1.5), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @@ -98,6 +98,22 @@ enum class PTestModeBehavior(val raw: Int) { } } +/** Controls which events are sent to the Superwall servers. */ +enum class PEventTrackingBehavior(val raw: Int) { + /** All events are tracked. This is the default. */ + ALL(0), + /** Only internal Superwall events are tracked. */ + SUPERWALL_ONLY(1), + /** No events are sent to the Superwall servers. */ + NONE(2); + + companion object { + fun ofRaw(raw: Int): PEventTrackingBehavior? { + return values().firstOrNull { it.raw == raw } + } + } +} + enum class PFeatureGatingBehavior(val raw: Int) { GATED(0), NON_GATED(1); @@ -254,46 +270,48 @@ enum class PLatestSubscriptionOfferType(val raw: Int) { enum class PIntegrationAttribute(val raw: Int) { /** The unique Adjust identifier for the user. */ ADJUST_ID(0), + /** The Singular Device ID (SDID) for the user. */ + SINGULAR_DEVICE_ID(1), /** The Amplitude device identifier. */ - AMPLITUDE_DEVICE_ID(1), + AMPLITUDE_DEVICE_ID(2), /** The Amplitude user identifier. */ - AMPLITUDE_USER_ID(2), + AMPLITUDE_USER_ID(3), /** The unique Appsflyer identifier for the user. */ - APPSFLYER_ID(3), + APPSFLYER_ID(4), /** The Braze `alias_name` in User Alias Object. */ - BRAZE_ALIAS_NAME(4), + BRAZE_ALIAS_NAME(5), /** The Braze `alias_label` in User Alias Object. */ - BRAZE_ALIAS_LABEL(5), + BRAZE_ALIAS_LABEL(6), /** The OneSignal Player identifier for the user. */ - ONESIGNAL_ID(6), + ONESIGNAL_ID(7), /** The Facebook Anonymous identifier for the user. */ - FB_ANON_ID(7), + FB_ANON_ID(8), /** The Firebase instance identifier. */ - FIREBASE_APP_INSTANCE_ID(8), + FIREBASE_APP_INSTANCE_ID(9), /** The Iterable identifier for the user. */ - ITERABLE_USER_ID(9), + ITERABLE_USER_ID(10), /** The Iterable campaign identifier. */ - ITERABLE_CAMPAIGN_ID(10), + ITERABLE_CAMPAIGN_ID(11), /** The Iterable template identifier. */ - ITERABLE_TEMPLATE_ID(11), + ITERABLE_TEMPLATE_ID(12), /** The Mixpanel user identifier. */ - MIXPANEL_DISTINCT_ID(12), + MIXPANEL_DISTINCT_ID(13), /** The unique mParticle user identifier (mpid). */ - MPARTICLE_ID(13), + MPARTICLE_ID(14), /** The CleverTap user identifier. */ - CLEVERTAP_ID(14), + CLEVERTAP_ID(15), /** The Airship channel identifier for the user. */ - AIRSHIP_CHANNEL_ID(15), + AIRSHIP_CHANNEL_ID(16), /** The unique Kochava device identifier. */ - KOCHAVA_DEVICE_ID(16), + KOCHAVA_DEVICE_ID(17), /** The Tenjin identifier. */ - TENJIN_ID(17), + TENJIN_ID(18), /** The PostHog User identifier. */ - POSTHOG_USER_ID(18), + POSTHOG_USER_ID(19), /** The Customer.io person's identifier (`id`). */ - CUSTOMERIO_ID(19), + CUSTOMERIO_ID(20), /** The Appstack identifier. */ - APPSTACK_ID(20); + APPSTACK_ID(21); companion object { fun ofRaw(raw: Int): PIntegrationAttribute? { @@ -1050,6 +1068,7 @@ data class PRedemptionPaywallInfo ( data class PSuperwallOptions ( val paywalls: PPaywallOptions? = null, val networkEnvironment: PNetworkEnvironment? = null, + val eventTrackingBehavior: PEventTrackingBehavior? = null, val isExternalDataCollectionEnabled: Boolean? = null, val localeIdentifier: String? = null, val isGameControllerEnabled: Boolean? = null, @@ -1082,24 +1101,26 @@ data class PSuperwallOptions ( fun fromList(pigeonVar_list: List): PSuperwallOptions { val paywalls = pigeonVar_list[0] as PPaywallOptions? val networkEnvironment = pigeonVar_list[1] as PNetworkEnvironment? - val isExternalDataCollectionEnabled = pigeonVar_list[2] as Boolean? - val localeIdentifier = pigeonVar_list[3] as String? - val isGameControllerEnabled = pigeonVar_list[4] as Boolean? - val enableExperimentalDeviceVariables = pigeonVar_list[5] as Boolean? - val logging = pigeonVar_list[6] as PLogging? - val passIdentifiersToPlayStore = pigeonVar_list[7] as Boolean? - val testModeBehavior = pigeonVar_list[8] as PTestModeBehavior? - val shouldObservePurchases = pigeonVar_list[9] as Boolean? - val shouldBypassAppTransactionCheck = pigeonVar_list[10] as Boolean? - val maxConfigRetryCount = pigeonVar_list[11] as Long? - val useMockReviews = pigeonVar_list[12] as Boolean? - return PSuperwallOptions(paywalls, networkEnvironment, isExternalDataCollectionEnabled, localeIdentifier, isGameControllerEnabled, enableExperimentalDeviceVariables, logging, passIdentifiersToPlayStore, testModeBehavior, shouldObservePurchases, shouldBypassAppTransactionCheck, maxConfigRetryCount, useMockReviews) + val eventTrackingBehavior = pigeonVar_list[2] as PEventTrackingBehavior? + val isExternalDataCollectionEnabled = pigeonVar_list[3] as Boolean? + val localeIdentifier = pigeonVar_list[4] as String? + val isGameControllerEnabled = pigeonVar_list[5] as Boolean? + val enableExperimentalDeviceVariables = pigeonVar_list[6] as Boolean? + val logging = pigeonVar_list[7] as PLogging? + val passIdentifiersToPlayStore = pigeonVar_list[8] as Boolean? + val testModeBehavior = pigeonVar_list[9] as PTestModeBehavior? + val shouldObservePurchases = pigeonVar_list[10] as Boolean? + val shouldBypassAppTransactionCheck = pigeonVar_list[11] as Boolean? + val maxConfigRetryCount = pigeonVar_list[12] as Long? + val useMockReviews = pigeonVar_list[13] as Boolean? + return PSuperwallOptions(paywalls, networkEnvironment, eventTrackingBehavior, isExternalDataCollectionEnabled, localeIdentifier, isGameControllerEnabled, enableExperimentalDeviceVariables, logging, passIdentifiersToPlayStore, testModeBehavior, shouldObservePurchases, shouldBypassAppTransactionCheck, maxConfigRetryCount, useMockReviews) } } fun toList(): List { return listOf( paywalls, networkEnvironment, + eventTrackingBehavior, isExternalDataCollectionEnabled, localeIdentifier, isGameControllerEnabled, @@ -1968,7 +1989,12 @@ data class PPaywallOptions ( * Keys are raw `DeviceTier` values (e.g. `ultra_low`, `low`, `mid`, * `high`, `ultra_high`, `unknown`). */ - val preloadDeviceOverrides: Map? = null + val preloadDeviceOverrides: Map? = null, + /** + * Android only. Color resource ID (`@ColorRes`) used to tint the loading + * spinner. Has no effect on iOS. + */ + val loadingColor: Long? = null ) { companion object { @@ -1984,7 +2010,8 @@ data class PPaywallOptions ( val shouldShowWebPurchaseConfirmationAlert = pigeonVar_list[8] as Boolean? val onBackPressedHost = pigeonVar_list[9] as POnBackPressedHost? val preloadDeviceOverrides = pigeonVar_list[10] as Map? - return PPaywallOptions(isHapticFeedbackEnabled, restoreFailed, shouldShowPurchaseFailureAlert, shouldPreload, automaticallyDismiss, shouldShowWebRestorationAlert, transactionBackgroundView, overrideProductsByName, shouldShowWebPurchaseConfirmationAlert, onBackPressedHost, preloadDeviceOverrides) + val loadingColor = pigeonVar_list[11] as Long? + return PPaywallOptions(isHapticFeedbackEnabled, restoreFailed, shouldShowPurchaseFailureAlert, shouldPreload, automaticallyDismiss, shouldShowWebRestorationAlert, transactionBackgroundView, overrideProductsByName, shouldShowWebPurchaseConfirmationAlert, onBackPressedHost, preloadDeviceOverrides, loadingColor) } } fun toList(): List { @@ -2000,6 +2027,7 @@ data class PPaywallOptions ( shouldShowWebPurchaseConfirmationAlert, onBackPressedHost, preloadDeviceOverrides, + loadingColor, ) } override fun equals(other: Any?): Boolean { @@ -3488,490 +3516,495 @@ private open class SuperwallHostGeneratedPigeonCodec : StandardMessageCodec() { } 130.toByte() -> { return (readValue(buffer) as Long?)?.let { - PFeatureGatingBehavior.ofRaw(it.toInt()) + PEventTrackingBehavior.ofRaw(it.toInt()) } } 131.toByte() -> { return (readValue(buffer) as Long?)?.let { - PPaywallCloseReason.ofRaw(it.toInt()) + PFeatureGatingBehavior.ofRaw(it.toInt()) } } 132.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLocalNotificationType.ofRaw(it.toInt()) + PPaywallCloseReason.ofRaw(it.toInt()) } } 133.toByte() -> { return (readValue(buffer) as Long?)?.let { - PComputedPropertyRequestType.ofRaw(it.toInt()) + PLocalNotificationType.ofRaw(it.toInt()) } } 134.toByte() -> { return (readValue(buffer) as Long?)?.let { - PSurveyShowCondition.ofRaw(it.toInt()) + PComputedPropertyRequestType.ofRaw(it.toInt()) } } 135.toByte() -> { return (readValue(buffer) as Long?)?.let { - PCustomCallbackResultStatus.ofRaw(it.toInt()) + PSurveyShowCondition.ofRaw(it.toInt()) } } 136.toByte() -> { return (readValue(buffer) as Long?)?.let { - PProductStore.ofRaw(it.toInt()) + PCustomCallbackResultStatus.ofRaw(it.toInt()) } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { - PEntitlementType.ofRaw(it.toInt()) + PProductStore.ofRaw(it.toInt()) } } 138.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLatestSubscriptionState.ofRaw(it.toInt()) + PEntitlementType.ofRaw(it.toInt()) } } 139.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLatestSubscriptionOfferType.ofRaw(it.toInt()) + PLatestSubscriptionState.ofRaw(it.toInt()) } } 140.toByte() -> { return (readValue(buffer) as Long?)?.let { - PIntegrationAttribute.ofRaw(it.toInt()) + PLatestSubscriptionOfferType.ofRaw(it.toInt()) } } 141.toByte() -> { return (readValue(buffer) as Long?)?.let { - PNetworkEnvironment.ofRaw(it.toInt()) + PIntegrationAttribute.ofRaw(it.toInt()) } } 142.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLogLevel.ofRaw(it.toInt()) + PNetworkEnvironment.ofRaw(it.toInt()) } } 143.toByte() -> { return (readValue(buffer) as Long?)?.let { - PTransactionBackgroundView.ofRaw(it.toInt()) + PLogLevel.ofRaw(it.toInt()) } } 144.toByte() -> { return (readValue(buffer) as Long?)?.let { - PLogScope.ofRaw(it.toInt()) + PTransactionBackgroundView.ofRaw(it.toInt()) } } 145.toByte() -> { return (readValue(buffer) as Long?)?.let { - PConfigurationStatus.ofRaw(it.toInt()) + PLogScope.ofRaw(it.toInt()) } } 146.toByte() -> { return (readValue(buffer) as Long?)?.let { - PEventType.ofRaw(it.toInt()) + PConfigurationStatus.ofRaw(it.toInt()) } } 147.toByte() -> { return (readValue(buffer) as Long?)?.let { - PSubscriptionStatusType.ofRaw(it.toInt()) + PEventType.ofRaw(it.toInt()) } } 148.toByte() -> { return (readValue(buffer) as Long?)?.let { - PPaywallPresentationRequestStatusType.ofRaw(it.toInt()) + PSubscriptionStatusType.ofRaw(it.toInt()) } } 149.toByte() -> { return (readValue(buffer) as Long?)?.let { - PVariantType.ofRaw(it.toInt()) + PPaywallPresentationRequestStatusType.ofRaw(it.toInt()) } } 150.toByte() -> { return (readValue(buffer) as Long?)?.let { - PPaywallSkippedReason.ofRaw(it.toInt()) + PVariantType.ofRaw(it.toInt()) } } 151.toByte() -> { + return (readValue(buffer) as Long?)?.let { + PPaywallSkippedReason.ofRaw(it.toInt()) + } + } + 152.toByte() -> { return (readValue(buffer) as? List)?.let { PSuccessRedemptionResult.fromList(it) } } - 152.toByte() -> { + 153.toByte() -> { return (readValue(buffer) as? List)?.let { PErrorRedemptionResult.fromList(it) } } - 153.toByte() -> { + 154.toByte() -> { return (readValue(buffer) as? List)?.let { PErrorInfo.fromList(it) } } - 154.toByte() -> { + 155.toByte() -> { return (readValue(buffer) as? List)?.let { PExpiredCodeRedemptionResult.fromList(it) } } - 155.toByte() -> { + 156.toByte() -> { return (readValue(buffer) as? List)?.let { PExpiredCodeInfo.fromList(it) } } - 156.toByte() -> { + 157.toByte() -> { return (readValue(buffer) as? List)?.let { PInvalidCodeRedemptionResult.fromList(it) } } - 157.toByte() -> { + 158.toByte() -> { return (readValue(buffer) as? List)?.let { PExpiredSubscriptionCode.fromList(it) } } - 158.toByte() -> { + 159.toByte() -> { return (readValue(buffer) as? List)?.let { PRedemptionInfo.fromList(it) } } - 159.toByte() -> { + 160.toByte() -> { return (readValue(buffer) as? List)?.let { PAppUserOwnership.fromList(it) } } - 160.toByte() -> { + 161.toByte() -> { return (readValue(buffer) as? List)?.let { PDeviceOwnership.fromList(it) } } - 161.toByte() -> { + 162.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaserInfo.fromList(it) } } - 162.toByte() -> { + 163.toByte() -> { return (readValue(buffer) as? List)?.let { PStripeStoreIdentifiers.fromList(it) } } - 163.toByte() -> { + 164.toByte() -> { return (readValue(buffer) as? List)?.let { PPaddleStoreIdentifiers.fromList(it) } } - 164.toByte() -> { + 165.toByte() -> { return (readValue(buffer) as? List)?.let { PUnknownStoreIdentifiers.fromList(it) } } - 165.toByte() -> { + 166.toByte() -> { return (readValue(buffer) as? List)?.let { PRedemptionPaywallInfo.fromList(it) } } - 166.toByte() -> { + 167.toByte() -> { return (readValue(buffer) as? List)?.let { PSuperwallOptions.fromList(it) } } - 167.toByte() -> { + 168.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallInfo.fromList(it) } } - 168.toByte() -> { + 169.toByte() -> { return (readValue(buffer) as? List)?.let { PProduct.fromList(it) } } - 169.toByte() -> { + 170.toByte() -> { return (readValue(buffer) as? List)?.let { PLocalNotification.fromList(it) } } - 170.toByte() -> { + 171.toByte() -> { return (readValue(buffer) as? List)?.let { PComputedPropertyRequest.fromList(it) } } - 171.toByte() -> { + 172.toByte() -> { return (readValue(buffer) as? List)?.let { PSurvey.fromList(it) } } - 172.toByte() -> { + 173.toByte() -> { return (readValue(buffer) as? List)?.let { PSurveyOption.fromList(it) } } - 173.toByte() -> { + 174.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaseCancelled.fromList(it) } } - 174.toByte() -> { + 175.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchasePurchased.fromList(it) } } - 175.toByte() -> { + 176.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchasePending.fromList(it) } } - 176.toByte() -> { + 177.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaseFailed.fromList(it) } } - 177.toByte() -> { + 178.toByte() -> { return (readValue(buffer) as? List)?.let { PRestorationRestored.fromList(it) } } - 178.toByte() -> { + 179.toByte() -> { return (readValue(buffer) as? List)?.let { PRestorationFailed.fromList(it) } } - 179.toByte() -> { + 180.toByte() -> { return (readValue(buffer) as? List)?.let { PViaPurchase.fromList(it) } } - 180.toByte() -> { + 181.toByte() -> { return (readValue(buffer) as? List)?.let { PViaRestore.fromList(it) } } - 181.toByte() -> { + 182.toByte() -> { return (readValue(buffer) as? List)?.let { PRestoreFailed.fromList(it) } } - 182.toByte() -> { + 183.toByte() -> { return (readValue(buffer) as? List)?.let { PLogging.fromList(it) } } - 183.toByte() -> { + 184.toByte() -> { return (readValue(buffer) as? List)?.let { PStoreTransaction.fromList(it) } } - 184.toByte() -> { + 185.toByte() -> { return (readValue(buffer) as? List)?.let { PStoreProduct.fromList(it) } } - 185.toByte() -> { + 186.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallOptions.fromList(it) } } - 186.toByte() -> { + 187.toByte() -> { return (readValue(buffer) as? List)?.let { POnBackPressedHost.fromList(it) } } - 187.toByte() -> { + 188.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchaseControllerHost.fromList(it) } } - 188.toByte() -> { + 189.toByte() -> { return (readValue(buffer) as? List)?.let { PConfigureCompletionHost.fromList(it) } } - 189.toByte() -> { + 190.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallPresentationHandlerHost.fromList(it) } } - 190.toByte() -> { + 191.toByte() -> { return (readValue(buffer) as? List)?.let { PFeatureHandlerHost.fromList(it) } } - 191.toByte() -> { + 192.toByte() -> { return (readValue(buffer) as? List)?.let { PCustomCallback.fromList(it) } } - 192.toByte() -> { + 193.toByte() -> { return (readValue(buffer) as? List)?.let { PCustomCallbackResult.fromList(it) } } - 193.toByte() -> { + 194.toByte() -> { return (readValue(buffer) as? List)?.let { PSubscriptionTransaction.fromList(it) } } - 194.toByte() -> { + 195.toByte() -> { return (readValue(buffer) as? List)?.let { PNonSubscriptionTransaction.fromList(it) } } - 195.toByte() -> { + 196.toByte() -> { return (readValue(buffer) as? List)?.let { PEntitlement.fromList(it) } } - 196.toByte() -> { + 197.toByte() -> { return (readValue(buffer) as? List)?.let { PCustomerInfo.fromList(it) } } - 197.toByte() -> { + 198.toByte() -> { return (readValue(buffer) as? List)?.let { PEntitlements.fromList(it) } } - 198.toByte() -> { + 199.toByte() -> { return (readValue(buffer) as? List)?.let { PActive.fromList(it) } } - 199.toByte() -> { + 200.toByte() -> { return (readValue(buffer) as? List)?.let { PInactive.fromList(it) } } - 200.toByte() -> { + 201.toByte() -> { return (readValue(buffer) as? List)?.let { PUnknown.fromList(it) } } - 201.toByte() -> { + 202.toByte() -> { return (readValue(buffer) as? List)?.let { PSuperwallEventInfo.fromList(it) } } - 202.toByte() -> { + 203.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonDebuggerPresented.fromList(it) } } - 203.toByte() -> { + 204.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonPaywallAlreadyPresented.fromList(it) } } - 204.toByte() -> { + 205.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonHoldout.fromList(it) } } - 205.toByte() -> { + 206.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoAudienceMatch.fromList(it) } } - 206.toByte() -> { + 207.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonPlacementNotFound.fromList(it) } } - 207.toByte() -> { + 208.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoPaywallVc.fromList(it) } } - 208.toByte() -> { + 209.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoPresenter.fromList(it) } } - 209.toByte() -> { + 210.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonNoConfig.fromList(it) } } - 210.toByte() -> { + 211.toByte() -> { return (readValue(buffer) as? List)?.let { PStatusReasonSubsStatusTimeout.fromList(it) } } - 211.toByte() -> { + 212.toByte() -> { return (readValue(buffer) as? List)?.let { PIdentityOptions.fromList(it) } } - 212.toByte() -> { + 213.toByte() -> { return (readValue(buffer) as? List)?.let { PExperiment.fromList(it) } } - 213.toByte() -> { + 214.toByte() -> { return (readValue(buffer) as? List)?.let { PPlacementNotFoundTriggerResult.fromList(it) } } - 214.toByte() -> { + 215.toByte() -> { return (readValue(buffer) as? List)?.let { PNoAudienceMatchTriggerResult.fromList(it) } } - 215.toByte() -> { + 216.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallTriggerResult.fromList(it) } } - 216.toByte() -> { + 217.toByte() -> { return (readValue(buffer) as? List)?.let { PHoldoutTriggerResult.fromList(it) } } - 217.toByte() -> { + 218.toByte() -> { return (readValue(buffer) as? List)?.let { PErrorTriggerResult.fromList(it) } } - 218.toByte() -> { + 219.toByte() -> { return (readValue(buffer) as? List)?.let { PVariant.fromList(it) } } - 219.toByte() -> { + 220.toByte() -> { return (readValue(buffer) as? List)?.let { PConfirmedAssignment.fromList(it) } } - 220.toByte() -> { + 221.toByte() -> { return (readValue(buffer) as? List)?.let { PPurchasedPaywallResult.fromList(it) } } - 221.toByte() -> { + 222.toByte() -> { return (readValue(buffer) as? List)?.let { PDeclinedPaywallResult.fromList(it) } } - 222.toByte() -> { + 223.toByte() -> { return (readValue(buffer) as? List)?.let { PRestoredPaywallResult.fromList(it) } } - 223.toByte() -> { + 224.toByte() -> { return (readValue(buffer) as? List)?.let { PPlacementNotFoundPresentationResult.fromList(it) } } - 224.toByte() -> { + 225.toByte() -> { return (readValue(buffer) as? List)?.let { PNoAudienceMatchPresentationResult.fromList(it) } } - 225.toByte() -> { + 226.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallPresentationResult.fromList(it) } } - 226.toByte() -> { + 227.toByte() -> { return (readValue(buffer) as? List)?.let { PHoldoutPresentationResult.fromList(it) } } - 227.toByte() -> { + 228.toByte() -> { return (readValue(buffer) as? List)?.let { PPaywallNotAvailablePresentationResult.fromList(it) } @@ -3985,396 +4018,400 @@ private open class SuperwallHostGeneratedPigeonCodec : StandardMessageCodec() { stream.write(129) writeValue(stream, value.raw.toLong()) } - is PFeatureGatingBehavior -> { + is PEventTrackingBehavior -> { stream.write(130) writeValue(stream, value.raw.toLong()) } - is PPaywallCloseReason -> { + is PFeatureGatingBehavior -> { stream.write(131) writeValue(stream, value.raw.toLong()) } - is PLocalNotificationType -> { + is PPaywallCloseReason -> { stream.write(132) writeValue(stream, value.raw.toLong()) } - is PComputedPropertyRequestType -> { + is PLocalNotificationType -> { stream.write(133) writeValue(stream, value.raw.toLong()) } - is PSurveyShowCondition -> { + is PComputedPropertyRequestType -> { stream.write(134) writeValue(stream, value.raw.toLong()) } - is PCustomCallbackResultStatus -> { + is PSurveyShowCondition -> { stream.write(135) writeValue(stream, value.raw.toLong()) } - is PProductStore -> { + is PCustomCallbackResultStatus -> { stream.write(136) writeValue(stream, value.raw.toLong()) } - is PEntitlementType -> { + is PProductStore -> { stream.write(137) writeValue(stream, value.raw.toLong()) } - is PLatestSubscriptionState -> { + is PEntitlementType -> { stream.write(138) writeValue(stream, value.raw.toLong()) } - is PLatestSubscriptionOfferType -> { + is PLatestSubscriptionState -> { stream.write(139) writeValue(stream, value.raw.toLong()) } - is PIntegrationAttribute -> { + is PLatestSubscriptionOfferType -> { stream.write(140) writeValue(stream, value.raw.toLong()) } - is PNetworkEnvironment -> { + is PIntegrationAttribute -> { stream.write(141) writeValue(stream, value.raw.toLong()) } - is PLogLevel -> { + is PNetworkEnvironment -> { stream.write(142) writeValue(stream, value.raw.toLong()) } - is PTransactionBackgroundView -> { + is PLogLevel -> { stream.write(143) writeValue(stream, value.raw.toLong()) } - is PLogScope -> { + is PTransactionBackgroundView -> { stream.write(144) writeValue(stream, value.raw.toLong()) } - is PConfigurationStatus -> { + is PLogScope -> { stream.write(145) writeValue(stream, value.raw.toLong()) } - is PEventType -> { + is PConfigurationStatus -> { stream.write(146) writeValue(stream, value.raw.toLong()) } - is PSubscriptionStatusType -> { + is PEventType -> { stream.write(147) writeValue(stream, value.raw.toLong()) } - is PPaywallPresentationRequestStatusType -> { + is PSubscriptionStatusType -> { stream.write(148) writeValue(stream, value.raw.toLong()) } - is PVariantType -> { + is PPaywallPresentationRequestStatusType -> { stream.write(149) writeValue(stream, value.raw.toLong()) } - is PPaywallSkippedReason -> { + is PVariantType -> { stream.write(150) writeValue(stream, value.raw.toLong()) } - is PSuccessRedemptionResult -> { + is PPaywallSkippedReason -> { stream.write(151) + writeValue(stream, value.raw.toLong()) + } + is PSuccessRedemptionResult -> { + stream.write(152) writeValue(stream, value.toList()) } is PErrorRedemptionResult -> { - stream.write(152) + stream.write(153) writeValue(stream, value.toList()) } is PErrorInfo -> { - stream.write(153) + stream.write(154) writeValue(stream, value.toList()) } is PExpiredCodeRedemptionResult -> { - stream.write(154) + stream.write(155) writeValue(stream, value.toList()) } is PExpiredCodeInfo -> { - stream.write(155) + stream.write(156) writeValue(stream, value.toList()) } is PInvalidCodeRedemptionResult -> { - stream.write(156) + stream.write(157) writeValue(stream, value.toList()) } is PExpiredSubscriptionCode -> { - stream.write(157) + stream.write(158) writeValue(stream, value.toList()) } is PRedemptionInfo -> { - stream.write(158) + stream.write(159) writeValue(stream, value.toList()) } is PAppUserOwnership -> { - stream.write(159) + stream.write(160) writeValue(stream, value.toList()) } is PDeviceOwnership -> { - stream.write(160) + stream.write(161) writeValue(stream, value.toList()) } is PPurchaserInfo -> { - stream.write(161) + stream.write(162) writeValue(stream, value.toList()) } is PStripeStoreIdentifiers -> { - stream.write(162) + stream.write(163) writeValue(stream, value.toList()) } is PPaddleStoreIdentifiers -> { - stream.write(163) + stream.write(164) writeValue(stream, value.toList()) } is PUnknownStoreIdentifiers -> { - stream.write(164) + stream.write(165) writeValue(stream, value.toList()) } is PRedemptionPaywallInfo -> { - stream.write(165) + stream.write(166) writeValue(stream, value.toList()) } is PSuperwallOptions -> { - stream.write(166) + stream.write(167) writeValue(stream, value.toList()) } is PPaywallInfo -> { - stream.write(167) + stream.write(168) writeValue(stream, value.toList()) } is PProduct -> { - stream.write(168) + stream.write(169) writeValue(stream, value.toList()) } is PLocalNotification -> { - stream.write(169) + stream.write(170) writeValue(stream, value.toList()) } is PComputedPropertyRequest -> { - stream.write(170) + stream.write(171) writeValue(stream, value.toList()) } is PSurvey -> { - stream.write(171) + stream.write(172) writeValue(stream, value.toList()) } is PSurveyOption -> { - stream.write(172) + stream.write(173) writeValue(stream, value.toList()) } is PPurchaseCancelled -> { - stream.write(173) + stream.write(174) writeValue(stream, value.toList()) } is PPurchasePurchased -> { - stream.write(174) + stream.write(175) writeValue(stream, value.toList()) } is PPurchasePending -> { - stream.write(175) + stream.write(176) writeValue(stream, value.toList()) } is PPurchaseFailed -> { - stream.write(176) + stream.write(177) writeValue(stream, value.toList()) } is PRestorationRestored -> { - stream.write(177) + stream.write(178) writeValue(stream, value.toList()) } is PRestorationFailed -> { - stream.write(178) + stream.write(179) writeValue(stream, value.toList()) } is PViaPurchase -> { - stream.write(179) + stream.write(180) writeValue(stream, value.toList()) } is PViaRestore -> { - stream.write(180) + stream.write(181) writeValue(stream, value.toList()) } is PRestoreFailed -> { - stream.write(181) + stream.write(182) writeValue(stream, value.toList()) } is PLogging -> { - stream.write(182) + stream.write(183) writeValue(stream, value.toList()) } is PStoreTransaction -> { - stream.write(183) + stream.write(184) writeValue(stream, value.toList()) } is PStoreProduct -> { - stream.write(184) + stream.write(185) writeValue(stream, value.toList()) } is PPaywallOptions -> { - stream.write(185) + stream.write(186) writeValue(stream, value.toList()) } is POnBackPressedHost -> { - stream.write(186) + stream.write(187) writeValue(stream, value.toList()) } is PPurchaseControllerHost -> { - stream.write(187) + stream.write(188) writeValue(stream, value.toList()) } is PConfigureCompletionHost -> { - stream.write(188) + stream.write(189) writeValue(stream, value.toList()) } is PPaywallPresentationHandlerHost -> { - stream.write(189) + stream.write(190) writeValue(stream, value.toList()) } is PFeatureHandlerHost -> { - stream.write(190) + stream.write(191) writeValue(stream, value.toList()) } is PCustomCallback -> { - stream.write(191) + stream.write(192) writeValue(stream, value.toList()) } is PCustomCallbackResult -> { - stream.write(192) + stream.write(193) writeValue(stream, value.toList()) } is PSubscriptionTransaction -> { - stream.write(193) + stream.write(194) writeValue(stream, value.toList()) } is PNonSubscriptionTransaction -> { - stream.write(194) + stream.write(195) writeValue(stream, value.toList()) } is PEntitlement -> { - stream.write(195) + stream.write(196) writeValue(stream, value.toList()) } is PCustomerInfo -> { - stream.write(196) + stream.write(197) writeValue(stream, value.toList()) } is PEntitlements -> { - stream.write(197) + stream.write(198) writeValue(stream, value.toList()) } is PActive -> { - stream.write(198) + stream.write(199) writeValue(stream, value.toList()) } is PInactive -> { - stream.write(199) + stream.write(200) writeValue(stream, value.toList()) } is PUnknown -> { - stream.write(200) + stream.write(201) writeValue(stream, value.toList()) } is PSuperwallEventInfo -> { - stream.write(201) + stream.write(202) writeValue(stream, value.toList()) } is PStatusReasonDebuggerPresented -> { - stream.write(202) + stream.write(203) writeValue(stream, value.toList()) } is PStatusReasonPaywallAlreadyPresented -> { - stream.write(203) + stream.write(204) writeValue(stream, value.toList()) } is PStatusReasonHoldout -> { - stream.write(204) + stream.write(205) writeValue(stream, value.toList()) } is PStatusReasonNoAudienceMatch -> { - stream.write(205) + stream.write(206) writeValue(stream, value.toList()) } is PStatusReasonPlacementNotFound -> { - stream.write(206) + stream.write(207) writeValue(stream, value.toList()) } is PStatusReasonNoPaywallVc -> { - stream.write(207) + stream.write(208) writeValue(stream, value.toList()) } is PStatusReasonNoPresenter -> { - stream.write(208) + stream.write(209) writeValue(stream, value.toList()) } is PStatusReasonNoConfig -> { - stream.write(209) + stream.write(210) writeValue(stream, value.toList()) } is PStatusReasonSubsStatusTimeout -> { - stream.write(210) + stream.write(211) writeValue(stream, value.toList()) } is PIdentityOptions -> { - stream.write(211) + stream.write(212) writeValue(stream, value.toList()) } is PExperiment -> { - stream.write(212) + stream.write(213) writeValue(stream, value.toList()) } is PPlacementNotFoundTriggerResult -> { - stream.write(213) + stream.write(214) writeValue(stream, value.toList()) } is PNoAudienceMatchTriggerResult -> { - stream.write(214) + stream.write(215) writeValue(stream, value.toList()) } is PPaywallTriggerResult -> { - stream.write(215) + stream.write(216) writeValue(stream, value.toList()) } is PHoldoutTriggerResult -> { - stream.write(216) + stream.write(217) writeValue(stream, value.toList()) } is PErrorTriggerResult -> { - stream.write(217) + stream.write(218) writeValue(stream, value.toList()) } is PVariant -> { - stream.write(218) + stream.write(219) writeValue(stream, value.toList()) } is PConfirmedAssignment -> { - stream.write(219) + stream.write(220) writeValue(stream, value.toList()) } is PPurchasedPaywallResult -> { - stream.write(220) + stream.write(221) writeValue(stream, value.toList()) } is PDeclinedPaywallResult -> { - stream.write(221) + stream.write(222) writeValue(stream, value.toList()) } is PRestoredPaywallResult -> { - stream.write(222) + stream.write(223) writeValue(stream, value.toList()) } is PPlacementNotFoundPresentationResult -> { - stream.write(223) + stream.write(224) writeValue(stream, value.toList()) } is PNoAudienceMatchPresentationResult -> { - stream.write(224) + stream.write(225) writeValue(stream, value.toList()) } is PPaywallPresentationResult -> { - stream.write(225) + stream.write(226) writeValue(stream, value.toList()) } is PHoldoutPresentationResult -> { - stream.write(226) + stream.write(227) writeValue(stream, value.toList()) } is PPaywallNotAvailablePresentationResult -> { - stream.write(227) + stream.write(228) writeValue(stream, value.toList()) } else -> super.writeValue(stream, value) @@ -4402,6 +4439,7 @@ interface PSuperwallHostApi { fun consume(purchaseToken: String, callback: (Result) -> Unit) fun getLocaleIdentifier(): String? fun setLocaleIdentifier(localeIdentifier: String?) + fun getStoreFrontCountryCode(callback: (Result) -> Unit) fun getUserId(): String fun getIsLoggedIn(): Boolean fun getIsInitialized(): Boolean @@ -4700,6 +4738,24 @@ interface PSuperwallHostApi { channel.setMessageHandler(null) } } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getStoreFrontCountryCode$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + api.getStoreFrontCountryCode{ result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(SuperwallHostGeneratedPigeonUtils.wrapError(error)) + } else { + val data = result.getOrNull() + reply.reply(SuperwallHostGeneratedPigeonUtils.wrapResult(data)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } run { val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getUserId$separatedMessageChannelSuffix", codec) if (api != null) { 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 9f209ef..42921c3 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 @@ -16,6 +16,8 @@ import com.superwall.sdk.analytics.Tier import com.superwall.sdk.billing.DecomposedProductIds import com.superwall.sdk.config.options.PaywallOptions import PTestModeBehavior +import PEventTrackingBehavior +import com.superwall.sdk.config.options.EventTrackingBehavior import com.superwall.sdk.config.options.SuperwallOptions import com.superwall.sdk.store.testmode.TestModeBehavior import com.superwall.sdk.logger.LogLevel @@ -50,6 +52,15 @@ fun PSuperwallOptions.toSdkOptions(): SuperwallOptions { } this.isExternalDataCollectionEnabled?.let { sdkOptions.isExternalDataCollectionEnabled = it } + // Applied after the deprecated isExternalDataCollectionEnabled so that an + // explicit eventTrackingBehavior takes precedence. + this.eventTrackingBehavior?.let { hostBehavior -> + sdkOptions.eventTrackingBehavior = when (hostBehavior) { + PEventTrackingBehavior.ALL -> EventTrackingBehavior.ALL + PEventTrackingBehavior.SUPERWALL_ONLY -> EventTrackingBehavior.SUPERWALL_ONLY + PEventTrackingBehavior.NONE -> EventTrackingBehavior.NONE + } + } this.localeIdentifier?.let { sdkOptions.localeIdentifier = it } this.isGameControllerEnabled?.let { sdkOptions.isGameControllerEnabled = it } this.passIdentifiersToPlayStore?.let { sdkOptions.passIdentifiersToPlayStore = it } @@ -161,6 +172,8 @@ fun PPaywallOptions.toSdkPaywallOptions(): PaywallOptions { sdkPaywallOptions.overrideProductsByName = hostOverrides } + this.loadingColor?.let { sdkPaywallOptions.loadingColor = it.toInt() } + return sdkPaywallOptions } diff --git a/ios/Classes/Mappers/OptionsMapper.swift b/ios/Classes/Mappers/OptionsMapper.swift index 6a7105e..07c1184 100644 --- a/ios/Classes/Mappers/OptionsMapper.swift +++ b/ios/Classes/Mappers/OptionsMapper.swift @@ -75,7 +75,20 @@ extension PSuperwallOptions { if let isExternalDataCollectionEnabled = self.isExternalDataCollectionEnabled { options.isExternalDataCollectionEnabled = isExternalDataCollectionEnabled } - + + // Applied after the deprecated isExternalDataCollectionEnabled so that an + // explicit eventTrackingBehavior takes precedence. + if let eventTrackingBehavior = self.eventTrackingBehavior { + switch eventTrackingBehavior { + case .all: + options.eventTrackingBehavior = .all + case .superwallOnly: + options.eventTrackingBehavior = .superwallOnly + case .none: + options.eventTrackingBehavior = .none + } + } + options.localeIdentifier = self.localeIdentifier if let isGameControllerEnabled = self.isGameControllerEnabled { diff --git a/ios/Classes/SuperwallHost.swift b/ios/Classes/SuperwallHost.swift index 0f85c71..91793b7 100644 --- a/ios/Classes/SuperwallHost.swift +++ b/ios/Classes/SuperwallHost.swift @@ -149,6 +149,12 @@ final class SuperwallHost : NSObject, PSuperwallHostApi { Superwall.shared.localeIdentifier = localeIdentifier } + func getStoreFrontCountryCode(completion: @escaping (Result) -> Void) { + // SuperwallKit does not currently expose a storefront country code on the + // public `Superwall` API, so this returns nil on iOS. + completion(.success(nil)) + } + func getUserId() -> String { return Superwall.shared.userId } @@ -447,6 +453,8 @@ extension PIntegrationAttribute { switch self { case .adjustId: return .adjustId + case .singularDeviceId: + return .singularDeviceId case .amplitudeDeviceId: return .amplitudeDeviceId case .amplitudeUserId: diff --git a/ios/Classes/SuperwallHostGenerated.swift b/ios/Classes/SuperwallHostGenerated.swift index 38c286f..da3f560 100644 --- a/ios/Classes/SuperwallHostGenerated.swift +++ b/ios/Classes/SuperwallHostGenerated.swift @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v26.2.3), do not edit directly. +// Autogenerated from Pigeon (v26.1.5), do not edit directly. // See also: https://pub.dev/packages/pigeon import Foundation @@ -144,6 +144,16 @@ enum PTestModeBehavior: Int { case always = 3 } +/// Controls which events are sent to the Superwall servers. +enum PEventTrackingBehavior: Int { + /// All events are tracked. This is the default. + case all = 0 + /// Only internal Superwall events are tracked. + case superwallOnly = 1 + /// No events are sent to the Superwall servers. + case none = 2 +} + enum PFeatureGatingBehavior: Int { case gated = 0 case nonGated = 1 @@ -234,46 +244,48 @@ enum PLatestSubscriptionOfferType: Int { enum PIntegrationAttribute: Int { /// The unique Adjust identifier for the user. case adjustId = 0 + /// The Singular Device ID (SDID) for the user. + case singularDeviceId = 1 /// The Amplitude device identifier. - case amplitudeDeviceId = 1 + case amplitudeDeviceId = 2 /// The Amplitude user identifier. - case amplitudeUserId = 2 + case amplitudeUserId = 3 /// The unique Appsflyer identifier for the user. - case appsflyerId = 3 + case appsflyerId = 4 /// The Braze `alias_name` in User Alias Object. - case brazeAliasName = 4 + case brazeAliasName = 5 /// The Braze `alias_label` in User Alias Object. - case brazeAliasLabel = 5 + case brazeAliasLabel = 6 /// The OneSignal Player identifier for the user. - case onesignalId = 6 + case onesignalId = 7 /// The Facebook Anonymous identifier for the user. - case fbAnonId = 7 + case fbAnonId = 8 /// The Firebase instance identifier. - case firebaseAppInstanceId = 8 + case firebaseAppInstanceId = 9 /// The Iterable identifier for the user. - case iterableUserId = 9 + case iterableUserId = 10 /// The Iterable campaign identifier. - case iterableCampaignId = 10 + case iterableCampaignId = 11 /// The Iterable template identifier. - case iterableTemplateId = 11 + case iterableTemplateId = 12 /// The Mixpanel user identifier. - case mixpanelDistinctId = 12 + case mixpanelDistinctId = 13 /// The unique mParticle user identifier (mpid). - case mparticleId = 13 + case mparticleId = 14 /// The CleverTap user identifier. - case clevertapId = 14 + case clevertapId = 15 /// The Airship channel identifier for the user. - case airshipChannelId = 15 + case airshipChannelId = 16 /// The unique Kochava device identifier. - case kochavaDeviceId = 16 + case kochavaDeviceId = 17 /// The Tenjin identifier. - case tenjinId = 17 + case tenjinId = 18 /// The PostHog User identifier. - case posthogUserId = 18 + case posthogUserId = 19 /// The Customer.io person's identifier (`id`). - case customerioId = 19 + case customerioId = 20 /// The Appstack identifier. - case appstackId = 20 + case appstackId = 21 } enum PNetworkEnvironment: Int { @@ -923,6 +935,7 @@ struct PRedemptionPaywallInfo: Hashable { struct PSuperwallOptions: Hashable { var paywalls: PPaywallOptions? = nil var networkEnvironment: PNetworkEnvironment? = nil + var eventTrackingBehavior: PEventTrackingBehavior? = nil var isExternalDataCollectionEnabled: Bool? = nil var localeIdentifier: String? = nil var isGameControllerEnabled: Bool? = nil @@ -949,21 +962,23 @@ struct PSuperwallOptions: Hashable { static func fromList(_ pigeonVar_list: [Any?]) -> PSuperwallOptions? { let paywalls: PPaywallOptions? = nilOrValue(pigeonVar_list[0]) let networkEnvironment: PNetworkEnvironment? = nilOrValue(pigeonVar_list[1]) - let isExternalDataCollectionEnabled: Bool? = nilOrValue(pigeonVar_list[2]) - let localeIdentifier: String? = nilOrValue(pigeonVar_list[3]) - let isGameControllerEnabled: Bool? = nilOrValue(pigeonVar_list[4]) - 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]) - let shouldObservePurchases: Bool? = nilOrValue(pigeonVar_list[9]) - let shouldBypassAppTransactionCheck: Bool? = nilOrValue(pigeonVar_list[10]) - let maxConfigRetryCount: Int64? = nilOrValue(pigeonVar_list[11]) - let useMockReviews: Bool? = nilOrValue(pigeonVar_list[12]) + let eventTrackingBehavior: PEventTrackingBehavior? = nilOrValue(pigeonVar_list[2]) + let isExternalDataCollectionEnabled: Bool? = nilOrValue(pigeonVar_list[3]) + let localeIdentifier: String? = nilOrValue(pigeonVar_list[4]) + let isGameControllerEnabled: Bool? = nilOrValue(pigeonVar_list[5]) + let enableExperimentalDeviceVariables: Bool? = nilOrValue(pigeonVar_list[6]) + let logging: PLogging? = nilOrValue(pigeonVar_list[7]) + let passIdentifiersToPlayStore: Bool? = nilOrValue(pigeonVar_list[8]) + let testModeBehavior: PTestModeBehavior? = nilOrValue(pigeonVar_list[9]) + let shouldObservePurchases: Bool? = nilOrValue(pigeonVar_list[10]) + let shouldBypassAppTransactionCheck: Bool? = nilOrValue(pigeonVar_list[11]) + let maxConfigRetryCount: Int64? = nilOrValue(pigeonVar_list[12]) + let useMockReviews: Bool? = nilOrValue(pigeonVar_list[13]) return PSuperwallOptions( paywalls: paywalls, networkEnvironment: networkEnvironment, + eventTrackingBehavior: eventTrackingBehavior, isExternalDataCollectionEnabled: isExternalDataCollectionEnabled, localeIdentifier: localeIdentifier, isGameControllerEnabled: isGameControllerEnabled, @@ -981,6 +996,7 @@ struct PSuperwallOptions: Hashable { return [ paywalls, networkEnvironment, + eventTrackingBehavior, isExternalDataCollectionEnabled, localeIdentifier, isGameControllerEnabled, @@ -1894,6 +1910,9 @@ struct PPaywallOptions: Hashable { /// Keys are raw `DeviceTier` values (e.g. `ultra_low`, `low`, `mid`, /// `high`, `ultra_high`, `unknown`). var preloadDeviceOverrides: [String: Bool]? = nil + /// Android only. Color resource ID (`@ColorRes`) used to tint the loading + /// spinner. Has no effect on iOS. + var loadingColor: Int64? = nil // swift-format-ignore: AlwaysUseLowerCamelCase @@ -1909,6 +1928,7 @@ struct PPaywallOptions: Hashable { let shouldShowWebPurchaseConfirmationAlert: Bool? = nilOrValue(pigeonVar_list[8]) let onBackPressedHost: POnBackPressedHost? = nilOrValue(pigeonVar_list[9]) let preloadDeviceOverrides: [String: Bool]? = nilOrValue(pigeonVar_list[10]) + let loadingColor: Int64? = nilOrValue(pigeonVar_list[11]) return PPaywallOptions( isHapticFeedbackEnabled: isHapticFeedbackEnabled, @@ -1921,7 +1941,8 @@ struct PPaywallOptions: Hashable { overrideProductsByName: overrideProductsByName, shouldShowWebPurchaseConfirmationAlert: shouldShowWebPurchaseConfirmationAlert, onBackPressedHost: onBackPressedHost, - preloadDeviceOverrides: preloadDeviceOverrides + preloadDeviceOverrides: preloadDeviceOverrides, + loadingColor: loadingColor ) } func toList() -> [Any?] { @@ -1937,6 +1958,7 @@ struct PPaywallOptions: Hashable { shouldShowWebPurchaseConfirmationAlert, onBackPressedHost, preloadDeviceOverrides, + loadingColor, ] } static func == (lhs: PPaywallOptions, rhs: PPaywallOptions) -> Bool { @@ -3357,282 +3379,288 @@ private class SuperwallHostGeneratedPigeonCodecReader: FlutterStandardReader { case 130: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PFeatureGatingBehavior(rawValue: enumResultAsInt) + return PEventTrackingBehavior(rawValue: enumResultAsInt) } return nil case 131: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PPaywallCloseReason(rawValue: enumResultAsInt) + return PFeatureGatingBehavior(rawValue: enumResultAsInt) } return nil case 132: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLocalNotificationType(rawValue: enumResultAsInt) + return PPaywallCloseReason(rawValue: enumResultAsInt) } return nil case 133: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PComputedPropertyRequestType(rawValue: enumResultAsInt) + return PLocalNotificationType(rawValue: enumResultAsInt) } return nil case 134: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PSurveyShowCondition(rawValue: enumResultAsInt) + return PComputedPropertyRequestType(rawValue: enumResultAsInt) } return nil case 135: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PCustomCallbackResultStatus(rawValue: enumResultAsInt) + return PSurveyShowCondition(rawValue: enumResultAsInt) } return nil case 136: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PProductStore(rawValue: enumResultAsInt) + return PCustomCallbackResultStatus(rawValue: enumResultAsInt) } return nil case 137: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PEntitlementType(rawValue: enumResultAsInt) + return PProductStore(rawValue: enumResultAsInt) } return nil case 138: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLatestSubscriptionState(rawValue: enumResultAsInt) + return PEntitlementType(rawValue: enumResultAsInt) } return nil case 139: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLatestSubscriptionOfferType(rawValue: enumResultAsInt) + return PLatestSubscriptionState(rawValue: enumResultAsInt) } return nil case 140: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PIntegrationAttribute(rawValue: enumResultAsInt) + return PLatestSubscriptionOfferType(rawValue: enumResultAsInt) } return nil case 141: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PNetworkEnvironment(rawValue: enumResultAsInt) + return PIntegrationAttribute(rawValue: enumResultAsInt) } return nil case 142: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLogLevel(rawValue: enumResultAsInt) + return PNetworkEnvironment(rawValue: enumResultAsInt) } return nil case 143: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PTransactionBackgroundView(rawValue: enumResultAsInt) + return PLogLevel(rawValue: enumResultAsInt) } return nil case 144: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PLogScope(rawValue: enumResultAsInt) + return PTransactionBackgroundView(rawValue: enumResultAsInt) } return nil case 145: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PConfigurationStatus(rawValue: enumResultAsInt) + return PLogScope(rawValue: enumResultAsInt) } return nil case 146: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PEventType(rawValue: enumResultAsInt) + return PConfigurationStatus(rawValue: enumResultAsInt) } return nil case 147: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PSubscriptionStatusType(rawValue: enumResultAsInt) + return PEventType(rawValue: enumResultAsInt) } return nil case 148: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PPaywallPresentationRequestStatusType(rawValue: enumResultAsInt) + return PSubscriptionStatusType(rawValue: enumResultAsInt) } return nil case 149: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PVariantType(rawValue: enumResultAsInt) + return PPaywallPresentationRequestStatusType(rawValue: enumResultAsInt) } return nil case 150: let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) if let enumResultAsInt = enumResultAsInt { - return PPaywallSkippedReason(rawValue: enumResultAsInt) + return PVariantType(rawValue: enumResultAsInt) } return nil case 151: - 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 152: - return PErrorRedemptionResult.fromList(self.readValue() as! [Any?]) + return PSuccessRedemptionResult.fromList(self.readValue() as! [Any?]) case 153: - return PErrorInfo.fromList(self.readValue() as! [Any?]) + return PErrorRedemptionResult.fromList(self.readValue() as! [Any?]) case 154: - return PExpiredCodeRedemptionResult.fromList(self.readValue() as! [Any?]) + return PErrorInfo.fromList(self.readValue() as! [Any?]) case 155: - return PExpiredCodeInfo.fromList(self.readValue() as! [Any?]) + return PExpiredCodeRedemptionResult.fromList(self.readValue() as! [Any?]) case 156: - return PInvalidCodeRedemptionResult.fromList(self.readValue() as! [Any?]) + return PExpiredCodeInfo.fromList(self.readValue() as! [Any?]) case 157: - return PExpiredSubscriptionCode.fromList(self.readValue() as! [Any?]) + return PInvalidCodeRedemptionResult.fromList(self.readValue() as! [Any?]) case 158: - return PRedemptionInfo.fromList(self.readValue() as! [Any?]) + return PExpiredSubscriptionCode.fromList(self.readValue() as! [Any?]) case 159: - return PAppUserOwnership.fromList(self.readValue() as! [Any?]) + return PRedemptionInfo.fromList(self.readValue() as! [Any?]) case 160: - return PDeviceOwnership.fromList(self.readValue() as! [Any?]) + return PAppUserOwnership.fromList(self.readValue() as! [Any?]) case 161: - return PPurchaserInfo.fromList(self.readValue() as! [Any?]) + return PDeviceOwnership.fromList(self.readValue() as! [Any?]) case 162: - return PStripeStoreIdentifiers.fromList(self.readValue() as! [Any?]) + return PPurchaserInfo.fromList(self.readValue() as! [Any?]) case 163: - return PPaddleStoreIdentifiers.fromList(self.readValue() as! [Any?]) + return PStripeStoreIdentifiers.fromList(self.readValue() as! [Any?]) case 164: - return PUnknownStoreIdentifiers.fromList(self.readValue() as! [Any?]) + return PPaddleStoreIdentifiers.fromList(self.readValue() as! [Any?]) case 165: - return PRedemptionPaywallInfo.fromList(self.readValue() as! [Any?]) + return PUnknownStoreIdentifiers.fromList(self.readValue() as! [Any?]) case 166: - return PSuperwallOptions.fromList(self.readValue() as! [Any?]) + return PRedemptionPaywallInfo.fromList(self.readValue() as! [Any?]) case 167: - return PPaywallInfo.fromList(self.readValue() as! [Any?]) + return PSuperwallOptions.fromList(self.readValue() as! [Any?]) case 168: - return PProduct.fromList(self.readValue() as! [Any?]) + return PPaywallInfo.fromList(self.readValue() as! [Any?]) case 169: - return PLocalNotification.fromList(self.readValue() as! [Any?]) + return PProduct.fromList(self.readValue() as! [Any?]) case 170: - return PComputedPropertyRequest.fromList(self.readValue() as! [Any?]) + return PLocalNotification.fromList(self.readValue() as! [Any?]) case 171: - return PSurvey.fromList(self.readValue() as! [Any?]) + return PComputedPropertyRequest.fromList(self.readValue() as! [Any?]) case 172: - return PSurveyOption.fromList(self.readValue() as! [Any?]) + return PSurvey.fromList(self.readValue() as! [Any?]) case 173: - return PPurchaseCancelled.fromList(self.readValue() as! [Any?]) + return PSurveyOption.fromList(self.readValue() as! [Any?]) case 174: - return PPurchasePurchased.fromList(self.readValue() as! [Any?]) + return PPurchaseCancelled.fromList(self.readValue() as! [Any?]) case 175: - return PPurchasePending.fromList(self.readValue() as! [Any?]) + return PPurchasePurchased.fromList(self.readValue() as! [Any?]) case 176: - return PPurchaseFailed.fromList(self.readValue() as! [Any?]) + return PPurchasePending.fromList(self.readValue() as! [Any?]) case 177: - return PRestorationRestored.fromList(self.readValue() as! [Any?]) + return PPurchaseFailed.fromList(self.readValue() as! [Any?]) case 178: - return PRestorationFailed.fromList(self.readValue() as! [Any?]) + return PRestorationRestored.fromList(self.readValue() as! [Any?]) case 179: - return PViaPurchase.fromList(self.readValue() as! [Any?]) + return PRestorationFailed.fromList(self.readValue() as! [Any?]) case 180: - return PViaRestore.fromList(self.readValue() as! [Any?]) + return PViaPurchase.fromList(self.readValue() as! [Any?]) case 181: - return PRestoreFailed.fromList(self.readValue() as! [Any?]) + return PViaRestore.fromList(self.readValue() as! [Any?]) case 182: - return PLogging.fromList(self.readValue() as! [Any?]) + return PRestoreFailed.fromList(self.readValue() as! [Any?]) case 183: - return PStoreTransaction.fromList(self.readValue() as! [Any?]) + return PLogging.fromList(self.readValue() as! [Any?]) case 184: - return PStoreProduct.fromList(self.readValue() as! [Any?]) + return PStoreTransaction.fromList(self.readValue() as! [Any?]) case 185: - return PPaywallOptions.fromList(self.readValue() as! [Any?]) + return PStoreProduct.fromList(self.readValue() as! [Any?]) case 186: - return POnBackPressedHost.fromList(self.readValue() as! [Any?]) + return PPaywallOptions.fromList(self.readValue() as! [Any?]) case 187: - return PPurchaseControllerHost.fromList(self.readValue() as! [Any?]) + return POnBackPressedHost.fromList(self.readValue() as! [Any?]) case 188: - return PConfigureCompletionHost.fromList(self.readValue() as! [Any?]) + return PPurchaseControllerHost.fromList(self.readValue() as! [Any?]) case 189: - return PPaywallPresentationHandlerHost.fromList(self.readValue() as! [Any?]) + return PConfigureCompletionHost.fromList(self.readValue() as! [Any?]) case 190: - return PFeatureHandlerHost.fromList(self.readValue() as! [Any?]) + return PPaywallPresentationHandlerHost.fromList(self.readValue() as! [Any?]) case 191: - return PCustomCallback.fromList(self.readValue() as! [Any?]) + return PFeatureHandlerHost.fromList(self.readValue() as! [Any?]) case 192: - return PCustomCallbackResult.fromList(self.readValue() as! [Any?]) + return PCustomCallback.fromList(self.readValue() as! [Any?]) case 193: - return PSubscriptionTransaction.fromList(self.readValue() as! [Any?]) + return PCustomCallbackResult.fromList(self.readValue() as! [Any?]) case 194: - return PNonSubscriptionTransaction.fromList(self.readValue() as! [Any?]) + return PSubscriptionTransaction.fromList(self.readValue() as! [Any?]) case 195: - return PEntitlement.fromList(self.readValue() as! [Any?]) + return PNonSubscriptionTransaction.fromList(self.readValue() as! [Any?]) case 196: - return PCustomerInfo.fromList(self.readValue() as! [Any?]) + return PEntitlement.fromList(self.readValue() as! [Any?]) case 197: - return PEntitlements.fromList(self.readValue() as! [Any?]) + return PCustomerInfo.fromList(self.readValue() as! [Any?]) case 198: - return PActive.fromList(self.readValue() as! [Any?]) + return PEntitlements.fromList(self.readValue() as! [Any?]) case 199: - return PInactive.fromList(self.readValue() as! [Any?]) + return PActive.fromList(self.readValue() as! [Any?]) case 200: - return PUnknown.fromList(self.readValue() as! [Any?]) + return PInactive.fromList(self.readValue() as! [Any?]) case 201: - return PSuperwallEventInfo.fromList(self.readValue() as! [Any?]) + return PUnknown.fromList(self.readValue() as! [Any?]) case 202: - return PStatusReasonDebuggerPresented.fromList(self.readValue() as! [Any?]) + return PSuperwallEventInfo.fromList(self.readValue() as! [Any?]) case 203: - return PStatusReasonPaywallAlreadyPresented.fromList(self.readValue() as! [Any?]) + return PStatusReasonDebuggerPresented.fromList(self.readValue() as! [Any?]) case 204: - return PStatusReasonHoldout.fromList(self.readValue() as! [Any?]) + return PStatusReasonPaywallAlreadyPresented.fromList(self.readValue() as! [Any?]) case 205: - return PStatusReasonNoAudienceMatch.fromList(self.readValue() as! [Any?]) + return PStatusReasonHoldout.fromList(self.readValue() as! [Any?]) case 206: - return PStatusReasonPlacementNotFound.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoAudienceMatch.fromList(self.readValue() as! [Any?]) case 207: - return PStatusReasonNoPaywallVc.fromList(self.readValue() as! [Any?]) + return PStatusReasonPlacementNotFound.fromList(self.readValue() as! [Any?]) case 208: - return PStatusReasonNoPresenter.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoPaywallVc.fromList(self.readValue() as! [Any?]) case 209: - return PStatusReasonNoConfig.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoPresenter.fromList(self.readValue() as! [Any?]) case 210: - return PStatusReasonSubsStatusTimeout.fromList(self.readValue() as! [Any?]) + return PStatusReasonNoConfig.fromList(self.readValue() as! [Any?]) case 211: - return PIdentityOptions.fromList(self.readValue() as! [Any?]) + return PStatusReasonSubsStatusTimeout.fromList(self.readValue() as! [Any?]) case 212: - return PExperiment.fromList(self.readValue() as! [Any?]) + return PIdentityOptions.fromList(self.readValue() as! [Any?]) case 213: - return PPlacementNotFoundTriggerResult.fromList(self.readValue() as! [Any?]) + return PExperiment.fromList(self.readValue() as! [Any?]) case 214: - return PNoAudienceMatchTriggerResult.fromList(self.readValue() as! [Any?]) + return PPlacementNotFoundTriggerResult.fromList(self.readValue() as! [Any?]) case 215: - return PPaywallTriggerResult.fromList(self.readValue() as! [Any?]) + return PNoAudienceMatchTriggerResult.fromList(self.readValue() as! [Any?]) case 216: - return PHoldoutTriggerResult.fromList(self.readValue() as! [Any?]) + return PPaywallTriggerResult.fromList(self.readValue() as! [Any?]) case 217: - return PErrorTriggerResult.fromList(self.readValue() as! [Any?]) + return PHoldoutTriggerResult.fromList(self.readValue() as! [Any?]) case 218: - return PVariant.fromList(self.readValue() as! [Any?]) + return PErrorTriggerResult.fromList(self.readValue() as! [Any?]) case 219: - return PConfirmedAssignment.fromList(self.readValue() as! [Any?]) + return PVariant.fromList(self.readValue() as! [Any?]) case 220: - return PPurchasedPaywallResult.fromList(self.readValue() as! [Any?]) + return PConfirmedAssignment.fromList(self.readValue() as! [Any?]) case 221: - return PDeclinedPaywallResult.fromList(self.readValue() as! [Any?]) + return PPurchasedPaywallResult.fromList(self.readValue() as! [Any?]) case 222: - return PRestoredPaywallResult.fromList(self.readValue() as! [Any?]) + return PDeclinedPaywallResult.fromList(self.readValue() as! [Any?]) case 223: - return PPlacementNotFoundPresentationResult.fromList(self.readValue() as! [Any?]) + return PRestoredPaywallResult.fromList(self.readValue() as! [Any?]) case 224: - return PNoAudienceMatchPresentationResult.fromList(self.readValue() as! [Any?]) + return PPlacementNotFoundPresentationResult.fromList(self.readValue() as! [Any?]) case 225: - return PPaywallPresentationResult.fromList(self.readValue() as! [Any?]) + return PNoAudienceMatchPresentationResult.fromList(self.readValue() as! [Any?]) case 226: - return PHoldoutPresentationResult.fromList(self.readValue() as! [Any?]) + return PPaywallPresentationResult.fromList(self.readValue() as! [Any?]) case 227: + return PHoldoutPresentationResult.fromList(self.readValue() as! [Any?]) + case 228: return PPaywallNotAvailablePresentationResult.fromList(self.readValue() as! [Any?]) default: return super.readValue(ofType: type) @@ -3645,299 +3673,302 @@ private class SuperwallHostGeneratedPigeonCodecWriter: FlutterStandardWriter { if let value = value as? PTestModeBehavior { super.writeByte(129) super.writeValue(value.rawValue) - } else if let value = value as? PFeatureGatingBehavior { + } else if let value = value as? PEventTrackingBehavior { super.writeByte(130) super.writeValue(value.rawValue) - } else if let value = value as? PPaywallCloseReason { + } else if let value = value as? PFeatureGatingBehavior { super.writeByte(131) super.writeValue(value.rawValue) - } else if let value = value as? PLocalNotificationType { + } else if let value = value as? PPaywallCloseReason { super.writeByte(132) super.writeValue(value.rawValue) - } else if let value = value as? PComputedPropertyRequestType { + } else if let value = value as? PLocalNotificationType { super.writeByte(133) super.writeValue(value.rawValue) - } else if let value = value as? PSurveyShowCondition { + } else if let value = value as? PComputedPropertyRequestType { super.writeByte(134) super.writeValue(value.rawValue) - } else if let value = value as? PCustomCallbackResultStatus { + } else if let value = value as? PSurveyShowCondition { super.writeByte(135) super.writeValue(value.rawValue) - } else if let value = value as? PProductStore { + } else if let value = value as? PCustomCallbackResultStatus { super.writeByte(136) super.writeValue(value.rawValue) - } else if let value = value as? PEntitlementType { + } else if let value = value as? PProductStore { super.writeByte(137) super.writeValue(value.rawValue) - } else if let value = value as? PLatestSubscriptionState { + } else if let value = value as? PEntitlementType { super.writeByte(138) super.writeValue(value.rawValue) - } else if let value = value as? PLatestSubscriptionOfferType { + } else if let value = value as? PLatestSubscriptionState { super.writeByte(139) super.writeValue(value.rawValue) - } else if let value = value as? PIntegrationAttribute { + } else if let value = value as? PLatestSubscriptionOfferType { super.writeByte(140) super.writeValue(value.rawValue) - } else if let value = value as? PNetworkEnvironment { + } else if let value = value as? PIntegrationAttribute { super.writeByte(141) super.writeValue(value.rawValue) - } else if let value = value as? PLogLevel { + } else if let value = value as? PNetworkEnvironment { super.writeByte(142) super.writeValue(value.rawValue) - } else if let value = value as? PTransactionBackgroundView { + } else if let value = value as? PLogLevel { super.writeByte(143) super.writeValue(value.rawValue) - } else if let value = value as? PLogScope { + } else if let value = value as? PTransactionBackgroundView { super.writeByte(144) super.writeValue(value.rawValue) - } else if let value = value as? PConfigurationStatus { + } else if let value = value as? PLogScope { super.writeByte(145) super.writeValue(value.rawValue) - } else if let value = value as? PEventType { + } else if let value = value as? PConfigurationStatus { super.writeByte(146) super.writeValue(value.rawValue) - } else if let value = value as? PSubscriptionStatusType { + } else if let value = value as? PEventType { super.writeByte(147) super.writeValue(value.rawValue) - } else if let value = value as? PPaywallPresentationRequestStatusType { + } else if let value = value as? PSubscriptionStatusType { super.writeByte(148) super.writeValue(value.rawValue) - } else if let value = value as? PVariantType { + } else if let value = value as? PPaywallPresentationRequestStatusType { super.writeByte(149) super.writeValue(value.rawValue) - } else if let value = value as? PPaywallSkippedReason { + } else if let value = value as? PVariantType { super.writeByte(150) super.writeValue(value.rawValue) - } else if let value = value as? PSuccessRedemptionResult { + } else if let value = value as? PPaywallSkippedReason { super.writeByte(151) + super.writeValue(value.rawValue) + } else if let value = value as? PSuccessRedemptionResult { + super.writeByte(152) super.writeValue(value.toList()) } else if let value = value as? PErrorRedemptionResult { - super.writeByte(152) + super.writeByte(153) super.writeValue(value.toList()) } else if let value = value as? PErrorInfo { - super.writeByte(153) + super.writeByte(154) super.writeValue(value.toList()) } else if let value = value as? PExpiredCodeRedemptionResult { - super.writeByte(154) + super.writeByte(155) super.writeValue(value.toList()) } else if let value = value as? PExpiredCodeInfo { - super.writeByte(155) + super.writeByte(156) super.writeValue(value.toList()) } else if let value = value as? PInvalidCodeRedemptionResult { - super.writeByte(156) + super.writeByte(157) super.writeValue(value.toList()) } else if let value = value as? PExpiredSubscriptionCode { - super.writeByte(157) + super.writeByte(158) super.writeValue(value.toList()) } else if let value = value as? PRedemptionInfo { - super.writeByte(158) + super.writeByte(159) super.writeValue(value.toList()) } else if let value = value as? PAppUserOwnership { - super.writeByte(159) + super.writeByte(160) super.writeValue(value.toList()) } else if let value = value as? PDeviceOwnership { - super.writeByte(160) + super.writeByte(161) super.writeValue(value.toList()) } else if let value = value as? PPurchaserInfo { - super.writeByte(161) + super.writeByte(162) super.writeValue(value.toList()) } else if let value = value as? PStripeStoreIdentifiers { - super.writeByte(162) + super.writeByte(163) super.writeValue(value.toList()) } else if let value = value as? PPaddleStoreIdentifiers { - super.writeByte(163) + super.writeByte(164) super.writeValue(value.toList()) } else if let value = value as? PUnknownStoreIdentifiers { - super.writeByte(164) + super.writeByte(165) super.writeValue(value.toList()) } else if let value = value as? PRedemptionPaywallInfo { - super.writeByte(165) + super.writeByte(166) super.writeValue(value.toList()) } else if let value = value as? PSuperwallOptions { - super.writeByte(166) + super.writeByte(167) super.writeValue(value.toList()) } else if let value = value as? PPaywallInfo { - super.writeByte(167) + super.writeByte(168) super.writeValue(value.toList()) } else if let value = value as? PProduct { - super.writeByte(168) + super.writeByte(169) super.writeValue(value.toList()) } else if let value = value as? PLocalNotification { - super.writeByte(169) + super.writeByte(170) super.writeValue(value.toList()) } else if let value = value as? PComputedPropertyRequest { - super.writeByte(170) + super.writeByte(171) super.writeValue(value.toList()) } else if let value = value as? PSurvey { - super.writeByte(171) + super.writeByte(172) super.writeValue(value.toList()) } else if let value = value as? PSurveyOption { - super.writeByte(172) + super.writeByte(173) super.writeValue(value.toList()) } else if let value = value as? PPurchaseCancelled { - super.writeByte(173) + super.writeByte(174) super.writeValue(value.toList()) } else if let value = value as? PPurchasePurchased { - super.writeByte(174) + super.writeByte(175) super.writeValue(value.toList()) } else if let value = value as? PPurchasePending { - super.writeByte(175) + super.writeByte(176) super.writeValue(value.toList()) } else if let value = value as? PPurchaseFailed { - super.writeByte(176) + super.writeByte(177) super.writeValue(value.toList()) } else if let value = value as? PRestorationRestored { - super.writeByte(177) + super.writeByte(178) super.writeValue(value.toList()) } else if let value = value as? PRestorationFailed { - super.writeByte(178) + super.writeByte(179) super.writeValue(value.toList()) } else if let value = value as? PViaPurchase { - super.writeByte(179) + super.writeByte(180) super.writeValue(value.toList()) } else if let value = value as? PViaRestore { - super.writeByte(180) + super.writeByte(181) super.writeValue(value.toList()) } else if let value = value as? PRestoreFailed { - super.writeByte(181) + super.writeByte(182) super.writeValue(value.toList()) } else if let value = value as? PLogging { - super.writeByte(182) + super.writeByte(183) super.writeValue(value.toList()) } else if let value = value as? PStoreTransaction { - super.writeByte(183) + super.writeByte(184) super.writeValue(value.toList()) } else if let value = value as? PStoreProduct { - super.writeByte(184) + super.writeByte(185) super.writeValue(value.toList()) } else if let value = value as? PPaywallOptions { - super.writeByte(185) + super.writeByte(186) super.writeValue(value.toList()) } else if let value = value as? POnBackPressedHost { - super.writeByte(186) + super.writeByte(187) super.writeValue(value.toList()) } else if let value = value as? PPurchaseControllerHost { - super.writeByte(187) + super.writeByte(188) super.writeValue(value.toList()) } else if let value = value as? PConfigureCompletionHost { - super.writeByte(188) + super.writeByte(189) super.writeValue(value.toList()) } else if let value = value as? PPaywallPresentationHandlerHost { - super.writeByte(189) + super.writeByte(190) super.writeValue(value.toList()) } else if let value = value as? PFeatureHandlerHost { - super.writeByte(190) + super.writeByte(191) super.writeValue(value.toList()) } else if let value = value as? PCustomCallback { - super.writeByte(191) + super.writeByte(192) super.writeValue(value.toList()) } else if let value = value as? PCustomCallbackResult { - super.writeByte(192) + super.writeByte(193) super.writeValue(value.toList()) } else if let value = value as? PSubscriptionTransaction { - super.writeByte(193) + super.writeByte(194) super.writeValue(value.toList()) } else if let value = value as? PNonSubscriptionTransaction { - super.writeByte(194) + super.writeByte(195) super.writeValue(value.toList()) } else if let value = value as? PEntitlement { - super.writeByte(195) + super.writeByte(196) super.writeValue(value.toList()) } else if let value = value as? PCustomerInfo { - super.writeByte(196) + super.writeByte(197) super.writeValue(value.toList()) } else if let value = value as? PEntitlements { - super.writeByte(197) + super.writeByte(198) super.writeValue(value.toList()) } else if let value = value as? PActive { - super.writeByte(198) + super.writeByte(199) super.writeValue(value.toList()) } else if let value = value as? PInactive { - super.writeByte(199) + super.writeByte(200) super.writeValue(value.toList()) } else if let value = value as? PUnknown { - super.writeByte(200) + super.writeByte(201) super.writeValue(value.toList()) } else if let value = value as? PSuperwallEventInfo { - super.writeByte(201) + super.writeByte(202) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonDebuggerPresented { - super.writeByte(202) + super.writeByte(203) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonPaywallAlreadyPresented { - super.writeByte(203) + super.writeByte(204) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonHoldout { - super.writeByte(204) + super.writeByte(205) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoAudienceMatch { - super.writeByte(205) + super.writeByte(206) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonPlacementNotFound { - super.writeByte(206) + super.writeByte(207) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoPaywallVc { - super.writeByte(207) + super.writeByte(208) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoPresenter { - super.writeByte(208) + super.writeByte(209) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonNoConfig { - super.writeByte(209) + super.writeByte(210) super.writeValue(value.toList()) } else if let value = value as? PStatusReasonSubsStatusTimeout { - super.writeByte(210) + super.writeByte(211) super.writeValue(value.toList()) } else if let value = value as? PIdentityOptions { - super.writeByte(211) + super.writeByte(212) super.writeValue(value.toList()) } else if let value = value as? PExperiment { - super.writeByte(212) + super.writeByte(213) super.writeValue(value.toList()) } else if let value = value as? PPlacementNotFoundTriggerResult { - super.writeByte(213) + super.writeByte(214) super.writeValue(value.toList()) } else if let value = value as? PNoAudienceMatchTriggerResult { - super.writeByte(214) + super.writeByte(215) super.writeValue(value.toList()) } else if let value = value as? PPaywallTriggerResult { - super.writeByte(215) + super.writeByte(216) super.writeValue(value.toList()) } else if let value = value as? PHoldoutTriggerResult { - super.writeByte(216) + super.writeByte(217) super.writeValue(value.toList()) } else if let value = value as? PErrorTriggerResult { - super.writeByte(217) + super.writeByte(218) super.writeValue(value.toList()) } else if let value = value as? PVariant { - super.writeByte(218) + super.writeByte(219) super.writeValue(value.toList()) } else if let value = value as? PConfirmedAssignment { - super.writeByte(219) + super.writeByte(220) super.writeValue(value.toList()) } else if let value = value as? PPurchasedPaywallResult { - super.writeByte(220) + super.writeByte(221) super.writeValue(value.toList()) } else if let value = value as? PDeclinedPaywallResult { - super.writeByte(221) + super.writeByte(222) super.writeValue(value.toList()) } else if let value = value as? PRestoredPaywallResult { - super.writeByte(222) + super.writeByte(223) super.writeValue(value.toList()) } else if let value = value as? PPlacementNotFoundPresentationResult { - super.writeByte(223) + super.writeByte(224) super.writeValue(value.toList()) } else if let value = value as? PNoAudienceMatchPresentationResult { - super.writeByte(224) + super.writeByte(225) super.writeValue(value.toList()) } else if let value = value as? PPaywallPresentationResult { - super.writeByte(225) + super.writeByte(226) super.writeValue(value.toList()) } else if let value = value as? PHoldoutPresentationResult { - super.writeByte(226) + super.writeByte(227) super.writeValue(value.toList()) } else if let value = value as? PPaywallNotAvailablePresentationResult { - super.writeByte(227) + super.writeByte(228) super.writeValue(value.toList()) } else { super.writeValue(value) @@ -3979,6 +4010,7 @@ protocol PSuperwallHostApi { func consume(purchaseToken: String, completion: @escaping (Result) -> Void) func getLocaleIdentifier() throws -> String? func setLocaleIdentifier(localeIdentifier: String?) throws + func getStoreFrontCountryCode(completion: @escaping (Result) -> Void) func getUserId() throws -> String func getIsLoggedIn() throws -> Bool func getIsInitialized() throws -> Bool @@ -4234,6 +4266,21 @@ class PSuperwallHostApiSetup { } else { setLocaleIdentifierChannel.setMessageHandler(nil) } + let getStoreFrontCountryCodeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getStoreFrontCountryCode\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getStoreFrontCountryCodeChannel.setMessageHandler { _, reply in + api.getStoreFrontCountryCode { result in + switch result { + case .success(let res): + reply(wrapResult(res)) + case .failure(let error): + reply(wrapError(error)) + } + } + } + } else { + getStoreFrontCountryCodeChannel.setMessageHandler(nil) + } let getUserIdChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getUserId\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec) if let api = api { getUserIdChannel.setMessageHandler { _, reply in diff --git a/lib/src/generated/superwallhost.g.dart b/lib/src/generated/superwallhost.g.dart index 71345fe..b793920 100644 --- a/lib/src/generated/superwallhost.g.dart +++ b/lib/src/generated/superwallhost.g.dart @@ -1,39 +1,19 @@ -// Autogenerated from Pigeon (v26.2.3), do not edit directly. +// Autogenerated from Pigeon (v26.1.5), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: unused_import, unused_shown_name -// ignore_for_file: type=lint +// 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 import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List; +import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; +import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; - -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; -} +PlatformException _createConnectionError(String channelName) { + return PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); +} List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { if (empty) { @@ -71,6 +51,16 @@ enum PTestModeBehavior { always, } +/// Controls which events are sent to the Superwall servers. +enum PEventTrackingBehavior { + /// All events are tracked. This is the default. + all, + /// Only internal Superwall events are tracked. + superwallOnly, + /// No events are sent to the Superwall servers. + none, +} + enum PFeatureGatingBehavior { gated, nonGated, @@ -161,6 +151,8 @@ enum PLatestSubscriptionOfferType { enum PIntegrationAttribute { /// The unique Adjust identifier for the user. adjustId, + /// The Singular Device ID (SDID) for the user. + singularDeviceId, /// The Amplitude device identifier. amplitudeDeviceId, /// The Amplitude user identifier. @@ -710,7 +702,7 @@ class PRedemptionInfo { ownership: result[0]! as POwnership, purchaserInfo: result[1]! as PPurchaserInfo, paywallInfo: result[2] as PRedemptionPaywallInfo?, - entitlements: (result[3]! as List).cast(), + entitlements: (result[3] as List?)!.cast(), ); } @@ -902,7 +894,7 @@ class PStripeStoreIdentifiers extends PStoreIdentifiers { result as List; return PStripeStoreIdentifiers( customerId: result[0]! as String, - subscriptionIds: (result[1]! as List).cast(), + subscriptionIds: (result[1] as List?)!.cast(), ); } @@ -949,7 +941,7 @@ class PPaddleStoreIdentifiers extends PStoreIdentifiers { result as List; return PPaddleStoreIdentifiers( customerId: result[0]! as String, - subscriptionIds: (result[1]! as List).cast(), + subscriptionIds: (result[1] as List?)!.cast(), ); } @@ -996,7 +988,7 @@ class PUnknownStoreIdentifiers extends PStoreIdentifiers { result as List; return PUnknownStoreIdentifiers( store: result[0]! as String, - additionalInfo: (result[1]! as Map).cast(), + additionalInfo: (result[1] as Map?)!.cast(), ); } @@ -1061,7 +1053,7 @@ class PRedemptionPaywallInfo { return PRedemptionPaywallInfo( identifier: result[0]! as String, placementName: result[1]! as String, - placementParams: (result[2]! as Map).cast(), + placementParams: (result[2] as Map?)!.cast(), variantId: result[3]! as String, experimentId: result[4]! as String, ); @@ -1089,6 +1081,7 @@ class PSuperwallOptions { PSuperwallOptions({ this.paywalls, this.networkEnvironment, + this.eventTrackingBehavior, this.isExternalDataCollectionEnabled, this.localeIdentifier, this.isGameControllerEnabled, @@ -1106,6 +1099,8 @@ class PSuperwallOptions { PNetworkEnvironment? networkEnvironment; + PEventTrackingBehavior? eventTrackingBehavior; + bool? isExternalDataCollectionEnabled; String? localeIdentifier; @@ -1141,6 +1136,7 @@ class PSuperwallOptions { return [ paywalls, networkEnvironment, + eventTrackingBehavior, isExternalDataCollectionEnabled, localeIdentifier, isGameControllerEnabled, @@ -1163,17 +1159,18 @@ class PSuperwallOptions { return PSuperwallOptions( paywalls: result[0] as PPaywallOptions?, networkEnvironment: result[1] as PNetworkEnvironment?, - isExternalDataCollectionEnabled: result[2] as bool?, - localeIdentifier: result[3] as String?, - isGameControllerEnabled: result[4] as bool?, - enableExperimentalDeviceVariables: result[5] as bool?, - logging: result[6] as PLogging?, - passIdentifiersToPlayStore: result[7] as bool?, - testModeBehavior: result[8] as PTestModeBehavior?, - shouldObservePurchases: result[9] as bool?, - shouldBypassAppTransactionCheck: result[10] as bool?, - maxConfigRetryCount: result[11] as int?, - useMockReviews: result[12] as bool?, + eventTrackingBehavior: result[2] as PEventTrackingBehavior?, + isExternalDataCollectionEnabled: result[3] as bool?, + localeIdentifier: result[4] as String?, + isGameControllerEnabled: result[5] as bool?, + enableExperimentalDeviceVariables: result[6] as bool?, + logging: result[7] as PLogging?, + passIdentifiersToPlayStore: result[8] as bool?, + testModeBehavior: result[9] as PTestModeBehavior?, + shouldObservePurchases: result[10] as bool?, + shouldBypassAppTransactionCheck: result[11] as bool?, + maxConfigRetryCount: result[12] as int?, + useMockReviews: result[13] as bool?, ); } @@ -1605,7 +1602,7 @@ class PSurvey { assignmentKey: result[1]! as String, title: result[2]! as String, message: result[3]! as String, - options: (result[4]! as List).cast(), + options: (result[4] as List?)!.cast(), presentationCondition: result[5]! as PSurveyShowCondition, presentationProbability: result[6]! as double, includeOtherOption: result[7]! as bool, @@ -2391,10 +2388,10 @@ class PStoreProduct { static PStoreProduct decode(Object result) { result as List; return PStoreProduct( - entitlements: (result[0]! as List).cast(), + entitlements: (result[0] as List?)!.cast(), productIdentifier: result[1]! as String, subscriptionGroupIdentifier: result[2] as String?, - attributes: (result[3]! as Map).cast(), + attributes: (result[3] as Map?)!.cast(), localizedPrice: result[4]! as String, localizedSubscriptionPeriod: result[5]! as String, period: result[6]! as String, @@ -2466,6 +2463,7 @@ class PPaywallOptions { this.shouldShowWebPurchaseConfirmationAlert, this.onBackPressedHost, this.preloadDeviceOverrides, + this.loadingColor, }); bool? isHapticFeedbackEnabled; @@ -2493,6 +2491,10 @@ class PPaywallOptions { /// `high`, `ultra_high`, `unknown`). Map? preloadDeviceOverrides; + /// Android only. Color resource ID (`@ColorRes`) used to tint the loading + /// spinner. Has no effect on iOS. + int? loadingColor; + List _toList() { return [ isHapticFeedbackEnabled, @@ -2506,6 +2508,7 @@ class PPaywallOptions { shouldShowWebPurchaseConfirmationAlert, onBackPressedHost, preloadDeviceOverrides, + loadingColor, ]; } @@ -2526,6 +2529,7 @@ class PPaywallOptions { shouldShowWebPurchaseConfirmationAlert: result[8] as bool?, onBackPressedHost: result[9] as POnBackPressedHost?, preloadDeviceOverrides: (result[10] as Map?)?.cast(), + loadingColor: result[11] as int?, ); } @@ -3116,7 +3120,7 @@ class PEntitlement { id: result[0]! as String, type: result[1]! as PEntitlementType, isActive: result[2]! as bool, - productIds: (result[3]! as List).cast(), + productIds: (result[3] as List?)!.cast(), latestProductId: result[4] as String?, store: result[5] as PProductStore?, startsAt: result[6] as int?, @@ -3183,9 +3187,9 @@ class PCustomerInfo { static PCustomerInfo decode(Object result) { result as List; return PCustomerInfo( - subscriptions: (result[0]! as List).cast(), - nonSubscriptions: (result[1]! as List).cast(), - entitlements: (result[2]! as List).cast(), + subscriptions: (result[0] as List?)!.cast(), + nonSubscriptions: (result[1] as List?)!.cast(), + entitlements: (result[2] as List?)!.cast(), userId: result[3]! as String, ); } @@ -3239,10 +3243,10 @@ class PEntitlements { static PEntitlements decode(Object result) { result as List; return PEntitlements( - active: (result[0]! as List).cast(), - inactive: (result[1]! as List).cast(), - all: (result[2]! as List).cast(), - web: (result[3]! as List).cast(), + active: (result[0] as List?)!.cast(), + inactive: (result[1] as List?)!.cast(), + all: (result[2] as List?)!.cast(), + web: (result[3] as List?)!.cast(), ); } @@ -3286,7 +3290,7 @@ class PActive extends PSubscriptionStatus { static PActive decode(Object result) { result as List; return PActive( - entitlements: (result[0]! as List).cast(), + entitlements: (result[0] as List?)!.cast(), ); } @@ -4675,299 +4679,302 @@ class _PigeonCodec extends StandardMessageCodec { } else if (value is PTestModeBehavior) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is PFeatureGatingBehavior) { + } else if (value is PEventTrackingBehavior) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is PPaywallCloseReason) { + } else if (value is PFeatureGatingBehavior) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is PLocalNotificationType) { + } else if (value is PPaywallCloseReason) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is PComputedPropertyRequestType) { + } else if (value is PLocalNotificationType) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is PSurveyShowCondition) { + } else if (value is PComputedPropertyRequestType) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is PCustomCallbackResultStatus) { + } else if (value is PSurveyShowCondition) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is PProductStore) { + } else if (value is PCustomCallbackResultStatus) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is PEntitlementType) { + } else if (value is PProductStore) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is PLatestSubscriptionState) { + } else if (value is PEntitlementType) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is PLatestSubscriptionOfferType) { + } else if (value is PLatestSubscriptionState) { buffer.putUint8(139); writeValue(buffer, value.index); - } else if (value is PIntegrationAttribute) { + } else if (value is PLatestSubscriptionOfferType) { buffer.putUint8(140); writeValue(buffer, value.index); - } else if (value is PNetworkEnvironment) { + } else if (value is PIntegrationAttribute) { buffer.putUint8(141); writeValue(buffer, value.index); - } else if (value is PLogLevel) { + } else if (value is PNetworkEnvironment) { buffer.putUint8(142); writeValue(buffer, value.index); - } else if (value is PTransactionBackgroundView) { + } else if (value is PLogLevel) { buffer.putUint8(143); writeValue(buffer, value.index); - } else if (value is PLogScope) { + } else if (value is PTransactionBackgroundView) { buffer.putUint8(144); writeValue(buffer, value.index); - } else if (value is PConfigurationStatus) { + } else if (value is PLogScope) { buffer.putUint8(145); writeValue(buffer, value.index); - } else if (value is PEventType) { + } else if (value is PConfigurationStatus) { buffer.putUint8(146); writeValue(buffer, value.index); - } else if (value is PSubscriptionStatusType) { + } else if (value is PEventType) { buffer.putUint8(147); writeValue(buffer, value.index); - } else if (value is PPaywallPresentationRequestStatusType) { + } else if (value is PSubscriptionStatusType) { buffer.putUint8(148); writeValue(buffer, value.index); - } else if (value is PVariantType) { + } else if (value is PPaywallPresentationRequestStatusType) { buffer.putUint8(149); writeValue(buffer, value.index); - } else if (value is PPaywallSkippedReason) { + } else if (value is PVariantType) { buffer.putUint8(150); writeValue(buffer, value.index); - } else if (value is PSuccessRedemptionResult) { + } else if (value is PPaywallSkippedReason) { buffer.putUint8(151); + writeValue(buffer, value.index); + } else if (value is PSuccessRedemptionResult) { + buffer.putUint8(152); writeValue(buffer, value.encode()); } else if (value is PErrorRedemptionResult) { - buffer.putUint8(152); + buffer.putUint8(153); writeValue(buffer, value.encode()); } else if (value is PErrorInfo) { - buffer.putUint8(153); + buffer.putUint8(154); writeValue(buffer, value.encode()); } else if (value is PExpiredCodeRedemptionResult) { - buffer.putUint8(154); + buffer.putUint8(155); writeValue(buffer, value.encode()); } else if (value is PExpiredCodeInfo) { - buffer.putUint8(155); + buffer.putUint8(156); writeValue(buffer, value.encode()); } else if (value is PInvalidCodeRedemptionResult) { - buffer.putUint8(156); + buffer.putUint8(157); writeValue(buffer, value.encode()); } else if (value is PExpiredSubscriptionCode) { - buffer.putUint8(157); + buffer.putUint8(158); writeValue(buffer, value.encode()); } else if (value is PRedemptionInfo) { - buffer.putUint8(158); + buffer.putUint8(159); writeValue(buffer, value.encode()); } else if (value is PAppUserOwnership) { - buffer.putUint8(159); + buffer.putUint8(160); writeValue(buffer, value.encode()); } else if (value is PDeviceOwnership) { - buffer.putUint8(160); + buffer.putUint8(161); writeValue(buffer, value.encode()); } else if (value is PPurchaserInfo) { - buffer.putUint8(161); + buffer.putUint8(162); writeValue(buffer, value.encode()); } else if (value is PStripeStoreIdentifiers) { - buffer.putUint8(162); + buffer.putUint8(163); writeValue(buffer, value.encode()); } else if (value is PPaddleStoreIdentifiers) { - buffer.putUint8(163); + buffer.putUint8(164); writeValue(buffer, value.encode()); } else if (value is PUnknownStoreIdentifiers) { - buffer.putUint8(164); + buffer.putUint8(165); writeValue(buffer, value.encode()); } else if (value is PRedemptionPaywallInfo) { - buffer.putUint8(165); + buffer.putUint8(166); writeValue(buffer, value.encode()); } else if (value is PSuperwallOptions) { - buffer.putUint8(166); + buffer.putUint8(167); writeValue(buffer, value.encode()); } else if (value is PPaywallInfo) { - buffer.putUint8(167); + buffer.putUint8(168); writeValue(buffer, value.encode()); } else if (value is PProduct) { - buffer.putUint8(168); + buffer.putUint8(169); writeValue(buffer, value.encode()); } else if (value is PLocalNotification) { - buffer.putUint8(169); + buffer.putUint8(170); writeValue(buffer, value.encode()); } else if (value is PComputedPropertyRequest) { - buffer.putUint8(170); + buffer.putUint8(171); writeValue(buffer, value.encode()); } else if (value is PSurvey) { - buffer.putUint8(171); + buffer.putUint8(172); writeValue(buffer, value.encode()); } else if (value is PSurveyOption) { - buffer.putUint8(172); + buffer.putUint8(173); writeValue(buffer, value.encode()); } else if (value is PPurchaseCancelled) { - buffer.putUint8(173); + buffer.putUint8(174); writeValue(buffer, value.encode()); } else if (value is PPurchasePurchased) { - buffer.putUint8(174); + buffer.putUint8(175); writeValue(buffer, value.encode()); } else if (value is PPurchasePending) { - buffer.putUint8(175); + buffer.putUint8(176); writeValue(buffer, value.encode()); } else if (value is PPurchaseFailed) { - buffer.putUint8(176); + buffer.putUint8(177); writeValue(buffer, value.encode()); } else if (value is PRestorationRestored) { - buffer.putUint8(177); + buffer.putUint8(178); writeValue(buffer, value.encode()); } else if (value is PRestorationFailed) { - buffer.putUint8(178); + buffer.putUint8(179); writeValue(buffer, value.encode()); } else if (value is PViaPurchase) { - buffer.putUint8(179); + buffer.putUint8(180); writeValue(buffer, value.encode()); } else if (value is PViaRestore) { - buffer.putUint8(180); + buffer.putUint8(181); writeValue(buffer, value.encode()); } else if (value is PRestoreFailed) { - buffer.putUint8(181); + buffer.putUint8(182); writeValue(buffer, value.encode()); } else if (value is PLogging) { - buffer.putUint8(182); + buffer.putUint8(183); writeValue(buffer, value.encode()); } else if (value is PStoreTransaction) { - buffer.putUint8(183); + buffer.putUint8(184); writeValue(buffer, value.encode()); } else if (value is PStoreProduct) { - buffer.putUint8(184); + buffer.putUint8(185); writeValue(buffer, value.encode()); } else if (value is PPaywallOptions) { - buffer.putUint8(185); + buffer.putUint8(186); writeValue(buffer, value.encode()); } else if (value is POnBackPressedHost) { - buffer.putUint8(186); + buffer.putUint8(187); writeValue(buffer, value.encode()); } else if (value is PPurchaseControllerHost) { - buffer.putUint8(187); + buffer.putUint8(188); writeValue(buffer, value.encode()); } else if (value is PConfigureCompletionHost) { - buffer.putUint8(188); + buffer.putUint8(189); writeValue(buffer, value.encode()); } else if (value is PPaywallPresentationHandlerHost) { - buffer.putUint8(189); + buffer.putUint8(190); writeValue(buffer, value.encode()); } else if (value is PFeatureHandlerHost) { - buffer.putUint8(190); + buffer.putUint8(191); writeValue(buffer, value.encode()); } else if (value is PCustomCallback) { - buffer.putUint8(191); + buffer.putUint8(192); writeValue(buffer, value.encode()); } else if (value is PCustomCallbackResult) { - buffer.putUint8(192); + buffer.putUint8(193); writeValue(buffer, value.encode()); } else if (value is PSubscriptionTransaction) { - buffer.putUint8(193); + buffer.putUint8(194); writeValue(buffer, value.encode()); } else if (value is PNonSubscriptionTransaction) { - buffer.putUint8(194); + buffer.putUint8(195); writeValue(buffer, value.encode()); } else if (value is PEntitlement) { - buffer.putUint8(195); + buffer.putUint8(196); writeValue(buffer, value.encode()); } else if (value is PCustomerInfo) { - buffer.putUint8(196); + buffer.putUint8(197); writeValue(buffer, value.encode()); } else if (value is PEntitlements) { - buffer.putUint8(197); + buffer.putUint8(198); writeValue(buffer, value.encode()); } else if (value is PActive) { - buffer.putUint8(198); + buffer.putUint8(199); writeValue(buffer, value.encode()); } else if (value is PInactive) { - buffer.putUint8(199); + buffer.putUint8(200); writeValue(buffer, value.encode()); } else if (value is PUnknown) { - buffer.putUint8(200); + buffer.putUint8(201); writeValue(buffer, value.encode()); } else if (value is PSuperwallEventInfo) { - buffer.putUint8(201); + buffer.putUint8(202); writeValue(buffer, value.encode()); } else if (value is PStatusReasonDebuggerPresented) { - buffer.putUint8(202); + buffer.putUint8(203); writeValue(buffer, value.encode()); } else if (value is PStatusReasonPaywallAlreadyPresented) { - buffer.putUint8(203); + buffer.putUint8(204); writeValue(buffer, value.encode()); } else if (value is PStatusReasonHoldout) { - buffer.putUint8(204); + buffer.putUint8(205); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoAudienceMatch) { - buffer.putUint8(205); + buffer.putUint8(206); writeValue(buffer, value.encode()); } else if (value is PStatusReasonPlacementNotFound) { - buffer.putUint8(206); + buffer.putUint8(207); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoPaywallVc) { - buffer.putUint8(207); + buffer.putUint8(208); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoPresenter) { - buffer.putUint8(208); + buffer.putUint8(209); writeValue(buffer, value.encode()); } else if (value is PStatusReasonNoConfig) { - buffer.putUint8(209); + buffer.putUint8(210); writeValue(buffer, value.encode()); } else if (value is PStatusReasonSubsStatusTimeout) { - buffer.putUint8(210); + buffer.putUint8(211); writeValue(buffer, value.encode()); } else if (value is PIdentityOptions) { - buffer.putUint8(211); + buffer.putUint8(212); writeValue(buffer, value.encode()); } else if (value is PExperiment) { - buffer.putUint8(212); + buffer.putUint8(213); writeValue(buffer, value.encode()); } else if (value is PPlacementNotFoundTriggerResult) { - buffer.putUint8(213); + buffer.putUint8(214); writeValue(buffer, value.encode()); } else if (value is PNoAudienceMatchTriggerResult) { - buffer.putUint8(214); + buffer.putUint8(215); writeValue(buffer, value.encode()); } else if (value is PPaywallTriggerResult) { - buffer.putUint8(215); + buffer.putUint8(216); writeValue(buffer, value.encode()); } else if (value is PHoldoutTriggerResult) { - buffer.putUint8(216); + buffer.putUint8(217); writeValue(buffer, value.encode()); } else if (value is PErrorTriggerResult) { - buffer.putUint8(217); + buffer.putUint8(218); writeValue(buffer, value.encode()); } else if (value is PVariant) { - buffer.putUint8(218); + buffer.putUint8(219); writeValue(buffer, value.encode()); } else if (value is PConfirmedAssignment) { - buffer.putUint8(219); + buffer.putUint8(220); writeValue(buffer, value.encode()); } else if (value is PPurchasedPaywallResult) { - buffer.putUint8(220); + buffer.putUint8(221); writeValue(buffer, value.encode()); } else if (value is PDeclinedPaywallResult) { - buffer.putUint8(221); + buffer.putUint8(222); writeValue(buffer, value.encode()); } else if (value is PRestoredPaywallResult) { - buffer.putUint8(222); + buffer.putUint8(223); writeValue(buffer, value.encode()); } else if (value is PPlacementNotFoundPresentationResult) { - buffer.putUint8(223); + buffer.putUint8(224); writeValue(buffer, value.encode()); } else if (value is PNoAudienceMatchPresentationResult) { - buffer.putUint8(224); + buffer.putUint8(225); writeValue(buffer, value.encode()); } else if (value is PPaywallPresentationResult) { - buffer.putUint8(225); + buffer.putUint8(226); writeValue(buffer, value.encode()); } else if (value is PHoldoutPresentationResult) { - buffer.putUint8(226); + buffer.putUint8(227); writeValue(buffer, value.encode()); } else if (value is PPaywallNotAvailablePresentationResult) { - buffer.putUint8(227); + buffer.putUint8(228); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); @@ -4977,225 +4984,228 @@ 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: + case 130: + final value = readValue(buffer) as int?; + return value == null ? null : PEventTrackingBehavior.values[value]; + case 131: final value = readValue(buffer) as int?; return value == null ? null : PFeatureGatingBehavior.values[value]; - case 131: + case 132: final value = readValue(buffer) as int?; return value == null ? null : PPaywallCloseReason.values[value]; - case 132: + case 133: final value = readValue(buffer) as int?; return value == null ? null : PLocalNotificationType.values[value]; - case 133: + case 134: final value = readValue(buffer) as int?; return value == null ? null : PComputedPropertyRequestType.values[value]; - case 134: + case 135: final value = readValue(buffer) as int?; return value == null ? null : PSurveyShowCondition.values[value]; - case 135: + case 136: final value = readValue(buffer) as int?; return value == null ? null : PCustomCallbackResultStatus.values[value]; - case 136: + case 137: final value = readValue(buffer) as int?; return value == null ? null : PProductStore.values[value]; - case 137: + case 138: final value = readValue(buffer) as int?; return value == null ? null : PEntitlementType.values[value]; - case 138: + case 139: final value = readValue(buffer) as int?; return value == null ? null : PLatestSubscriptionState.values[value]; - case 139: + case 140: final value = readValue(buffer) as int?; return value == null ? null : PLatestSubscriptionOfferType.values[value]; - case 140: + case 141: final value = readValue(buffer) as int?; return value == null ? null : PIntegrationAttribute.values[value]; - case 141: + case 142: final value = readValue(buffer) as int?; return value == null ? null : PNetworkEnvironment.values[value]; - case 142: + case 143: final value = readValue(buffer) as int?; return value == null ? null : PLogLevel.values[value]; - case 143: + case 144: final value = readValue(buffer) as int?; return value == null ? null : PTransactionBackgroundView.values[value]; - case 144: + case 145: final value = readValue(buffer) as int?; return value == null ? null : PLogScope.values[value]; - case 145: + case 146: final value = readValue(buffer) as int?; return value == null ? null : PConfigurationStatus.values[value]; - case 146: + case 147: final value = readValue(buffer) as int?; return value == null ? null : PEventType.values[value]; - case 147: + case 148: final value = readValue(buffer) as int?; return value == null ? null : PSubscriptionStatusType.values[value]; - case 148: + case 149: final value = readValue(buffer) as int?; return value == null ? null : PPaywallPresentationRequestStatusType.values[value]; - case 149: + case 150: final value = readValue(buffer) as int?; return value == null ? null : PVariantType.values[value]; - case 150: + case 151: final value = readValue(buffer) as int?; return value == null ? null : PPaywallSkippedReason.values[value]; - case 151: + case 152: return PSuccessRedemptionResult.decode(readValue(buffer)!); - case 152: + case 153: return PErrorRedemptionResult.decode(readValue(buffer)!); - case 153: + case 154: return PErrorInfo.decode(readValue(buffer)!); - case 154: + case 155: return PExpiredCodeRedemptionResult.decode(readValue(buffer)!); - case 155: + case 156: return PExpiredCodeInfo.decode(readValue(buffer)!); - case 156: + case 157: return PInvalidCodeRedemptionResult.decode(readValue(buffer)!); - case 157: + case 158: return PExpiredSubscriptionCode.decode(readValue(buffer)!); - case 158: + case 159: return PRedemptionInfo.decode(readValue(buffer)!); - case 159: + case 160: return PAppUserOwnership.decode(readValue(buffer)!); - case 160: + case 161: return PDeviceOwnership.decode(readValue(buffer)!); - case 161: + case 162: return PPurchaserInfo.decode(readValue(buffer)!); - case 162: + case 163: return PStripeStoreIdentifiers.decode(readValue(buffer)!); - case 163: + case 164: return PPaddleStoreIdentifiers.decode(readValue(buffer)!); - case 164: + case 165: return PUnknownStoreIdentifiers.decode(readValue(buffer)!); - case 165: + case 166: return PRedemptionPaywallInfo.decode(readValue(buffer)!); - case 166: + case 167: return PSuperwallOptions.decode(readValue(buffer)!); - case 167: + case 168: return PPaywallInfo.decode(readValue(buffer)!); - case 168: + case 169: return PProduct.decode(readValue(buffer)!); - case 169: + case 170: return PLocalNotification.decode(readValue(buffer)!); - case 170: + case 171: return PComputedPropertyRequest.decode(readValue(buffer)!); - case 171: + case 172: return PSurvey.decode(readValue(buffer)!); - case 172: + case 173: return PSurveyOption.decode(readValue(buffer)!); - case 173: + case 174: return PPurchaseCancelled.decode(readValue(buffer)!); - case 174: + case 175: return PPurchasePurchased.decode(readValue(buffer)!); - case 175: + case 176: return PPurchasePending.decode(readValue(buffer)!); - case 176: + case 177: return PPurchaseFailed.decode(readValue(buffer)!); - case 177: + case 178: return PRestorationRestored.decode(readValue(buffer)!); - case 178: + case 179: return PRestorationFailed.decode(readValue(buffer)!); - case 179: + case 180: return PViaPurchase.decode(readValue(buffer)!); - case 180: + case 181: return PViaRestore.decode(readValue(buffer)!); - case 181: + case 182: return PRestoreFailed.decode(readValue(buffer)!); - case 182: + case 183: return PLogging.decode(readValue(buffer)!); - case 183: + case 184: return PStoreTransaction.decode(readValue(buffer)!); - case 184: + case 185: return PStoreProduct.decode(readValue(buffer)!); - case 185: + case 186: return PPaywallOptions.decode(readValue(buffer)!); - case 186: + case 187: return POnBackPressedHost.decode(readValue(buffer)!); - case 187: + case 188: return PPurchaseControllerHost.decode(readValue(buffer)!); - case 188: + case 189: return PConfigureCompletionHost.decode(readValue(buffer)!); - case 189: + case 190: return PPaywallPresentationHandlerHost.decode(readValue(buffer)!); - case 190: + case 191: return PFeatureHandlerHost.decode(readValue(buffer)!); - case 191: + case 192: return PCustomCallback.decode(readValue(buffer)!); - case 192: + case 193: return PCustomCallbackResult.decode(readValue(buffer)!); - case 193: + case 194: return PSubscriptionTransaction.decode(readValue(buffer)!); - case 194: + case 195: return PNonSubscriptionTransaction.decode(readValue(buffer)!); - case 195: + case 196: return PEntitlement.decode(readValue(buffer)!); - case 196: + case 197: return PCustomerInfo.decode(readValue(buffer)!); - case 197: + case 198: return PEntitlements.decode(readValue(buffer)!); - case 198: + case 199: return PActive.decode(readValue(buffer)!); - case 199: + case 200: return PInactive.decode(readValue(buffer)!); - case 200: + case 201: return PUnknown.decode(readValue(buffer)!); - case 201: + case 202: return PSuperwallEventInfo.decode(readValue(buffer)!); - case 202: + case 203: return PStatusReasonDebuggerPresented.decode(readValue(buffer)!); - case 203: + case 204: return PStatusReasonPaywallAlreadyPresented.decode(readValue(buffer)!); - case 204: + case 205: return PStatusReasonHoldout.decode(readValue(buffer)!); - case 205: + case 206: return PStatusReasonNoAudienceMatch.decode(readValue(buffer)!); - case 206: + case 207: return PStatusReasonPlacementNotFound.decode(readValue(buffer)!); - case 207: + case 208: return PStatusReasonNoPaywallVc.decode(readValue(buffer)!); - case 208: + case 209: return PStatusReasonNoPresenter.decode(readValue(buffer)!); - case 209: + case 210: return PStatusReasonNoConfig.decode(readValue(buffer)!); - case 210: + case 211: return PStatusReasonSubsStatusTimeout.decode(readValue(buffer)!); - case 211: + case 212: return PIdentityOptions.decode(readValue(buffer)!); - case 212: + case 213: return PExperiment.decode(readValue(buffer)!); - case 213: + case 214: return PPlacementNotFoundTriggerResult.decode(readValue(buffer)!); - case 214: + case 215: return PNoAudienceMatchTriggerResult.decode(readValue(buffer)!); - case 215: + case 216: return PPaywallTriggerResult.decode(readValue(buffer)!); - case 216: + case 217: return PHoldoutTriggerResult.decode(readValue(buffer)!); - case 217: + case 218: return PErrorTriggerResult.decode(readValue(buffer)!); - case 218: + case 219: return PVariant.decode(readValue(buffer)!); - case 219: + case 220: return PConfirmedAssignment.decode(readValue(buffer)!); - case 220: + case 221: return PPurchasedPaywallResult.decode(readValue(buffer)!); - case 221: + case 222: return PDeclinedPaywallResult.decode(readValue(buffer)!); - case 222: + case 223: return PRestoredPaywallResult.decode(readValue(buffer)!); - case 223: + case 224: return PPlacementNotFoundPresentationResult.decode(readValue(buffer)!); - case 224: + case 225: return PNoAudienceMatchPresentationResult.decode(readValue(buffer)!); - case 225: + case 226: return PPaywallPresentationResult.decode(readValue(buffer)!); - case 226: + case 227: return PHoldoutPresentationResult.decode(readValue(buffer)!); - case 227: + case 228: return PPaywallNotAvailablePresentationResult.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -5227,13 +5237,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([apiKey, purchaseController, options, completion]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future reset() async { @@ -5245,13 +5259,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future setDelegate(bool hasDelegate) async { @@ -5263,13 +5281,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([hasDelegate]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future> confirmAllAssignments() async { @@ -5281,14 +5303,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return (pigeonVar_replyValue! as List).cast(); + 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(); + } } Future restorePurchases() async { @@ -5300,14 +5330,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as PRestorationResult; + 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?)!; + } } Future getLogLevel() async { @@ -5319,14 +5357,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as String; + 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?)!; + } } Future setLogLevel(String logLevel) async { @@ -5338,13 +5384,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([logLevel]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future> getUserAttributes() async { @@ -5356,14 +5406,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return (pigeonVar_replyValue! as Map).cast(); + 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(); + } } Future setUserAttributes(Map userAttributes) async { @@ -5375,13 +5433,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([userAttributes]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future setIntegrationAttribute(PIntegrationAttribute attribute, String? value) async { @@ -5393,13 +5455,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([attribute, value]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future setIntegrationAttributes(Map attributes) async { @@ -5411,13 +5477,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([attributes]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future> getDeviceAttributes() async { @@ -5429,14 +5499,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return (pigeonVar_replyValue! as Map).cast(); + 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(); + } } Future consume(String purchaseToken) async { @@ -5448,14 +5526,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([purchaseToken]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as String; + 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?)!; + } } Future getLocaleIdentifier() async { @@ -5467,14 +5553,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; - return pigeonVar_replyValue as String?; + 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?); + } } Future setLocaleIdentifier(String? localeIdentifier) async { @@ -5486,13 +5575,39 @@ 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 getStoreFrontCountryCode() async { + final pigeonVar_channelName = 'dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getStoreFrontCountryCode$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + 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?); + } } Future getUserId() async { @@ -5504,14 +5619,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as String; + 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?)!; + } } Future getIsLoggedIn() async { @@ -5523,14 +5646,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as bool; + 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?)!; + } } Future getIsInitialized() async { @@ -5542,14 +5673,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as bool; + 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?)!; + } } Future identify(String userId, PIdentityOptions? identityOptions) async { @@ -5561,13 +5700,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([userId, identityOptions]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future getEntitlements() async { @@ -5579,14 +5722,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as PEntitlements; + 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?)!; + } } Future> getEntitlementsByProductIds(List productIds) async { @@ -5598,14 +5749,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([productIds]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return (pigeonVar_replyValue! as List).cast(); + 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(); + } } Future getCustomerInfo() async { @@ -5617,14 +5776,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as PCustomerInfo; + 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?)!; + } } Future getSubscriptionStatus() async { @@ -5636,14 +5803,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as PSubscriptionStatus; + 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?)!; + } } Future setSubscriptionStatus(PSubscriptionStatus subscriptionStatus) async { @@ -5655,13 +5830,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([subscriptionStatus]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future getConfigurationStatus() async { @@ -5673,14 +5852,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as PConfigurationStatus; + 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?)!; + } } Future getIsConfigured() async { @@ -5692,14 +5879,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as bool; + 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?)!; + } } Future getPresentationResult(String placement, Map? params) async { @@ -5711,14 +5906,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([placement, params]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as PPresentationResult; + 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?)!; + } } Future getIsPaywallPresented() async { @@ -5730,14 +5933,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as bool; + 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?)!; + } } Future preloadAllPaywalls() async { @@ -5749,13 +5960,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future preloadPaywallsForPlacements(List placementNames) async { @@ -5767,13 +5982,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([placementNames]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future handleDeepLink(String url) async { @@ -5785,14 +6004,22 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([url]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: false, - ) - ; - return pigeonVar_replyValue! as bool; + 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?)!; + } } Future togglePaywallSpinner(bool isHidden) async { @@ -5804,13 +6031,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([isHidden]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future getLatestPaywallInfo() async { @@ -5822,14 +6053,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; - return pigeonVar_replyValue as PPaywallInfo?; + 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?); + } } Future registerPlacement(String placement, {Map? params, PPaywallPresentationHandlerHost? handler, PFeatureHandlerHost? feature, }) async { @@ -5841,13 +6075,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([placement, params, handler, feature]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future dismiss() async { @@ -5859,13 +6097,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } Future?> getOverrideProductsByName() async { @@ -5877,14 +6119,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; - return (pigeonVar_replyValue as Map?)?.cast(); + 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(); + } } Future setOverrideProductsByName(Map? overrideProducts) async { @@ -5896,13 +6141,17 @@ class PSuperwallHostApi { ); final Future pigeonVar_sendFuture = pigeonVar_channel.send([overrideProducts]); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; - - _extractReplyValueOrThrow( - pigeonVar_replyList, - pigeonVar_channelName, - isNullValid: true, - ) - ; + 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; + } } } @@ -5949,11 +6198,17 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PSubscriptionStatus arg_from = args[0]! as PSubscriptionStatus; - final PSubscriptionStatus arg_to = args[1]! as PSubscriptionStatus; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.subscriptionStatusDidChange was null.'); + final List args = (message as List?)!; + final PSubscriptionStatus? arg_from = (args[0] as PSubscriptionStatus?); + assert(arg_from != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.subscriptionStatusDidChange was null, expected non-null PSubscriptionStatus.'); + final PSubscriptionStatus? arg_to = (args[1] as PSubscriptionStatus?); + assert(arg_to != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.subscriptionStatusDidChange was null, expected non-null PSubscriptionStatus.'); try { - api.subscriptionStatusDidChange(arg_from, arg_to); + api.subscriptionStatusDidChange(arg_from!, arg_to!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -5971,10 +6226,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PSuperwallEventInfo arg_eventInfo = args[0]! as PSuperwallEventInfo; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleSuperwallEvent was null.'); + final List args = (message as List?)!; + final PSuperwallEventInfo? arg_eventInfo = (args[0] as PSuperwallEventInfo?); + assert(arg_eventInfo != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleSuperwallEvent was null, expected non-null PSuperwallEventInfo.'); try { - api.handleSuperwallEvent(arg_eventInfo); + api.handleSuperwallEvent(arg_eventInfo!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -5992,10 +6251,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_name = args[0]! as String; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleCustomPaywallAction was null.'); + final List args = (message as List?)!; + final String? arg_name = (args[0] as String?); + assert(arg_name != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleCustomPaywallAction was null, expected non-null String.'); try { - api.handleCustomPaywallAction(arg_name); + api.handleCustomPaywallAction(arg_name!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6013,10 +6276,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallInfo arg_paywallInfo = args[0]! as PPaywallInfo; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.willDismissPaywall was null.'); + final List args = (message as List?)!; + final PPaywallInfo? arg_paywallInfo = (args[0] as PPaywallInfo?); + assert(arg_paywallInfo != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.willDismissPaywall was null, expected non-null PPaywallInfo.'); try { - api.willDismissPaywall(arg_paywallInfo); + api.willDismissPaywall(arg_paywallInfo!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6034,10 +6301,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallInfo arg_paywallInfo = args[0]! as PPaywallInfo; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.willPresentPaywall was null.'); + final List args = (message as List?)!; + final PPaywallInfo? arg_paywallInfo = (args[0] as PPaywallInfo?); + assert(arg_paywallInfo != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.willPresentPaywall was null, expected non-null PPaywallInfo.'); try { - api.willPresentPaywall(arg_paywallInfo); + api.willPresentPaywall(arg_paywallInfo!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6055,10 +6326,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallInfo arg_paywallInfo = args[0]! as PPaywallInfo; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.didDismissPaywall was null.'); + final List args = (message as List?)!; + final PPaywallInfo? arg_paywallInfo = (args[0] as PPaywallInfo?); + assert(arg_paywallInfo != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.didDismissPaywall was null, expected non-null PPaywallInfo.'); try { - api.didDismissPaywall(arg_paywallInfo); + api.didDismissPaywall(arg_paywallInfo!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6076,10 +6351,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallInfo arg_paywallInfo = args[0]! as PPaywallInfo; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.didPresentPaywall was null.'); + final List args = (message as List?)!; + final PPaywallInfo? arg_paywallInfo = (args[0] as PPaywallInfo?); + assert(arg_paywallInfo != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.didPresentPaywall was null, expected non-null PPaywallInfo.'); try { - api.didPresentPaywall(arg_paywallInfo); + api.didPresentPaywall(arg_paywallInfo!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6097,10 +6376,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_url = args[0]! as String; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.paywallWillOpenURL was null.'); + final List args = (message as List?)!; + final String? arg_url = (args[0] as String?); + assert(arg_url != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.paywallWillOpenURL was null, expected non-null String.'); try { - api.paywallWillOpenURL(arg_url); + api.paywallWillOpenURL(arg_url!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6118,10 +6401,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_url = args[0]! as String; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.paywallWillOpenDeepLink was null.'); + final List args = (message as List?)!; + final String? arg_url = (args[0] as String?); + assert(arg_url != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.paywallWillOpenDeepLink was null, expected non-null String.'); try { - api.paywallWillOpenDeepLink(arg_url); + api.paywallWillOpenDeepLink(arg_url!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6139,14 +6426,20 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_level = args[0]! as String; - final String arg_scope = args[1]! as String; - final String? arg_message = args[2] as String?; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleLog was null.'); + final List args = (message as List?)!; + final String? arg_level = (args[0] as String?); + assert(arg_level != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleLog was null, expected non-null String.'); + final String? arg_scope = (args[1] as String?); + assert(arg_scope != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleLog was null, expected non-null String.'); + final String? arg_message = (args[2] as String?); final Map? arg_info = (args[3] as Map?)?.cast(); - final String? arg_error = args[4] as String?; + final String? arg_error = (args[4] as String?); try { - api.handleLog(arg_level, arg_scope, arg_message, arg_info, arg_error); + api.handleLog(arg_level!, arg_scope!, arg_message, arg_info, arg_error); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6183,10 +6476,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PRedemptionResult arg_result = args[0]! as PRedemptionResult; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.didRedeemLink was null.'); + final List args = (message as List?)!; + final PRedemptionResult? arg_result = (args[0] as PRedemptionResult?); + assert(arg_result != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.didRedeemLink was null, expected non-null PRedemptionResult.'); try { - api.didRedeemLink(arg_result); + api.didRedeemLink(arg_result!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6204,12 +6501,20 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_fullURL = args[0]! as String; - final List arg_pathComponents = (args[1]! as List).cast(); - final Map arg_queryParameters = (args[2]! as Map).cast(); + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleSuperwallDeepLink was null.'); + final List args = (message as List?)!; + final String? arg_fullURL = (args[0] as String?); + assert(arg_fullURL != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleSuperwallDeepLink was null, expected non-null String.'); + final List? arg_pathComponents = (args[1] as List?)?.cast(); + assert(arg_pathComponents != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleSuperwallDeepLink was null, expected non-null List.'); + final Map? arg_queryParameters = (args[2] as Map?)?.cast(); + assert(arg_queryParameters != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.handleSuperwallDeepLink was null, expected non-null Map.'); try { - api.handleSuperwallDeepLink(arg_fullURL, arg_pathComponents, arg_queryParameters); + api.handleSuperwallDeepLink(arg_fullURL!, arg_pathComponents!, arg_queryParameters!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6227,11 +6532,17 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PCustomerInfo arg_from = args[0]! as PCustomerInfo; - final PCustomerInfo arg_to = args[1]! as PCustomerInfo; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.customerInfoDidChange was null.'); + final List args = (message as List?)!; + final PCustomerInfo? arg_from = (args[0] as PCustomerInfo?); + assert(arg_from != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.customerInfoDidChange was null, expected non-null PCustomerInfo.'); + final PCustomerInfo? arg_to = (args[1] as PCustomerInfo?); + assert(arg_to != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.customerInfoDidChange was null, expected non-null PCustomerInfo.'); try { - api.customerInfoDidChange(arg_from, arg_to); + api.customerInfoDidChange(arg_from!, arg_to!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6249,10 +6560,14 @@ abstract class PSuperwallDelegateGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final Map arg_newAttributes = (args[0]! as Map).cast(); + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.userAttributesDidChange was null.'); + final List args = (message as List?)!; + final Map? arg_newAttributes = (args[0] as Map?)?.cast(); + assert(arg_newAttributes != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PSuperwallDelegateGenerated.userAttributesDidChange was null, expected non-null Map.'); try { - api.userAttributesDidChange(arg_newAttributes); + api.userAttributesDidChange(arg_newAttributes!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6284,10 +6599,14 @@ abstract class PPurchaseControllerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_productId = args[0]! as String; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPurchaseControllerGenerated.purchaseFromAppStore was null.'); + final List args = (message as List?)!; + final String? arg_productId = (args[0] as String?); + assert(arg_productId != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPurchaseControllerGenerated.purchaseFromAppStore was null, expected non-null String.'); try { - final PPurchaseResult output = await api.purchaseFromAppStore(arg_productId); + final PPurchaseResult output = await api.purchaseFromAppStore(arg_productId!); return wrapResponse(result: output); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6305,12 +6624,16 @@ abstract class PPurchaseControllerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_productId = args[0]! as String; - final String? arg_basePlanId = args[1] as String?; - final String? arg_offerId = args[2] as String?; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPurchaseControllerGenerated.purchaseFromGooglePlay was null.'); + final List args = (message as List?)!; + final String? arg_productId = (args[0] as String?); + assert(arg_productId != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPurchaseControllerGenerated.purchaseFromGooglePlay was null, expected non-null String.'); + final String? arg_basePlanId = (args[1] as String?); + final String? arg_offerId = (args[2] as String?); try { - final PPurchaseResult output = await api.purchaseFromGooglePlay(arg_productId, arg_basePlanId, arg_offerId); + final PPurchaseResult output = await api.purchaseFromGooglePlay(arg_productId!, arg_basePlanId, arg_offerId); return wrapResponse(result: output); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6357,10 +6680,14 @@ abstract class PConfigureCompletionGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final bool arg_success = args[0]! as bool; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PConfigureCompletionGenerated.onConfigureCompleted was null.'); + final List args = (message as List?)!; + final bool? arg_success = (args[0] as bool?); + assert(arg_success != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PConfigureCompletionGenerated.onConfigureCompleted was null, expected non-null bool.'); try { - api.onConfigureCompleted(arg_success); + api.onConfigureCompleted(arg_success!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6398,10 +6725,14 @@ abstract class PPaywallPresentationHandlerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallInfo arg_paywallInfo = args[0]! as PPaywallInfo; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onPresent was null.'); + final List args = (message as List?)!; + final PPaywallInfo? arg_paywallInfo = (args[0] as PPaywallInfo?); + assert(arg_paywallInfo != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onPresent was null, expected non-null PPaywallInfo.'); try { - api.onPresent(arg_paywallInfo); + api.onPresent(arg_paywallInfo!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6419,11 +6750,17 @@ abstract class PPaywallPresentationHandlerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallInfo arg_paywallInfo = args[0]! as PPaywallInfo; - final PPaywallResult arg_paywallResult = args[1]! as PPaywallResult; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onDismiss was null.'); + final List args = (message as List?)!; + final PPaywallInfo? arg_paywallInfo = (args[0] as PPaywallInfo?); + assert(arg_paywallInfo != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onDismiss was null, expected non-null PPaywallInfo.'); + final PPaywallResult? arg_paywallResult = (args[1] as PPaywallResult?); + assert(arg_paywallResult != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onDismiss was null, expected non-null PPaywallResult.'); try { - api.onDismiss(arg_paywallInfo, arg_paywallResult); + api.onDismiss(arg_paywallInfo!, arg_paywallResult!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6441,10 +6778,14 @@ abstract class PPaywallPresentationHandlerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_error = args[0]! as String; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onError was null.'); + final List args = (message as List?)!; + final String? arg_error = (args[0] as String?); + assert(arg_error != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onError was null, expected non-null String.'); try { - api.onError(arg_error); + api.onError(arg_error!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6462,10 +6803,14 @@ abstract class PPaywallPresentationHandlerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallSkippedReason arg_reason = args[0]! as PPaywallSkippedReason; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onSkip was null.'); + final List args = (message as List?)!; + final PPaywallSkippedReason? arg_reason = (args[0] as PPaywallSkippedReason?); + assert(arg_reason != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onSkip was null, expected non-null PPaywallSkippedReason.'); try { - api.onSkip(arg_reason); + api.onSkip(arg_reason!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6483,10 +6828,14 @@ abstract class PPaywallPresentationHandlerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PCustomCallback arg_callback = args[0]! as PCustomCallback; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onCustomCallback was null.'); + final List args = (message as List?)!; + final PCustomCallback? arg_callback = (args[0] as PCustomCallback?); + assert(arg_callback != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PPaywallPresentationHandlerGenerated.onCustomCallback was null, expected non-null PCustomCallback.'); try { - final PCustomCallbackResult output = await api.onCustomCallback(arg_callback); + final PCustomCallbackResult output = await api.onCustomCallback(arg_callback!); return wrapResponse(result: output); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6514,10 +6863,14 @@ abstract class PFeatureHandlerGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final String arg_id = args[0]! as String; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PFeatureHandlerGenerated.onFeature was null.'); + final List args = (message as List?)!; + final String? arg_id = (args[0] as String?); + assert(arg_id != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.PFeatureHandlerGenerated.onFeature was null, expected non-null String.'); try { - api.onFeature(arg_id); + api.onFeature(arg_id!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); @@ -6545,8 +6898,10 @@ abstract class POnBackPressedGenerated { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - final List args = message! as List; - final PPaywallInfo? arg_paywallInfo = args[0] as PPaywallInfo?; + assert(message != null, + 'Argument for dev.flutter.pigeon.superwallkit_flutter.POnBackPressedGenerated.onBackPressed was null.'); + final List args = (message as List?)!; + final PPaywallInfo? arg_paywallInfo = (args[0] as PPaywallInfo?); try { api.onBackPressed(arg_paywallInfo); return wrapResponse(empty: true); diff --git a/lib/src/public/IntegrationAttribute.dart b/lib/src/public/IntegrationAttribute.dart index fc19182..b7fc4cf 100644 --- a/lib/src/public/IntegrationAttribute.dart +++ b/lib/src/public/IntegrationAttribute.dart @@ -8,6 +8,9 @@ enum IntegrationAttribute { /// The unique Adjust identifier for the user. adjustId, + /// The Singular Device ID (SDID) for the user. + singularDeviceId, + /// The Amplitude device identifier. amplitudeDeviceId, @@ -72,6 +75,8 @@ enum IntegrationAttribute { switch (this) { case IntegrationAttribute.adjustId: return PIntegrationAttribute.adjustId; + case IntegrationAttribute.singularDeviceId: + return PIntegrationAttribute.singularDeviceId; case IntegrationAttribute.amplitudeDeviceId: return PIntegrationAttribute.amplitudeDeviceId; case IntegrationAttribute.amplitudeUserId: diff --git a/lib/src/public/PaywallOptions.dart b/lib/src/public/PaywallOptions.dart index 03df1fa..6899eb7 100644 --- a/lib/src/public/PaywallOptions.dart +++ b/lib/src/public/PaywallOptions.dart @@ -53,6 +53,15 @@ class PaywallOptions { /// Call `Superwall.shared.dismiss()` within the callback if you want to dismiss the paywall. /// Note: This is only supported on Android. void Function(PaywallInfo?)? onBackPressed; + + /// A color resource used to tint the circular progress bar shown while a + /// purchase or restoration is in progress. Defaults to `null`, which keeps + /// the system's default spinner color. + /// + /// The value is an Android color resource ID (`@ColorRes`). + /// + /// Note: Android only. Has no effect on iOS. + int? loadingColor; } extension PaywallOptionsJson on PaywallOptions { @@ -69,6 +78,7 @@ extension PaywallOptionsJson on PaywallOptions { 'shouldShowWebRestorationAlert': shouldShowWebRestorationAlert, 'overrideProductsByName': overrideProductsByName, 'shouldShowWebPurchaseConfirmationAlert': shouldShowWebPurchaseConfirmationAlert, + 'loadingColor': loadingColor, }; } } diff --git a/lib/src/public/Superwall.dart b/lib/src/public/Superwall.dart index bfe02df..803ba8a 100644 --- a/lib/src/public/Superwall.dart +++ b/lib/src/public/Superwall.dart @@ -81,12 +81,15 @@ class Superwall { // Copy primitive values generatedOptions.isExternalDataCollectionEnabled = - options.isExternalDataCollectionEnabled; + options.eventTrackingBehavior == EventTrackingBehavior.all; generatedOptions.localeIdentifier = options.localeIdentifier; generatedOptions.isGameControllerEnabled = options.isGameControllerEnabled; generatedOptions.passIdentifiersToPlayStore = options.passIdentifiersToPlayStore; + generatedOptions.eventTrackingBehavior = + _convertEventTrackingBehavior(options.eventTrackingBehavior); + generatedOptions.testModeBehavior = _convertTestModeBehavior(options.testModeBehavior); generatedOptions.shouldObservePurchases = options.shouldObservePurchases; @@ -119,6 +122,7 @@ class Superwall { generatedOptions.overrideProductsByName = options.overrideProductsByName; generatedOptions.shouldShowWebPurchaseConfirmationAlert = options.shouldShowWebPurchaseConfirmationAlert; + generatedOptions.loadingColor = options.loadingColor; generatedOptions.restoreFailed = generated.PRestoreFailed() ..title = options.restoreFailed.title @@ -160,6 +164,19 @@ class Superwall { } } + // Helper method to convert EventTrackingBehavior + static generated.PEventTrackingBehavior _convertEventTrackingBehavior( + EventTrackingBehavior behavior) { + switch (behavior) { + case EventTrackingBehavior.all: + return generated.PEventTrackingBehavior.all; + case EventTrackingBehavior.superwallOnly: + return generated.PEventTrackingBehavior.superwallOnly; + case EventTrackingBehavior.none: + return generated.PEventTrackingBehavior.none; + } + } + static generated.PTestModeBehavior _convertTestModeBehavior( TestModeBehavior behavior) { switch (behavior) { @@ -361,6 +378,15 @@ class Superwall { await hostApi.setLocaleIdentifier(localeIdentifier); } + /// The country code of the user's store account (e.g. the Play Store account + /// on Android). Returns `null` until it has been loaded, if the store is + /// unavailable, or on platforms that don't provide it. + /// + /// Note: Currently populated on Android only. Returns `null` on iOS. + Future getStoreFrontCountryCode() async { + return await hostApi.getStoreFrontCountryCode(); + } + // Gets the current user's ID Future getUserId() async { return await hostApi.getUserId(); diff --git a/lib/src/public/SuperwallOptions.dart b/lib/src/public/SuperwallOptions.dart index 2fbe011..41948b4 100644 --- a/lib/src/public/SuperwallOptions.dart +++ b/lib/src/public/SuperwallOptions.dart @@ -10,10 +10,35 @@ class SuperwallOptions { /// change this unless you received the go-ahead from the Superwall team. NetworkEnvironment networkEnvironment = NetworkEnvironment.release; + /// Controls which events are sent to the Superwall servers. + /// + /// Defaults to [EventTrackingBehavior.all]. Set this to + /// [EventTrackingBehavior.superwallOnly] to suppress user-initiated tracking, + /// trigger fires, and user-attribute updates while keeping internal SDK + /// events, or [EventTrackingBehavior.none] to stop all event collection + /// entirely (e.g. for GDPR compliance). + EventTrackingBehavior eventTrackingBehavior = EventTrackingBehavior.all; + /// Enables the sending of non-Superwall tracked events and properties /// back to the Superwall servers. /// Defaults to `true`. - bool isExternalDataCollectionEnabled = true; + /// + /// **Deprecated**: Use [eventTrackingBehavior] instead. Setting this to + /// `false` maps to [EventTrackingBehavior.superwallOnly] unless the current + /// value is already [EventTrackingBehavior.none], in which case `none` is + /// preserved. Setting it back to `true` maps to [EventTrackingBehavior.all]. + @Deprecated('Use eventTrackingBehavior instead.') + bool get isExternalDataCollectionEnabled => + eventTrackingBehavior == EventTrackingBehavior.all; + + @Deprecated('Use eventTrackingBehavior instead.') + set isExternalDataCollectionEnabled(bool value) { + if (value) { + eventTrackingBehavior = EventTrackingBehavior.all; + } else if (eventTrackingBehavior != EventTrackingBehavior.none) { + eventTrackingBehavior = EventTrackingBehavior.superwallOnly; + } + } /// Sets the device locale identifier to use when evaluating rules. String? localeIdentifier; @@ -54,7 +79,9 @@ extension SuperwallOptionsJson on SuperwallOptions { return { 'paywalls': paywalls.toJson(), 'networkEnvironment': networkEnvironment.toJson(), - 'isExternalDataCollectionEnabled': isExternalDataCollectionEnabled, + 'eventTrackingBehavior': eventTrackingBehavior.toJson(), + 'isExternalDataCollectionEnabled': + eventTrackingBehavior == EventTrackingBehavior.all, 'localeIdentifier': localeIdentifier, 'isGameControllerEnabled': isGameControllerEnabled, 'logging': logging.toJson(), @@ -68,6 +95,32 @@ extension SuperwallOptionsJson on SuperwallOptions { } } +/// Controls which events are sent to the Superwall servers. +enum EventTrackingBehavior { + /// All events are tracked. This is the default. + all, + + /// Only internal Superwall events are tracked. User-initiated tracking calls, + /// trigger-fire events, and user-attribute updates are suppressed. + superwallOnly, + + /// No events are sent to the Superwall servers. + none, +} + +extension EventTrackingBehaviorJson on EventTrackingBehavior { + String toJson() { + switch (this) { + case EventTrackingBehavior.all: + return 'all'; + case EventTrackingBehavior.superwallOnly: + return 'superwallOnly'; + case EventTrackingBehavior.none: + return 'none'; + } + } +} + /// Controls when the SDK enters test mode. enum TestModeBehavior { /// Test mode is automatically determined based on server configuration. diff --git a/pigeons/configure.dart b/pigeons/configure.dart index bdb3b63..b3e035b 100644 --- a/pigeons/configure.dart +++ b/pigeons/configure.dart @@ -212,10 +212,23 @@ enum PTestModeBehavior { always, } +/// Controls which events are sent to the Superwall servers. +enum PEventTrackingBehavior { + /// All events are tracked. This is the default. + all, + + /// Only internal Superwall events are tracked. + superwallOnly, + + /// No events are sent to the Superwall servers. + none, +} + // Options for configuring Superwall class PSuperwallOptions { PPaywallOptions? paywalls; PNetworkEnvironment? networkEnvironment; + PEventTrackingBehavior? eventTrackingBehavior; bool? isExternalDataCollectionEnabled; String? localeIdentifier; bool? isGameControllerEnabled; @@ -651,6 +664,10 @@ class PPaywallOptions { /// Keys are raw `DeviceTier` values (e.g. `ultra_low`, `low`, `mid`, /// `high`, `ultra_high`, `unknown`). Map? preloadDeviceOverrides; + + /// Android only. Color resource ID (`@ColorRes`) used to tint the loading + /// spinner. Has no effect on iOS. + int? loadingColor; } class POnBackPressedHost { @@ -753,6 +770,9 @@ enum PIntegrationAttribute { /// The unique Adjust identifier for the user. adjustId, + /// The Singular Device ID (SDID) for the user. + singularDeviceId, + /// The Amplitude device identifier. amplitudeDeviceId, @@ -1427,6 +1447,10 @@ abstract class PSuperwallHostApi { String? getLocaleIdentifier(); void setLocaleIdentifier(String? localeIdentifier); + // Storefront methods + @async + String? getStoreFrontCountryCode(); + // User identity methods String getUserId(); bool getIsLoggedIn(); diff --git a/pubspec.yaml b/pubspec.yaml index 3c09805..fc499f8 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.13 +version: 2.5.0 homepage: "https://superwall.com" environment: From fa1dec11b3266a0f0e8b2829d15f355bf9584097 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 6 Jul 2026 10:38:44 +0000 Subject: [PATCH 2/2] Drop storeFrontCountryCode; not exposed on public Superwall API --- CHANGELOG.md | 1 - .../superwallkit_flutter/SuperwallHost.kt | 7 ------ .../SuperwallHostGenerated.g.kt | 19 ---------------- ios/Classes/SuperwallHost.swift | 6 ----- ios/Classes/SuperwallHostGenerated.swift | 16 -------------- lib/src/generated/superwallhost.g.dart | 22 ------------------- lib/src/public/Superwall.dart | 9 -------- pigeons/configure.dart | 4 ---- 8 files changed, 84 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f41546..729d27a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,6 @@ The changelog for `Superwall`. Also see the [releases](https://github.com/superw - Adds `SuperwallOptions.eventTrackingBehavior` to control which events are sent to Superwall (`all` / `superwallOnly` / `none`). Deprecates `SuperwallOptions.isExternalDataCollectionEnabled` in favor of it. - Adds `singularDeviceId` integration attribute. - Adds `PaywallOptions.loadingColor` to theme the loading spinner (Android). -- Adds `Superwall.getStoreFrontCountryCode()` accessor (Android). ## 2.4.13 diff --git a/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt b/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt index fb4bd28..896cd48 100644 --- a/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt +++ b/android/src/main/kotlin/com/superwall/superwallkit_flutter/SuperwallHost.kt @@ -203,13 +203,6 @@ class SuperwallHost( Superwall.instance.localeIdentifier = localeIdentifier } - override fun getStoreFrontCountryCode(callback: (Result) -> Unit) { - // The Play Store storefront country code is not exposed on the public - // `Superwall` API (it lives on the internal StoreManager), so this - // returns null until the SDK exposes a public accessor. - callback(Result.success(null)) - } - override fun getUserId(): String { return Superwall.instance.userId } 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 b01e2c2..3eb9c7e 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 @@ -4439,7 +4439,6 @@ interface PSuperwallHostApi { fun consume(purchaseToken: String, callback: (Result) -> Unit) fun getLocaleIdentifier(): String? fun setLocaleIdentifier(localeIdentifier: String?) - fun getStoreFrontCountryCode(callback: (Result) -> Unit) fun getUserId(): String fun getIsLoggedIn(): Boolean fun getIsInitialized(): Boolean @@ -4738,24 +4737,6 @@ interface PSuperwallHostApi { channel.setMessageHandler(null) } } - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getStoreFrontCountryCode$separatedMessageChannelSuffix", codec) - if (api != null) { - channel.setMessageHandler { _, reply -> - api.getStoreFrontCountryCode{ result: Result -> - val error = result.exceptionOrNull() - if (error != null) { - reply.reply(SuperwallHostGeneratedPigeonUtils.wrapError(error)) - } else { - val data = result.getOrNull() - reply.reply(SuperwallHostGeneratedPigeonUtils.wrapResult(data)) - } - } - } - } else { - channel.setMessageHandler(null) - } - } run { val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getUserId$separatedMessageChannelSuffix", codec) if (api != null) { diff --git a/ios/Classes/SuperwallHost.swift b/ios/Classes/SuperwallHost.swift index 91793b7..4cd9bb2 100644 --- a/ios/Classes/SuperwallHost.swift +++ b/ios/Classes/SuperwallHost.swift @@ -149,12 +149,6 @@ final class SuperwallHost : NSObject, PSuperwallHostApi { Superwall.shared.localeIdentifier = localeIdentifier } - func getStoreFrontCountryCode(completion: @escaping (Result) -> Void) { - // SuperwallKit does not currently expose a storefront country code on the - // public `Superwall` API, so this returns nil on iOS. - completion(.success(nil)) - } - func getUserId() -> String { return Superwall.shared.userId } diff --git a/ios/Classes/SuperwallHostGenerated.swift b/ios/Classes/SuperwallHostGenerated.swift index da3f560..6da3ad1 100644 --- a/ios/Classes/SuperwallHostGenerated.swift +++ b/ios/Classes/SuperwallHostGenerated.swift @@ -4010,7 +4010,6 @@ protocol PSuperwallHostApi { func consume(purchaseToken: String, completion: @escaping (Result) -> Void) func getLocaleIdentifier() throws -> String? func setLocaleIdentifier(localeIdentifier: String?) throws - func getStoreFrontCountryCode(completion: @escaping (Result) -> Void) func getUserId() throws -> String func getIsLoggedIn() throws -> Bool func getIsInitialized() throws -> Bool @@ -4266,21 +4265,6 @@ class PSuperwallHostApiSetup { } else { setLocaleIdentifierChannel.setMessageHandler(nil) } - let getStoreFrontCountryCodeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getStoreFrontCountryCode\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec) - if let api = api { - getStoreFrontCountryCodeChannel.setMessageHandler { _, reply in - api.getStoreFrontCountryCode { result in - switch result { - case .success(let res): - reply(wrapResult(res)) - case .failure(let error): - reply(wrapError(error)) - } - } - } - } else { - getStoreFrontCountryCodeChannel.setMessageHandler(nil) - } let getUserIdChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getUserId\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec) if let api = api { getUserIdChannel.setMessageHandler { _, reply in diff --git a/lib/src/generated/superwallhost.g.dart b/lib/src/generated/superwallhost.g.dart index b793920..2576e12 100644 --- a/lib/src/generated/superwallhost.g.dart +++ b/lib/src/generated/superwallhost.g.dart @@ -5588,28 +5588,6 @@ class PSuperwallHostApi { } } - Future getStoreFrontCountryCode() async { - final pigeonVar_channelName = 'dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getStoreFrontCountryCode$pigeonVar_messageChannelSuffix'; - final pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - 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?); - } - } - Future getUserId() async { final pigeonVar_channelName = 'dev.flutter.pigeon.superwallkit_flutter.PSuperwallHostApi.getUserId$pigeonVar_messageChannelSuffix'; final pigeonVar_channel = BasicMessageChannel( diff --git a/lib/src/public/Superwall.dart b/lib/src/public/Superwall.dart index 803ba8a..50322f3 100644 --- a/lib/src/public/Superwall.dart +++ b/lib/src/public/Superwall.dart @@ -378,15 +378,6 @@ class Superwall { await hostApi.setLocaleIdentifier(localeIdentifier); } - /// The country code of the user's store account (e.g. the Play Store account - /// on Android). Returns `null` until it has been loaded, if the store is - /// unavailable, or on platforms that don't provide it. - /// - /// Note: Currently populated on Android only. Returns `null` on iOS. - Future getStoreFrontCountryCode() async { - return await hostApi.getStoreFrontCountryCode(); - } - // Gets the current user's ID Future getUserId() async { return await hostApi.getUserId(); diff --git a/pigeons/configure.dart b/pigeons/configure.dart index b3e035b..30dcef2 100644 --- a/pigeons/configure.dart +++ b/pigeons/configure.dart @@ -1447,10 +1447,6 @@ abstract class PSuperwallHostApi { String? getLocaleIdentifier(); void setLocaleIdentifier(String? localeIdentifier); - // Storefront methods - @async - String? getStoreFrontCountryCode(); - // User identity methods String getUserId(); bool getIsLoggedIn();