From 73d8c74718e5833f5a03e0d2f4cb9c48f6d7495a Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 19 Nov 2021 10:19:06 -0400 Subject: [PATCH] Expand donation job logging. --- .../app/subscription/DonationPaymentRepository.kt | 2 ++ .../securesms/jobs/BoostReceiptRequestResponseJob.java | 10 ++++++---- .../securesms/jobs/DonationReceiptRedemptionJob.java | 3 +++ .../jobs/SubscriptionReceiptRequestResponseJob.java | 5 +++++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPaymentRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPaymentRepository.kt index 6152f51ee6..1ecef3ef28 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPaymentRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPaymentRepository.kt @@ -160,9 +160,11 @@ class DonationPaymentRepository(activity: Activity) : StripeApi.PaymentIntentFet } } } else { + Log.d(TAG, "Boost redemption timed out waiting for job completion.", true) it.onError(DonationExceptions.TimedOutWaitingForTokenRedemption) } } catch (e: InterruptedException) { + Log.d(TAG, "Boost redemption job interrupted", e, true) it.onError(DonationExceptions.TimedOutWaitingForTokenRedemption) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java index da25f820e8..03109a53c5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java @@ -1,7 +1,5 @@ package org.thoughtcrime.securesms.jobs; -import android.content.Context; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; @@ -45,8 +43,6 @@ public class BoostReceiptRequestResponseJob extends BaseJob { private final String paymentIntentId; - private boolean isPaymentFailure; - static BoostReceiptRequestResponseJob createJob(StripeApi.PaymentIntent paymentIntent) { return new BoostReceiptRequestResponseJob( new Parameters @@ -105,6 +101,8 @@ public class BoostReceiptRequestResponseJob extends BaseJob { @Override protected void onRun() throws Exception { if (requestContext == null) { + Log.d(TAG, "Creating request context.."); + SecureRandom secureRandom = new SecureRandom(); byte[] randomBytes = new byte[ReceiptSerial.SIZE]; @@ -114,8 +112,11 @@ public class BoostReceiptRequestResponseJob extends BaseJob { ClientZkReceiptOperations operations = ApplicationDependencies.getClientZkReceiptOperations(); requestContext = operations.createReceiptCredentialRequestContext(secureRandom, receiptSerial); + } else { + Log.d(TAG, "Reusing request context from previous run", true); } + Log.d(TAG, "Submitting credential to server", true); ServiceResponse response = ApplicationDependencies.getDonationsService() .submitBoostReceiptCredentialRequest(paymentIntentId, requestContext.getRequest()) .blockingGet(); @@ -130,6 +131,7 @@ public class BoostReceiptRequestResponseJob extends BaseJob { throw new IOException("Could not validate receipt credential"); } + Log.d(TAG, "Validated credential. Handing off to redemption job.", true); ReceiptCredentialPresentation receiptCredentialPresentation = getReceiptCredentialPresentation(receiptCredential); setOutputData(new Data.Builder().putBlobAsString(DonationReceiptRedemptionJob.INPUT_RECEIPT_CREDENTIAL_PRESENTATION, receiptCredentialPresentation.serialize()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java index 15d4003670..bef40f28e6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java @@ -77,6 +77,7 @@ public class DonationReceiptRedemptionJob extends BaseJob { } if (isForSubscription()) { + Log.d(TAG, "Marking subscription failure", true); SignalStore.donationsValues().markSubscriptionRedemptionFailed(); } } @@ -102,6 +103,7 @@ public class DonationReceiptRedemptionJob extends BaseJob { ReceiptCredentialPresentation presentation = new ReceiptCredentialPresentation(presentationBytes); + Log.d(TAG, "Attempting to redeem token... isForSubscription: " + isForSubscription(), true); ServiceResponse response = ApplicationDependencies.getDonationsService() .redeemReceipt(presentation, SignalStore.donationsValues().getDisplayBadgesOnProfile(), @@ -122,6 +124,7 @@ public class DonationReceiptRedemptionJob extends BaseJob { } if (isForSubscription()) { + Log.d(TAG, "Clearing subscription failure", true); SignalStore.donationsValues().clearSubscriptionRedemptionFailed(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java index c7a6d57ec7..23612b1226 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java @@ -124,6 +124,7 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { } if (requestContext == null) { + Log.d(TAG, "Generating request credentials context for token redemption...", true); SecureRandom secureRandom = new SecureRandom(); byte[] randomBytes = new byte[ReceiptSerial.SIZE]; @@ -133,8 +134,11 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { ClientZkReceiptOperations operations = ApplicationDependencies.getClientZkReceiptOperations(); requestContext = operations.createReceiptCredentialRequestContext(secureRandom, receiptSerial); + } else { + Log.d(TAG, "Already have credentials generated for this request. Retrying web service call...", true); } + Log.d(TAG, "Submitting receipt credential request."); ServiceResponse response = ApplicationDependencies.getDonationsService() .submitReceiptCredentialRequest(subscriberId, requestContext.getRequest()) .blockingGet(); @@ -152,6 +156,7 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { throw new IOException("Could not validate receipt credential"); } + Log.d(TAG, "Validated credential. Handing off to redemption job.", true); ReceiptCredentialPresentation receiptCredentialPresentation = getReceiptCredentialPresentation(receiptCredential); setOutputData(new Data.Builder().putBlobAsString(DonationReceiptRedemptionJob.INPUT_RECEIPT_CREDENTIAL_PRESENTATION, receiptCredentialPresentation.serialize())