From 6315c4e2e83c76e9d7e70effeba60dd22a1d5584 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 6 Dec 2024 10:28:21 -0400 Subject: [PATCH] Display descriptive error using payment data instead of generic error. --- .../settings/app/subscription/InAppPaymentsRepository.kt | 1 + .../app/subscription/OneTimeInAppPaymentRepository.kt | 5 +++-- .../app/subscription/RecurringInAppPaymentRepository.kt | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt index 0a492a4c05..4d8c60a8a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt @@ -154,6 +154,7 @@ object InAppPaymentsRepository { return Completable.fromAction { val inAppPayment = SignalDatabase.inAppPayments.getById(inAppPaymentId)!! if (inAppPayment.data.error == null) { + Log.d(TAG, "Setting error on InAppPayment[$inAppPaymentId]") SignalDatabase.inAppPayments.update( inAppPayment.copy( notified = false, diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt index f6e2edbab1..526e070323 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt @@ -9,6 +9,7 @@ import org.signal.donations.PaymentSourceType import org.thoughtcrime.securesms.badges.models.Badge import org.thoughtcrime.securesms.components.settings.app.subscription.DonationSerializationHelper.toFiatMoney import org.thoughtcrime.securesms.components.settings.app.subscription.boost.Boost +import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentError import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError.BadgeRedemptionError import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationErrorSource @@ -137,8 +138,8 @@ class OneTimeInAppPaymentRepository(private val donationsService: DonationsServi }.take(1).firstOrError().timeout(10, TimeUnit.SECONDS, Single.error(timeoutError)) }.map { if (it.data.error != null) { - Log.d(TAG, "Failure during redemption chain.", true) - throw DonationError.genericBadgeRedemptionFailure(DonationErrorSource.MONTHLY) + Log.d(TAG, "Failure during redemption chain: ${it.data.error}", true) + throw InAppPaymentError(it.data.error) } it }.ignoreElement() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt index df3e57325a..9f812dd487 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.badges.Badges import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository.requireSubscriberType import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository.toErrorSource import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository.toPaymentSourceType -import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError +import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentError import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError.BadgeRedemptionError import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.SignalDatabase @@ -247,7 +247,7 @@ object RecurringInAppPaymentRepository { }.take(1).map { if (it.data.error != null) { Log.d(TAG, "Failure during redemption chain: ${it.data.error}", true) - throw DonationError.genericBadgeRedemptionFailure(errorSource) + throw InAppPaymentError(it.data.error) } it }.firstOrError()