diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListPageFragment.kt index e12464b226..48fbc8dbc1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListPageFragment.kt @@ -74,6 +74,7 @@ class DonationReceiptListPageFragment : Fragment(R.layout.donation_receipt_list_ private fun getBadgeForRecord(record: DonationReceiptRecord, badges: List): Badge? { return when (record.type) { 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 } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt index 371d92b9c6..31615240bc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt @@ -1,9 +1,9 @@ package org.thoughtcrime.securesms.components.settings.app.subscription.receipts.list import io.reactivex.rxjava3.core.Single -import io.reactivex.rxjava3.schedulers.Schedulers import org.thoughtcrime.securesms.badges.Badges 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.database.model.DonationReceiptRecord import org.thoughtcrime.securesms.dependencies.ApplicationDependencies @@ -11,35 +11,25 @@ import java.util.Locale class DonationReceiptListRepository { fun getBadges(): Single> { - val boostBadges: Single> = Single - .fromCallable { - ApplicationDependencies.getDonationsService() - .getDonationsConfiguration(Locale.getDefault()) - } - .map { response -> - if (response.result.isPresent) { - listOf(DonationReceiptBadge(DonationReceiptRecord.Type.BOOST, -1, response.result.get().getBoostBadges().first())) - } else { - emptyList() + return Single.fromCallable { + ApplicationDependencies.getDonationsService() + .getDonationsConfiguration(Locale.getDefault()) + }.map { response -> + if (response.result.isPresent) { + val config = response.result.get() + val boostBadge = DonationReceiptBadge(DonationReceiptRecord.Type.BOOST, -1, config.getBoostBadges().first()) + val giftBadge = DonationReceiptBadge(DonationReceiptRecord.Type.GIFT, -1, config.getGiftBadges().first()) + val subBadges = config.getSubscriptionLevels().map { + DonationReceiptBadge( + level = it.key, + badge = Badges.fromServiceBadge(it.value.badge), + type = DonationReceiptRecord.Type.RECURRING + ) } + subBadges + boostBadge + giftBadge + } else { + emptyList() } - - val subBadges: Single> = 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()) + } } }