From b3280ea1b67c2b5bd79ce4552786f94a5d1abbea Mon Sep 17 00:00:00 2001 From: Cesar de la Vega Date: Tue, 26 Mar 2024 17:26:17 +0100 Subject: [PATCH 1/5] remove RCTEventEmitter --- .../react/ui/BasePaywallViewManager.kt | 79 +++++++------------ .../{PaywallEvent.kt => PaywallEventName.kt} | 4 +- .../react/ui/events/OnDismissEvent.kt | 9 +++ .../ui/events/OnPurchaseCancelledEvent.kt | 9 +++ .../ui/events/OnPurchaseCompletedEvent.kt | 16 ++++ .../react/ui/events/OnPurchaseErrorEvent.kt | 12 +++ .../react/ui/events/OnPurchaseStartedEvent.kt | 14 ++++ .../ui/events/OnRestoreCompletedEvent.kt | 12 +++ .../react/ui/events/OnRestoreErrorEvent.kt | 12 +++ .../react/ui/events/OnRestoreStartedEvent.kt | 9 +++ .../purchases/react/ui/events/PaywallEvent.kt | 31 ++++++++ 11 files changed, 156 insertions(+), 51 deletions(-) rename react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/{PaywallEvent.kt => PaywallEventName.kt} (82%) create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt index 4633a935..5e659898 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt @@ -6,9 +6,18 @@ import com.facebook.react.bridge.WritableNativeMap import com.facebook.react.common.MapBuilder import com.facebook.react.uimanager.SimpleViewManager import com.facebook.react.uimanager.ThemedReactContext +import com.facebook.react.uimanager.UIManagerHelper import com.facebook.react.uimanager.annotations.ReactProp -import com.facebook.react.uimanager.events.RCTEventEmitter +import com.facebook.react.uimanager.events.Event import com.revenuecat.purchases.hybridcommon.ui.PaywallListenerWrapper +import com.revenuecat.purchases.react.ui.events.OnDismissEvent +import com.revenuecat.purchases.react.ui.events.OnPurchaseCancelledEvent +import com.revenuecat.purchases.react.ui.events.OnPurchaseCompletedEvent +import com.revenuecat.purchases.react.ui.events.OnPurchaseErrorEvent +import com.revenuecat.purchases.react.ui.events.OnPurchaseStartedEvent +import com.revenuecat.purchases.react.ui.events.OnRestoreCompletedEvent +import com.revenuecat.purchases.react.ui.events.OnRestoreErrorEvent +import com.revenuecat.purchases.react.ui.events.OnRestoreStartedEvent import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI import com.revenuecat.purchases.ui.revenuecatui.fonts.CustomFontProvider @@ -27,14 +36,14 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( override fun getExportedCustomDirectEventTypeConstants(): Map? { return MapBuilder.builder() - .putEvent(PaywallEvent.ON_PURCHASE_STARTED) - .putEvent(PaywallEvent.ON_PURCHASE_COMPLETED) - .putEvent(PaywallEvent.ON_PURCHASE_ERROR) - .putEvent(PaywallEvent.ON_PURCHASE_CANCELLED) - .putEvent(PaywallEvent.ON_RESTORE_STARTED) - .putEvent(PaywallEvent.ON_RESTORE_COMPLETED) - .putEvent(PaywallEvent.ON_RESTORE_ERROR) - .putEvent(PaywallEvent.ON_DISMISS) + .putEvent(PaywallEventName.ON_PURCHASE_STARTED) + .putEvent(PaywallEventName.ON_PURCHASE_COMPLETED) + .putEvent(PaywallEventName.ON_PURCHASE_ERROR) + .putEvent(PaywallEventName.ON_PURCHASE_CANCELLED) + .putEvent(PaywallEventName.ON_RESTORE_STARTED) + .putEvent(PaywallEventName.ON_RESTORE_COMPLETED) + .putEvent(PaywallEventName.ON_RESTORE_ERROR) + .putEvent(PaywallEventName.ON_DISMISS) .build() } @@ -80,44 +89,35 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( ) = object : PaywallListenerWrapper() { override fun onPurchaseStarted(rcPackage: Map) { - val payload = mapOf( - PaywallEventKey.PACKAGE to rcPackage, - ) - emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_STARTED, payload) + emitEvent(themedReactContext, view.id, OnPurchaseStartedEvent(rcPackage)) } override fun onPurchaseCompleted( customerInfo: Map, storeTransaction: Map ) { - val payload = mapOf( - PaywallEventKey.CUSTOMER_INFO to customerInfo, - PaywallEventKey.STORE_TRANSACTION to storeTransaction - ) - emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_COMPLETED, payload) + val event = OnPurchaseCompletedEvent(customerInfo, storeTransaction) + emitEvent(themedReactContext, view.id, event) } override fun onPurchaseError(error: Map) { - val payload = mapOf(PaywallEventKey.ERROR to error) - emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_ERROR, payload) + emitEvent(themedReactContext, view.id, OnPurchaseErrorEvent(error)) } override fun onPurchaseCancelled() { - emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_CANCELLED) + emitEvent(themedReactContext, view.id, OnPurchaseCancelledEvent()) } override fun onRestoreStarted() { - emitEvent(themedReactContext, view.id, PaywallEvent.ON_RESTORE_STARTED) + emitEvent(themedReactContext, view.id, OnRestoreStartedEvent()) } override fun onRestoreCompleted(customerInfo: Map) { - val payload = mapOf(PaywallEventKey.CUSTOMER_INFO to customerInfo) - emitEvent(themedReactContext, view.id, PaywallEvent.ON_RESTORE_COMPLETED, payload) + emitEvent(themedReactContext, view.id, OnRestoreCompletedEvent(customerInfo)) } override fun onRestoreError(error: Map) { - val payload = mapOf(PaywallEventKey.ERROR to error) - emitEvent(themedReactContext, view.id, PaywallEvent.ON_RESTORE_ERROR, payload) + emitEvent(themedReactContext, view.id, OnRestoreErrorEvent(error)) } } @@ -127,12 +127,12 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( view: T ): (() -> Unit) { return { - emitEvent(themedReactContext, view.id, PaywallEvent.ON_DISMISS) + emitEvent(themedReactContext, view.id, OnDismissEvent()) } } private fun MapBuilder.Builder.putEvent( - paywallEvent: PaywallEvent + paywallEvent: PaywallEventName ): MapBuilder.Builder { val registrationName = MapBuilder.of("registrationName", paywallEvent.eventName) return this.put(paywallEvent.eventName, registrationName) @@ -148,28 +148,9 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( private fun emitEvent( context: ThemedReactContext, viewId: Int, - event: PaywallEvent, - payload: Map>, + event: Event<*>, ) { - val convertedPayload = WritableNativeMap().apply { - payload.forEach { (key, value) -> - putMap(key.key, RNPurchasesConverters.convertMapToWriteableMap(value)) - } - } - emitEvent(context, viewId, event, convertedPayload) + UIManagerHelper.getEventDispatcherForReactTag(context, viewId)?.dispatchEvent(event) } - @Suppress("DEPRECATION") - private fun emitEvent( - context: ThemedReactContext, - viewId: Int, - event: PaywallEvent, - payload: WritableNativeMap? = null - ) { - context.getJSModule(RCTEventEmitter::class.java).receiveEvent( - viewId, - event.eventName, - payload - ) - } } diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEventName.kt similarity index 82% rename from react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEvent.kt rename to react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEventName.kt index 77bddf6b..de80829b 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEventName.kt @@ -1,6 +1,6 @@ package com.revenuecat.purchases.react.ui -internal enum class PaywallEvent(val eventName: String) { +enum class PaywallEventName(val eventName: String) { ON_PURCHASE_STARTED("onPurchaseStarted"), ON_PURCHASE_COMPLETED("onPurchaseCompleted"), ON_PURCHASE_ERROR("onPurchaseError"), @@ -11,7 +11,7 @@ internal enum class PaywallEvent(val eventName: String) { ON_DISMISS("onDismiss"); } -internal enum class PaywallEventKey(val key: String) { +enum class PaywallEventKey(val key: String) { PACKAGE("packageBeingPurchased"), CUSTOMER_INFO("customerInfo"), STORE_TRANSACTION("storeTransaction"), diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt new file mode 100644 index 00000000..ccaad78b --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt @@ -0,0 +1,9 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnDismissEvent : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_DISMISS + + override fun getPayload() = null +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt new file mode 100644 index 00000000..fb85dc32 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt @@ -0,0 +1,9 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnPurchaseCancelledEvent : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_CANCELLED + + override fun getPayload() = null +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt new file mode 100644 index 00000000..230bc438 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt @@ -0,0 +1,16 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventKey +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnPurchaseCompletedEvent( + private val customerInfo: Map, + private val storeTransaction: Map +) : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_COMPLETED + + override fun getPayload() = mapOf( + PaywallEventKey.CUSTOMER_INFO to customerInfo, + PaywallEventKey.STORE_TRANSACTION to storeTransaction + ) +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt new file mode 100644 index 00000000..dc8cc8b3 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt @@ -0,0 +1,12 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventKey +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnPurchaseErrorEvent( + private val error: Map +) : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_ERROR + + override fun getPayload() = mapOf(PaywallEventKey.ERROR to error) +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt new file mode 100644 index 00000000..680df941 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt @@ -0,0 +1,14 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventKey +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnPurchaseStartedEvent( + private val packageMap: Map +) : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_STARTED + + override fun getPayload() = mapOf( + PaywallEventKey.PACKAGE to packageMap, + ) +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt new file mode 100644 index 00000000..03f70f60 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt @@ -0,0 +1,12 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventKey +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnRestoreCompletedEvent( + private val customerInfo: Map, +) : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_COMPLETED + + override fun getPayload() = mapOf(PaywallEventKey.CUSTOMER_INFO to customerInfo) +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt new file mode 100644 index 00000000..8a6cf6a7 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt @@ -0,0 +1,12 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventKey +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnRestoreErrorEvent( + private val error: Map +) : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_ERROR + + override fun getPayload() = mapOf(PaywallEventKey.ERROR to error) +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt new file mode 100644 index 00000000..3d1bf712 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt @@ -0,0 +1,9 @@ +package com.revenuecat.purchases.react.ui.events + +import com.revenuecat.purchases.react.ui.PaywallEventName + +class OnRestoreStartedEvent : PaywallEvent() { + override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_STARTED + + override fun getPayload() = null +} diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt new file mode 100644 index 00000000..5c48928a --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt @@ -0,0 +1,31 @@ +package com.revenuecat.purchases.react.ui.events + +import com.facebook.react.bridge.WritableMap +import com.facebook.react.bridge.WritableNativeMap +import com.facebook.react.uimanager.events.Event +import com.revenuecat.purchases.react.ui.PaywallEventKey +import com.revenuecat.purchases.react.ui.PaywallEventName +import com.revenuecat.purchases.react.ui.RNPurchasesConverters + +abstract class PaywallEvent : Event>() { + + abstract fun getPaywallEventName(): PaywallEventName + + abstract fun getPayload(): Map>? + + override fun getEventName(): String { + return getPaywallEventName().eventName + } + + override fun getEventData(): WritableMap? { + val convertedPayload = getPayload()?.let { payload -> + WritableNativeMap().apply { + payload.forEach { (key, value) -> + putMap(key.key, RNPurchasesConverters.convertMapToWriteableMap(value)) + } + } + } + + return convertedPayload + } +} From 3699868f7d7ab2fa9b96cd7d11f4506d568f79bc Mon Sep 17 00:00:00 2001 From: Cesar de la Vega Date: Wed, 27 Mar 2024 11:23:08 +0100 Subject: [PATCH 2/5] body function --- .../purchases/react/ui/BasePaywallViewManager.kt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt index 5e659898..4f4ffbb9 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt @@ -81,8 +81,6 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( } } - // TODO: RCTEventEmitter is deprecated, and RCTModernEventEmitter should be used instead - // but documentation is not clear on how to use it so keeping this for now internal fun createPaywallListenerWrapper( themedReactContext: ThemedReactContext, view: View @@ -125,10 +123,8 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( internal fun getDismissHandler( themedReactContext: ThemedReactContext, view: T - ): (() -> Unit) { - return { - emitEvent(themedReactContext, view.id, OnDismissEvent()) - } + ): (() -> Unit) = { + emitEvent(themedReactContext, view.id, OnDismissEvent()) } private fun MapBuilder.Builder.putEvent( From 06c4c59767cbfa024f9c9c4e7170c5a1c62009d9 Mon Sep 17 00:00:00 2001 From: Cesar de la Vega Date: Wed, 27 Mar 2024 12:12:57 +0100 Subject: [PATCH 3/5] fix inits --- .../react/ui/BasePaywallViewManager.kt | 62 +++++++++++++++---- .../react/ui/PaywallFooterViewManager.kt | 7 ++- .../purchases/react/ui/PaywallViewManager.kt | 7 ++- .../purchases/react/ui/ViewExtensions.kt | 7 +++ .../react/ui/events/OnDismissEvent.kt | 8 ++- .../ui/events/OnPurchaseCancelledEvent.kt | 8 ++- .../ui/events/OnPurchaseCompletedEvent.kt | 4 +- .../react/ui/events/OnPurchaseErrorEvent.kt | 4 +- .../react/ui/events/OnPurchaseStartedEvent.kt | 4 +- .../ui/events/OnRestoreCompletedEvent.kt | 4 +- .../react/ui/events/OnRestoreErrorEvent.kt | 4 +- .../react/ui/events/OnRestoreStartedEvent.kt | 8 ++- .../purchases/react/ui/events/PaywallEvent.kt | 11 ++-- 13 files changed, 104 insertions(+), 34 deletions(-) create mode 100644 react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/ViewExtensions.kt diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt index 4f4ffbb9..910f8da4 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt @@ -60,7 +60,8 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( } private fun setOfferingIdProp(view: T, props: ReadableMap?) { - val offeringIdentifier = props?.getDynamic(OPTION_OFFERING)?.asMap()?.getString(OFFERING_IDENTIFIER) + val offeringIdentifier = + props?.getDynamic(OPTION_OFFERING)?.asMap()?.getString(OFFERING_IDENTIFIER) offeringIdentifier?.let { setOfferingId(view, it) } @@ -85,46 +86,81 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( themedReactContext: ThemedReactContext, view: View ) = object : PaywallListenerWrapper() { + private val surfaceId = view.surfaceId + private val viewId = view.id override fun onPurchaseStarted(rcPackage: Map) { - emitEvent(themedReactContext, view.id, OnPurchaseStartedEvent(rcPackage)) + val event = OnPurchaseStartedEvent( + surfaceId = surfaceId, + viewTag = viewId, rcPackage + ) + emitEvent(themedReactContext, viewId, event) } override fun onPurchaseCompleted( customerInfo: Map, storeTransaction: Map ) { - val event = OnPurchaseCompletedEvent(customerInfo, storeTransaction) - emitEvent(themedReactContext, view.id, event) + val event = OnPurchaseCompletedEvent( + surfaceId = surfaceId, + viewTag = viewId, + customerInfo, + storeTransaction + ) + emitEvent(themedReactContext, viewId, event) } override fun onPurchaseError(error: Map) { - emitEvent(themedReactContext, view.id, OnPurchaseErrorEvent(error)) + val event = OnPurchaseErrorEvent( + surfaceId = surfaceId, + viewTag = viewId, + error + ) + emitEvent(themedReactContext, viewId, event) } override fun onPurchaseCancelled() { - emitEvent(themedReactContext, view.id, OnPurchaseCancelledEvent()) + val event = OnPurchaseCancelledEvent( + surfaceId = surfaceId, + viewTag = viewId, + ) + emitEvent(themedReactContext, viewId, event) } override fun onRestoreStarted() { - emitEvent(themedReactContext, view.id, OnRestoreStartedEvent()) + val event = OnRestoreStartedEvent( + surfaceId = surfaceId, + viewTag = viewId, + ) + emitEvent(themedReactContext, viewId, event) } override fun onRestoreCompleted(customerInfo: Map) { - emitEvent(themedReactContext, view.id, OnRestoreCompletedEvent(customerInfo)) + val event = OnRestoreCompletedEvent( + surfaceId = surfaceId, + viewTag = viewId, + customerInfo, + ) + emitEvent(themedReactContext, viewId, event) } override fun onRestoreError(error: Map) { - emitEvent(themedReactContext, view.id, OnRestoreErrorEvent(error)) + val event = OnRestoreErrorEvent( + surfaceId = surfaceId, + viewTag = viewId, + error, + ) + emitEvent(themedReactContext, viewId, event) } } internal fun getDismissHandler( themedReactContext: ThemedReactContext, - view: T + view: View, ): (() -> Unit) = { - emitEvent(themedReactContext, view.id, OnDismissEvent()) + val event = OnDismissEvent(view.surfaceId, view.id) + emitEvent(themedReactContext, view.id, event) } private fun MapBuilder.Builder.putEvent( @@ -146,7 +182,7 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( viewId: Int, event: Event<*>, ) { - UIManagerHelper.getEventDispatcherForReactTag(context, viewId)?.dispatchEvent(event) + val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(context, viewId) + eventDispatcher?.dispatchEvent(event) } - } diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt index dd2d9cd7..d346e24e 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt @@ -2,6 +2,7 @@ package com.revenuecat.purchases.react.ui import androidx.core.view.children import com.facebook.react.uimanager.ThemedReactContext +import com.facebook.react.uimanager.UIManagerHelper import com.facebook.react.uimanager.UIManagerModule import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI import com.revenuecat.purchases.ui.revenuecatui.fonts.CustomFontProvider @@ -55,9 +56,9 @@ internal class PaywallFooterViewManager : BasePaywallViewManager + view.setPaywallListener(createPaywallListenerWrapper(themedReactContext, view)) + view.setDismissHandler(getDismissHandler(themedReactContext, view)) } } diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallViewManager.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallViewManager.kt index 261057ef..2ca767d2 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallViewManager.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallViewManager.kt @@ -5,6 +5,7 @@ import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIP import com.revenuecat.purchases.ui.revenuecatui.fonts.CustomFontProvider import com.revenuecat.purchases.ui.revenuecatui.views.PaywallView + @OptIn(ExperimentalPreviewRevenueCatUIPurchasesAPI::class) internal class PaywallViewManager : BasePaywallViewManager() { @@ -17,9 +18,9 @@ internal class PaywallViewManager : BasePaywallViewManager() { } override fun createViewInstance(themedReactContext: ThemedReactContext): PaywallView { - return PaywallView(themedReactContext).also { - it.setPaywallListener(createPaywallListenerWrapper(themedReactContext, it)) - it.setDismissHandler(getDismissHandler(themedReactContext, it)) + return PaywallView(themedReactContext).also { view -> + view.setPaywallListener(createPaywallListenerWrapper(themedReactContext, view)) + view.setDismissHandler(getDismissHandler(themedReactContext, view)) } } diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/ViewExtensions.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/ViewExtensions.kt new file mode 100644 index 00000000..d1ded1e2 --- /dev/null +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/ViewExtensions.kt @@ -0,0 +1,7 @@ +package com.revenuecat.purchases.react.ui + +import android.view.View +import com.facebook.react.uimanager.UIManagerHelper + +internal val View.surfaceId + get() = UIManagerHelper.getSurfaceId(this) diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt index ccaad78b..13c6a086 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt @@ -1,9 +1,13 @@ package com.revenuecat.purchases.react.ui.events +import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnDismissEvent : PaywallEvent() { +class OnDismissEvent( + surfaceId: Int, + viewTag: Int, +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_DISMISS - override fun getPayload() = null + override fun getPayload(): Map> = emptyMap() } diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt index fb85dc32..761b3c1f 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt @@ -1,9 +1,13 @@ package com.revenuecat.purchases.react.ui.events +import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnPurchaseCancelledEvent : PaywallEvent() { +class OnPurchaseCancelledEvent( + surfaceId: Int, + viewTag: Int, +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_CANCELLED - override fun getPayload() = null + override fun getPayload(): Map> = emptyMap() } diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt index 230bc438..cbbb7a40 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt @@ -4,9 +4,11 @@ import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName class OnPurchaseCompletedEvent( + surfaceId: Int, + viewTag: Int, private val customerInfo: Map, private val storeTransaction: Map -) : PaywallEvent() { +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_COMPLETED override fun getPayload() = mapOf( diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt index dc8cc8b3..1e0f3689 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt @@ -4,8 +4,10 @@ import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName class OnPurchaseErrorEvent( + surfaceId: Int, + viewTag: Int, private val error: Map -) : PaywallEvent() { +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_ERROR override fun getPayload() = mapOf(PaywallEventKey.ERROR to error) diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt index 680df941..9366538f 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt @@ -4,8 +4,10 @@ import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName class OnPurchaseStartedEvent( + surfaceId: Int, + viewTag: Int, private val packageMap: Map -) : PaywallEvent() { +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_STARTED override fun getPayload() = mapOf( diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt index 03f70f60..b49a3643 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt @@ -4,8 +4,10 @@ import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName class OnRestoreCompletedEvent( + surfaceId: Int, + viewTag: Int, private val customerInfo: Map, -) : PaywallEvent() { +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_COMPLETED override fun getPayload() = mapOf(PaywallEventKey.CUSTOMER_INFO to customerInfo) diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt index 8a6cf6a7..188b8c4b 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt @@ -4,8 +4,10 @@ import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName class OnRestoreErrorEvent( + surfaceId: Int, + viewTag: Int, private val error: Map -) : PaywallEvent() { +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_ERROR override fun getPayload() = mapOf(PaywallEventKey.ERROR to error) diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt index 3d1bf712..71462527 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt @@ -1,9 +1,13 @@ package com.revenuecat.purchases.react.ui.events +import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnRestoreStartedEvent : PaywallEvent() { +class OnRestoreStartedEvent( + surfaceId: Int, + viewTag: Int, +) : PaywallEvent(surfaceId, viewTag) { override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_STARTED - override fun getPayload() = null + override fun getPayload(): Map> = emptyMap() } diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt index 5c48928a..fd0ff49a 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt @@ -7,18 +7,21 @@ import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName import com.revenuecat.purchases.react.ui.RNPurchasesConverters -abstract class PaywallEvent : Event>() { +abstract class PaywallEvent( + surfaceId: Int, + viewTag: Int, +) : Event>(surfaceId, viewTag) { abstract fun getPaywallEventName(): PaywallEventName - abstract fun getPayload(): Map>? + abstract fun getPayload(): Map> override fun getEventName(): String { return getPaywallEventName().eventName } - override fun getEventData(): WritableMap? { - val convertedPayload = getPayload()?.let { payload -> + override fun getEventData(): WritableMap { + val convertedPayload = getPayload().let { payload -> WritableNativeMap().apply { payload.forEach { (key, value) -> putMap(key.key, RNPurchasesConverters.convertMapToWriteableMap(value)) From 8ec1cd26ff18e98d23cced86325147e91d36eed9 Mon Sep 17 00:00:00 2001 From: Cesar de la Vega Date: Wed, 27 Mar 2024 12:40:13 +0100 Subject: [PATCH 4/5] defer accessing the id --- .../react/ui/BasePaywallViewManager.kt | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt index 910f8da4..6751bbf7 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt @@ -86,15 +86,13 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( themedReactContext: ThemedReactContext, view: View ) = object : PaywallListenerWrapper() { - private val surfaceId = view.surfaceId - private val viewId = view.id - override fun onPurchaseStarted(rcPackage: Map) { val event = OnPurchaseStartedEvent( - surfaceId = surfaceId, - viewTag = viewId, rcPackage + surfaceId = view.surfaceId, + viewTag = view.id, + rcPackage ) - emitEvent(themedReactContext, viewId, event) + emitEvent(themedReactContext, view.id, event) } override fun onPurchaseCompleted( @@ -102,55 +100,55 @@ internal abstract class BasePaywallViewManager : SimpleViewManager( storeTransaction: Map ) { val event = OnPurchaseCompletedEvent( - surfaceId = surfaceId, - viewTag = viewId, + surfaceId = view.surfaceId, + viewTag = view.id, customerInfo, storeTransaction ) - emitEvent(themedReactContext, viewId, event) + emitEvent(themedReactContext, view.id, event) } override fun onPurchaseError(error: Map) { val event = OnPurchaseErrorEvent( - surfaceId = surfaceId, - viewTag = viewId, + surfaceId = view.surfaceId, + viewTag = view.id, error ) - emitEvent(themedReactContext, viewId, event) + emitEvent(themedReactContext, view.id, event) } override fun onPurchaseCancelled() { val event = OnPurchaseCancelledEvent( - surfaceId = surfaceId, - viewTag = viewId, + surfaceId = view.surfaceId, + viewTag = view.id, ) - emitEvent(themedReactContext, viewId, event) + emitEvent(themedReactContext, view.id, event) } override fun onRestoreStarted() { val event = OnRestoreStartedEvent( - surfaceId = surfaceId, - viewTag = viewId, + surfaceId = view.surfaceId, + viewTag = view.id, ) - emitEvent(themedReactContext, viewId, event) + emitEvent(themedReactContext, view.id, event) } override fun onRestoreCompleted(customerInfo: Map) { val event = OnRestoreCompletedEvent( - surfaceId = surfaceId, - viewTag = viewId, + surfaceId = view.surfaceId, + viewTag = view.id, customerInfo, ) - emitEvent(themedReactContext, viewId, event) + emitEvent(themedReactContext, view.id, event) } override fun onRestoreError(error: Map) { val event = OnRestoreErrorEvent( - surfaceId = surfaceId, - viewTag = viewId, + surfaceId = view.surfaceId, + viewTag = view.id, error, ) - emitEvent(themedReactContext, viewId, event) + emitEvent(themedReactContext, view.id, event) } } From 5904934b6cf040ce20a25be4c0c2f14156f4626b Mon Sep 17 00:00:00 2001 From: Cesar de la Vega Date: Wed, 27 Mar 2024 14:23:25 +0100 Subject: [PATCH 5/5] PR comments --- .../com/revenuecat/purchases/react/ui/PaywallEventName.kt | 4 ++-- .../revenuecat/purchases/react/ui/PaywallFooterViewManager.kt | 1 - .../revenuecat/purchases/react/ui/events/OnDismissEvent.kt | 2 +- .../purchases/react/ui/events/OnPurchaseCancelledEvent.kt | 2 +- .../purchases/react/ui/events/OnPurchaseCompletedEvent.kt | 2 +- .../purchases/react/ui/events/OnPurchaseErrorEvent.kt | 2 +- .../purchases/react/ui/events/OnPurchaseStartedEvent.kt | 2 +- .../purchases/react/ui/events/OnRestoreCompletedEvent.kt | 2 +- .../purchases/react/ui/events/OnRestoreErrorEvent.kt | 2 +- .../purchases/react/ui/events/OnRestoreStartedEvent.kt | 2 +- .../com/revenuecat/purchases/react/ui/events/PaywallEvent.kt | 2 +- 11 files changed, 11 insertions(+), 12 deletions(-) diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEventName.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEventName.kt index de80829b..9fcc15c9 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEventName.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallEventName.kt @@ -1,6 +1,6 @@ package com.revenuecat.purchases.react.ui -enum class PaywallEventName(val eventName: String) { +internal enum class PaywallEventName(val eventName: String) { ON_PURCHASE_STARTED("onPurchaseStarted"), ON_PURCHASE_COMPLETED("onPurchaseCompleted"), ON_PURCHASE_ERROR("onPurchaseError"), @@ -11,7 +11,7 @@ enum class PaywallEventName(val eventName: String) { ON_DISMISS("onDismiss"); } -enum class PaywallEventKey(val key: String) { +internal enum class PaywallEventKey(val key: String) { PACKAGE("packageBeingPurchased"), CUSTOMER_INFO("customerInfo"), STORE_TRANSACTION("storeTransaction"), diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt index d346e24e..f76b813a 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt @@ -2,7 +2,6 @@ package com.revenuecat.purchases.react.ui import androidx.core.view.children import com.facebook.react.uimanager.ThemedReactContext -import com.facebook.react.uimanager.UIManagerHelper import com.facebook.react.uimanager.UIManagerModule import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI import com.revenuecat.purchases.ui.revenuecatui.fonts.CustomFontProvider diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt index 13c6a086..d31e6e47 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnDismissEvent( +internal class OnDismissEvent( surfaceId: Int, viewTag: Int, ) : PaywallEvent(surfaceId, viewTag) { diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt index 761b3c1f..a8f687a1 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnPurchaseCancelledEvent( +internal class OnPurchaseCancelledEvent( surfaceId: Int, viewTag: Int, ) : PaywallEvent(surfaceId, viewTag) { diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt index cbbb7a40..b9826405 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnPurchaseCompletedEvent( +internal class OnPurchaseCompletedEvent( surfaceId: Int, viewTag: Int, private val customerInfo: Map, diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt index 1e0f3689..3993fc4f 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnPurchaseErrorEvent( +internal class OnPurchaseErrorEvent( surfaceId: Int, viewTag: Int, private val error: Map diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt index 9366538f..c594bbef 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnPurchaseStartedEvent( +internal class OnPurchaseStartedEvent( surfaceId: Int, viewTag: Int, private val packageMap: Map diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt index b49a3643..b170d184 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnRestoreCompletedEvent( +internal class OnRestoreCompletedEvent( surfaceId: Int, viewTag: Int, private val customerInfo: Map, diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt index 188b8c4b..55ae1064 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnRestoreErrorEvent( +internal class OnRestoreErrorEvent( surfaceId: Int, viewTag: Int, private val error: Map diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt index 71462527..86dcec34 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt @@ -3,7 +3,7 @@ package com.revenuecat.purchases.react.ui.events import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName -class OnRestoreStartedEvent( +internal class OnRestoreStartedEvent( surfaceId: Int, viewTag: Int, ) : PaywallEvent(surfaceId, viewTag) { diff --git a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt index fd0ff49a..1f5ee300 100644 --- a/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt +++ b/react-native-purchases-ui/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt @@ -7,7 +7,7 @@ import com.revenuecat.purchases.react.ui.PaywallEventKey import com.revenuecat.purchases.react.ui.PaywallEventName import com.revenuecat.purchases.react.ui.RNPurchasesConverters -abstract class PaywallEvent( +internal abstract class PaywallEvent( surfaceId: Int, viewTag: Int, ) : Event>(surfaceId, viewTag) {