mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-16 11:16:12 -04:00
Better merging of purchase data emissions
This commit is contained in:
+6
-6
@@ -18,12 +18,12 @@ data class BillingClientConnection(
|
|||||||
private val purchasesGlobal: Flow<Collection<Purchase>>,
|
private val purchasesGlobal: Flow<Collection<Purchase>>,
|
||||||
) {
|
) {
|
||||||
private val purchasesLocal = MutableStateFlow<Collection<Purchase>>(emptySet())
|
private val purchasesLocal = MutableStateFlow<Collection<Purchase>>(emptySet())
|
||||||
val purchases: Flow<Collection<Purchase>> = combine(
|
val purchases: Flow<Collection<Purchase>> = combine(purchasesGlobal, purchasesLocal) { global, local ->
|
||||||
purchasesGlobal,
|
val combined = mutableMapOf<String, Purchase>()
|
||||||
purchasesLocal
|
global.plus(local).toSet().sortedByDescending { it.purchaseTime }.forEach { purchase ->
|
||||||
) { global, local ->
|
combined[purchase.orderId] = purchase
|
||||||
// TODO how to prevent duplicates?
|
}
|
||||||
global.plus(local)
|
combined.values
|
||||||
}
|
}
|
||||||
.setupCommonEventHandlers(TAG) { "purchases" }
|
.setupCommonEventHandlers(TAG) { "purchases" }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user