mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-16 19:26:12 -04:00
Update billing client
This commit is contained in:
@@ -145,6 +145,6 @@ dependencies {
|
|||||||
|
|
||||||
addTesting()
|
addTesting()
|
||||||
|
|
||||||
"gplayImplementation"("com.android.billingclient:billing:5.1.0")
|
"gplayImplementation"("com.android.billingclient:billing:6.0.1")
|
||||||
"gplayImplementation"("com.android.billingclient:billing-ktx:5.1.0")
|
"gplayImplementation"("com.android.billingclient:billing-ktx:6.0.1")
|
||||||
}
|
}
|
||||||
+16
-6
@@ -1,7 +1,13 @@
|
|||||||
package eu.darken.capod.common.upgrade.core.client
|
package eu.darken.capod.common.upgrade.core.client
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import com.android.billingclient.api.*
|
import com.android.billingclient.api.AcknowledgePurchaseParams
|
||||||
|
import com.android.billingclient.api.BillingClient
|
||||||
|
import com.android.billingclient.api.BillingFlowParams
|
||||||
|
import com.android.billingclient.api.BillingResult
|
||||||
|
import com.android.billingclient.api.ProductDetails
|
||||||
|
import com.android.billingclient.api.Purchase
|
||||||
|
import com.android.billingclient.api.QueryProductDetailsParams
|
||||||
import eu.darken.capod.common.debug.logging.Logging.Priority.INFO
|
import eu.darken.capod.common.debug.logging.Logging.Priority.INFO
|
||||||
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
|
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
|
||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
@@ -20,11 +26,15 @@ data class BillingClientConnection(
|
|||||||
) {
|
) {
|
||||||
private val purchasesLocal = MutableStateFlow<Collection<Purchase>>(emptySet())
|
private val purchasesLocal = MutableStateFlow<Collection<Purchase>>(emptySet())
|
||||||
val purchases: Flow<Collection<Purchase>> = combine(purchasesGlobal, purchasesLocal) { global, local ->
|
val purchases: Flow<Collection<Purchase>> = combine(purchasesGlobal, purchasesLocal) { global, local ->
|
||||||
val combined = mutableMapOf<String, Purchase>()
|
val combined = mutableSetOf<Purchase>()
|
||||||
global.plus(local).toSet().sortedByDescending { it.purchaseTime }.forEach { purchase ->
|
|
||||||
combined[purchase.orderId] = purchase
|
combined.addAll(local)
|
||||||
}
|
|
||||||
combined.values
|
global
|
||||||
|
.let { purchases -> purchases.filter { it.purchaseState == Purchase.PurchaseState.PURCHASED } }
|
||||||
|
.let { combined.addAll(it) }
|
||||||
|
|
||||||
|
combined.sortedByDescending { it.purchaseTime }
|
||||||
}
|
}
|
||||||
.setupCommonEventHandlers(TAG) { "purchases" }
|
.setupCommonEventHandlers(TAG) { "purchases" }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user