kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix issue where gift receipt showed boost badge.
rodzic
c85c4c5020
commit
011dd2d973
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue