Fix issue where gift receipt showed boost badge.

main
Alex Hart 2022-12-08 13:45:44 -04:00
rodzic c85c4c5020
commit 011dd2d973
2 zmienionych plików z 20 dodań i 29 usunięć

Wyświetl plik

@ -74,6 +74,7 @@ class DonationReceiptListPageFragment : Fragment(R.layout.donation_receipt_list_
private fun getBadgeForRecord(record: DonationReceiptRecord, badges: List<DonationReceiptBadge>): Badge? { private fun getBadgeForRecord(record: DonationReceiptRecord, badges: List<DonationReceiptBadge>): Badge? {
return when (record.type) { return when (record.type) {
DonationReceiptRecord.Type.BOOST -> badges.firstOrNull { it.type == DonationReceiptRecord.Type.BOOST }?.badge DonationReceiptRecord.Type.BOOST -> badges.firstOrNull { it.type == DonationReceiptRecord.Type.BOOST }?.badge
DonationReceiptRecord.Type.GIFT -> badges.firstOrNull { it.type == DonationReceiptRecord.Type.GIFT }?.badge
else -> badges.firstOrNull { it.level == record.subscriptionLevel }?.badge else -> badges.firstOrNull { it.level == record.subscriptionLevel }?.badge
} }
} }

Wyświetl plik

@ -1,9 +1,9 @@
package org.thoughtcrime.securesms.components.settings.app.subscription.receipts.list package org.thoughtcrime.securesms.components.settings.app.subscription.receipts.list
import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.schedulers.Schedulers
import org.thoughtcrime.securesms.badges.Badges import org.thoughtcrime.securesms.badges.Badges
import org.thoughtcrime.securesms.components.settings.app.subscription.getBoostBadges import org.thoughtcrime.securesms.components.settings.app.subscription.getBoostBadges
import org.thoughtcrime.securesms.components.settings.app.subscription.getGiftBadges
import org.thoughtcrime.securesms.components.settings.app.subscription.getSubscriptionLevels import org.thoughtcrime.securesms.components.settings.app.subscription.getSubscriptionLevels
import org.thoughtcrime.securesms.database.model.DonationReceiptRecord import org.thoughtcrime.securesms.database.model.DonationReceiptRecord
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
@ -11,35 +11,25 @@ import java.util.Locale
class DonationReceiptListRepository { class DonationReceiptListRepository {
fun getBadges(): Single<List<DonationReceiptBadge>> { fun getBadges(): Single<List<DonationReceiptBadge>> {
val boostBadges: Single<List<DonationReceiptBadge>> = Single return Single.fromCallable {
.fromCallable { ApplicationDependencies.getDonationsService()
ApplicationDependencies.getDonationsService() .getDonationsConfiguration(Locale.getDefault())
.getDonationsConfiguration(Locale.getDefault()) }.map { response ->
} if (response.result.isPresent) {
.map { response -> val config = response.result.get()
if (response.result.isPresent) { val boostBadge = DonationReceiptBadge(DonationReceiptRecord.Type.BOOST, -1, config.getBoostBadges().first())
listOf(DonationReceiptBadge(DonationReceiptRecord.Type.BOOST, -1, response.result.get().getBoostBadges().first())) val giftBadge = DonationReceiptBadge(DonationReceiptRecord.Type.GIFT, -1, config.getGiftBadges().first())
} else { val subBadges = config.getSubscriptionLevels().map {
emptyList() DonationReceiptBadge(
level = it.key,
badge = Badges.fromServiceBadge(it.value.badge),
type = DonationReceiptRecord.Type.RECURRING
)
} }
subBadges + boostBadge + giftBadge
} else {
emptyList()
} }
}
val subBadges: Single<List<DonationReceiptBadge>> = Single
.fromCallable { ApplicationDependencies.getDonationsService().getDonationsConfiguration(Locale.getDefault()) }
.map { response ->
if (response.result.isPresent) {
response.result.get().getSubscriptionLevels().map {
DonationReceiptBadge(
level = it.key,
badge = Badges.fromServiceBadge(it.value.badge),
type = DonationReceiptRecord.Type.RECURRING
)
}
} else {
emptyList()
}
}
return boostBadges.zipWith(subBadges) { a, b -> a + b }.subscribeOn(Schedulers.io())
} }
} }