Fix crash loop when writing invalid currency .

This commit is contained in:
Alex Hart
2024-06-13 18:03:20 -03:00
committed by GitHub
parent 71979b34db
commit cb171092cf
16 changed files with 63 additions and 40 deletions

View File

@@ -245,7 +245,7 @@ internal class DonationsValues internal constructor(store: KeyValueStore) : Sign
} else {
InAppPaymentSubscriberRecord(
SubscriberId.fromBytes(subscriberIdBytes),
currencyCode,
currency,
InAppPaymentSubscriberRecord.Type.DONATION,
shouldCancelSubscriptionBeforeNextSubscribeAttempt,
getSubscriptionPaymentSourceType().toPaymentMethodType()
@@ -253,19 +253,19 @@ internal class DonationsValues internal constructor(store: KeyValueStore) : Sign
}
}
fun setSubscriberCurrency(currencyCode: String, type: InAppPaymentSubscriberRecord.Type) {
fun setSubscriberCurrency(currency: Currency, type: InAppPaymentSubscriberRecord.Type) {
if (type == InAppPaymentSubscriberRecord.Type.DONATION) {
store.beginWrite()
.putString(KEY_DONATION_SUBSCRIPTION_CURRENCY_CODE, currencyCode)
.putString(KEY_DONATION_SUBSCRIPTION_CURRENCY_CODE, currency.currencyCode)
.apply()
recurringDonationCurrencyPublisher.onNext(Currency.getInstance(currencyCode))
recurringDonationCurrencyPublisher.onNext(currency)
} else {
store.beginWrite()
.putString(KEY_BACKUPS_SUBSCRIPTION_CURRENCY_CODE, currencyCode)
.putString(KEY_BACKUPS_SUBSCRIPTION_CURRENCY_CODE, currency.currencyCode)
.apply()
recurringBackupCurrencyPublisher.onNext(Currency.getInstance(currencyCode))
recurringBackupCurrencyPublisher.onNext(currency)
}
}