From 54c953869ad5828242654a82043a8cbc71ddfa30 Mon Sep 17 00:00:00 2001 From: Michael Shafrir Date: Fri, 7 Jun 2019 23:26:10 -0400 Subject: [PATCH] Use PaymentMethod parcelable instead of JSON serialization --- .../main/java/com/stripe/android/PaymentSessionData.java | 4 ++-- .../com/stripe/android/view/AddPaymentMethodActivity.java | 3 +-- .../com/stripe/android/view/PaymentMethodsActivity.java | 2 +- .../stripe/android/view/AddPaymentMethodActivityTest.java | 6 ++---- .../com/stripe/android/view/PaymentMethodsActivityTest.java | 5 ++--- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/stripe/src/main/java/com/stripe/android/PaymentSessionData.java b/stripe/src/main/java/com/stripe/android/PaymentSessionData.java index 539141c7a5e..418eab9c4b5 100644 --- a/stripe/src/main/java/com/stripe/android/PaymentSessionData.java +++ b/stripe/src/main/java/com/stripe/android/PaymentSessionData.java @@ -190,7 +190,7 @@ public void writeToParcel(Parcel parcel, int i) { parcel.writeLong(mCartTotal); parcel.writeInt(mIsPaymentReadyToCharge ? 1 : 0); parcel.writeString(mPaymentResult); - parcel.writeString(mPaymentMethod != null ? mPaymentMethod.toJson().toString() : null); + parcel.writeParcelable(mPaymentMethod, i); parcel.writeParcelable(mShippingInformation, i); parcel.writeParcelable(mShippingMethod, i); parcel.writeLong(mShippingTotal); @@ -212,7 +212,7 @@ private PaymentSessionData(@NonNull Parcel in) { mCartTotal = in.readLong(); mIsPaymentReadyToCharge = in.readInt() == 1; mPaymentResult = PaymentSessionUtils.paymentResultFromString(in.readString()); - mPaymentMethod = PaymentMethod.fromString(in.readString()); + mPaymentMethod = in.readParcelable(PaymentMethod.class.getClassLoader()); mShippingInformation = in.readParcelable(ShippingInformation.class.getClassLoader()); mShippingMethod = in.readParcelable(ShippingMethod.class.getClassLoader()); mShippingTotal = in.readLong(); diff --git a/stripe/src/main/java/com/stripe/android/view/AddPaymentMethodActivity.java b/stripe/src/main/java/com/stripe/android/view/AddPaymentMethodActivity.java index 719bcb64ae0..721c111b587 100644 --- a/stripe/src/main/java/com/stripe/android/view/AddPaymentMethodActivity.java +++ b/stripe/src/main/java/com/stripe/android/view/AddPaymentMethodActivity.java @@ -156,8 +156,7 @@ private void logToCustomerSessionIf(@NonNull String logToken, boolean condition) private void finishWithPaymentMethod(@NonNull PaymentMethod paymentMethod) { setCommunicatingProgress(false); - final Intent intent = new Intent().putExtra(EXTRA_NEW_PAYMENT_METHOD, - paymentMethod.toJson().toString()); + final Intent intent = new Intent().putExtra(EXTRA_NEW_PAYMENT_METHOD, paymentMethod); setResult(RESULT_OK, intent); finish(); } diff --git a/stripe/src/main/java/com/stripe/android/view/PaymentMethodsActivity.java b/stripe/src/main/java/com/stripe/android/view/PaymentMethodsActivity.java index a8efd961c2f..206d7009071 100644 --- a/stripe/src/main/java/com/stripe/android/view/PaymentMethodsActivity.java +++ b/stripe/src/main/java/com/stripe/android/view/PaymentMethodsActivity.java @@ -121,7 +121,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (data.hasExtra(EXTRA_NEW_PAYMENT_METHOD)) { final PaymentMethod paymentMethod = - PaymentMethod.fromString(data.getStringExtra(EXTRA_NEW_PAYMENT_METHOD)); + data.getParcelableExtra(EXTRA_NEW_PAYMENT_METHOD); getCustomerPaymentMethods(paymentMethod != null ? paymentMethod.id : null); } else { getCustomerPaymentMethods(null); diff --git a/stripe/src/test/java/com/stripe/android/view/AddPaymentMethodActivityTest.java b/stripe/src/test/java/com/stripe/android/view/AddPaymentMethodActivityTest.java index d130acdd76f..2c6a8bcca7a 100644 --- a/stripe/src/test/java/com/stripe/android/view/AddPaymentMethodActivityTest.java +++ b/stripe/src/test/java/com/stripe/android/view/AddPaymentMethodActivityTest.java @@ -234,8 +234,7 @@ public void addCardData_whenServerReturnsSuccessAndUpdatesCustomer_finishesWithI assertTrue(mActivity.isFinishing()); assertTrue(intent.hasExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD)); final PaymentMethod paymentMethod = - PaymentMethod.fromString( - intent.getStringExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD)); + intent.getParcelableExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD); assertNotNull(paymentMethod); assertEquals(expectedPaymentMethod, paymentMethod); } @@ -363,8 +362,7 @@ private void verifyFinishesWithIntent() { assertTrue(mActivity.isFinishing()); assertTrue(intent.hasExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD)); final PaymentMethod newPaymentMethod = - PaymentMethod.fromString( - intent.getStringExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD)); + intent.getParcelableExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD); assertNotNull(newPaymentMethod); assertEquals(expectedPaymentMethod, newPaymentMethod); } diff --git a/stripe/src/test/java/com/stripe/android/view/PaymentMethodsActivityTest.java b/stripe/src/test/java/com/stripe/android/view/PaymentMethodsActivityTest.java index e6bed719fef..c6dbf27cc79 100644 --- a/stripe/src/test/java/com/stripe/android/view/PaymentMethodsActivityTest.java +++ b/stripe/src/test/java/com/stripe/android/view/PaymentMethodsActivityTest.java @@ -169,9 +169,8 @@ public void onActivityResult_withValidPaymentMethod_refreshesPaymentMethods() { PaymentMethod.fromString(PaymentMethodTest.RAW_CARD_JSON); assertNotNull(paymentMethod); - final Intent resultIntent = - new Intent().putExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD, - paymentMethod.toJson().toString()); + final Intent resultIntent = new Intent() + .putExtra(AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD, paymentMethod); mPaymentMethodsActivity.onActivityResult(REQUEST_CODE_ADD_CARD, RESULT_OK, resultIntent); assertEquals(View.VISIBLE, mProgressBar.getVisibility());