@@ -5,6 +5,7 @@ import android.app.Application
5
5
import android.os.Handler
6
6
import android.os.Looper
7
7
import androidx.lifecycle.ProcessLifecycleOwner
8
+ import com.android.billingclient.api.Purchase
8
9
import com.qonversion.android.sdk.Qonversion
9
10
import com.qonversion.android.sdk.automations.internal.QAutomationsManager
10
11
import com.qonversion.android.sdk.dto.QAttributionProvider
@@ -37,6 +38,7 @@ import com.qonversion.android.sdk.listeners.QonversionRemoteConfigCallback
37
38
import com.qonversion.android.sdk.listeners.QonversionEligibilityCallback
38
39
import com.qonversion.android.sdk.listeners.QonversionUserCallback
39
40
import com.qonversion.android.sdk.listeners.QEntitlementsUpdateListener
41
+ import com.qonversion.android.sdk.listeners.QonversionPurchaseCallback
40
42
import com.qonversion.android.sdk.listeners.QonversionRemoteConfigListCallback
41
43
import com.qonversion.android.sdk.listeners.QonversionRemoteConfigurationAttachCallback
42
44
import com.qonversion.android.sdk.listeners.QonversionUserPropertiesCallback
@@ -157,6 +159,7 @@ internal class QonversionInternal(
157
159
})
158
160
}
159
161
162
+ @Deprecated(" Use the new purchase() method" , replaceWith = ReplaceWith (" purchase(context, TODO(\" pass product here\" ), callback)" ))
160
163
override fun purchase (
161
164
context : Activity ,
162
165
purchaseModel : QPurchaseModel ,
@@ -165,7 +168,7 @@ internal class QonversionInternal(
165
168
productCenterManager.purchaseProduct(
166
169
context,
167
170
PurchaseModelInternal (purchaseModel),
168
- mainEntitlementsCallback (callback)
171
+ mainPurchaseCallback (callback)
169
172
)
170
173
}
171
174
@@ -178,7 +181,7 @@ internal class QonversionInternal(
178
181
productCenterManager.purchaseProduct(
179
182
context,
180
183
PurchaseModelInternal (product, options),
181
- mainEntitlementsCallback (callback)
184
+ mainPurchaseCallback (callback)
182
185
)
183
186
}
184
187
@@ -190,7 +193,7 @@ internal class QonversionInternal(
190
193
productCenterManager.purchaseProduct(
191
194
context,
192
195
PurchaseModelInternal (product),
193
- mainEntitlementsCallback (callback)
196
+ mainPurchaseCallback (callback)
194
197
)
195
198
}
196
199
@@ -203,10 +206,11 @@ internal class QonversionInternal(
203
206
productCenterManager.purchaseProduct(
204
207
context,
205
208
PurchaseModelInternal (product, options),
206
- mainEntitlementsCallback (callback)
209
+ mainPurchaseCallback (callback)
207
210
)
208
211
}
209
212
213
+ @Deprecated(" Use the new updatePurchase() method" , replaceWith = ReplaceWith (" updatePurchase(context, TODO(\" pass product here\" ), TODO(\" pass purchase options here\" ), callback)" ))
210
214
override fun updatePurchase (
211
215
context : Activity ,
212
216
purchaseUpdateModel : QPurchaseUpdateModel ,
@@ -215,7 +219,7 @@ internal class QonversionInternal(
215
219
productCenterManager.purchaseProduct(
216
220
context,
217
221
PurchaseModelInternal (purchaseUpdateModel),
218
- mainEntitlementsCallback (callback)
222
+ mainPurchaseCallback (callback)
219
223
)
220
224
}
221
225
@@ -395,6 +399,34 @@ internal class QonversionInternal(
395
399
postToMainThread { callback.onError(error) }
396
400
}
397
401
402
+ private fun mainPurchaseCallback (callback : QonversionEntitlementsCallback ): QonversionPurchaseCallback {
403
+ val purchaseCallback = if (callback is QonversionPurchaseCallback ) {
404
+ callback
405
+ } else {
406
+ object : QonversionPurchaseCallback {
407
+ override fun onSuccess (entitlements : Map <String , QEntitlement >) {
408
+ callback.onSuccess(entitlements)
409
+ }
410
+
411
+ override fun onError (error : QonversionError ) {
412
+ callback.onError(error)
413
+ }
414
+ }
415
+ }
416
+
417
+ return object : QonversionPurchaseCallback {
418
+ override fun onSuccess (entitlements : Map <String , QEntitlement >, purchase : Purchase ) {
419
+ postToMainThread { purchaseCallback.onSuccess(entitlements, purchase) }
420
+ }
421
+
422
+ override fun onSuccess (entitlements : Map <String , QEntitlement >) =
423
+ postToMainThread { purchaseCallback.onSuccess(entitlements) }
424
+
425
+ override fun onError (error : QonversionError ) =
426
+ postToMainThread { purchaseCallback.onError(error) }
427
+ }
428
+ }
429
+
398
430
private fun mainUserCallback (callback : QonversionUserCallback ): QonversionUserCallback =
399
431
object : QonversionUserCallback {
400
432
override fun onSuccess (user : QUser ) =
0 commit comments