@@ -10,6 +10,7 @@ import ir.cafebazaar.poolakey.entity.PurchaseInfo
1010import ir.cafebazaar.poolakey.entity.SkuDetails
1111import ir.cafebazaar.poolakey.entity.TrialSubscriptionInfo
1212import ir.cafebazaar.poolakey.request.PurchaseRequest
13+ import ir.cafebazaar.poolakey.rxbase.exception.PurchaseCanceledException
1314
1415/* *
1516 * You have to use this function to connect to the In-App Billing service. Note that you have to
@@ -38,15 +39,17 @@ fun Payment.connect(): Observable<Connection> {
3839 * @see subscribeProduct
3940 * @param registry We use this activityResultRegistry instance to actually start Bazaar's payment activity.
4041 * @param request This contains some information about the product that we are going to purchase.
41- * @return Completable that you can subscribe to it and it gets completed when purchase flow begins .
42+ * @return Single that you can subscribe to it and get the PurchaseInfo .
4243 */
4344fun Payment.purchaseProduct (
4445 registry : ActivityResultRegistry ,
4546 request : PurchaseRequest
46- ): Completable {
47- return Completable .create { emitter ->
47+ ): Single < PurchaseInfo > {
48+ return Single .create { emitter ->
4849 purchaseProduct(registry, request) {
49- purchaseFlowBegan { emitter.onComplete() }
50+ purchaseSucceed { emitter.onSuccess(it) }
51+ purchaseCanceled { emitter.onError(PurchaseCanceledException ()) }
52+ purchaseFailed { emitter.onError(it) }
5053 failedToBeginFlow { emitter.onError(it) }
5154 }
5255 }
@@ -77,15 +80,17 @@ fun Payment.consumeProduct(purchaseToken: String): Completable {
7780 * @see purchaseProduct
7881 * @param registry We use this activityResultRegistry instance to actually start Bazaar's payment activity.
7982 * @param request This contains some information about the product that we are going to subscribe.
80- * @return Completable that you can subscribe to it and it gets completed when purchase flow begins .
83+ * @return Single that you can subscribe to it and get the PurchaseInfo .
8184 */
8285fun Payment.subscribeProduct (
8386 registry : ActivityResultRegistry ,
8487 request : PurchaseRequest
85- ): Completable {
86- return Completable .create { emitter ->
88+ ): Single < PurchaseInfo > {
89+ return Single .create { emitter ->
8790 subscribeProduct(registry, request) {
88- purchaseFlowBegan { emitter.onComplete() }
91+ purchaseSucceed { emitter.onSuccess(it) }
92+ purchaseCanceled { emitter.onError(PurchaseCanceledException ()) }
93+ purchaseFailed { emitter.onError(it) }
8994 failedToBeginFlow { emitter.onError(it) }
9095 }
9196 }
0 commit comments