Skip to content

Commit 060e732

Browse files
committed
Android working
adding additional params to ARS and VIAP , is working!
1 parent cc2c523 commit 060e732

2 files changed

Lines changed: 16 additions & 29 deletions

File tree

android/src/main/includeConnector/com/appsflyer/reactnative/ConnectorWrapper.kt

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import com.appsflyer.internal.models.InAppPurchaseValidationResult
88
import com.appsflyer.internal.models.SubscriptionPurchase
99
import com.appsflyer.internal.models.SubscriptionValidationResult
1010
import com.appsflyer.internal.models.ValidationFailureData
11-
import com.appsflyer.internal.models.SubscriptionPurchaseEvent
12-
import com.appsflyer.internal.models.InAppPurchaseEvent
1311

1412
/**
1513
* A connector class that wraps the Android purchase connector client.
@@ -34,6 +32,9 @@ class ConnectorWrapper(
3432
inAppListener: MappedValidationResultListener,
3533
) :
3634
PurchaseClient {
35+
private var subscriptionDataSource: Map<String, Any> = mapOf()
36+
private var inAppDataSource: Map<String, Any> = mapOf()
37+
3738
private val connector =
3839
PurchaseClient.Builder(context, Store.GOOGLE)
3940
.setSandbox(sandbox)
@@ -57,6 +58,8 @@ class ConnectorWrapper(
5758
inAppListener.onFailure(result, error)
5859
}
5960
})
61+
.setSubscriptionPurchaseEventDataSource(PurchaseClient.SubscriptionPurchaseEventDataSource { _ -> subscriptionDataSource })
62+
.setInAppPurchaseEventDataSource(PurchaseClient.InAppPurchaseEventDataSource { _ -> inAppDataSource })
6063
.build()
6164

6265
/**
@@ -73,30 +76,22 @@ class ConnectorWrapper(
7376
* Sets the data source for subscription purchase events.
7477
* This allows adding additional parameters to subscription purchase events.
7578
*
76-
* @param dataSource A function that returns additional parameters for subscription purchases
79+
* @param dataSource A map of additional parameters for subscription purchases
7780
*/
78-
fun setSubscriptionPurchaseEventDataSource(dataSource: (List<SubscriptionPurchaseEvent>) -> Map<String, Any>) {
79-
connector.setSubscriptionPurchaseEventDataSource(object : PurchaseClient.SubscriptionPurchaseEventDataSource {
80-
override fun onNewPurchases(purchaseEvents: List<SubscriptionPurchaseEvent>): Map<String, Any> {
81-
return dataSource(purchaseEvents)
82-
}
83-
})
81+
fun setSubscriptionPurchaseEventDataSource(dataSource: Map<String, Any>) {
82+
subscriptionDataSource = dataSource
8483
}
8584

8685
/**
8786
* Sets the data source for in-app purchase events.
8887
* This allows adding additional parameters to in-app purchase events.
8988
*
90-
* @param dataSource A function that returns additional parameters for in-app purchases
89+
* @param dataSource A map of additional parameters for in-app purchases
9190
*/
92-
fun setInAppPurchaseEventDataSource(dataSource: (List<InAppPurchaseEvent>) -> Map<String, Any>) {
93-
connector.setInAppPurchaseEventDataSource(object : PurchaseClient.InAppPurchaseEventDataSource {
94-
override fun onNewPurchases(purchaseEvents: List<InAppPurchaseEvent>): Map<String, Any> {
95-
return dataSource(purchaseEvents)
96-
}
97-
})
91+
fun setInAppPurchaseEventDataSource(dataSource: Map<String, Any>) {
92+
inAppDataSource = dataSource
9893
}
99-
94+
10095
/**
10196
* Converts [SubscriptionPurchase] to a Json map, which then is delivered to SDK's method response.
10297
*

android/src/main/includeConnector/com/appsflyer/reactnative/PCAppsFlyerModule.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,11 @@ public void create(ReadableMap config) {
8383

8484
// Set up the data sources if they were previously set
8585
if (subscriptionPurchaseParams != null) {
86-
connectorWrapper.setSubscriptionPurchaseEventDataSource(purchaseEvents -> {
87-
return subscriptionPurchaseParams;
88-
});
86+
connectorWrapper.setSubscriptionPurchaseEventDataSource(subscriptionPurchaseParams);
8987
}
9088

9189
if (inAppPurchaseParams != null) {
92-
connectorWrapper.setInAppPurchaseEventDataSource(purchaseEvents -> {
93-
return inAppPurchaseParams;
94-
});
90+
connectorWrapper.setInAppPurchaseEventDataSource(inAppPurchaseParams);
9591
}
9692

9793
Log.d(TAG, "The Purchase Connector initiated successfully.");
@@ -136,9 +132,7 @@ public void setSubscriptionPurchaseEventDataSource(ReadableMap dataSource) {
136132
return;
137133
}
138134
subscriptionPurchaseParams = RNUtil.toMap(dataSource);
139-
connectorWrapper.setSubscriptionPurchaseEventDataSource(purchaseEvents -> {
140-
return subscriptionPurchaseParams;
141-
});
135+
connectorWrapper.setSubscriptionPurchaseEventDataSource(subscriptionPurchaseParams);
142136
}
143137

144138
@ReactMethod
@@ -157,9 +151,7 @@ public void setInAppPurchaseEventDataSource(ReadableMap dataSource) {
157151
return;
158152
}
159153
inAppPurchaseParams = RNUtil.toMap(dataSource);
160-
connectorWrapper.setInAppPurchaseEventDataSource(purchaseEvents -> {
161-
return inAppPurchaseParams;
162-
});
154+
connectorWrapper.setInAppPurchaseEventDataSource(inAppPurchaseParams);
163155
}
164156

165157
// Initialization of the ARSListener

0 commit comments

Comments
 (0)