Add additional logging around boost amounts.

This commit is contained in:
Alex Hart 2021-12-02 13:38:02 -04:00
parent d028165b51
commit 9434894dff
3 changed files with 15 additions and 4 deletions

View file

@ -86,11 +86,11 @@ class DonationPaymentRepository(activity: Activity) : StripeApi.PaymentIntentFet
} }
fun continuePayment(price: FiatMoney, paymentData: PaymentData): Completable { fun continuePayment(price: FiatMoney, paymentData: PaymentData): Completable {
Log.d(TAG, "Creating payment intent...", true) Log.d(TAG, "Creating payment intent for $price...", true)
return stripeApi.createPaymentIntent(price, application.getString(R.string.Boost__thank_you_for_your_donation)) return stripeApi.createPaymentIntent(price, application.getString(R.string.Boost__thank_you_for_your_donation))
.onErrorResumeNext { Single.error(DonationExceptions.SetupFailed(it)) } .onErrorResumeNext { Single.error(DonationExceptions.SetupFailed(it)) }
.flatMapCompletable { result -> .flatMapCompletable { result ->
Log.d(TAG, "Created payment intent.", true) Log.d(TAG, "Created payment intent for $price.", true)
when (result) { when (result) {
is StripeApi.CreatePaymentIntentResult.AmountIsTooSmall -> Completable.error(DonationExceptions.SetupFailed(Exception("Boost amount is too small"))) is StripeApi.CreatePaymentIntentResult.AmountIsTooSmall -> Completable.error(DonationExceptions.SetupFailed(Exception("Boost amount is too small")))
is StripeApi.CreatePaymentIntentResult.AmountIsTooLarge -> Completable.error(DonationExceptions.SetupFailed(Exception("Boost amount is too large"))) is StripeApi.CreatePaymentIntentResult.AmountIsTooLarge -> Completable.error(DonationExceptions.SetupFailed(Exception("Boost amount is too large")))
@ -277,7 +277,7 @@ class DonationPaymentRepository(activity: Activity) : StripeApi.PaymentIntentFet
} }
override fun fetchPaymentIntent(price: FiatMoney, description: String?): Single<StripeApi.PaymentIntent> { override fun fetchPaymentIntent(price: FiatMoney, description: String?): Single<StripeApi.PaymentIntent> {
Log.d(TAG, "Fetching payment intent from Signal service...") Log.d(TAG, "Fetching payment intent from Signal service for $price... (Locale.US minimum precision: ${price.minimumUnitPrecisionString})")
return ApplicationDependencies return ApplicationDependencies
.getDonationsService() .getDonationsService()
.createDonationIntentWithAmount(price.minimumUnitPrecisionString, price.currency.currencyCode, description) .createDonationIntentWithAmount(price.minimumUnitPrecisionString, price.currency.currencyCode, description)

View file

@ -179,8 +179,10 @@ class BoostViewModel(
store.update { it.copy(stage = BoostState.Stage.TOKEN_REQUEST) } store.update { it.copy(stage = BoostState.Stage.TOKEN_REQUEST) }
val boost = if (snapshot.isCustomAmountFocused) { val boost = if (snapshot.isCustomAmountFocused) {
Log.d(TAG, "Boosting with custom amount ${snapshot.customAmount}")
Boost(snapshot.customAmount) Boost(snapshot.customAmount)
} else { } else {
Log.d(TAG, "Boosting with preset amount ${snapshot.selectedBoost.price}")
snapshot.selectedBoost snapshot.selectedBoost
} }

View file

@ -62,7 +62,7 @@ public class FiatMoney {
NumberFormat formatter = NumberFormat.getInstance(Locale.US); NumberFormat formatter = NumberFormat.getInstance(Locale.US);
formatter.setMaximumFractionDigits(0); formatter.setMaximumFractionDigits(0);
formatter.setGroupingUsed(false); formatter.setGroupingUsed(false);
BigDecimal multiplicand = BigDecimal.TEN.pow(currency.getCurrencyCode().equals("UGX") ? 2 : currency.getDefaultFractionDigits()); BigDecimal multiplicand = BigDecimal.TEN.pow(currency.getCurrencyCode().equals("UGX") ? 2 : currency.getDefaultFractionDigits());
return formatter.format(amount.multiply(multiplicand)); return formatter.format(amount.multiply(multiplicand));
@ -73,4 +73,13 @@ public class FiatMoney {
Objects.equals(left.currency, right.currency) && Objects.equals(left.currency, right.currency) &&
Objects.equals(left.timestamp, right.timestamp); Objects.equals(left.timestamp, right.timestamp);
} }
@Override
public String toString() {
return "FiatMoney{" +
"amount=" + amount +
", currency=" + currency +
", timestamp=" + timestamp +
'}';
}
} }