diff --git a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt index 9a6c82ea..0d524f20 100644 --- a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt +++ b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt @@ -18,12 +18,12 @@ data class BillingClientConnection( private val purchasesGlobal: Flow>, ) { private val purchasesLocal = MutableStateFlow>(emptySet()) - val purchases: Flow> = combine( - purchasesGlobal, - purchasesLocal - ) { global, local -> - // TODO how to prevent duplicates? - global.plus(local) + val purchases: Flow> = combine(purchasesGlobal, purchasesLocal) { global, local -> + val combined = mutableMapOf() + global.plus(local).toSet().sortedByDescending { it.purchaseTime }.forEach { purchase -> + combined[purchase.orderId] = purchase + } + combined.values } .setupCommonEventHandlers(TAG) { "purchases" }