From 2970a410bec898e7456077db3e236cd85cac67e0 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Thu, 7 Dec 2023 13:18:18 -0600 Subject: [PATCH 01/15] Card Single Result Object (#841) * Add CardResult * Fix unit tests * Fix integration tests * Fix lint * Add CHANGELOG and migration guide * Cleanup code snippet * Fix integration tests --- CHANGELOG.md | 2 + .../braintreepayments/api/CardClientTest.java | 72 ++++++++++--------- .../com/braintreepayments/api/CardClient.java | 26 +++---- .../com/braintreepayments/api/CardResult.kt | 17 +++++ .../api/CardTokenizeCallback.java | 7 +- .../api/CardClientUnitTest.java | 41 ++++++++--- .../braintreepayments/demo/CardFragment.java | 11 +-- .../api/LocalPaymentClientTest.java | 2 +- v5_MIGRATION_GUIDE.md | 16 +++++ 9 files changed, 128 insertions(+), 66 deletions(-) create mode 100644 Card/src/main/java/com/braintreepayments/api/CardResult.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index c7a035a28a..2327fb7015 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -88,6 +88,8 @@ * Card * Remove `threeDSecureInfo` from `CardNonce` * Move `ThreeDSecureInfo` to `three-d-secure` module + * Add `CardResult` object + * Change `CardTokenizeCallback` parameters * SEPA Direct Debit * Remove `SEPADirectDebitLifecycleObserver` and `SEPADirectDebitListener` * Add `SEPADirectDebitLauncher`, `SEPADirectDebitLauncherCallback`, diff --git a/Card/src/androidTest/java/com/braintreepayments/api/CardClientTest.java b/Card/src/androidTest/java/com/braintreepayments/api/CardClientTest.java index ee745c7d84..5298587432 100644 --- a/Card/src/androidTest/java/com/braintreepayments/api/CardClientTest.java +++ b/Card/src/androidTest/java/com/braintreepayments/api/CardClientTest.java @@ -122,21 +122,20 @@ public void tokenize_failsWithTokenizationKeyAndValidateTrue() throws Exception final CountDownLatch countDownLatch = new CountDownLatch(1); CardClient sut = setupCardClient(TOKENIZATION_KEY); - sut.tokenize(card, new CardTokenizeCallback() { - @Override - public void onResult(CardNonce cardNonce, Exception error) { - assertTrue(error instanceof AuthorizationException); - - if (requestProtocol.equals(GRAPHQL)) { - assertEquals("You are unauthorized to perform input validation with the provided authentication credentials.", - error.getMessage()); - } else { - assertEquals("Tokenization key authorization not allowed for this endpoint. Please use an " + - "authentication method with upgraded permissions", error.getMessage()); - } - - countDownLatch.countDown(); + sut.tokenize(card, cardResult -> { + assertTrue(cardResult instanceof CardResult.Failure); + Exception error = ((CardResult.Failure) cardResult).getError(); + assertTrue(error instanceof AuthorizationException); + + if (requestProtocol.equals(GRAPHQL)) { + assertEquals("You are unauthorized to perform input validation with the provided authentication credentials.", + error.getMessage()); + } else { + assertEquals("Tokenization key authorization not allowed for this endpoint. Please use an " + + "authentication method with upgraded permissions", error.getMessage()); } + + countDownLatch.countDown(); }); countDownLatch.await(); @@ -165,19 +164,18 @@ public void tokenize_tokenizesCvvOnly() throws Exception { card.setCvv("123"); CardClient sut = setupCardClient(TOKENIZATION_KEY); - sut.tokenize(card, new CardTokenizeCallback() { - @Override - public void onResult(CardNonce cardNonce, Exception error) { - - assertNotNull(cardNonce.getBinData()); - assertEquals("Unknown", cardNonce.getCardType()); - assertEquals("", cardNonce.getLastFour()); - assertEquals("", cardNonce.getLastTwo()); - assertFalse(cardNonce.isDefault()); - assertNotNull(cardNonce.getString()); - - countDownLatch.countDown(); - } + sut.tokenize(card, cardResult -> { + assertTrue(cardResult instanceof CardResult.Success); + CardNonce cardNonce = ((CardResult.Success) cardResult).getNonce(); + + assertNotNull(cardNonce.getBinData()); + assertEquals("Unknown", cardNonce.getCardType()); + assertEquals("", cardNonce.getLastFour()); + assertEquals("", cardNonce.getLastTwo()); + assertFalse(cardNonce.isDefault()); + assertNotNull(cardNonce.getString()); + + countDownLatch.countDown(); }); countDownLatch.await(); @@ -196,7 +194,9 @@ public void tokenize_callsErrorCallbackForInvalidCvv() throws Exception { final CountDownLatch countDownLatch = new CountDownLatch(1); CardClient sut = setupCardClient(authorization); - sut.tokenize(card, (cardNonce, error) -> { + sut.tokenize(card, (cardResult) -> { + assertTrue(cardResult instanceof CardResult.Failure); + Exception error = ((CardResult.Failure) cardResult).getError(); assertEquals("CVV verification failed", ((ErrorWithResponse) error).errorFor("creditCard").getFieldErrors().get(0).getMessage()); countDownLatch.countDown(); @@ -231,7 +231,9 @@ public void tokenize_callsErrorCallbackForInvalidPostalCode() throws Exception { final CountDownLatch countDownLatch = new CountDownLatch(1); CardClient sut = setupCardClient(authorization); - sut.tokenize(card, (cardNonce, error) -> { + sut.tokenize(card, (cardResult) -> { + assertTrue(cardResult instanceof CardResult.Failure); + Exception error = ((CardResult.Failure) cardResult).getError(); assertEquals("Postal code verification failed", ((ErrorWithResponse) error).errorFor("creditCard").errorFor("billingAddress") .getFieldErrors().get(0).getMessage()); @@ -254,7 +256,9 @@ public void tokenize_whenInvalidCountryCode_callsErrorCallbackWithDetailedError( final CountDownLatch countDownLatch = new CountDownLatch(1); CardClient sut = setupCardClient(authorization); - sut.tokenize(card, (cardNonce, error) -> { + sut.tokenize(card, (cardResult) -> { + assertTrue(cardResult instanceof CardResult.Failure); + Exception error = ((CardResult.Failure) cardResult).getError(); assertEquals("Country code (alpha3) is not an accepted country", ((ErrorWithResponse) error).errorFor("creditCard").errorFor("billingAddress") .getFieldErrors().get(0).getMessage()); @@ -288,12 +292,14 @@ public void tokenize_tokenizesACardWithACompleteBillingAddress() throws Exceptio } private void assertTokenizationSuccessful(String authorization, Card card) throws Exception { - BraintreeClient braintreeClient = new BraintreeClient(new ClientParams(ApplicationProvider.getApplicationContext(), authorization)); + BraintreeClient braintreeClient = new BraintreeClient(ApplicationProvider.getApplicationContext(), authorization); CardClient sut = new CardClient(braintreeClient); final CountDownLatch countDownLatch = new CountDownLatch(1); - sut.tokenize(card, (cardNonce, error) -> { + sut.tokenize(card, (cardResult) -> { + assertTrue(cardResult instanceof CardResult.Success); + CardNonce cardNonce = ((CardResult.Success) cardResult).getNonce(); assertNotNull(cardNonce.getString()); assertEquals("Visa", cardNonce.getCardType()); assertEquals("1111", cardNonce.getLastFour()); @@ -317,7 +323,7 @@ private void assertTokenizationSuccessful(String authorization, Card card) throw } private CardClient setupCardClient(String authorization) { - BraintreeClient braintreeClient = new BraintreeClient(new ClientParams(ApplicationProvider.getApplicationContext(), authorization)); + BraintreeClient braintreeClient = new BraintreeClient(ApplicationProvider.getApplicationContext(), authorization); return new CardClient(braintreeClient); } diff --git a/Card/src/main/java/com/braintreepayments/api/CardClient.java b/Card/src/main/java/com/braintreepayments/api/CardClient.java index 5c23f6722a..dbaf23006e 100644 --- a/Card/src/main/java/com/braintreepayments/api/CardClient.java +++ b/Card/src/main/java/com/braintreepayments/api/CardClient.java @@ -3,7 +3,6 @@ import android.content.Context; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import org.json.JSONException; @@ -46,17 +45,18 @@ public CardClient(@NonNull Context context, @NonNull String authorization) { * The tokenization result is returned via a {@link CardTokenizeCallback} callback. * *

- * On success, the {@link CardTokenizeCallback#onResult(CardNonce, Exception)} method will be - * invoked with a nonce. + * On success, the {@link CardTokenizeCallback#onCardResult(CardResult)} method will be + * invoked with a {@link CardResult.Success} including a nonce. * *

- * If creation fails validation, the {@link CardTokenizeCallback#onResult(CardNonce, Exception)} - * method will be invoked with an {@link ErrorWithResponse} exception. + * If creation fails validation, the {@link CardTokenizeCallback#onCardResult(CardResult)} + * method will be invoked with a {@link CardResult.Failure} including an + * {@link ErrorWithResponse} exception. * *

* If an error not due to validation (server error, network issue, etc.) occurs, the - * {@link CardTokenizeCallback#onResult(CardNonce, Exception)} method will be invoked with an - * {@link Exception} describing the error. + * {@link CardTokenizeCallback#onCardResult(CardResult)} method will be invoked with a + * {@link CardResult.Failure} with an {@link Exception} describing the error. * * @param card {@link Card} * @param callback {@link CardTokenizeCallback} @@ -64,7 +64,7 @@ public CardClient(@NonNull Context context, @NonNull String authorization) { public void tokenize(@NonNull final Card card, @NonNull final CardTokenizeCallback callback) { braintreeClient.getConfiguration((configuration, error) -> { if (error != null) { - callback.onResult(null, error); + callback.onCardResult(new CardResult.Failure(error)); return; } @@ -80,7 +80,7 @@ public void tokenize(@NonNull final Card card, @NonNull final CardTokenizeCallba (tokenizationResponse, exception) -> handleTokenizeResponse( tokenizationResponse, exception, callback)); } catch (BraintreeException | JSONException e) { - callback.onResult(null, e); + callback.onCardResult(new CardResult.Failure(e)); } } else { apiClient.tokenizeREST(card, @@ -96,15 +96,15 @@ private void handleTokenizeResponse(JSONObject tokenizationResponse, Exception e try { CardNonce cardNonce = CardNonce.fromJSON(tokenizationResponse); - callback.onResult(cardNonce, null); + callback.onCardResult(new CardResult.Success(cardNonce)); braintreeClient.sendAnalyticsEvent("card.nonce-received"); } catch (JSONException e) { - callback.onResult(null, e); + callback.onCardResult(new CardResult.Failure(e)); braintreeClient.sendAnalyticsEvent("card.nonce-failed"); } - } else { - callback.onResult(null, exception); + } else if (exception != null) { + callback.onCardResult(new CardResult.Failure(exception)); braintreeClient.sendAnalyticsEvent("card.nonce-failed"); } } diff --git a/Card/src/main/java/com/braintreepayments/api/CardResult.kt b/Card/src/main/java/com/braintreepayments/api/CardResult.kt new file mode 100644 index 0000000000..001aefc17d --- /dev/null +++ b/Card/src/main/java/com/braintreepayments/api/CardResult.kt @@ -0,0 +1,17 @@ +package com.braintreepayments.api + +/** + * Result of tokenizing a [Card] + */ +sealed class CardResult { + + /** + * The card tokenization completed successfully. This [nonce] should be sent to your server. + */ + class Success(val nonce: CardNonce) : CardResult() + + /** + * There was an [error] during card tokenization. + */ + class Failure(val error: Exception) : CardResult() +} diff --git a/Card/src/main/java/com/braintreepayments/api/CardTokenizeCallback.java b/Card/src/main/java/com/braintreepayments/api/CardTokenizeCallback.java index f82159b48c..145108e9a6 100644 --- a/Card/src/main/java/com/braintreepayments/api/CardTokenizeCallback.java +++ b/Card/src/main/java/com/braintreepayments/api/CardTokenizeCallback.java @@ -1,15 +1,12 @@ package com.braintreepayments.api; -import androidx.annotation.Nullable; - /** * Callback for receiving result of {@link CardClient#tokenize(Card, CardTokenizeCallback)}. */ public interface CardTokenizeCallback { /** - * @param cardNonce {@link CardNonce} - * @param error an exception that occurred while tokenizing card + * @param cardResult a {@link CardResult} containing a {@link CardNonce} or {@link Exception} */ - void onResult(@Nullable CardNonce cardNonce, @Nullable Exception error); + void onCardResult(CardResult cardResult); } diff --git a/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java b/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java index a14cfd559d..09563f061c 100644 --- a/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java +++ b/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java @@ -1,6 +1,7 @@ package com.braintreepayments.api; import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.mock; @@ -75,10 +76,12 @@ public void tokenize_whenGraphQLEnabled_tokenizesWithGraphQL() throws JSONExcept sut.tokenize(card, cardTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(CardNonce.class); - verify(cardTokenizeCallback).onResult(captor.capture(), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(CardResult.class); + verify(cardTokenizeCallback).onCardResult(captor.capture()); - CardNonce cardNonce = captor.getValue(); + CardResult result = captor.getValue(); + assertTrue(result instanceof CardResult.Success); + CardNonce cardNonce = ((CardResult.Success) result).getNonce(); assertEquals("3744a73e-b1ab-0dbd-85f0-c12a0a4bd3d1", cardNonce.getString()); } @@ -96,10 +99,12 @@ public void tokenize_whenGraphQLDisabled_tokenizesWithREST() throws JSONExceptio sut.tokenize(card, cardTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(CardNonce.class); - verify(cardTokenizeCallback).onResult(captor.capture(), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(CardResult.class); + verify(cardTokenizeCallback).onCardResult(captor.capture()); - CardNonce cardNonce = captor.getValue(); + CardResult result = captor.getValue(); + assertTrue(result instanceof CardResult.Success); + CardNonce cardNonce = ((CardResult.Success) result).getNonce(); assertEquals("123456-12345-12345-a-adfa", cardNonce.getString()); } @@ -149,7 +154,13 @@ public void tokenize_whenGraphQLEnabled_callsListenerWithErrorOnFailure() { CardClient sut = new CardClient(braintreeClient, apiClient); sut.tokenize(card, cardTokenizeCallback); - verify(cardTokenizeCallback).onResult(null, error); + ArgumentCaptor captor = ArgumentCaptor.forClass(CardResult.class); + verify(cardTokenizeCallback).onCardResult(captor.capture()); + + CardResult result = captor.getValue(); + assertTrue(result instanceof CardResult.Failure); + Exception actualError = ((CardResult.Failure) result).getError(); + assertEquals(error, actualError); } @Test @@ -166,7 +177,13 @@ public void tokenize_whenGraphQLDisabled_callsListenerWithErrorOnFailure() { CardClient sut = new CardClient(braintreeClient, apiClient); sut.tokenize(card, cardTokenizeCallback); - verify(cardTokenizeCallback).onResult(null, error); + ArgumentCaptor captor = ArgumentCaptor.forClass(CardResult.class); + verify(cardTokenizeCallback).onCardResult(captor.capture()); + + CardResult result = captor.getValue(); + assertTrue(result instanceof CardResult.Failure); + Exception actualError = ((CardResult.Failure) result).getError(); + assertEquals(error, actualError); } @Test @@ -213,6 +230,12 @@ public void tokenize_propagatesConfigurationFetchError() { CardClient sut = new CardClient(braintreeClient, apiClient); sut.tokenize(card, cardTokenizeCallback); - verify(cardTokenizeCallback).onResult(null, configError); + ArgumentCaptor captor = ArgumentCaptor.forClass(CardResult.class); + verify(cardTokenizeCallback).onCardResult(captor.capture()); + + CardResult result = captor.getValue(); + assertTrue(result instanceof CardResult.Failure); + Exception actualError = ((CardResult.Failure) result).getError(); + assertEquals(configError, actualError); } } \ No newline at end of file diff --git a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java index 5b6cb5fd4b..7eb9d7fe25 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java @@ -20,6 +20,7 @@ import com.braintreepayments.api.Card; import com.braintreepayments.api.CardClient; import com.braintreepayments.api.CardNonce; +import com.braintreepayments.api.CardResult; import com.braintreepayments.api.DataCollector; import com.braintreepayments.api.PaymentMethodNonce; import com.braintreepayments.api.ThreeDSecureAdditionalInformation; @@ -182,11 +183,11 @@ public void onPurchase(View v) { card.setShouldValidate(false); card.setPostalCode(cardForm.getPostalCode()); - cardClient.tokenize(card, (cardNonce, tokenizeError) -> { - if (cardNonce != null) { - handlePaymentMethodNonceCreated(cardNonce); - } else { - handleError(tokenizeError); + cardClient.tokenize(card, (cardResult) -> { + if (cardResult instanceof CardResult.Success) { + handlePaymentMethodNonceCreated(((CardResult.Success) cardResult).getNonce()); + } else if (cardResult instanceof CardResult.Failure) { + handleError(((CardResult.Failure) cardResult).getError()); } }); } diff --git a/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java b/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java index 5f6cf9e37e..9d871a912b 100644 --- a/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java +++ b/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java @@ -20,7 +20,7 @@ public class LocalPaymentClientTest { @Before public void setUp() { countDownLatch = new CountDownLatch(1); - braintreeClient = new BraintreeClient(new ClientParams(ApplicationProvider.getApplicationContext(), "sandbox_f252zhq7_hh4cpc39zq4rgjcg")); + braintreeClient = new BraintreeClient(ApplicationProvider.getApplicationContext(), "sandbox_f252zhq7_hh4cpc39zq4rgjcg"); } @Test(timeout = 10000) diff --git a/v5_MIGRATION_GUIDE.md b/v5_MIGRATION_GUIDE.md index 607a113033..55f85d1c88 100644 --- a/v5_MIGRATION_GUIDE.md +++ b/v5_MIGRATION_GUIDE.md @@ -8,6 +8,7 @@ basics for updating your Braintree integration from v4 to v5. 1. [Android API](#android-api) 1. [Braintree Client](#braintree-client) 1. [Data Collector](#data-collector) +1. [Card](#card) 1. [Union Pay](#union-pay) 1. [Venmo](#venmo) 1. [Google Pay](#google-pay) @@ -48,6 +49,21 @@ dataCollector.collectDeviceData(context) { deviceData, error -> } ``` +## Card + +The card tokenization integration has been updated to simplify instantiation and result handling. + +```kotlin +val cardClient = CardClient(context, "TOKENIZATION_KEY_OR_CLIENT_TOKEN") + +cardClient.tokenize(card) { cardResult -> + when (cardResult) { + is CardResult.Success -> { /* handle cardResult.nonce */ } + is CardResult.Failure -> { /* handle cardResult.error */ } + } +} +``` + ## Union Pay The `union-pay` module, and all containing classes, was removed in v5. UnionPay cards can now be From 69b62cbda350f703e09dadccf6c2b17560e4645a Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Mon, 11 Dec 2023 14:04:46 -0600 Subject: [PATCH 02/15] Update Venmo with FPTI Analytics Events (#846) * Replace Venmo analytics with FPTI events * Update unit tests * Add new unit tests * Fix unit tests * Convert VenmoAnalytics to class * Remove companion object * Add helper analtyics methods * Update app switch failure analytics * Remove extra analytics event --- .../braintreepayments/api/VenmoAnalytics.kt | 14 +- .../braintreepayments/api/VenmoClient.java | 83 ++++++------ .../api/VenmoAnalyticsUnitTest.kt | 12 +- .../api/VenmoClientUnitTest.java | 125 ++++++++++-------- 4 files changed, 124 insertions(+), 110 deletions(-) diff --git a/Venmo/src/main/java/com/braintreepayments/api/VenmoAnalytics.kt b/Venmo/src/main/java/com/braintreepayments/api/VenmoAnalytics.kt index 8dd26de38b..bf42cd4d0c 100644 --- a/Venmo/src/main/java/com/braintreepayments/api/VenmoAnalytics.kt +++ b/Venmo/src/main/java/com/braintreepayments/api/VenmoAnalytics.kt @@ -1,14 +1,14 @@ package com.braintreepayments.api -internal enum class VenmoAnalytics(@JvmField val event: String) { +internal object VenmoAnalytics { // Conversion Events - TOKENIZE_STARTED("venmo:tokenize:started"), - TOKENIZE_FAILED("venmo:tokenize:failed"), - TOKENIZE_SUCCEEDED("venmo:tokenize:succeeded"), - APP_SWITCH_CANCELED("venmo:tokenize:app-switch:canceled"), + const val TOKENIZE_STARTED = "venmo:tokenize:started" + const val TOKENIZE_FAILED = "venmo:tokenize:failed" + const val TOKENIZE_SUCCEEDED = "venmo:tokenize:succeeded" + const val APP_SWITCH_CANCELED = "venmo:tokenize:app-switch:canceled" // Additional Detail Events - APP_SWITCH_SUCCEEDED("venmo:tokenize:app-switch:succeeded"), - APP_SWITCH_FAILED("venmo:tokenize:app-switch:failed") + const val APP_SWITCH_SUCCEEDED = "venmo:tokenize:app-switch:succeeded" + const val APP_SWITCH_FAILED = "venmo:tokenize:app-switch:failed" } diff --git a/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java b/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java index 4077548d4d..7f7399472a 100644 --- a/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java +++ b/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java @@ -57,7 +57,6 @@ public VenmoClient(@NonNull Context context, @NonNull String authorization) { * @param activity used to open the Venmo's Google Play Store */ public void showVenmoInGooglePlayStore(@NonNull FragmentActivity activity) { - braintreeClient.sendAnalyticsEvent("android.pay-with-venmo.app-store.invoked"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse( "https://play.google.com/store/apps/details?id=" + VENMO_PACKAGE_NAME)); @@ -80,25 +79,22 @@ public void showVenmoInGooglePlayStore(@NonNull FragmentActivity activity) { public void createPaymentAuthRequest(@NonNull final FragmentActivity activity, @NonNull final VenmoRequest request, @NonNull VenmoPaymentAuthRequestCallback callback) { - braintreeClient.sendAnalyticsEvent("pay-with-venmo.selected"); + braintreeClient.sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_STARTED); braintreeClient.getConfiguration((configuration, error) -> { if (configuration == null && error != null) { - callback.onVenmoPaymentAuthRequest(new VenmoPaymentAuthRequest.Failure(error)); - braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + callbackPaymentAuthFailure(callback, new VenmoPaymentAuthRequest.Failure(error)); return; } - String exceptionMessage = null; if (!configuration.isVenmoEnabled()) { - exceptionMessage = "Venmo is not enabled"; - } else if (!deviceInspector.isVenmoAppSwitchAvailable(activity)) { - exceptionMessage = "Venmo is not installed"; + callbackPaymentAuthFailure(callback, + new VenmoPaymentAuthRequest.Failure(new AppSwitchNotAvailableException("Venmo is not enabled"))); + return; } - - if (exceptionMessage != null) { - callback.onVenmoPaymentAuthRequest( - new VenmoPaymentAuthRequest.Failure(new AppSwitchNotAvailableException(exceptionMessage))); - braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + if (!deviceInspector.isVenmoAppSwitchAvailable(activity)) { + braintreeClient.sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_FAILED); + callbackPaymentAuthFailure(callback, + new VenmoPaymentAuthRequest.Failure(new AppSwitchNotAvailableException("Venmo is not installed"))); return; } @@ -107,10 +103,9 @@ public void createPaymentAuthRequest(@NonNull final FragmentActivity activity, if ((request.getCollectCustomerShippingAddress() || request.getCollectCustomerBillingAddress()) && !configuration.getVenmoEnrichedCustomerDataEnabled()) { - callback.onVenmoPaymentAuthRequest(new VenmoPaymentAuthRequest.Failure(new BraintreeException( + callbackPaymentAuthFailure(callback, new VenmoPaymentAuthRequest.Failure(new BraintreeException( "Cannot collect customer data when ECD is disabled. Enable this feature " + "in the Control Panel to collect this data."))); - braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); return; } @@ -127,8 +122,7 @@ public void createPaymentAuthRequest(@NonNull final FragmentActivity activity, braintreeClient.getAuthorization(), finalVenmoProfileId, paymentContextId, callback); } else { - callback.onVenmoPaymentAuthRequest(new VenmoPaymentAuthRequest.Failure(exception)); - braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + callbackPaymentAuthFailure(callback, new VenmoPaymentAuthRequest.Failure(exception)); } }); }); @@ -150,7 +144,6 @@ private void createPaymentAuthRequest( new VenmoPaymentAuthRequestParams(configuration, venmoProfileId, paymentContextId, braintreeClient.getSessionId(), braintreeClient.getIntegrationType()); callback.onVenmoPaymentAuthRequest(new VenmoPaymentAuthRequest.ReadyToLaunch(params)); - braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.started"); } /** @@ -166,7 +159,7 @@ private void createPaymentAuthRequest( public void tokenize(@NonNull final VenmoPaymentAuthResult venmoPaymentAuthResult, @NonNull VenmoTokenizeCallback callback) { if (venmoPaymentAuthResult.getError() == null) { - braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.success"); + braintreeClient.sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_SUCCEEDED); final boolean isClientTokenAuth = (braintreeClient.getAuthorization() instanceof ClientToken); @@ -181,20 +174,16 @@ public void tokenize(@NonNull final VenmoPaymentAuthResult venmoPaymentAuthResul vaultVenmoAccountNonce(nonce.getString(), (venmoAccountNonce, vaultError) -> { if (venmoAccountNonce != null) { - callback.onVenmoResult(new VenmoResult.Success(venmoAccountNonce)); + callbackSuccess(callback, new VenmoResult.Success(venmoAccountNonce)); } else if (vaultError != null) { - callback.onVenmoResult(new VenmoResult.Failure(vaultError)); + callbackTokenizeFailure(callback, new VenmoResult.Failure(vaultError)); } }); } else { - braintreeClient.sendAnalyticsEvent( - "pay-with-venmo.app-switch.failure"); - callback.onVenmoResult(new VenmoResult.Success(nonce)); + callbackSuccess(callback, new VenmoResult.Success(nonce)); } } else if (error != null) { - braintreeClient.sendAnalyticsEvent( - "pay-with-venmo.app-switch.failure"); - callback.onVenmoResult(new VenmoResult.Failure(error)); + callbackTokenizeFailure(callback, new VenmoResult.Failure(error)); } }); } else { @@ -205,36 +194,30 @@ public void tokenize(@NonNull final VenmoPaymentAuthResult venmoPaymentAuthResul if (shouldVault && isClientTokenAuth) { vaultVenmoAccountNonce(nonce, (venmoAccountNonce, error) -> { if (venmoAccountNonce != null) { - callback.onVenmoResult(new VenmoResult.Success(venmoAccountNonce)); + callbackSuccess(callback, new VenmoResult.Success(venmoAccountNonce)); } else if (error != null) { - callback.onVenmoResult(new VenmoResult.Failure(error)); + callbackTokenizeFailure(callback, new VenmoResult.Failure(error)); } }); } else { String venmoUsername = venmoPaymentAuthResult.getVenmoUsername(); VenmoAccountNonce venmoAccountNonce = new VenmoAccountNonce(nonce, venmoUsername, false); - callback.onVenmoResult(new VenmoResult.Success(venmoAccountNonce)); + callbackSuccess(callback, new VenmoResult.Success(venmoAccountNonce)); } } } else if (venmoPaymentAuthResult.getError() != null) { if (venmoPaymentAuthResult.getError() instanceof UserCanceledException) { - braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.canceled"); + callbackTokenizeCancel(callback); + } else { + callbackTokenizeFailure(callback, new VenmoResult.Failure(venmoPaymentAuthResult.getError())); } - callback.onVenmoResult(VenmoResult.Cancel.INSTANCE); } } private void vaultVenmoAccountNonce(String nonce, final VenmoInternalCallback callback) { - venmoApi.vaultVenmoAccountNonce(nonce, (venmoAccountNonce, error) -> { - if (venmoAccountNonce != null) { - braintreeClient.sendAnalyticsEvent("pay-with-venmo.vault.success"); - } else { - braintreeClient.sendAnalyticsEvent("pay-with-venmo.vault.failed"); - } - callback.onResult(venmoAccountNonce, error); - }); + venmoApi.vaultVenmoAccountNonce(nonce, (venmoAccountNonce, error) -> callback.onResult(venmoAccountNonce, error)); } /** @@ -270,4 +253,24 @@ public void isReadyToPay(final Context context, final VenmoIsReadyToPayCallback } }); } + + private void callbackPaymentAuthFailure(VenmoPaymentAuthRequestCallback callback, VenmoPaymentAuthRequest request) { + braintreeClient.sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); + callback.onVenmoPaymentAuthRequest(request); + } + + private void callbackSuccess(VenmoTokenizeCallback callback, VenmoResult venmoResult) { + braintreeClient.sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_SUCCEEDED); + callback.onVenmoResult(venmoResult); + } + + private void callbackTokenizeCancel(VenmoTokenizeCallback callback) { + braintreeClient.sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_CANCELED); + callback.onVenmoResult(VenmoResult.Cancel.INSTANCE); + } + + private void callbackTokenizeFailure(VenmoTokenizeCallback callback, VenmoResult venmoResult) { + braintreeClient.sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); + callback.onVenmoResult(venmoResult); + } } diff --git a/Venmo/src/test/java/com/braintreepayments/api/VenmoAnalyticsUnitTest.kt b/Venmo/src/test/java/com/braintreepayments/api/VenmoAnalyticsUnitTest.kt index 81c9334c34..a8e0a97fa9 100644 --- a/Venmo/src/test/java/com/braintreepayments/api/VenmoAnalyticsUnitTest.kt +++ b/Venmo/src/test/java/com/braintreepayments/api/VenmoAnalyticsUnitTest.kt @@ -9,18 +9,18 @@ class VenmoAnalyticsUnitTest { fun testAnalyticsEvents_sendsExpectedEventNames() { assertEquals( "venmo:tokenize:app-switch:canceled", - VenmoAnalytics.APP_SWITCH_CANCELED.event + VenmoAnalytics.APP_SWITCH_CANCELED ) assertEquals( "venmo:tokenize:app-switch:failed", - VenmoAnalytics.APP_SWITCH_FAILED.event + VenmoAnalytics.APP_SWITCH_FAILED ) assertEquals( "venmo:tokenize:app-switch:succeeded", - VenmoAnalytics.APP_SWITCH_SUCCEEDED.event + VenmoAnalytics.APP_SWITCH_SUCCEEDED ) - assertEquals("venmo:tokenize:failed", VenmoAnalytics.TOKENIZE_FAILED.event) - assertEquals("venmo:tokenize:started", VenmoAnalytics.TOKENIZE_STARTED.event) - assertEquals("venmo:tokenize:succeeded", VenmoAnalytics.TOKENIZE_SUCCEEDED.event) + assertEquals("venmo:tokenize:failed", VenmoAnalytics.TOKENIZE_FAILED) + assertEquals("venmo:tokenize:started", VenmoAnalytics.TOKENIZE_STARTED) + assertEquals("venmo:tokenize:succeeded", VenmoAnalytics.TOKENIZE_SUCCEEDED) } } diff --git a/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java b/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java index 12287c463c..38e5f2e3ae 100644 --- a/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java +++ b/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java @@ -4,7 +4,6 @@ import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.endsWith; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.inOrder; @@ -77,19 +76,6 @@ public void showVenmoInGooglePlayStore_opensVenmoAppStoreURL() { "https://play.google.com/store/apps/details?id=com.venmo"); } - @Test - public void showVenmoInGooglePlayStore_sendsAnalyticsEvent() { - VenmoClient sut = - new VenmoClient(braintreeClient, venmoApi, sharedPrefsWriter, deviceInspector); - - sut.showVenmoInGooglePlayStore(activity); - - ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); - - verify(activity).startActivity(captor.capture()); - verify(braintreeClient).sendAnalyticsEvent("android.pay-with-venmo.app-store.invoked"); - } - @Test public void createPaymentAuthRequest_whenCreatePaymentContextFails_collectAddressWithEcdDisabled() { BraintreeClient braintreeClient = new MockBraintreeClientBuilder() @@ -117,7 +103,7 @@ public void createPaymentAuthRequest_whenCreatePaymentContextFails_collectAddres sut.createPaymentAuthRequest(activity, request, venmoPaymentAuthRequestCallback); verify(venmoPaymentAuthRequestCallback).onVenmoPaymentAuthRequest(captor.capture()); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); VenmoPaymentAuthRequest paymentAuthRequest = captor.getValue(); assertTrue(paymentAuthRequest instanceof VenmoPaymentAuthRequest.Failure); assertEquals( @@ -149,12 +135,12 @@ public void createPaymentAuthRequest_whenCreatePaymentContextSucceeds_createsVen sut.createPaymentAuthRequest(activity, request, venmoPaymentAuthRequestCallback); InOrder inOrder = Mockito.inOrder(venmoPaymentAuthRequestCallback, braintreeClient); + inOrder.verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_STARTED); ArgumentCaptor captor = ArgumentCaptor.forClass(VenmoPaymentAuthRequest.class); inOrder.verify(venmoPaymentAuthRequestCallback).onVenmoPaymentAuthRequest(captor.capture()); - inOrder.verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.started"); VenmoPaymentAuthRequest paymentAuthRequest = captor.getValue(); assertTrue(paymentAuthRequest instanceof VenmoPaymentAuthRequest.ReadyToLaunch); @@ -186,7 +172,7 @@ public void createPaymentAuthRequest_whenConfigurationException_forwardsExceptio VenmoPaymentAuthRequest paymentAuthRequest = captor.getValue(); assertTrue(paymentAuthRequest instanceof VenmoPaymentAuthRequest.Failure); assertEquals("Configuration fetching error", ((VenmoPaymentAuthRequest.Failure) paymentAuthRequest).getError().getMessage()); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } @Test @@ -209,7 +195,7 @@ public void createPaymentAuthRequest_whenVenmoNotEnabled_forwardsExceptionToList VenmoPaymentAuthRequest paymentAuthRequest = captor.getValue(); assertTrue(paymentAuthRequest instanceof VenmoPaymentAuthRequest.Failure); assertEquals("Venmo is not enabled", ((VenmoPaymentAuthRequest.Failure) paymentAuthRequest).getError().getMessage()); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } @Test @@ -230,13 +216,14 @@ public void createPaymentAuthRequest_whenVenmoNotInstalled_forwardsExceptionToLi verify(deviceInspector).isVenmoAppSwitchAvailable(same(activity)); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_FAILED); ArgumentCaptor captor = ArgumentCaptor.forClass(VenmoPaymentAuthRequest.class); verify(venmoPaymentAuthRequestCallback).onVenmoPaymentAuthRequest(captor.capture()); VenmoPaymentAuthRequest paymentAuthRequest = captor.getValue(); assertTrue(paymentAuthRequest instanceof VenmoPaymentAuthRequest.Failure); assertEquals("Venmo is not installed", ((VenmoPaymentAuthRequest.Failure) paymentAuthRequest).getError().getMessage()); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } @Test @@ -323,32 +310,7 @@ public void createPaymentAuthRequest_sendsAnalyticsEvent() { new VenmoClient(braintreeClient, venmoApi, sharedPrefsWriter, deviceInspector); sut.createPaymentAuthRequest(activity, request, venmoPaymentAuthRequestCallback); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.selected"); - } - - @Test - public void createPaymentAuthRequest_sendsAnalyticsEventWhenStarted() { - BraintreeClient braintreeClient = new MockBraintreeClientBuilder() - .configuration(venmoEnabledConfiguration) - .authorizationSuccess(clientToken) - .build(); - - VenmoApi venmoApi = new MockVenmoApiBuilder() - .createPaymentContextSuccess("venmo-payment-context-id") - .build(); - - VenmoRequest request = new VenmoRequest(VenmoPaymentMethodUsage.SINGLE_USE); - request.setProfileId(null); - request.setShouldVault(false); - - when(deviceInspector.isVenmoAppSwitchAvailable(activity)).thenReturn(true); - - VenmoClient sut = - new VenmoClient(braintreeClient, venmoApi, sharedPrefsWriter, deviceInspector); - sut.createPaymentAuthRequest(activity, request, venmoPaymentAuthRequestCallback); - - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.selected"); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.started"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_STARTED); } @Test @@ -453,8 +415,8 @@ public void createPaymentAuthRequest_sendsAnalyticsEventWhenUnavailableAndPostEx assertTrue(paymentAuthRequest instanceof VenmoPaymentAuthRequest.Failure); assertEquals("Venmo is not installed", ((VenmoPaymentAuthRequest.Failure) paymentAuthRequest).getError().getMessage()); - order.verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.selected"); - order.verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + order.verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_STARTED); + order.verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_FAILED); } @Test @@ -482,7 +444,7 @@ public void createPaymentAuthRequest_whenVenmoApiError_forwardsErrorToListener_a VenmoPaymentAuthRequest paymentAuthRequest = captor.getValue(); assertTrue(paymentAuthRequest instanceof VenmoPaymentAuthRequest.Failure); assertEquals(graphQLError, ((VenmoPaymentAuthRequest.Failure) paymentAuthRequest).getError()); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.failed"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } @Test @@ -567,6 +529,55 @@ public void tokenize_withPaymentContextId_requestFromVenmoApi() { verify(venmoApi).createNonceFromPaymentContext(eq("payment-context-id"), any(VenmoInternalCallback.class)); + + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_SUCCEEDED); + } + + @Test + public void tokenize_withPaymentAuthResultError_whenUserCanceledError_returnsCancelAndSendsAnalytics() { + BraintreeClient braintreeClient = new MockBraintreeClientBuilder() + .configuration(venmoEnabledConfiguration) + .authorizationSuccess(clientToken) + .build(); + + VenmoClient sut = + new VenmoClient(braintreeClient, venmoApi, sharedPrefsWriter, deviceInspector); + + VenmoPaymentAuthResult venmoPaymentAuthResult = + new VenmoPaymentAuthResult(null, null, null, new UserCanceledException("User canceled Venmo.")); + sut.tokenize(venmoPaymentAuthResult, venmoTokenizeCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(VenmoResult.class); + verify(venmoTokenizeCallback).onVenmoResult(captor.capture()); + + VenmoResult result = captor.getValue(); + assertTrue(result instanceof VenmoResult.Cancel); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_CANCELED); + + } + + @Test + public void tokenize_withPaymentAuthResultError_returnsErrorAndSendsAnalytics() { + BraintreeClient braintreeClient = new MockBraintreeClientBuilder() + .configuration(venmoEnabledConfiguration) + .authorizationSuccess(clientToken) + .build(); + + VenmoClient sut = + new VenmoClient(braintreeClient, venmoApi, sharedPrefsWriter, deviceInspector); + + BraintreeException error = new BraintreeException("Error"); + VenmoPaymentAuthResult venmoPaymentAuthResult = + new VenmoPaymentAuthResult(null, null, null, error); + sut.tokenize(venmoPaymentAuthResult, venmoTokenizeCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(VenmoResult.class); + verify(venmoTokenizeCallback).onVenmoResult(captor.capture()); + + VenmoResult result = captor.getValue(); + assertTrue(result instanceof VenmoResult.Failure); + assertEquals(error, ((VenmoResult.Failure) result).getError()); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } @Test @@ -599,7 +610,7 @@ public void tokenize_onGraphQLPostSuccess_returnsNonceToListener_andSendsAnalyti assertEquals("fake-venmo-nonce", nonce.getString()); assertEquals("venmojoe", nonce.getUsername()); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.success"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_SUCCEEDED); } @Test @@ -629,7 +640,7 @@ public void tokenize_onGraphQLPostFailure_forwardsExceptionToListener_andSendsAn VenmoResult result = captor.getValue(); assertTrue(result instanceof VenmoResult.Failure); assertEquals(graphQLError, ((VenmoResult.Failure) result).getError()); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.failure"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } @Test @@ -685,7 +696,7 @@ public void tokenize_postsPaymentMethodNonceOnSuccess() { } @Test - public void tokenize_sendsAnalyticsEventOnSuccess() { + public void tokenize_sendsAnalyticsEventOnSuccessfulStart() { VenmoClient sut = new VenmoClient(braintreeClient, venmoApi, sharedPrefsWriter, deviceInspector); @@ -694,7 +705,7 @@ public void tokenize_sendsAnalyticsEventOnSuccess() { null); sut.tokenize(venmoPaymentAuthResult, venmoTokenizeCallback); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.success"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_SUCCEEDED); } @Test @@ -707,7 +718,7 @@ public void tokenize_sendsAnalyticsEventOnCancel() { new UserCanceledException("User canceled Venmo.")); sut.tokenize(venmoPaymentAuthResult, venmoTokenizeCallback); - verify(braintreeClient).sendAnalyticsEvent("pay-with-venmo.app-switch.canceled"); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.APP_SWITCH_CANCELED); } @Test @@ -814,7 +825,7 @@ public void tokenize_withSuccessfulVaultCall_forwardsResultToActivityResultListe assertTrue(result instanceof VenmoResult.Success); VenmoAccountNonce nonce = ((VenmoResult.Success) result).getNonce(); assertEquals(venmoAccountNonce, nonce); - verify(braintreeClient).sendAnalyticsEvent(endsWith("pay-with-venmo.vault.success")); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_SUCCEEDED); } @Test @@ -854,7 +865,7 @@ public void tokenize_withPaymentContext_withSuccessfulVaultCall_forwardsNonceToC assertTrue(result instanceof VenmoResult.Success); VenmoAccountNonce nonce = ((VenmoResult.Success) result).getNonce(); assertEquals(venmoAccountNonce, nonce); - verify(braintreeClient).sendAnalyticsEvent(endsWith("pay-with-venmo.vault.success")); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_SUCCEEDED); } @Test @@ -887,7 +898,7 @@ public void tokenize_withFailedVaultCall_forwardsErrorToActivityResultListener_a VenmoResult result = captor.getValue(); assertTrue(result instanceof VenmoResult.Failure); assertEquals(error, ((VenmoResult.Failure) result).getError()); - verify(braintreeClient).sendAnalyticsEvent(endsWith("pay-with-venmo.vault.failed")); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } @Test @@ -927,6 +938,6 @@ public void tokenize_withPaymentContext_withFailedVaultCall_forwardsErrorToCallb VenmoResult result = captor.getValue(); assertTrue(result instanceof VenmoResult.Failure); assertEquals(error, ((VenmoResult.Failure) result).getError()); - verify(braintreeClient).sendAnalyticsEvent(endsWith("pay-with-venmo.vault.failed")); + verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED); } } \ No newline at end of file From 2dbc07c583af99a35f6f9dd98281ae7a032642f8 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Mon, 11 Dec 2023 15:05:00 -0600 Subject: [PATCH 03/15] VenmoListener NPE Fix (#848) * Check for listener before returning result * Add unit test * Add CHANGELOG * Fix spacing * Log warning if listener is null * Move logging to utils class * Update tag name * Fix lint --- CHANGELOG.md | 5 +++ .../com/braintreepayments/api/LoggingUtils.kt | 14 +++++++ .../braintreepayments/api/VenmoClient.java | 37 ++++++++++++++----- .../api/VenmoClientUnitTest.java | 25 +++++++++++++ 4 files changed, 71 insertions(+), 10 deletions(-) create mode 100644 SharedUtils/src/main/java/com/braintreepayments/api/LoggingUtils.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 60279ba6cf..26f656aa9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Braintree Android SDK Release Notes +## unreleased + +* Venmo + * Fix NPE when `VenmoListener` is null (fixes #832) + ## 4.40.0 (2023-11-16) * PayPalNativeCheckout diff --git a/SharedUtils/src/main/java/com/braintreepayments/api/LoggingUtils.kt b/SharedUtils/src/main/java/com/braintreepayments/api/LoggingUtils.kt new file mode 100644 index 0000000000..7e07e7a605 --- /dev/null +++ b/SharedUtils/src/main/java/com/braintreepayments/api/LoggingUtils.kt @@ -0,0 +1,14 @@ +package com.braintreepayments.api + +import androidx.annotation.RestrictTo + +/** + * @suppress + */ +@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) +object LoggingUtils { + + const val TAG = "Braintree SDK" + + const val LISTENER_WARNING = "Unable to deliver result to null listener" +} diff --git a/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java b/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java index 387bacd081..2b484dd8bc 100644 --- a/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java +++ b/Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java @@ -5,6 +5,7 @@ import android.content.Intent; import android.net.Uri; import android.text.TextUtils; +import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -132,7 +133,7 @@ public void tokenizeVenmoAccount(@NonNull final FragmentActivity activity, @NonN @Override public void onResult(@Nullable Exception error) { if (error != null) { - listener.onVenmoFailure(error); + deliverVenmoFailure(error); } } }); @@ -254,19 +255,19 @@ public void onResult(@Nullable VenmoAccountNonce nonce, @Nullable Exception erro @Override public void onResult(@Nullable VenmoAccountNonce venmoAccountNonce, @Nullable Exception error) { if (venmoAccountNonce != null) { - listener.onVenmoSuccess(venmoAccountNonce); + deliverVenmoSuccess(venmoAccountNonce); } else if (error != null) { - listener.onVenmoFailure(error); + deliverVenmoFailure(error); } } }); } else { braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.failure"); - listener.onVenmoSuccess(nonce); + deliverVenmoSuccess(nonce); } } else { braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.failure"); - listener.onVenmoFailure(error); + deliverVenmoFailure(error); } } }); @@ -279,21 +280,21 @@ public void onResult(@Nullable VenmoAccountNonce venmoAccountNonce, @Nullable Ex @Override public void onResult(@Nullable VenmoAccountNonce venmoAccountNonce, @Nullable Exception error) { if (venmoAccountNonce != null) { - listener.onVenmoSuccess(venmoAccountNonce); + deliverVenmoSuccess(venmoAccountNonce); } else if (error != null) { - listener.onVenmoFailure(error); + deliverVenmoFailure(error); } } }); } else { String venmoUsername = venmoResult.getVenmoUsername(); VenmoAccountNonce venmoAccountNonce = new VenmoAccountNonce(nonce, venmoUsername, false); - listener.onVenmoSuccess(venmoAccountNonce); + deliverVenmoSuccess(venmoAccountNonce); } } } else if (authError != null) { - listener.onVenmoFailure(authError); + deliverVenmoFailure(authError); } } }); @@ -302,7 +303,23 @@ public void onResult(@Nullable VenmoAccountNonce venmoAccountNonce, @Nullable Ex if (venmoResult.getError() instanceof UserCanceledException) { braintreeClient.sendAnalyticsEvent("pay-with-venmo.app-switch.canceled"); } - listener.onVenmoFailure(venmoResult.getError()); + deliverVenmoFailure(venmoResult.getError()); + } + } + + private void deliverVenmoSuccess(VenmoAccountNonce venmoAccountNonce) { + if (listener != null) { + listener.onVenmoSuccess(venmoAccountNonce); + } else { + Log.w(LoggingUtils.TAG, LoggingUtils.LISTENER_WARNING); + } + } + + private void deliverVenmoFailure(Exception error) { + if (listener != null) { + listener.onVenmoFailure(error); + } else { + Log.w(LoggingUtils.TAG, LoggingUtils.LISTENER_WARNING); } } diff --git a/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java b/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java index ce883ae498..be54ca7f3b 100644 --- a/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java +++ b/Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java @@ -156,6 +156,31 @@ public void showVenmoInGooglePlayStore_sendsAnalyticsEvent() { verify(braintreeClient).sendAnalyticsEvent("android.pay-with-venmo.app-store.invoked"); } + @Test + public void tokenizeVenmoAccount_whenListenerNull_returnsNothing() { + BraintreeClient braintreeClient = new MockBraintreeClientBuilder() + .configuration(venmoEnabledConfiguration) + .sessionId("session-id") + .integration("custom") + .authorizationSuccess(clientToken) + .build(); + + VenmoApi venmoApi = new MockVenmoApiBuilder() + .createPaymentContextSuccess("venmo-payment-context-id") + .build(); + + when(deviceInspector.isVenmoAppSwitchAvailable(activity)).thenReturn(true); + + VenmoRequest request = new VenmoRequest(VenmoPaymentMethodUsage.SINGLE_USE); + request.setProfileId("sample-venmo-merchant"); + request.setCollectCustomerBillingAddress(true); + + VenmoClient sut = new VenmoClient(null, null, braintreeClient, venmoApi, sharedPrefsWriter, deviceInspector); + sut.tokenizeVenmoAccount(activity, request); + verify(listener, never()).onVenmoFailure(any(Exception.class)); + verify(listener, never()).onVenmoSuccess(any(VenmoAccountNonce.class)); + } + @Test public void tokenizeVenmoAccount_whenCreatePaymentContextSucceeds_withObserver_launchesObserverWithVenmoIntentData_andSendsAnalytics() { BraintreeClient braintreeClient = new MockBraintreeClientBuilder() From 3e3071475ceb0b1b3228a58eaa53739eef309605 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Tue, 12 Dec 2023 09:38:36 -0600 Subject: [PATCH 04/15] Return Auth/Config Error in PayPalClient (#849) * Propagate config fetch / auth error in PayPalClient * Update CHANGELOG * Add unit test --- CHANGELOG.md | 2 ++ .../braintreepayments/api/PayPalClient.java | 10 ++++++ .../api/PayPalClientUnitTest.java | 32 +++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26f656aa9d..c00448586d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## unreleased +* PayPal + * Fix issue where inaccurate error message was being returned on authorization or configuration error (fixes #821) * Venmo * Fix NPE when `VenmoListener` is null (fixes #832) diff --git a/PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java b/PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java index 74037532f0..b35197a1fb 100644 --- a/PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java +++ b/PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java @@ -209,6 +209,11 @@ private void sendCheckoutRequest(final FragmentActivity activity, final PayPalCh braintreeClient.getConfiguration(new ConfigurationCallback() { @Override public void onResult(@Nullable final Configuration configuration, @Nullable Exception error) { + if (error != null) { + callback.onResult(error); + return; + } + if (payPalConfigInvalid(configuration)) { Exception configInvalidError = createPayPalError(); callback.onResult(configInvalidError); @@ -239,6 +244,11 @@ private void sendVaultRequest(final FragmentActivity activity, final PayPalVault braintreeClient.getConfiguration(new ConfigurationCallback() { @Override public void onResult(@Nullable final Configuration configuration, @Nullable Exception error) { + if (error != null) { + callback.onResult(error); + return; + } + if (payPalConfigInvalid(configuration)) { Exception configInvalidError = createPayPalError(); callback.onResult(configInvalidError); diff --git a/PayPal/src/test/java/com/braintreepayments/api/PayPalClientUnitTest.java b/PayPal/src/test/java/com/braintreepayments/api/PayPalClientUnitTest.java index 5b6471684b..b934694de0 100644 --- a/PayPal/src/test/java/com/braintreepayments/api/PayPalClientUnitTest.java +++ b/PayPal/src/test/java/com/braintreepayments/api/PayPalClientUnitTest.java @@ -352,6 +352,38 @@ public void requestOneTimePayment_whenPayPalNotEnabled_returnsErrorToListener() "for more information.", errorCaptor.getValue().getMessage()); } + @Test + public void requestOneTimePayment_whenConfigError_forwardsErrorToListener() { + PayPalInternalClient payPalInternalClient = new MockPayPalInternalClientBuilder().build(); + + Exception authError = new Exception("Error fetching auth"); + BraintreeClient braintreeClient = new MockBraintreeClientBuilder() + .configurationError(authError) + .build(); + + PayPalClient sut = new PayPalClient(activity, lifecycle, braintreeClient, payPalInternalClient); + sut.setListener(listener); + sut.tokenizePayPalAccount(activity, new PayPalCheckoutRequest("1.00")); + + verify(listener).onPayPalFailure(authError); + } + + @Test + public void requestBillingAgreement_whenConfigError_forwardsErrorToListener() { + PayPalInternalClient payPalInternalClient = new MockPayPalInternalClientBuilder().build(); + + Exception authError = new Exception("Error fetching auth"); + BraintreeClient braintreeClient = new MockBraintreeClientBuilder() + .configurationError(authError) + .build(); + + PayPalClient sut = new PayPalClient(activity, lifecycle, braintreeClient, payPalInternalClient); + sut.setListener(listener); + sut.tokenizePayPalAccount(activity, new PayPalVaultRequest()); + + verify(listener).onPayPalFailure(authError); + } + @Test public void requestOneTimePayment_whenDeviceCantPerformBrowserSwitch_returnsErrorToListener() { PayPalInternalClient payPalInternalClient = new MockPayPalInternalClientBuilder().build(); From 215b24eadad2ddf2d8f5204bf253a090690899cc Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Tue, 12 Dec 2023 09:47:58 -0600 Subject: [PATCH 05/15] Add Card FPTI Analytics Events (#850) * Convert CardAnalytics into object * Add FPTI analytics events * Add unit test * Update Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java Co-authored-by: scannillo <35243507+scannillo@users.noreply.github.com> --- .../braintreepayments/api/CardAnalytics.kt | 8 +++--- .../com/braintreepayments/api/CardClient.java | 26 ++++++++++++------- .../api/CardAnalyticsUnitTest.kt | 6 ++--- .../api/CardClientUnitTest.java | 21 ++++++++++----- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/Card/src/main/java/com/braintreepayments/api/CardAnalytics.kt b/Card/src/main/java/com/braintreepayments/api/CardAnalytics.kt index 6016e7c9ee..f4bbec26b3 100644 --- a/Card/src/main/java/com/braintreepayments/api/CardAnalytics.kt +++ b/Card/src/main/java/com/braintreepayments/api/CardAnalytics.kt @@ -1,8 +1,8 @@ package com.braintreepayments.api -internal enum class CardAnalytics(@JvmField val event: String) { +internal object CardAnalytics { - CARD_TOKENIZE_STARTED("card:tokenize:started"), - CARD_TOKENIZE_FAILED("card:tokenize:failed"), - CARD_TOKENIZE_SUCCEEDED("card:tokenize:succeeded") + const val CARD_TOKENIZE_STARTED = "card:tokenize:started" + const val CARD_TOKENIZE_FAILED = "card:tokenize:failed" + const val CARD_TOKENIZE_SUCCEEDED = "card:tokenize:succeeded" } diff --git a/Card/src/main/java/com/braintreepayments/api/CardClient.java b/Card/src/main/java/com/braintreepayments/api/CardClient.java index dbaf23006e..689ccdf63c 100644 --- a/Card/src/main/java/com/braintreepayments/api/CardClient.java +++ b/Card/src/main/java/com/braintreepayments/api/CardClient.java @@ -62,9 +62,10 @@ public CardClient(@NonNull Context context, @NonNull String authorization) { * @param callback {@link CardTokenizeCallback} */ public void tokenize(@NonNull final Card card, @NonNull final CardTokenizeCallback callback) { + braintreeClient.sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_STARTED); braintreeClient.getConfiguration((configuration, error) -> { if (error != null) { - callback.onCardResult(new CardResult.Failure(error)); + callbackFailure(callback, new CardResult.Failure(error)); return; } @@ -80,7 +81,7 @@ public void tokenize(@NonNull final Card card, @NonNull final CardTokenizeCallba (tokenizationResponse, exception) -> handleTokenizeResponse( tokenizationResponse, exception, callback)); } catch (BraintreeException | JSONException e) { - callback.onCardResult(new CardResult.Failure(e)); + callbackFailure(callback, new CardResult.Failure(e)); } } else { apiClient.tokenizeREST(card, @@ -95,17 +96,22 @@ private void handleTokenizeResponse(JSONObject tokenizationResponse, Exception e if (tokenizationResponse != null) { try { CardNonce cardNonce = CardNonce.fromJSON(tokenizationResponse); - - callback.onCardResult(new CardResult.Success(cardNonce)); - braintreeClient.sendAnalyticsEvent("card.nonce-received"); - + callbackSuccess(callback, new CardResult.Success(cardNonce)); } catch (JSONException e) { - callback.onCardResult(new CardResult.Failure(e)); - braintreeClient.sendAnalyticsEvent("card.nonce-failed"); + callbackFailure(callback, new CardResult.Failure(e)); } } else if (exception != null) { - callback.onCardResult(new CardResult.Failure(exception)); - braintreeClient.sendAnalyticsEvent("card.nonce-failed"); + callbackFailure(callback, new CardResult.Failure(exception)); } } + + private void callbackFailure(CardTokenizeCallback callback, CardResult cardResult) { + braintreeClient.sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_FAILED); + callback.onCardResult(cardResult); + } + + private void callbackSuccess(CardTokenizeCallback callback, CardResult cardResult) { + braintreeClient.sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_SUCCEEDED); + callback.onCardResult(cardResult); + } } diff --git a/Card/src/test/java/com/braintreepayments/api/CardAnalyticsUnitTest.kt b/Card/src/test/java/com/braintreepayments/api/CardAnalyticsUnitTest.kt index c0f04534af..ea98425607 100644 --- a/Card/src/test/java/com/braintreepayments/api/CardAnalyticsUnitTest.kt +++ b/Card/src/test/java/com/braintreepayments/api/CardAnalyticsUnitTest.kt @@ -7,8 +7,8 @@ class CardAnalyticsUnitTest { @Test fun testAnalyticsEvents_sendsExpectedEventNames() { - assertEquals("card:tokenize:started", CardAnalytics.CARD_TOKENIZE_STARTED.event) - assertEquals("card:tokenize:failed", CardAnalytics.CARD_TOKENIZE_FAILED.event) - assertEquals("card:tokenize:succeeded", CardAnalytics.CARD_TOKENIZE_SUCCEEDED.event) + assertEquals("card:tokenize:started", CardAnalytics.CARD_TOKENIZE_STARTED) + assertEquals("card:tokenize:failed", CardAnalytics.CARD_TOKENIZE_FAILED) + assertEquals("card:tokenize:succeeded", CardAnalytics.CARD_TOKENIZE_SUCCEEDED) } } diff --git a/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java b/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java index 09563f061c..0be5697fba 100644 --- a/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java +++ b/Card/src/test/java/com/braintreepayments/api/CardClientUnitTest.java @@ -24,7 +24,6 @@ @RunWith(RobolectricTestRunner.class) public class CardClientUnitTest { - private Context context; private Card card; private CardTokenizeCallback cardTokenizeCallback; @@ -35,7 +34,6 @@ public class CardClientUnitTest { @Before public void beforeEach() throws JSONException { - context = mock(Context.class); card = new Card(); cardTokenizeCallback = mock(CardTokenizeCallback.class); @@ -45,6 +43,17 @@ public void beforeEach() throws JSONException { graphQLDisabledConfig = Configuration.fromJson(Fixtures.CONFIGURATION_WITHOUT_ACCESS_TOKEN); } + @Test + public void tokenize_sendsTokenizeStartedAnalytics() { + BraintreeClient braintreeClient = new MockBraintreeClientBuilder().build(); + apiClient = new MockApiClientBuilder().build(); + + CardClient sut = new CardClient(braintreeClient, apiClient); + sut.tokenize(card, cardTokenizeCallback); + + verify(braintreeClient).sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_STARTED); + } + @Test public void tokenize_whenGraphQLEnabled_setsSessionIdOnCardBeforeTokenizing() { BraintreeClient braintreeClient = new MockBraintreeClientBuilder() @@ -121,7 +130,7 @@ public void tokenize_whenGraphQLEnabled_sendsAnalyticsEventOnSuccess() throws JS CardClient sut = new CardClient(braintreeClient, apiClient); sut.tokenize(card, cardTokenizeCallback); - verify(braintreeClient).sendAnalyticsEvent("card.nonce-received"); + verify(braintreeClient).sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_SUCCEEDED); } @Test @@ -137,7 +146,7 @@ public void tokenize_whenGraphQLDisabled_sendsAnalyticsEventOnSuccess() throws J CardClient sut = new CardClient(braintreeClient, apiClient); sut.tokenize(card, cardTokenizeCallback); - verify(braintreeClient).sendAnalyticsEvent("card.nonce-received"); + verify(braintreeClient).sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_SUCCEEDED); } @Test @@ -200,7 +209,7 @@ public void tokenize_whenGraphQLEnabled_sendsAnalyticsEventOnFailure() { CardClient sut = new CardClient(braintreeClient, apiClient); sut.tokenize(card, cardTokenizeCallback); - verify(braintreeClient).sendAnalyticsEvent("card.nonce-failed"); + verify(braintreeClient).sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_FAILED); } @Test @@ -217,7 +226,7 @@ public void tokenize_whenGraphQLDisabled_sendsAnalyticsEventOnFailure() { CardClient sut = new CardClient(braintreeClient, apiClient); sut.tokenize(card, cardTokenizeCallback); - verify(braintreeClient).sendAnalyticsEvent("card.nonce-failed"); + verify(braintreeClient).sendAnalyticsEvent(CardAnalytics.CARD_TOKENIZE_FAILED); } @Test From 91217f7f285f07544740d181fcf15112dc3ce857 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Tue, 12 Dec 2023 09:51:54 -0600 Subject: [PATCH 06/15] 3DS Result Object Refactor (#845) * Rename ThreeDSecureResult * Create ThreeDSecureResult * WIP * Fix demo app * Remove lookup from result * Fix unit tests * Rename internal result * Revert rename changes * Fix migration guide * Update prepare lookup * Add CHANGELOG * Fix unit tests * Fix lint * Update ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureClient.java Co-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com> Co-authored-by: Tim Chow --- CHANGELOG.md | 6 +- .../braintreepayments/demo/CardFragment.java | 41 +-- .../braintreepayments/api/CardinalClient.java | 7 +- .../api/ThreeDSecureAPI.java | 8 +- .../api/ThreeDSecureActivity.java | 8 +- .../ThreeDSecureActivityResultContract.java | 8 +- .../api/ThreeDSecureClient.java | 76 +++--- .../api/ThreeDSecureLauncher.java | 12 +- .../api/ThreeDSecureLookup.java | 2 +- ...ureResult.java => ThreeDSecureParams.java} | 27 +- .../api/ThreeDSecurePaymentAuthRequest.kt | 25 ++ ...hreeDSecurePaymentAuthRequestCallback.java | 11 + .../api/ThreeDSecurePaymentAuthResult.java | 12 +- .../ThreeDSecurePrepareLookupCallback.java | 9 +- .../api/ThreeDSecurePrepareLookupResult.kt | 21 ++ .../api/ThreeDSecureResult.kt | 25 ++ .../api/ThreeDSecureResultCallback.java | 10 +- .../api/ThreeDSecureTokenizeCallback.java | 11 + .../api/CardinalClientUnitTest.kt | 12 +- .../api/ThreeDSecureAPIUnitTest.java | 74 +++--- ...DSecureActivityResultContractUnitTest.java | 14 +- .../api/ThreeDSecureActivityUnitTest.java | 22 +- .../api/ThreeDSecureClientUnitTest.java | 244 +++++++++++------- .../api/ThreeDSecureLauncherUnitTest.java | 22 +- ...t.java => ThreeDSecureParamsUnitTest.java} | 14 +- v5_MIGRATION_GUIDE.md | 40 ++- 26 files changed, 459 insertions(+), 302 deletions(-) rename ThreeDSecure/src/main/java/com/braintreepayments/api/{ThreeDSecureResult.java => ThreeDSecureParams.java} (79%) create mode 100644 ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequest.kt create mode 100644 ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequestCallback.java create mode 100644 ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupResult.kt create mode 100644 ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResult.kt create mode 100644 ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureTokenizeCallback.java rename ThreeDSecure/src/test/java/com/braintreepayments/api/{ThreeDSecureResultUnitTest.java => ThreeDSecureParamsUnitTest.java} (89%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2327fb7015..09b4cbd0ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,9 +48,13 @@ * Remove `merchantId` from `GooglePayRequest` * ThreeDSecure * Remove `ThreeDSecureListener` - * Add `ThreeDSecureLauncher`, `ThreeDSecurePaymentAuthResult`, and `ThreeDSecureLancherCallback` + * Add `ThreeDSecureLauncher`, `ThreeDSecurePaymentAuthResult`, + `ThreeDSecureTokenizeCallback`, `ThreeDSecurePaymentAuthRequest`, + `ThreeDSecurePaymentAuthRequestCallback`, `ThreeDSecurePrepareLookupResult`, + `ThreeDSecurePrepareLookupCallback`, and `ThreeDSecureLancherCallback` * Remove overload constructors, `setListener`, `continuePerformVerification`, `onBrowserSwitchResult` and `onActivityResult` from `ThreeDSecureClient` * Change `ThreeDSecureClient#initializeChallengeWithLookupResponse` parameters + * Convert `ThreeDSecureResult` into sealed class * Add `ThreeDSecureClient#tokenize` * Rename `ThreeDSecureClient#performVerification` to `ThreeDSecureClient#createPaymentAuthRequest` and change parameters diff --git a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java index 7eb9d7fe25..6a91bf819b 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java @@ -27,6 +27,7 @@ import com.braintreepayments.api.ThreeDSecureClient; import com.braintreepayments.api.ThreeDSecureLauncher; import com.braintreepayments.api.ThreeDSecureNonce; +import com.braintreepayments.api.ThreeDSecurePaymentAuthRequest; import com.braintreepayments.api.ThreeDSecurePostalAddress; import com.braintreepayments.api.ThreeDSecureRequest; import com.braintreepayments.api.ThreeDSecureResult; @@ -35,6 +36,7 @@ import com.braintreepayments.api.ThreeDSecureV2TextBoxCustomization; import com.braintreepayments.api.ThreeDSecureV2ToolbarCustomization; import com.braintreepayments.api.ThreeDSecureV2UiCustomization; +import com.braintreepayments.api.UserCanceledException; import com.braintreepayments.cardform.OnCardFormFieldFocusedListener; import com.braintreepayments.cardform.OnCardFormSubmitListener; import com.braintreepayments.cardform.utils.CardType; @@ -89,8 +91,17 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c View view = inflater.inflate(R.layout.fragment_card, container, false); threeDSecureLauncher = new ThreeDSecureLauncher(this, - paymentAuthResult -> threeDSecureClient.tokenize(paymentAuthResult, - this::handleThreeDSecureResult)); + paymentAuthResult -> { + threeDSecureClient.tokenize(paymentAuthResult, threeDSecureResult -> { + if (threeDSecureResult instanceof ThreeDSecureResult.Success) { + handlePaymentMethodNonceCreated(((ThreeDSecureResult.Success) threeDSecureResult).getNonce()); + } else if (threeDSecureResult instanceof ThreeDSecureResult.Failure) { + handleError(((ThreeDSecureResult.Failure) threeDSecureResult).getError()); + } else if (threeDSecureResult instanceof ThreeDSecureResult.Cancel) { + handleError(new UserCanceledException("User canceled 3DS.")); + } + }); + }); cardForm = view.findViewById(R.id.card_form); cardForm.setOnFormFieldFocusedListener(this); @@ -200,34 +211,26 @@ public void onAutofill(View v) { autofillHelper.fillPostalCode("12345"); } - private void handleThreeDSecureResult(ThreeDSecureResult threeDSecureResult, Exception error) { - safelyCloseLoadingView(); - if (threeDSecureResult != null) { - ThreeDSecureNonce paymentMethodNonce = threeDSecureResult.getThreeDSecureNonce(); - handlePaymentMethodNonceCreated(paymentMethodNonce); - } else { - handleError(error); - } - } - private void handlePaymentMethodNonceCreated(PaymentMethodNonce paymentMethodNonce) { super.onPaymentMethodNonceCreated(paymentMethodNonce); final FragmentActivity activity = getActivity(); if (!threeDSecureRequested && paymentMethodNonce instanceof CardNonce && - Settings.isThreeDSecureEnabled(activity)) { + Settings.isThreeDSecureEnabled(activity) && !(paymentMethodNonce instanceof ThreeDSecureNonce)) { threeDSecureRequested = true; loading = ProgressDialog.show(activity, getString(R.string.loading), getString(R.string.loading), true, false); ThreeDSecureRequest threeDSecureRequest = threeDSecureRequest(paymentMethodNonce); threeDSecureClient.createPaymentAuthRequest(requireContext(), threeDSecureRequest, - (threeDSecureResult, error) -> { - if (threeDSecureResult != null && - threeDSecureResult.getLookup().requiresUserAuthentication()) { - threeDSecureLauncher.launch(threeDSecureResult); - } else { - handleThreeDSecureResult(threeDSecureResult, error); + (paymentAuthRequest) -> { + if (paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.ReadyToLaunch) { + threeDSecureLauncher.launch( + (ThreeDSecurePaymentAuthRequest.ReadyToLaunch) paymentAuthRequest); + } else if (paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.LaunchNotRequired) { + handlePaymentMethodNonceCreated(((ThreeDSecurePaymentAuthRequest.LaunchNotRequired) paymentAuthRequest).getNonce()); + } else if (paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.Failure) { + handleError(((ThreeDSecurePaymentAuthRequest.Failure) paymentAuthRequest).getError()); } safelyCloseLoadingView(); }); diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java index 5761d5a6b7..4dafebf0b7 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java @@ -2,8 +2,6 @@ import android.content.Context; -import androidx.fragment.app.FragmentActivity; - import com.cardinalcommerce.cardinalmobilesdk.Cardinal; import com.cardinalcommerce.cardinalmobilesdk.enums.CardinalEnvironment; import com.cardinalcommerce.cardinalmobilesdk.enums.CardinalRenderType; @@ -12,7 +10,6 @@ import com.cardinalcommerce.cardinalmobilesdk.models.CardinalConfigurationParameters; import com.cardinalcommerce.cardinalmobilesdk.models.ValidateResponse; import com.cardinalcommerce.cardinalmobilesdk.services.CardinalInitService; -import com.cardinalcommerce.cardinalmobilesdk.services.CardinalValidateReceiver; import org.json.JSONArray; @@ -53,9 +50,9 @@ public void onValidated(ValidateResponse validateResponse, String serverJWT) { } } - void continueLookup(ThreeDSecureResult threeDSecureResult, + void continueLookup(ThreeDSecureParams threeDSecureParams, CardinalChallengeObserver challengeObserver) throws BraintreeException { - ThreeDSecureLookup lookup = threeDSecureResult.getLookup(); + ThreeDSecureLookup lookup = threeDSecureParams.getLookup(); String transactionId = lookup.getTransactionId(); String paReq = lookup.getPareq(); try { diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureAPI.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureAPI.java index 402eb6568a..efc3101c1f 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureAPI.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureAPI.java @@ -21,7 +21,7 @@ void performLookup(final ThreeDSecureRequest request, String cardinalConsumerSes braintreeClient.sendPOST(url, data, (responseBody, httpError) -> { if (responseBody != null) { try { - ThreeDSecureResult result = ThreeDSecureResult.fromJson(responseBody); + ThreeDSecureParams result = ThreeDSecureParams.fromJson(responseBody); callback.onResult(result, null); } catch (JSONException e) { callback.onResult(null, e); @@ -32,9 +32,9 @@ void performLookup(final ThreeDSecureRequest request, String cardinalConsumerSes }); } - void authenticateCardinalJWT(ThreeDSecureResult threeDSecureResult, String cardinalJWT, + void authenticateCardinalJWT(ThreeDSecureParams threeDSecureParams, String cardinalJWT, final ThreeDSecureResultCallback callback) { - final ThreeDSecureNonce lookupCardNonce = threeDSecureResult.getThreeDSecureNonce(); + final ThreeDSecureNonce lookupCardNonce = threeDSecureParams.getThreeDSecureNonce(); braintreeClient.sendAnalyticsEvent( "three-d-secure.verification-flow.upgrade-payment-method.started"); @@ -55,7 +55,7 @@ void authenticateCardinalJWT(ThreeDSecureResult threeDSecureResult, String cardi braintreeClient.sendPOST(url, data, (responseBody, httpError) -> { if (responseBody != null) { try { - ThreeDSecureResult result = ThreeDSecureResult.fromJson(responseBody); + ThreeDSecureParams result = ThreeDSecureParams.fromJson(responseBody); if (result.hasError()) { result.setThreeDSecureNonce(lookupCardNonce); } diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivity.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivity.java index 00c2fecf7b..fd3579e6b7 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivity.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivity.java @@ -63,10 +63,10 @@ void launchCardinalAuthChallenge(CardinalClient cardinalClient) { extras = new Bundle(); } - ThreeDSecureResult threeDSecureResult = extras.getParcelable(EXTRA_THREE_D_SECURE_RESULT); - if (threeDSecureResult != null) { + ThreeDSecureParams threeDSecureParams = extras.getParcelable(EXTRA_THREE_D_SECURE_RESULT); + if (threeDSecureParams != null) { try { - cardinalClient.continueLookup(threeDSecureResult, challengeObserver); + cardinalClient.continueLookup(threeDSecureParams, challengeObserver); } catch (BraintreeException e) { finishWithError(e.getMessage()); } @@ -85,7 +85,7 @@ private void finishWithError(String errorMessage) { private void handleValidated(ValidateResponse validateResponse, String jwt) { Intent result = new Intent(); result.putExtra(EXTRA_JWT, jwt); - result.putExtra(EXTRA_THREE_D_SECURE_RESULT, (ThreeDSecureResult) getIntent().getExtras() + result.putExtra(EXTRA_THREE_D_SECURE_RESULT, (ThreeDSecureParams) getIntent().getExtras() .getParcelable(EXTRA_THREE_D_SECURE_RESULT)); result.putExtra(EXTRA_VALIDATION_RESPONSE, validateResponse); diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivityResultContract.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivityResultContract.java index 882b05588b..44a3b3a9b6 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivityResultContract.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureActivityResultContract.java @@ -17,11 +17,11 @@ import com.cardinalcommerce.cardinalmobilesdk.models.ValidateResponse; class ThreeDSecureActivityResultContract - extends ActivityResultContract { + extends ActivityResultContract { @NonNull @Override - public Intent createIntent(@NonNull Context context, ThreeDSecureResult input) { + public Intent createIntent(@NonNull Context context, ThreeDSecureParams input) { Intent intent = new Intent(context, ThreeDSecureActivity.class); Bundle extras = new Bundle(); @@ -44,12 +44,12 @@ public ThreeDSecurePaymentAuthResult parseResult(int resultCode, @Nullable Inten String errorMessage = intent.getStringExtra(EXTRA_ERROR_MESSAGE); result = new ThreeDSecurePaymentAuthResult(new BraintreeException(errorMessage)); } else { - ThreeDSecureResult threeDSecureResult = + ThreeDSecureParams threeDSecureParams = intent.getParcelableExtra(EXTRA_THREE_D_SECURE_RESULT); ValidateResponse validateResponse = (ValidateResponse) intent.getSerializableExtra(EXTRA_VALIDATION_RESPONSE); String jwt = intent.getStringExtra(EXTRA_JWT); - result = new ThreeDSecurePaymentAuthResult(threeDSecureResult, jwt, validateResponse); + result = new ThreeDSecurePaymentAuthResult(threeDSecureParams, jwt, validateResponse); } return result; } diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureClient.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureClient.java index ec01aa1e20..d04f75853c 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureClient.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureClient.java @@ -70,30 +70,30 @@ public ThreeDSecureClient(@NonNull Context context, @NonNull String authorizatio */ public void createPaymentAuthRequest(@NonNull final Context context, @NonNull final ThreeDSecureRequest request, - @NonNull final ThreeDSecureResultCallback callback) { + @NonNull final ThreeDSecurePaymentAuthRequestCallback callback) { if (request.getAmount() == null || request.getNonce() == null) { - callback.onResult(null, new InvalidArgumentException( - "The ThreeDSecureRequest nonce and amount cannot be null")); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure(new InvalidArgumentException( + "The ThreeDSecureRequest nonce and amount cannot be null"))); return; } braintreeClient.getConfiguration((configuration, error) -> { if (configuration == null) { - callback.onResult(null, error); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure(error)); return; } if (!configuration.isThreeDSecureEnabled()) { - callback.onResult(null, new BraintreeException( + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure(new BraintreeException( "Three D Secure is not enabled for this account. " + - "Please contact Braintree Support for assistance.")); + "Please contact Braintree Support for assistance."))); return; } if (configuration.getCardinalAuthenticationJwt() == null) { - callback.onResult(null, + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure( new BraintreeException("Merchant is not configured for 3DS 2.0. " + - "Please contact Braintree Support for assistance.")); + "Please contact Braintree Support for assistance."))); return; } braintreeClient.sendAnalyticsEvent("three-d-secure.initialized"); @@ -103,7 +103,7 @@ public void createPaymentAuthRequest(@NonNull final Context context, if (threeDSecureResult != null) { sendAnalyticsAndCallbackResult(threeDSecureResult, callback); } else { - callback.onResult(null, performLookupError); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure(performLookupError)); } }; @@ -128,7 +128,7 @@ public void createPaymentAuthRequest(@NonNull final Context context, } catch (BraintreeException initializeException) { braintreeClient.sendAnalyticsEvent( "three-d-secure.cardinal-sdk.init.failed"); - callback.onResult(null, initializeException); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure(initializeException)); } }); } @@ -159,15 +159,15 @@ public void prepareLookup(@NonNull final Context context, } braintreeClient.getConfiguration((configuration, configError) -> { - if (configuration == null) { - callback.onResult(null, null, configError); + if (configuration == null && configError != null) { + callback.onPrepareLookupResult(new ThreeDSecurePrepareLookupResult.Failure(configError)); return; } if (configuration.getCardinalAuthenticationJwt() == null) { Exception authError1 = new BraintreeException( "Merchant is not configured for 3DS 2.0. " + "Please contact Braintree Support for assistance."); - callback.onResult(null, null, authError1); + callback.onPrepareLookupResult(new ThreeDSecurePrepareLookupResult.Failure(authError1)); return; } @@ -180,7 +180,7 @@ public void prepareLookup(@NonNull final Context context, } catch (JSONException ignored) { } } - callback.onResult(request, lookupJSON.toString(), null); + callback.onPrepareLookupResult(new ThreeDSecurePrepareLookupResult.Success(request, lookupJSON.toString())); }; try { @@ -189,7 +189,7 @@ public void prepareLookup(@NonNull final Context context, } catch (BraintreeException initializeException) { braintreeClient.sendAnalyticsEvent( "three-d-secure.cardinal-sdk.init.failed"); - callback.onResult(null, null, initializeException); + callback.onPrepareLookupResult(new ThreeDSecurePrepareLookupResult.Failure(initializeException)); } }); } @@ -202,21 +202,20 @@ public void prepareLookup(@NonNull final Context context, * @param callback {@link ThreeDSecureResultCallback} */ public void initializeChallengeWithLookupResponse(@NonNull final String lookupResponse, @NonNull - final ThreeDSecureResultCallback callback) { + final ThreeDSecurePaymentAuthRequestCallback callback) { braintreeClient.getConfiguration((configuration, error) -> { - ThreeDSecureResult result; + ThreeDSecureParams result; try { - result = ThreeDSecureResult.fromJson(lookupResponse); + result = ThreeDSecureParams.fromJson(lookupResponse); sendAnalyticsAndCallbackResult(result, callback); } catch (JSONException e) { - callback.onResult(null, e); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure(e)); } }); } - // TODO: Consolidate this method with createPaymentAuthRequest when analytics refactor is complete - void sendAnalyticsAndCallbackResult(ThreeDSecureResult result, - ThreeDSecureResultCallback callback) { + void sendAnalyticsAndCallbackResult(ThreeDSecureParams result, + ThreeDSecurePaymentAuthRequestCallback callback) { ThreeDSecureLookup lookup = result.getLookup(); boolean showChallenge = lookup.getAcsUrl() != null; @@ -240,7 +239,7 @@ void sendAnalyticsAndCallbackResult(ThreeDSecureResult result, String.format("three-d-secure.verification-flow.liability-shift-possible.%b", info.isLiabilityShiftPossible())); - callback.onResult(result, null); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.LaunchNotRequired(result.getThreeDSecureNonce(), result.getLookup())); return; } @@ -249,12 +248,12 @@ void sendAnalyticsAndCallbackResult(ThreeDSecureResult result, "3D Secure v1 is deprecated and no longer supported. See https://developer.paypal.com/braintree/docs/guides/3d-secure/client-side/android/v4 for more information."; BraintreeException threeDSecureV1UnsupportedError = new BraintreeException(threeDSecureV1UnsupportedMessage); - callback.onResult(null, threeDSecureV1UnsupportedError); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.Failure(threeDSecureV1UnsupportedError)); return; } braintreeClient.sendAnalyticsEvent("three-d-secure.verification-flow.started"); - callback.onResult(result, null); + callback.onThreeDSecurePaymentAuthRequest(new ThreeDSecurePaymentAuthRequest.ReadyToLaunch(result)); } /** @@ -265,12 +264,12 @@ void sendAnalyticsAndCallbackResult(ThreeDSecureResult result, * @param callback a {@link ThreeDSecureResultCallback} */ public void tokenize(ThreeDSecurePaymentAuthResult paymentAuthResult, - ThreeDSecureResultCallback callback) { + ThreeDSecureTokenizeCallback callback) { Exception threeDSecureError = paymentAuthResult.getError(); if (threeDSecureError != null) { - callback.onResult(null, threeDSecureError); + callback.onThreeDSecureResult(new ThreeDSecureResult.Failure(threeDSecureError, null)); } else { - ThreeDSecureResult threeDSecureResult = paymentAuthResult.getThreeSecureResult(); + ThreeDSecureParams threeDSecureParams = paymentAuthResult.getThreeSecureResult(); ValidateResponse validateResponse = paymentAuthResult.getValidateResponse(); String jwt = paymentAuthResult.getJWT(); @@ -282,22 +281,23 @@ public void tokenize(ThreeDSecurePaymentAuthResult paymentAuthResult, case FAILURE: case NOACTION: case SUCCESS: - api.authenticateCardinalJWT(threeDSecureResult, jwt, + api.authenticateCardinalJWT(threeDSecureParams, jwt, (threeDSecureResult1, error) -> { if (threeDSecureResult1 != null) { if (threeDSecureResult1.hasError()) { braintreeClient.sendAnalyticsEvent( "three-d-secure.verification-flow.upgrade-payment-method.failure.returned-lookup-nonce"); - } else { + callback.onThreeDSecureResult(new ThreeDSecureResult.Failure(new BraintreeException(threeDSecureResult1.getErrorMessage()), threeDSecureResult1.getThreeDSecureNonce())); + } else if (threeDSecureResult1.getThreeDSecureNonce() != null) { braintreeClient.sendAnalyticsEvent( "three-d-secure.verification-flow.upgrade-payment-method.succeeded"); sendLiabilityShiftedAnalytics(threeDSecureResult1); + callback.onThreeDSecureResult(new ThreeDSecureResult.Success(threeDSecureResult1.getThreeDSecureNonce())); } - callback.onResult(threeDSecureResult1, null); } else if (error != null) { braintreeClient.sendAnalyticsEvent( "three-d-secure.verification-flow.upgrade-payment-method.errored"); - callback.onResult(null, error); + callback.onThreeDSecureResult(new ThreeDSecureResult.Failure(error, null)); } }); @@ -306,21 +306,21 @@ public void tokenize(ThreeDSecurePaymentAuthResult paymentAuthResult, break; case ERROR: case TIMEOUT: - callback.onResult(null, - new BraintreeException(validateResponse.getErrorDescription())); + callback.onThreeDSecureResult(new ThreeDSecureResult.Failure( + new BraintreeException(validateResponse.getErrorDescription()), null)); braintreeClient.sendAnalyticsEvent("three-d-secure.verification-flow.failed"); break; case CANCEL: - callback.onResult(null, - new UserCanceledException("User canceled 3DS.", true)); + callback.onThreeDSecureResult(ThreeDSecureResult.Cancel.INSTANCE); braintreeClient.sendAnalyticsEvent("three-d-secure.verification-flow.canceled"); break; } } } - private void sendLiabilityShiftedAnalytics(ThreeDSecureResult threeDSecureResult) { - ThreeDSecureInfo info = threeDSecureResult.getThreeDSecureNonce().getThreeDSecureInfo(); + private void sendLiabilityShiftedAnalytics( + ThreeDSecureParams threeDSecureParams) { + ThreeDSecureInfo info = threeDSecureParams.getThreeDSecureNonce().getThreeDSecureInfo(); braintreeClient.sendAnalyticsEvent( String.format("three-d-secure.verification-flow.liability-shifted.%b", diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLauncher.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLauncher.java index 3ea07992d4..a272289e99 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLauncher.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLauncher.java @@ -19,7 +19,7 @@ public class ThreeDSecureLauncher { private static final String THREE_D_SECURE_RESULT = "com.braintreepayments.api.ThreeDSecure.RESULT"; @VisibleForTesting - ActivityResultLauncher activityLauncher; + ActivityResultLauncher activityLauncher; private final ThreeDSecureLauncherCallback callback; /** @@ -63,17 +63,17 @@ public ThreeDSecureLauncher(@NonNull FragmentActivity activity, * Launches the 3DS flow by switching to an authentication Activity. Call this method in the * callback of * {@link ThreeDSecureClient#createPaymentAuthRequest(Context, ThreeDSecureRequest, - * ThreeDSecureResultCallback)} if user authentication is required + * ThreeDSecurePaymentAuthRequestCallback)} if user authentication is required * {@link ThreeDSecureLookup#requiresUserAuthentication()} * - * @param threeDSecureResult the result of + * @param paymentAuthRequest the result of * {@link - * ThreeDSecureClient#continuePerformVerification(ThreeDSecureResult, + * ThreeDSecureClient#continuePerformVerification(ThreeDSecureParams, * ThreeDSecureResultCallback)} */ - public void launch(ThreeDSecureResult threeDSecureResult) { + public void launch(ThreeDSecurePaymentAuthRequest.ReadyToLaunch paymentAuthRequest) { try { - activityLauncher.launch(threeDSecureResult); + activityLauncher.launch(paymentAuthRequest.getRequestParams()); } catch (RuntimeException runtimeException) { Throwable exceptionCause = runtimeException.getCause(); if (exceptionCause instanceof TransactionTooLargeException) { diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLookup.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLookup.java index 4f2a57ac76..c2cd50c19a 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLookup.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureLookup.java @@ -106,7 +106,7 @@ public String getTransactionId() { /** * @return {@code boolean} When `true`, the user will be presented with a 3D Secure challenge * when calling - * {@link ThreeDSecureClient#continuePerformVerification(ThreeDSecureResult, ThreeDSecureResultCallback)} + * {@link ThreeDSecureClient#continuePerformVerification(ThreeDSecureParams, ThreeDSecureResultCallback)} */ public boolean requiresUserAuthentication() { return acsUrl != null; diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResult.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureParams.java similarity index 79% rename from ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResult.java rename to ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureParams.java index cec01f353c..f55fb4d8d7 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResult.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureParams.java @@ -11,8 +11,7 @@ /** * Class to parse and contain 3D Secure authentication responses */ -// TODO: Split into separate result objects for createPaymentAuthRequest and tokenize methods -public class ThreeDSecureResult implements Parcelable { +public class ThreeDSecureParams implements Parcelable { private static final String ERRORS_KEY = "errors"; private static final String ERROR_KEY = "error"; @@ -30,10 +29,10 @@ public class ThreeDSecureResult implements Parcelable { * * @param jsonString The json response from the Braintree Gateway 3D Secure authentication * route. - * @return The {@link ThreeDSecureResult} to use when performing 3D Secure authentication. + * @return The {@link ThreeDSecureParams} to use when performing 3D Secure authentication. */ - static ThreeDSecureResult fromJson(String jsonString) throws JSONException { - ThreeDSecureResult result = new ThreeDSecureResult(); + static ThreeDSecureParams fromJson(String jsonString) throws JSONException { + ThreeDSecureParams result = new ThreeDSecureParams(); JSONObject json = new JSONObject(jsonString); JSONObject cardJson = json.optJSONObject(PAYMENT_METHOD_KEY); @@ -63,7 +62,7 @@ static ThreeDSecureResult fromJson(String jsonString) throws JSONException { * @return The {@link ThreeDSecureNonce} associated with the 3D Secure authentication */ @Nullable - public ThreeDSecureNonce getThreeDSecureNonce() { + ThreeDSecureNonce getThreeDSecureNonce() { return threeDSecureNonce; } @@ -75,7 +74,7 @@ void setThreeDSecureNonce(@Nullable ThreeDSecureNonce cardNonce) { * @return Message describing potential errors that occurred during the authentication */ @Nullable - public String getErrorMessage() { + String getErrorMessage() { return errorMessage; } @@ -90,7 +89,7 @@ public ThreeDSecureLookup getLookup() { return lookup; } - ThreeDSecureResult() { + ThreeDSecureParams() { } @Override @@ -105,19 +104,19 @@ public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(lookup, flags); } - private ThreeDSecureResult(Parcel in) { + private ThreeDSecureParams(Parcel in) { threeDSecureNonce = in.readParcelable(CardNonce.class.getClassLoader()); errorMessage = in.readString(); lookup = in.readParcelable(ThreeDSecureLookup.class.getClassLoader()); } - public static final Creator CREATOR = new Creator<>() { - public ThreeDSecureResult createFromParcel(Parcel source) { - return new ThreeDSecureResult(source); + public static final Creator CREATOR = new Creator<>() { + public ThreeDSecureParams createFromParcel(Parcel source) { + return new ThreeDSecureParams(source); } - public ThreeDSecureResult[] newArray(int size) { - return new ThreeDSecureResult[size]; + public ThreeDSecureParams[] newArray(int size) { + return new ThreeDSecureParams[size]; } }; } diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequest.kt b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequest.kt new file mode 100644 index 0000000000..df4be02661 --- /dev/null +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequest.kt @@ -0,0 +1,25 @@ +package com.braintreepayments.api + +/** + * A request used to launch continuation of the 3D Secure authentication flow. + */ +sealed class ThreeDSecurePaymentAuthRequest { + + /** + * The request was successfully created and is ready to be launched by [ThreeDSecureLauncher] + */ + class ReadyToLaunch(val requestParams: ThreeDSecureParams) : + ThreeDSecurePaymentAuthRequest() + + /** + * No additional authentication challenge is required for the [ThreeDSecureNonce], this + * [nonce] can be sent to your server. + */ + class LaunchNotRequired(val nonce: ThreeDSecureNonce, val threeDSecureLookup: + ThreeDSecureLookup) : ThreeDSecurePaymentAuthRequest() + + /** + * There was an [error] creating the request + */ + class Failure(val error: Exception) : ThreeDSecurePaymentAuthRequest() +} diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequestCallback.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequestCallback.java new file mode 100644 index 0000000000..73c6ba061a --- /dev/null +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthRequestCallback.java @@ -0,0 +1,11 @@ +package com.braintreepayments.api; + +import android.content.Context; + +/** + * Used to receive the result of {@link ThreeDSecureClient#createPaymentAuthRequest(Context, ThreeDSecureRequest, ThreeDSecurePaymentAuthRequestCallback)} + */ +public interface ThreeDSecurePaymentAuthRequestCallback { + + void onThreeDSecurePaymentAuthRequest(ThreeDSecurePaymentAuthRequest paymentAuthRequest); +} diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthResult.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthResult.java index 0389ace228..6e07b52745 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthResult.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePaymentAuthResult.java @@ -6,15 +6,15 @@ public class ThreeDSecurePaymentAuthResult { private final String jwt; private final ValidateResponse validateResponse; - private final ThreeDSecureResult threeDSecureResult; + private final ThreeDSecureParams threeDSecureParams; private final Exception error; - ThreeDSecurePaymentAuthResult(ThreeDSecureResult threeDSecureResult, String jwt, + ThreeDSecurePaymentAuthResult(ThreeDSecureParams threeDSecureParams, String jwt, ValidateResponse validateResponse) { this.jwt = jwt; this.validateResponse = validateResponse; - this.threeDSecureResult = threeDSecureResult; + this.threeDSecureParams = threeDSecureParams; this.error = null; } @@ -22,15 +22,15 @@ public class ThreeDSecurePaymentAuthResult { this.error = error; this.jwt = null; this.validateResponse = null; - this.threeDSecureResult = null; + this.threeDSecureParams = null; } Exception getError() { return error; } - ThreeDSecureResult getThreeSecureResult() { - return threeDSecureResult; + ThreeDSecureParams getThreeSecureResult() { + return threeDSecureParams; } ValidateResponse getValidateResponse() { diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupCallback.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupCallback.java index 2f69f0b301..f52388867a 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupCallback.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupCallback.java @@ -2,8 +2,6 @@ import android.content.Context; -import androidx.annotation.Nullable; - /** * Callback for receiving result of * {@link ThreeDSecureClient#prepareLookup(Context, ThreeDSecureRequest, @@ -12,10 +10,7 @@ public interface ThreeDSecurePrepareLookupCallback { /** - * @param request {@link ThreeDSecureRequest} - * @param clientData JSON string of client data to be sent to server for lookup - * @param error an exception that occurred while preparing a 3D Secure lookup + * @param prepareLookupResult {@link ThreeDSecurePrepareLookupResult} */ - void onResult(@Nullable ThreeDSecureRequest request, @Nullable String clientData, - @Nullable Exception error); + void onPrepareLookupResult(ThreeDSecurePrepareLookupResult prepareLookupResult); } \ No newline at end of file diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupResult.kt b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupResult.kt new file mode 100644 index 0000000000..bc81935c41 --- /dev/null +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecurePrepareLookupResult.kt @@ -0,0 +1,21 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of + * {@link ThreeDSecureClient#prepareLookup(Context, ThreeDSecureRequest, + * ThreeDSecurePrepareLookupCallback)}. +*/ +sealed class ThreeDSecurePrepareLookupResult { + + /** + * The lookup was successfully prepared. The [clientData] JSON string of client data can be sent + * to server for lookup + */ + class Success(val request: ThreeDSecureRequest, val clientData: String) : + ThreeDSecurePrepareLookupResult() + + /** + * There was an [error] preparing the lookup + */ + class Failure(val error: Exception) : ThreeDSecurePrepareLookupResult() +} diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResult.kt b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResult.kt new file mode 100644 index 0000000000..9d8ef069aa --- /dev/null +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResult.kt @@ -0,0 +1,25 @@ +package com.braintreepayments.api + +/** + * Result of upgrading a [PaymentMethodNonce] with 3D Secure Authentication + */ +sealed class ThreeDSecureResult { + + /** + * The 3DS flow completed successfully. This [nonce] should be sent to your server. + */ + class Success(val nonce: ThreeDSecureNonce) : + ThreeDSecureResult() + + /** + * There was an [error] in the 3DS authentication flow. Optionally may return a [nonce] if + * the authentication was not successful but the [nonce] from the [ThreeDSecureLookup] can be + * transacted with. + */ + class Failure(val error: Exception, val nonce: ThreeDSecureNonce?) : ThreeDSecureResult() + + /** + * The user canceled the 3DS authentication flow. + */ + object Cancel : ThreeDSecureResult() +} diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResultCallback.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResultCallback.java index 0b667c535d..0abb940295 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResultCallback.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureResultCallback.java @@ -5,16 +5,14 @@ /** * Callback for receiving result of - * {@link ThreeDSecureClient#createPaymentAuthRequest(android.content.Context, ThreeDSecureRequest, ThreeDSecureResultCallback)}, + * {@link ThreeDSecureClient#createPaymentAuthRequest(android.content.Context, ThreeDSecureRequest, ThreeDSecurePaymentAuthRequestCallback)}, */ -// TODO: Split into separate callbacks for internal and public methods and for -// createPaymentAuthRequest and tokenize methods -public interface ThreeDSecureResultCallback { +interface ThreeDSecureResultCallback { /** - * @param threeDSecureResult {@link ThreeDSecureResult} + * @param threeDSecureParams {@link ThreeDSecureParams} * @param error an exception that occurred while processing a 3D Secure result */ - void onResult(@Nullable ThreeDSecureResult threeDSecureResult, @Nullable Exception error); + void onResult(@Nullable ThreeDSecureParams threeDSecureParams, @Nullable Exception error); } diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureTokenizeCallback.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureTokenizeCallback.java new file mode 100644 index 0000000000..36493edc9a --- /dev/null +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/ThreeDSecureTokenizeCallback.java @@ -0,0 +1,11 @@ +package com.braintreepayments.api; + +import androidx.annotation.NonNull; + +/** + * Used to receive the result of {@link ThreeDSecureClient#tokenize(ThreeDSecurePaymentAuthResult, ThreeDSecureTokenizeCallback)} + */ +public interface ThreeDSecureTokenizeCallback { + + void onThreeDSecureResult(@NonNull ThreeDSecureResult threeDSecureResult); +} diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt b/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt index f849bc3676..e4a5c537a7 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt @@ -232,10 +232,10 @@ class CardinalClientUnitTest { every { threeDSecureLookup.transactionId } returns "sample-transaction-id" every { threeDSecureLookup.pareq } returns "sample-payer-authentication-request" - val threeDSecureResult = mockk(relaxed = true) - every { threeDSecureResult.lookup } returns threeDSecureLookup + val threeDSecureParams = mockk(relaxed = true) + every { threeDSecureParams.lookup } returns threeDSecureLookup - sut.continueLookup(threeDSecureResult, cardinalChallengeObserver) + sut.continueLookup(threeDSecureParams, cardinalChallengeObserver) verify { cardinalInstance.cca_continue( "sample-transaction-id", @@ -257,11 +257,11 @@ class CardinalClientUnitTest { every { threeDSecureLookup.transactionId } returns "sample-transaction-id" every { threeDSecureLookup.pareq } returns "sample-payer-authentication-request" - val threeDSecureResult = mockk(relaxed = true) - every { threeDSecureResult.lookup } returns threeDSecureLookup + val threeDSecureParams = mockk(relaxed = true) + every { threeDSecureParams.lookup } returns threeDSecureLookup try { - sut.continueLookup(threeDSecureResult, cardinalChallengeObserver) + sut.continueLookup(threeDSecureParams, cardinalChallengeObserver) fail("should not get here") } catch (e: BraintreeException) { assertEquals("Cardinal SDK cca_continue Error.", e.message) diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureAPIUnitTest.java b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureAPIUnitTest.java index 507301d7eb..895e6865e6 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureAPIUnitTest.java +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureAPIUnitTest.java @@ -61,7 +61,7 @@ public void performLookup_onSuccess_callbackThreeDSecureResult() { ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); sut.performLookup(threeDSecureRequest, "another-session-id", callback); - verify(callback).onResult(any(ThreeDSecureResult.class), isNull()); + verify(callback).onResult(any(ThreeDSecureParams.class), isNull()); } @Test @@ -102,12 +102,12 @@ public void authenticateCardinalJWT_sendsPOSTRequest() throws JSONException { BraintreeClient braintreeClient = new MockBraintreeClientBuilder().build(); sut = new ThreeDSecureAPI(braintreeClient); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); String cardinalJWT = "cardinal-jwt"; ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.authenticateCardinalJWT(threeDSecureResult, cardinalJWT, callback); + sut.authenticateCardinalJWT(threeDSecureParams, cardinalJWT, callback); ArgumentCaptor urlCaptor = ArgumentCaptor.forClass(String.class); ArgumentCaptor dataCaptor = ArgumentCaptor.forClass(String.class); @@ -134,14 +134,14 @@ public void authenticateCardinalJWT_onSuccess_callbackThreeDSecureResult() .build(); sut = new ThreeDSecureAPI(braintreeClient); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); String cardinalJWT = "cardinal-jwt"; ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.authenticateCardinalJWT(threeDSecureResult, cardinalJWT, callback); + sut.authenticateCardinalJWT(threeDSecureParams, cardinalJWT, callback); - verify(callback).onResult(any(ThreeDSecureResult.class), (Exception) isNull()); + verify(callback).onResult(any(ThreeDSecureParams.class), (Exception) isNull()); } @Test @@ -153,18 +153,18 @@ public void authenticateCardinalJWT_onThreeDSecureError_callbackThreeDSecureResu .build(); sut = new ThreeDSecureAPI(braintreeClient); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); String cardinalJWT = "cardinal-jwt"; ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.authenticateCardinalJWT(threeDSecureResult, cardinalJWT, callback); + sut.authenticateCardinalJWT(threeDSecureParams, cardinalJWT, callback); - ArgumentCaptor captor = - ArgumentCaptor.forClass(ThreeDSecureResult.class); + ArgumentCaptor captor = + ArgumentCaptor.forClass(ThreeDSecureParams.class); verify(callback).onResult(captor.capture(), (Exception) isNull()); - ThreeDSecureResult result = captor.getValue(); + ThreeDSecureParams result = captor.getValue(); assertNotNull(result.getThreeDSecureNonce()); } @@ -176,16 +176,16 @@ public void authenticateCardinalJWT_onInvalidJSONResponse_callbackJSONException( .build(); sut = new ThreeDSecureAPI(braintreeClient); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); String cardinalJWT = "cardinal-jwt"; ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.authenticateCardinalJWT(threeDSecureResult, cardinalJWT, callback); + sut.authenticateCardinalJWT(threeDSecureParams, cardinalJWT, callback); ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(callback).onResult((ThreeDSecureResult) isNull(), captor.capture()); + verify(callback).onResult((ThreeDSecureParams) isNull(), captor.capture()); Exception error = captor.getValue(); assertTrue(error instanceof JSONException); @@ -199,16 +199,16 @@ public void authenticateCardinalJWT_onPOSTFailure_callbackHTTPError() throws JSO .build(); sut = new ThreeDSecureAPI(braintreeClient); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); String cardinalJWT = "cardinal-jwt"; ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.authenticateCardinalJWT(threeDSecureResult, cardinalJWT, callback); + sut.authenticateCardinalJWT(threeDSecureParams, cardinalJWT, callback); ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(callback).onResult((ThreeDSecureResult) isNull(), captor.capture()); + verify(callback).onResult((ThreeDSecureParams) isNull(), captor.capture()); Exception error = captor.getValue(); assertSame(postError, error); @@ -223,12 +223,12 @@ public void authenticateCardinalJWT_whenCustomerFailsAuthentication_sendsAnalyti .build(); sut = new ThreeDSecureAPI(braintreeClient); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); String cardinalJWT = "cardinal-jwt"; ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.authenticateCardinalJWT(threeDSecureResult, cardinalJWT, callback); + sut.authenticateCardinalJWT(threeDSecureParams, cardinalJWT, callback); } @Test @@ -238,16 +238,16 @@ public void authenticateCardinalJWT_whenSuccess_returnsResult_andSendsAnalyticsE .sendPOSTSuccessfulResponse(Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE) .build(); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); ThreeDSecureResultCallback threeDSecureResultCallback = mock(ThreeDSecureResultCallback.class); ThreeDSecureAPI sut = new ThreeDSecureAPI(braintreeClient); - sut.authenticateCardinalJWT(threeDSecureResult, "jwt", threeDSecureResultCallback); + sut.authenticateCardinalJWT(threeDSecureParams, "jwt", threeDSecureResultCallback); - verify(threeDSecureResultCallback).onResult(any(ThreeDSecureResult.class), + verify(threeDSecureResultCallback).onResult(any(ThreeDSecureParams.class), (Exception) isNull()); } @@ -259,20 +259,20 @@ public void authenticateCardinalJWT_whenCustomerFailsAuthentication_returnsLooku .sendPOSTSuccessfulResponse(authResponseJson) .build(); - ThreeDSecureResult threeDSecureResult = ThreeDSecureResult.fromJson( + ThreeDSecureParams threeDSecureParams = ThreeDSecureParams.fromJson( Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE_WITHOUT_LIABILITY_WITH_LIABILITY_SHIFT_POSSIBLE); ThreeDSecureResultCallback threeDSecureResultCallback = mock(ThreeDSecureResultCallback.class); ThreeDSecureAPI sut = new ThreeDSecureAPI(braintreeClient); - sut.authenticateCardinalJWT(threeDSecureResult, "jwt", threeDSecureResultCallback); + sut.authenticateCardinalJWT(threeDSecureParams, "jwt", threeDSecureResultCallback); - ArgumentCaptor captor = - ArgumentCaptor.forClass(ThreeDSecureResult.class); + ArgumentCaptor captor = + ArgumentCaptor.forClass(ThreeDSecureParams.class); verify(threeDSecureResultCallback).onResult(captor.capture(), (Exception) isNull()); - ThreeDSecureResult actualResult = captor.getValue(); + ThreeDSecureParams actualResult = captor.getValue(); ThreeDSecureNonce cardNonce = actualResult.getThreeDSecureNonce(); assertNotNull(cardNonce); @@ -291,14 +291,14 @@ public void authenticateCardinalJWT_whenPostError_returnsException() throws JSON .sendPOSTErrorResponse(exception) .build(); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); ThreeDSecureResultCallback threeDSecureResultCallback = mock(ThreeDSecureResultCallback.class); ThreeDSecureAPI sut = new ThreeDSecureAPI(braintreeClient); - sut.authenticateCardinalJWT(threeDSecureResult, "jwt", threeDSecureResultCallback); + sut.authenticateCardinalJWT(threeDSecureParams, "jwt", threeDSecureResultCallback); verify(threeDSecureResultCallback).onResult(null, exception); } diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityResultContractUnitTest.java b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityResultContractUnitTest.java index 2cfa183911..217c09add7 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityResultContractUnitTest.java +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityResultContractUnitTest.java @@ -26,24 +26,24 @@ public class ThreeDSecureActivityResultContractUnitTest { private Context context; - private ThreeDSecureResult threeDSecureResult; + private ThreeDSecureParams threeDSecureParams; private ThreeDSecureActivityResultContract sut; @Before public void beforeEach() throws JSONException { context = ApplicationProvider.getApplicationContext(); - threeDSecureResult = ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); + threeDSecureParams = ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); } @Test public void createIntent_returnsIntentWithExtras() { sut = new ThreeDSecureActivityResultContract(); - Intent result = sut.createIntent(context, threeDSecureResult); + Intent result = sut.createIntent(context, threeDSecureParams); - ThreeDSecureResult extraThreeDSecureResult = + ThreeDSecureParams extraThreeDSecureParams = result.getParcelableExtra(EXTRA_THREE_D_SECURE_RESULT); - assertSame(threeDSecureResult, extraThreeDSecureResult); + assertSame(threeDSecureParams, extraThreeDSecureParams); } @Test @@ -51,7 +51,7 @@ public void parseResult_whenResultIsOK_returnsCardinalResultWithSuccessData() { sut = new ThreeDSecureActivityResultContract(); Intent successIntent = new Intent(); - successIntent.putExtra(EXTRA_THREE_D_SECURE_RESULT, threeDSecureResult); + successIntent.putExtra(EXTRA_THREE_D_SECURE_RESULT, threeDSecureParams); ValidateResponse validateResponse = mock(ValidateResponse.class); successIntent.putExtra(EXTRA_VALIDATION_RESPONSE, validateResponse); @@ -63,7 +63,7 @@ public void parseResult_whenResultIsOK_returnsCardinalResultWithSuccessData() { paymentAuthResult = sut.parseResult(Activity.RESULT_OK, successIntent); assertNotNull(paymentAuthResult); - assertSame(threeDSecureResult, paymentAuthResult.getThreeSecureResult()); + assertSame(threeDSecureParams, paymentAuthResult.getThreeSecureResult()); assertSame(validateResponse, paymentAuthResult.getValidateResponse()); assertSame(jwt, paymentAuthResult.getJWT()); } diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityUnitTest.java b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityUnitTest.java index 3674adc68e..1c42a42f7b 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityUnitTest.java +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureActivityUnitTest.java @@ -27,11 +27,11 @@ public class ThreeDSecureActivityUnitTest { @Test public void onCreate_withExtras_invokesCardinalWithLookupData() throws JSONException, BraintreeException { - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); Bundle extras = new Bundle(); - extras.putParcelable(ThreeDSecureActivity.EXTRA_THREE_D_SECURE_RESULT, threeDSecureResult); + extras.putParcelable(ThreeDSecureActivity.EXTRA_THREE_D_SECURE_RESULT, threeDSecureParams); Intent intent = new Intent(); intent.putExtras(extras); @@ -42,11 +42,11 @@ public void onCreate_withExtras_invokesCardinalWithLookupData() CardinalClient cardinalClient = mock(CardinalClient.class); sut.launchCardinalAuthChallenge(cardinalClient); - ArgumentCaptor captor = - ArgumentCaptor.forClass(ThreeDSecureResult.class); + ArgumentCaptor captor = + ArgumentCaptor.forClass(ThreeDSecureParams.class); verify(cardinalClient).continueLookup(captor.capture(), any()); - ThreeDSecureResult actualResult = captor.getValue(); + ThreeDSecureParams actualResult = captor.getValue(); ThreeDSecureLookup actualLookup = actualResult.getLookup(); assertEquals("sample-transaction-id", actualLookup.getTransactionId()); assertEquals("sample-pareq", actualLookup.getPareq()); @@ -55,11 +55,11 @@ public void onCreate_withExtras_invokesCardinalWithLookupData() @Test public void onCreate_withExtrasAndCardinalError_finishesWithError() throws JSONException, BraintreeException { - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); Bundle extras = new Bundle(); - extras.putParcelable(ThreeDSecureActivity.EXTRA_THREE_D_SECURE_RESULT, threeDSecureResult); + extras.putParcelable(ThreeDSecureActivity.EXTRA_THREE_D_SECURE_RESULT, threeDSecureParams); Intent intent = new Intent(); intent.putExtras(extras); @@ -71,7 +71,7 @@ public void onCreate_withExtrasAndCardinalError_finishesWithError() CardinalClient cardinalClient = mock(CardinalClient.class); doThrow(cardinalError).when(cardinalClient) - .continueLookup(any(ThreeDSecureResult.class), any()); + .continueLookup(any(ThreeDSecureParams.class), any()); sut.launchCardinalAuthChallenge(cardinalClient); verify(sut).finish(); @@ -93,7 +93,7 @@ public void onCreate_withoutExtras_finishesWithError() throws BraintreeException CardinalClient cardinalClient = mock(CardinalClient.class); sut.launchCardinalAuthChallenge(cardinalClient); - verify(cardinalClient, never()).continueLookup(any(ThreeDSecureResult.class), + verify(cardinalClient, never()).continueLookup(any(ThreeDSecureParams.class), any(CardinalChallengeObserver.class)); verify(sut).finish(); diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureClientUnitTest.java b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureClientUnitTest.java index 01671ac5b3..c28ee1a9e4 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureClientUnitTest.java +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureClientUnitTest.java @@ -3,6 +3,7 @@ import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; @@ -36,17 +37,19 @@ public class ThreeDSecureClientUnitTest { private FragmentActivity activity; private ThreeDSecureAPI threeDSecureAPI; - private ThreeDSecureResultCallback threeDSecureResultCallback; + private ThreeDSecurePaymentAuthRequestCallback paymentAuthRequestCallback; + private ThreeDSecureTokenizeCallback threeDSecureTokenizeCallback; private Configuration threeDSecureEnabledConfig; ThreeDSecureRequest basicRequest; - ThreeDSecureResult threeDSecureResult; + ThreeDSecureParams threeDSecureParams; @Before public void beforeEach() throws JSONException { activity = mock(FragmentActivity.class); - threeDSecureResultCallback = mock(ThreeDSecureResultCallback.class); + paymentAuthRequestCallback = mock(ThreeDSecurePaymentAuthRequestCallback.class); + threeDSecureTokenizeCallback = mock(ThreeDSecureTokenizeCallback.class); threeDSecureAPI = mock(ThreeDSecureAPI.class); threeDSecureEnabledConfig = new TestConfigurationBuilder() @@ -62,8 +65,8 @@ public void beforeEach() throws JSONException { billingAddress.setGivenName("billing-given-name"); basicRequest.setBillingAddress(billingAddress); - threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); } // region prepareLookup @@ -87,10 +90,15 @@ public void prepareLookup_returnsValidLookupJSONString() ThreeDSecurePrepareLookupCallback callback = mock(ThreeDSecurePrepareLookupCallback.class); sut.prepareLookup(activity, basicRequest, callback); - ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(callback).onResult(same(basicRequest), captor.capture(), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePrepareLookupResult.class); + verify(callback).onPrepareLookupResult(captor.capture()); - String clientData = captor.getValue(); + ThreeDSecurePrepareLookupResult prepareLookupResult = captor.getValue(); + assertTrue(prepareLookupResult instanceof ThreeDSecurePrepareLookupResult.Success); + assertSame(basicRequest, ((ThreeDSecurePrepareLookupResult.Success) prepareLookupResult).getRequest()); + + + String clientData = ((ThreeDSecurePrepareLookupResult.Success) prepareLookupResult).getClientData(); JSONObject lookup = new JSONObject(clientData); Assert.assertEquals("encoded_auth_fingerprint", lookup.getString("authorizationFingerprint")); @@ -124,10 +132,14 @@ public void prepareLookup_returnsValidLookupJSONString_whenCardinalSetupFails() ThreeDSecurePrepareLookupCallback callback = mock(ThreeDSecurePrepareLookupCallback.class); sut.prepareLookup(activity, basicRequest, callback); - ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(callback).onResult(same(basicRequest), captor.capture(), (Exception) isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePrepareLookupResult.class); + verify(callback).onPrepareLookupResult(captor.capture()); - String clientData = captor.getValue(); + ThreeDSecurePrepareLookupResult prepareLookupResult = captor.getValue(); + assertTrue(prepareLookupResult instanceof ThreeDSecurePrepareLookupResult.Success); + assertSame(basicRequest, ((ThreeDSecurePrepareLookupResult.Success) prepareLookupResult).getRequest()); + + String clientData = ((ThreeDSecurePrepareLookupResult.Success) prepareLookupResult).getClientData(); JSONObject lookup = new JSONObject(clientData); Assert.assertEquals("encoded_auth_fingerprint", lookup.getString("authorizationFingerprint")); @@ -184,7 +196,11 @@ public void prepareLookup_whenCardinalClientInitializeFails_forwardsError() ThreeDSecurePrepareLookupCallback callback = mock(ThreeDSecurePrepareLookupCallback.class); sut.prepareLookup(activity, basicRequest, callback); - verify(callback).onResult(null, null, initializeRuntimeError); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePrepareLookupResult.class); + verify(callback).onPrepareLookupResult(captor.capture()); + ThreeDSecurePrepareLookupResult prepareLookupResult = captor.getValue(); + assertTrue(prepareLookupResult instanceof ThreeDSecurePrepareLookupResult.Failure); + assertEquals(initializeRuntimeError, ((ThreeDSecurePrepareLookupResult.Failure) prepareLookupResult).getError()); } @Test @@ -206,12 +222,14 @@ public void prepareLookup_withoutCardinalJWT_postsException() throws BraintreeEx ThreeDSecurePrepareLookupCallback callback = mock(ThreeDSecurePrepareLookupCallback.class); sut.prepareLookup(activity, basicRequest, callback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(callback).onResult(isNull(), isNull(), - captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePrepareLookupResult.class); + verify(callback).onPrepareLookupResult(captor.capture()); + ThreeDSecurePrepareLookupResult prepareLookupResult = captor.getValue(); + assertTrue(prepareLookupResult instanceof ThreeDSecurePrepareLookupResult.Failure); + Exception error = ((ThreeDSecurePrepareLookupResult.Failure) prepareLookupResult).getError(); - TestCase.assertTrue(captor.getValue() instanceof BraintreeException); - Assert.assertEquals(captor.getValue().getMessage(), + TestCase.assertTrue(error instanceof BraintreeException); + Assert.assertEquals(error.getMessage(), "Merchant is not configured for 3DS 2.0. " + "Please contact Braintree Support for assistance."); } @@ -233,7 +251,7 @@ public void createPaymentAuthRequest_sendsAnalyticEvent() throws BraintreeExcept ThreeDSecureClient sut = new ThreeDSecureClient(braintreeClient, cardinalClient, threeDSecureAPI); - sut.createPaymentAuthRequest(activity, basicRequest, threeDSecureResultCallback); + sut.createPaymentAuthRequest(activity, basicRequest, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent("three-d-secure.initialized"); } @@ -261,7 +279,7 @@ public void createPaymentAuthRequest_sendsParamsInLookupRequest() ThreeDSecureClient sut = new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - sut.createPaymentAuthRequest(activity, request, threeDSecureResultCallback); + sut.createPaymentAuthRequest(activity, request, paymentAuthRequestCallback); String expectedUrl = "/v1/payment_methods/a-nonce/three_d_secure/lookup"; ArgumentCaptor bodyCaptor = ArgumentCaptor.forClass(String.class); @@ -298,7 +316,7 @@ public void createPaymentAuthRequest_performsLookup_WhenCardinalSDKInitFails() ThreeDSecureClient sut = new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - sut.createPaymentAuthRequest(activity, request, threeDSecureResultCallback); + sut.createPaymentAuthRequest(activity, request, paymentAuthRequestCallback); ArgumentCaptor pathCaptor = ArgumentCaptor.forClass(String.class); ArgumentCaptor bodyCaptor = ArgumentCaptor.forClass(String.class); @@ -341,10 +359,9 @@ public void createPaymentAuthRequest_callsLookupListener() throws BraintreeExcep new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - sut.createPaymentAuthRequest(activity, request, threeDSecureResultCallback); + sut.createPaymentAuthRequest(activity, request, paymentAuthRequestCallback); - verify(threeDSecureResultCallback).onResult(any(ThreeDSecureResult.class), - isNull()); + verify(paymentAuthRequestCallback).onThreeDSecurePaymentAuthRequest(any(ThreeDSecurePaymentAuthRequest.class)); } @Test @@ -359,12 +376,14 @@ public void createPaymentAuthRequest_withInvalidRequest_postsException() throws ThreeDSecureRequest request = new ThreeDSecureRequest(); request.setAmount("5"); - sut.createPaymentAuthRequest(activity, request, threeDSecureResultCallback); + sut.createPaymentAuthRequest(activity, request, paymentAuthRequestCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(threeDSecureResultCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePaymentAuthRequest.class); + verify(paymentAuthRequestCallback).onThreeDSecurePaymentAuthRequest(captor.capture()); + ThreeDSecurePaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.Failure); assertEquals("The ThreeDSecureRequest nonce and amount cannot be null", - captor.getValue().getMessage()); + ((ThreeDSecurePaymentAuthRequest.Failure) paymentAuthRequest).getError().getMessage()); } @Test @@ -381,7 +400,7 @@ public void createPaymentAuthRequest_initializesCardinal() throws BraintreeExcep ThreeDSecureClient sut = new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - sut.createPaymentAuthRequest(activity, basicRequest, mock(ThreeDSecureResultCallback.class)); + sut.createPaymentAuthRequest(activity, basicRequest, paymentAuthRequestCallback); verify(cardinalClient).initialize(same(activity), same(threeDSecureEnabledConfig), same(basicRequest), any(CardinalInitializeCallback.class)); @@ -404,10 +423,13 @@ public void createPaymentAuthRequest_whenCardinalClientInitializeFails_forwardsE new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.createPaymentAuthRequest(activity, basicRequest, callback); + sut.createPaymentAuthRequest(activity, basicRequest, paymentAuthRequestCallback); - verify(callback).onResult(null, initializeRuntimeError); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePaymentAuthRequest.class); + verify(paymentAuthRequestCallback).onThreeDSecurePaymentAuthRequest(captor.capture()); + ThreeDSecurePaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.Failure); + assertEquals(initializeRuntimeError, ((ThreeDSecurePaymentAuthRequest.Failure) paymentAuthRequest).getError()); } @Test @@ -425,7 +447,7 @@ public void createPaymentAuthRequest_whenCardinalSetupCompleted_sendsAnalyticEve ThreeDSecureClient sut = new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - sut.createPaymentAuthRequest(activity, basicRequest, mock(ThreeDSecureResultCallback.class)); + sut.createPaymentAuthRequest(activity, basicRequest, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent( "three-d-secure.cardinal-sdk.init.setup-completed"); @@ -446,7 +468,7 @@ public void createPaymentAuthRequest_whenCardinalSetupFailed_sendsAnalyticEvent( ThreeDSecureClient sut = new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - sut.createPaymentAuthRequest(activity, basicRequest, mock(ThreeDSecureResultCallback.class)); + sut.createPaymentAuthRequest(activity, basicRequest, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent("three-d-secure.cardinal-sdk.init.setup-failed"); } @@ -468,13 +490,15 @@ public void createPaymentAuthRequest_withoutCardinalJWT_postsException() throws new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResultCallback callback = mock(ThreeDSecureResultCallback.class); - sut.createPaymentAuthRequest(activity, basicRequest, callback); + sut.createPaymentAuthRequest(activity, basicRequest, paymentAuthRequestCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(callback).onResult(isNull(), captor.capture()); - TestCase.assertTrue(captor.getValue() instanceof BraintreeException); - Assert.assertEquals(captor.getValue().getMessage(), + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePaymentAuthRequest.class); + verify(paymentAuthRequestCallback).onThreeDSecurePaymentAuthRequest(captor.capture()); + ThreeDSecurePaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.Failure); + Exception error = ((ThreeDSecurePaymentAuthRequest.Failure) paymentAuthRequest).getError(); + TestCase.assertTrue(error instanceof BraintreeException); + Assert.assertEquals(error.getMessage(), "Merchant is not configured for 3DS 2.0. " + "Please contact Braintree Support for assistance."); } @@ -498,9 +522,9 @@ public void sendAnalyticsAndCallbackResult_whenAuthenticatingWithCardinal_sendsA new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); - sut.sendAnalyticsAndCallbackResult(threeDSecureResult, threeDSecureResultCallback); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + sut.sendAnalyticsAndCallbackResult(threeDSecureParams, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent("three-d-secure.verification-flow.started"); } @@ -522,9 +546,9 @@ public void sendAnalyticsAndCallbackResult_whenChallengeIsPresented_sendsAnalyti new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); - sut.sendAnalyticsAndCallbackResult(threeDSecureResult, threeDSecureResultCallback); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE); + sut.sendAnalyticsAndCallbackResult(threeDSecureParams, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent( "three-d-secure.verification-flow.challenge-presented.true"); @@ -546,9 +570,9 @@ public void sendAnalyticsAndCallbackResult_whenChallengeIsNotPresented_sendsAnal new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE_NO_ACS_URL); - sut.sendAnalyticsAndCallbackResult(threeDSecureResult, threeDSecureResultCallback); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE_NO_ACS_URL); + sut.sendAnalyticsAndCallbackResult(threeDSecureParams, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent( "three-d-secure.verification-flow.challenge-presented.false"); @@ -570,11 +594,16 @@ public void sendAnalyticsAndCallbackResult_whenChallengeIsNotPresented_returnsRe new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE_NO_ACS_URL); - sut.sendAnalyticsAndCallbackResult(threeDSecureResult, threeDSecureResultCallback); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_LOOKUP_RESPONSE_NO_ACS_URL); + sut.sendAnalyticsAndCallbackResult(threeDSecureParams, paymentAuthRequestCallback); - verify(threeDSecureResultCallback).onResult(threeDSecureResult, null); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePaymentAuthRequest.class); + verify(paymentAuthRequestCallback).onThreeDSecurePaymentAuthRequest(captor.capture()); + ThreeDSecurePaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.LaunchNotRequired); + assertEquals(threeDSecureParams.getThreeDSecureNonce(), ((ThreeDSecurePaymentAuthRequest.LaunchNotRequired) paymentAuthRequest).getNonce()); + assertEquals(threeDSecureParams.getLookup(), ((ThreeDSecurePaymentAuthRequest.LaunchNotRequired) paymentAuthRequest).getThreeDSecureLookup()); } @Test @@ -593,9 +622,9 @@ public void sendAnalyticsAndCallbackResult_sendsAnalyticsEvent() new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); - sut.sendAnalyticsAndCallbackResult(threeDSecureResult, threeDSecureResultCallback); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + sut.sendAnalyticsAndCallbackResult(threeDSecureParams, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent( "three-d-secure.verification-flow.3ds-version.2.1.0"); @@ -616,13 +645,17 @@ public void sendAnalyticsAndCallbackResult_callsBackThreeDSecureResultForLaunch( ThreeDSecureClient sut = new ThreeDSecureClient(braintreeClient, cardinalClient, new ThreeDSecureAPI(braintreeClient)); - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); - sut.sendAnalyticsAndCallbackResult(threeDSecureResult, - threeDSecureResultCallback); + sut.sendAnalyticsAndCallbackResult(threeDSecureParams, + paymentAuthRequestCallback); - verify(threeDSecureResultCallback).onResult(threeDSecureResult, null); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePaymentAuthRequest.class); + verify(paymentAuthRequestCallback).onThreeDSecurePaymentAuthRequest(captor.capture()); + ThreeDSecurePaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof ThreeDSecurePaymentAuthRequest.ReadyToLaunch); + assertEquals(threeDSecureParams, ((ThreeDSecurePaymentAuthRequest.ReadyToLaunch) paymentAuthRequest).getRequestParams()); } // endregion @@ -640,10 +673,13 @@ public void tokenize_whenErrorExists_forwardsErrorToCallback_andSendsAnalytics() Exception threeDSecureError = new Exception("3DS error."); ThreeDSecurePaymentAuthResult paymentAuthResult = new ThreeDSecurePaymentAuthResult(threeDSecureError); - sut.tokenize(paymentAuthResult, threeDSecureResultCallback); + sut.tokenize(paymentAuthResult, threeDSecureTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(threeDSecureResultCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecureResult.class); + verify(threeDSecureTokenizeCallback).onThreeDSecureResult(captor.capture()); + ThreeDSecureResult result = captor.getValue(); + assertTrue(result instanceof ThreeDSecureResult.Failure); + assertEquals(threeDSecureError, ((ThreeDSecureResult.Failure) result).getError()); } @Test @@ -659,8 +695,8 @@ public void tokenize_onSuccess_sendsAnalyticsEvent() throws BraintreeException { threeDSecureAPI); ThreeDSecurePaymentAuthResult paymentAuthResult = - new ThreeDSecurePaymentAuthResult(threeDSecureResult, "jwt", validateResponse); - sut.tokenize(paymentAuthResult, threeDSecureResultCallback); + new ThreeDSecurePaymentAuthResult(threeDSecureParams, "jwt", validateResponse); + sut.tokenize(paymentAuthResult, threeDSecureTokenizeCallback); verify(braintreeClient).sendAnalyticsEvent( "three-d-secure.verification-flow.cardinal-sdk.action-code.success"); @@ -681,13 +717,17 @@ public void tokenize_whenValidateResponseTimeout_returnsErrorAndSendsAnalytics() threeDSecureAPI); ThreeDSecurePaymentAuthResult paymentAuthResult = - new ThreeDSecurePaymentAuthResult(threeDSecureResult, "jwt", validateResponse); - sut.tokenize(paymentAuthResult, threeDSecureResultCallback); + new ThreeDSecurePaymentAuthResult(threeDSecureParams, "jwt", validateResponse); + sut.tokenize(paymentAuthResult, threeDSecureTokenizeCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecureResult.class); + verify(threeDSecureTokenizeCallback).onThreeDSecureResult(captor.capture()); + ThreeDSecureResult result = captor.getValue(); + assertTrue(result instanceof ThreeDSecureResult.Failure); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(threeDSecureResultCallback).onResult(isNull(), captor.capture()); - assertTrue(captor.getValue() instanceof BraintreeException); - assertEquals("Error", captor.getValue().getMessage()); + Exception error = ((ThreeDSecureResult.Failure) result).getError(); + assertTrue(error instanceof BraintreeException); + assertEquals("Error", error.getMessage()); verify(braintreeClient).sendAnalyticsEvent("three-d-secure.verification-flow.failed"); } @@ -706,15 +746,13 @@ public void tokenize_whenValidateResponseCancel_returnsUserCanceledErrorAndSends threeDSecureAPI); ThreeDSecurePaymentAuthResult paymentAuthResult = - new ThreeDSecurePaymentAuthResult(threeDSecureResult, "jwt", validateResponse); - sut.tokenize(paymentAuthResult, threeDSecureResultCallback); + new ThreeDSecurePaymentAuthResult(threeDSecureParams, "jwt", validateResponse); + sut.tokenize(paymentAuthResult, threeDSecureTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(threeDSecureResultCallback).onResult(isNull(), captor.capture()); - Exception exception = captor.getValue(); - assertTrue(exception instanceof UserCanceledException); - assertEquals("User canceled 3DS.", exception.getMessage()); - assertTrue(((UserCanceledException) exception).isExplicitCancelation()); + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecureResult.class); + verify(threeDSecureTokenizeCallback).onThreeDSecureResult(captor.capture()); + ThreeDSecureResult result = captor.getValue(); + assertTrue(result instanceof ThreeDSecureResult.Cancel); verify(braintreeClient).sendAnalyticsEvent("three-d-secure.verification-flow.canceled"); } @@ -731,9 +769,9 @@ public void tokenize_whenValidateResponseSuccess_onAuthenticateCardinalJWTResult doAnswer((Answer) invocation -> { ThreeDSecureResultCallback callback = (ThreeDSecureResultCallback) invocation.getArguments()[2]; - callback.onResult(threeDSecureResult, null); + callback.onResult(threeDSecureParams, null); return null; - }).when(threeDSecureAPI).authenticateCardinalJWT(any(ThreeDSecureResult.class), anyString(), + }).when(threeDSecureAPI).authenticateCardinalJWT(any(ThreeDSecureParams.class), anyString(), any(ThreeDSecureResultCallback.class)); ThreeDSecureClient sut = @@ -741,10 +779,14 @@ public void tokenize_whenValidateResponseSuccess_onAuthenticateCardinalJWTResult threeDSecureAPI); ThreeDSecurePaymentAuthResult paymentAuthResult = - new ThreeDSecurePaymentAuthResult(threeDSecureResult, "jwt", validateResponse); - sut.tokenize(paymentAuthResult, threeDSecureResultCallback); - - verify(threeDSecureResultCallback).onResult(threeDSecureResult, null); + new ThreeDSecurePaymentAuthResult(threeDSecureParams, "jwt", validateResponse); + sut.tokenize(paymentAuthResult, threeDSecureTokenizeCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecureResult.class); + verify(threeDSecureTokenizeCallback).onThreeDSecureResult(captor.capture()); + ThreeDSecureResult result = captor.getValue(); + assertTrue(result instanceof ThreeDSecureResult.Success); + assertEquals(((ThreeDSecureResult.Success) result).getNonce(), threeDSecureParams.getThreeDSecureNonce()); verify(braintreeClient).sendAnalyticsEvent( "three-d-secure.verification-flow.upgrade-payment-method.succeeded"); verify(braintreeClient).sendAnalyticsEvent( @@ -763,15 +805,15 @@ public void tokenize_whenValidateResponseSuccess_onAuthenticateCardinalJWTResult ValidateResponse validateResponse = mock(ValidateResponse.class); when(validateResponse.getActionCode()).thenReturn(CardinalActionCode.SUCCESS); - final ThreeDSecureResult threeDSecureResult = mock(ThreeDSecureResult.class); - when(threeDSecureResult.hasError()).thenReturn(true); + final ThreeDSecureParams threeDSecureParams = mock(ThreeDSecureParams.class); + when(threeDSecureParams.hasError()).thenReturn(true); doAnswer((Answer) invocation -> { ThreeDSecureResultCallback callback = (ThreeDSecureResultCallback) invocation.getArguments()[2]; - callback.onResult(threeDSecureResult, null); + callback.onResult(threeDSecureParams, null); return null; - }).when(threeDSecureAPI).authenticateCardinalJWT(any(ThreeDSecureResult.class), anyString(), + }).when(threeDSecureAPI).authenticateCardinalJWT(any(ThreeDSecureParams.class), anyString(), any(ThreeDSecureResultCallback.class)); ThreeDSecureClient sut = @@ -779,10 +821,15 @@ public void tokenize_whenValidateResponseSuccess_onAuthenticateCardinalJWTResult threeDSecureAPI); ThreeDSecurePaymentAuthResult paymentAuthResult = - new ThreeDSecurePaymentAuthResult(threeDSecureResult, "jwt", validateResponse); - sut.tokenize(paymentAuthResult, threeDSecureResultCallback); + new ThreeDSecurePaymentAuthResult(threeDSecureParams, "jwt", validateResponse); + sut.tokenize(paymentAuthResult, threeDSecureTokenizeCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecureResult.class); + verify(threeDSecureTokenizeCallback).onThreeDSecureResult(captor.capture()); + ThreeDSecureResult result = captor.getValue(); + assertTrue(result instanceof ThreeDSecureResult.Failure); + assertEquals(((ThreeDSecureResult.Failure) result).getNonce(), paymentAuthResult.getThreeSecureResult().getThreeDSecureNonce()); - verify(threeDSecureResultCallback).onResult(threeDSecureResult, null); verify(braintreeClient).sendAnalyticsEvent( "three-d-secure.verification-flow.upgrade-payment-method.failure.returned-lookup-nonce"); verify(braintreeClient).sendAnalyticsEvent("three-d-secure.verification-flow.completed"); @@ -804,7 +851,7 @@ public void tokenize_whenValidateResponseSuccess_onAuthenticateCardinalJWTError_ (ThreeDSecureResultCallback) invocation.getArguments()[2]; callback.onResult(null, exception); return null; - }).when(threeDSecureAPI).authenticateCardinalJWT(any(ThreeDSecureResult.class), anyString(), + }).when(threeDSecureAPI).authenticateCardinalJWT(any(ThreeDSecureParams.class), anyString(), any(ThreeDSecureResultCallback.class)); ThreeDSecureClient sut = @@ -812,10 +859,15 @@ public void tokenize_whenValidateResponseSuccess_onAuthenticateCardinalJWTError_ threeDSecureAPI); ThreeDSecurePaymentAuthResult paymentAuthResult = - new ThreeDSecurePaymentAuthResult(threeDSecureResult, "jwt", validateResponse); - sut.tokenize(paymentAuthResult, threeDSecureResultCallback); + new ThreeDSecurePaymentAuthResult(threeDSecureParams, "jwt", validateResponse); + sut.tokenize(paymentAuthResult, threeDSecureTokenizeCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecureResult.class); + verify(threeDSecureTokenizeCallback).onThreeDSecureResult(captor.capture()); + ThreeDSecureResult result = captor.getValue(); + assertTrue(result instanceof ThreeDSecureResult.Failure); + assertEquals(exception, ((ThreeDSecureResult.Failure) result).getError()); - verify(threeDSecureResultCallback).onResult(null, exception); braintreeClient.sendAnalyticsEvent( "three-d-secure.verification-flow.upgrade-payment-method.errored"); verify(braintreeClient).sendAnalyticsEvent("three-d-secure.verification-flow.completed"); diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureLauncherUnitTest.java b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureLauncherUnitTest.java index 1417cb1d1e..2169b85eb6 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureLauncherUnitTest.java +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureLauncherUnitTest.java @@ -30,7 +30,7 @@ public class ThreeDSecureLauncherUnitTest { @Mock - ActivityResultLauncher activityResultLauncher; + ActivityResultLauncher activityResultLauncher; private ThreeDSecureLauncherCallback callback; @Before @@ -49,7 +49,7 @@ public void constructor_createsActivityLauncher() { callback); verify(activityResultRegistry).register(eq(expectedKey), same(lifecycleOwner), - Mockito.>any(), + Mockito.>any(), Mockito.any()); } @@ -61,10 +61,12 @@ public void launch_launchesAuthChallenge() { callback); sut.activityLauncher = activityResultLauncher; - ThreeDSecureResult threeDSecureResult = new ThreeDSecureResult(); + ThreeDSecureParams threeDSecureParams = new ThreeDSecureParams(); + ThreeDSecurePaymentAuthRequest.ReadyToLaunch paymentAuthRequest = new ThreeDSecurePaymentAuthRequest.ReadyToLaunch( + threeDSecureParams); - sut.launch(threeDSecureResult); - verify(activityResultLauncher).launch(threeDSecureResult); + sut.launch(paymentAuthRequest); + verify(activityResultLauncher).launch(threeDSecureParams); } @@ -76,8 +78,10 @@ public void launch_whenTransactionTooLarge_callsBackError() throws JSONException callback); sut.activityLauncher = activityResultLauncher; - ThreeDSecureResult threeDSecureResult = - ThreeDSecureResult.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + ThreeDSecureParams threeDSecureParams = + ThreeDSecureParams.fromJson(Fixtures.THREE_D_SECURE_V2_LOOKUP_RESPONSE); + ThreeDSecurePaymentAuthRequest.ReadyToLaunch paymentAuthRequest = new ThreeDSecurePaymentAuthRequest.ReadyToLaunch( + threeDSecureParams); TransactionTooLargeException transactionTooLargeException = new TransactionTooLargeException(); @@ -85,9 +89,9 @@ public void launch_whenTransactionTooLarge_callsBackError() throws JSONException "runtime exception caused by transaction too large", transactionTooLargeException); doThrow(runtimeException) - .when(activityResultLauncher).launch(any(ThreeDSecureResult.class)); + .when(activityResultLauncher).launch(any(ThreeDSecureParams.class)); - sut.launch(threeDSecureResult); + sut.launch(paymentAuthRequest); ArgumentCaptor captor = ArgumentCaptor.forClass(ThreeDSecurePaymentAuthResult.class); diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureResultUnitTest.java b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureParamsUnitTest.java similarity index 89% rename from ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureResultUnitTest.java rename to ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureParamsUnitTest.java index 486044bf85..b1cabf8bc7 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureResultUnitTest.java +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/ThreeDSecureParamsUnitTest.java @@ -12,11 +12,11 @@ import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) -public class ThreeDSecureResultUnitTest { +public class ThreeDSecureParamsUnitTest { @Test public void fromJson_parsesCorrectly_v1() throws JSONException { - ThreeDSecureResult authResponse = ThreeDSecureResult.fromJson( + ThreeDSecureParams authResponse = ThreeDSecureParams.fromJson( Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); assertEquals("11", authResponse.getThreeDSecureNonce().getLastTwo()); @@ -28,7 +28,7 @@ public void fromJson_parsesCorrectly_v1() throws JSONException { @Test public void fromJson_parsesCorrectly_v2() throws JSONException { - ThreeDSecureResult authResponse = ThreeDSecureResult.fromJson( + ThreeDSecureParams authResponse = ThreeDSecureParams.fromJson( Fixtures.THREE_D_SECURE_V2_AUTHENTICATION_RESPONSE); assertEquals("91", authResponse.getThreeDSecureNonce().getLastTwo()); @@ -40,7 +40,7 @@ public void fromJson_parsesCorrectly_v2() throws JSONException { @Test public void fromJson_whenAuthenticationErrorOccurs_parsesCorrectly_v1() throws JSONException { - ThreeDSecureResult authResponse = ThreeDSecureResult.fromJson( + ThreeDSecureParams authResponse = ThreeDSecureParams.fromJson( Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE_WITH_ERROR); assertNull(authResponse.getThreeDSecureNonce()); @@ -50,7 +50,7 @@ public void fromJson_whenAuthenticationErrorOccurs_parsesCorrectly_v1() throws J @Test public void fromJson_whenAuthenticationErrorOccurs_parsesCorrectly_v2() throws JSONException { - ThreeDSecureResult authResponse = ThreeDSecureResult.fromJson( + ThreeDSecureParams authResponse = ThreeDSecureParams.fromJson( Fixtures.THREE_D_SECURE_V2_AUTHENTICATION_RESPONSE_WITH_ERROR); assertNull(authResponse.getThreeDSecureNonce()); @@ -60,13 +60,13 @@ public void fromJson_whenAuthenticationErrorOccurs_parsesCorrectly_v2() throws J @Test public void isParcelable() throws JSONException { - ThreeDSecureResult authResponse = ThreeDSecureResult.fromJson( + ThreeDSecureParams authResponse = ThreeDSecureParams.fromJson( Fixtures.THREE_D_SECURE_AUTHENTICATION_RESPONSE); Parcel parcel = Parcel.obtain(); authResponse.writeToParcel(parcel, 0); parcel.setDataPosition(0); - ThreeDSecureResult parceled = ThreeDSecureResult.CREATOR.createFromParcel(parcel); + ThreeDSecureParams parceled = ThreeDSecureParams.CREATOR.createFromParcel(parcel); assertEquals(authResponse.getThreeDSecureNonce().getLastTwo(), parceled.getThreeDSecureNonce().getLastTwo()); diff --git a/v5_MIGRATION_GUIDE.md b/v5_MIGRATION_GUIDE.md index 55f85d1c88..31fbfd450b 100644 --- a/v5_MIGRATION_GUIDE.md +++ b/v5_MIGRATION_GUIDE.md @@ -218,9 +218,11 @@ class MyActivity : FragmentActivity() { + // can initialize clients outside of onCreate if desired - initializeClients() + threeDSecureLauncher = ThreeDSecureLauncher(this) { paymentAuthResult -> -+ threeDSecureClient.tokenize(paymentAuthResult) { threeDSecureResult, error -> -+ error?.let { /* handle error */ } -+ threeDSecureResult?.let { /* handle threeDSecureResult.tokenizedCard */ } ++ threeDSecureClient.tokenize(paymentAuthResult) { result -> ++ when (result) { ++ is ThreeDSecureResult.Success -> { /* send result.nonce to server */} ++ is ThreeDSecureResult.Failure -> { /* handle result.error */} ++ is ThreeDSecureResult.Cancel -> { /* user canceled authentication */} + } + } } @@ -234,20 +236,30 @@ class MyActivity : FragmentActivity() { fun onCardTokenization() { - threeDSecureClient.performVerification(activity, threeDSecureRequest) { -+ threeDSecureClient.createPaymentAuthRequest(requireContext(), threeDSecureRequest) { - threeDSecureResult, error -> - error?.let { /* handle error */ } - threeDSecureResult?.let { - if (it.lookup.requiresAuthentication) { +- threeDSecureResult, error -> +- error?.let { /* handle error */ } +- threeDSecureInternalResult?.let { +- if (it.lookup.requiresAuthentication) { - threeDSecureClient.continuePerformVerification(MyActivity@this, request, it) -+ threeDSecureLauncher.launch(it) - else { /* no additional user authentication needed, handle threeDSecureResult */ } - } - } +- else { /* no additional user authentication needed, handle threeDSecureResult */ } +- } ++ threeDSecureClient.createPaymentAuthRequest(requireContext(), threeDSecureRequest) { ++ paymentAuthRequest -> { ++ when (paymentAuthRequest) { ++ is ThreeDSecurePaymentAuthRequest.ReadyToLaunch -> { ++ threeDSecureLauncher.launch(paymentAuthRequest) ++ } ++ is ThreeDSecurePaymentAuthRequest.LaunchNotRequired - > { ++ // no additional authentication challenge needed ++ // send paymentAuthRequest.nonce to server ++ } ++ is ThreeDSecurePaymentAuthRequest.Failure -> { /* handle error */ } ++ } ++ } } -- override fun onThreeDSecureSuccess(threeDSecureResult: ThreeDSecureResult) { -- // handle threeDSecureResult.tokenizedCard +- override fun onThreeDSecureSuccess(threeDSecureParams: ThreeDSecureResult) { +- // handle threeDSecureParams.tokenizedCard - } - override fun onThreeDSecureFailure(error: java.lang.Exception) { From b15ee10aaa287e6ce5bbd50b98421d287523b864 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Tue, 12 Dec 2023 16:10:56 -0600 Subject: [PATCH 07/15] Bump Browser Switch (#852) * bump browser switch * Add CHANGELOG --- CHANGELOG.md | 2 ++ build.gradle | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c00448586d..4dd13fcd5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## unreleased +* BraintreeCore + * Bump `browser-switch` version to `2.6.1` (fixes #799) * PayPal * Fix issue where inaccurate error message was being returned on authorization or configuration error (fixes #821) * Venmo diff --git a/build.gradle b/build.gradle index fd8d00c66f..e74aa1f4b2 100644 --- a/build.gradle +++ b/build.gradle @@ -44,7 +44,7 @@ buildscript { // kotlin libraries. Make sure to keep this dependency in line with the kotlin version used. "kotlinCoroutinesCore" : "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2", - "browserSwitch" : "com.braintreepayments.api:browser-switch:2.6.0", + "browserSwitch" : "com.braintreepayments.api:browser-switch:2.6.1", "cardinal" : "org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-5", "samsungPay" : "com.samsung.android.spay:sdk:2.5.01", "playServicesWallet" : "com.google.android.gms:play-services-wallet:${versions.playServices}", From 0deb12d175561d4618ce705f088e0aa78871d5f7 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Wed, 13 Dec 2023 10:17:57 -0600 Subject: [PATCH 08/15] Local Payment Single Result Object (#851) * Add LocalPaymentResult * Fix unit tests * Rename existing PaymentAuthRequest to params * Rename internal callbacks * Create PaymentAuthRequest callback * Fix unit tests * Update migration guide and CHANGELOG * Refactor demo app * Fix demo app * Fix demo app * Refactor callbacks to kotlin * Fix lint * Update v5_MIGRATION_GUIDE.md --------- Co-authored-by: Tim Chow Co-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com> --- CHANGELOG.md | 4 +- .../demo/DemoClientTokenProvider.java | 2 + .../demo/LocalPaymentFragment.java | 32 ++- .../api/LocalPaymentClientTest.java | 9 +- .../api/LocalPaymentApi.java | 8 +- .../api/LocalPaymentAuthCallback.kt | 12 + .../api/LocalPaymentAuthRequest.kt | 18 ++ .../api/LocalPaymentAuthRequestCallback.java | 16 -- ...ava => LocalPaymentAuthRequestParams.java} | 4 +- .../api/LocalPaymentAuthResult.java | 4 +- .../api/LocalPaymentClient.java | 59 ++--- ...calPaymentInternalAuthRequestCallback.java | 16 ++ .../LocalPaymentInternalTokenizeCallback.java | 9 + .../api/LocalPaymentLauncher.java | 13 +- .../api/LocalPaymentResult.kt | 22 ++ .../api/LocalPaymentTokenizeCallback.java | 18 -- .../api/LocalPaymentTokenizeCallback.kt | 13 + .../api/LocalPaymentApiUnitTest.java | 47 ++-- .../api/LocalPaymentClientUnitTest.java | 228 ++++++++++-------- .../api/LocalPaymentLauncherUnitTest.java | 14 +- .../api/MockLocalPaymentApiBuilder.java | 16 +- v5_MIGRATION_GUIDE.md | 24 +- 22 files changed, 353 insertions(+), 235 deletions(-) create mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthCallback.kt create mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequest.kt delete mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequestCallback.java rename LocalPayment/src/main/java/com/braintreepayments/api/{LocalPaymentAuthRequest.java => LocalPaymentAuthRequestParams.java} (88%) create mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalAuthRequestCallback.java create mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalTokenizeCallback.java create mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentResult.kt delete mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.java create mode 100644 LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index d6114fe2e9..f148f8652f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,8 +80,8 @@ * LocalPayment * Remove `LocalPaymentListener` * Add `LocalPaymentLauncher`, `LocalPaymentLauncherCallback`, `LocalPaymentTokenizeCallback`, - and `LocalPaymentAuthRequest` - * Rename `LocalPaymentResult` to `LocalPaymentAuthResult` + `LocalPaymentAuthRequest`, `LocalPaymentAuthRequestCallback` and `LocalPaymentAuthResult` + * Change `LocalPaymentResult` type * Remove overload constructors, `setListener`, `parseBrowserSwitchResult`, `clearActiveBrowserSwitchResult`, `approveLocalPayment`, and `approvePayment` from `LocalPaymentClient` diff --git a/Demo/src/main/java/com/braintreepayments/demo/DemoClientTokenProvider.java b/Demo/src/main/java/com/braintreepayments/demo/DemoClientTokenProvider.java index d2884ddb3d..e3897949ee 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/DemoClientTokenProvider.java +++ b/Demo/src/main/java/com/braintreepayments/demo/DemoClientTokenProvider.java @@ -25,6 +25,8 @@ public void getClientToken(@NonNull BraintreeAuthorizationCallback callback) { callback.onResult(null); } }); + } else { + callback.onResult(Settings.getTokenizationKey(appContext)); } } diff --git a/Demo/src/main/java/com/braintreepayments/demo/LocalPaymentFragment.java b/Demo/src/main/java/com/braintreepayments/demo/LocalPaymentFragment.java index 19f14331da..4cfe5c48ef 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/LocalPaymentFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/LocalPaymentFragment.java @@ -10,11 +10,15 @@ import androidx.annotation.Nullable; import androidx.navigation.fragment.NavHostFragment; +import com.braintreepayments.api.LocalPaymentAuthRequest; +import com.braintreepayments.api.LocalPaymentAuthResult; import com.braintreepayments.api.LocalPaymentClient; import com.braintreepayments.api.LocalPaymentLauncher; import com.braintreepayments.api.LocalPaymentNonce; import com.braintreepayments.api.LocalPaymentRequest; +import com.braintreepayments.api.LocalPaymentResult; import com.braintreepayments.api.PostalAddress; +import com.braintreepayments.api.UserCanceledException; public class LocalPaymentFragment extends BaseFragment { @@ -69,22 +73,28 @@ public void launchIdeal(View v) { request.setMerchantAccountId("altpay_eur"); request.setCurrencyCode("EUR"); - localPaymentClient.createPaymentAuthRequest(request, (localPaymentResult, error) -> { - if (localPaymentResult != null) { - localPaymentLauncher.launch(requireActivity(), localPaymentResult); - } else { - handleError(error); + localPaymentClient.createPaymentAuthRequest(request, (paymentAuthRequest) -> { + if (paymentAuthRequest instanceof LocalPaymentAuthRequest.ReadyToLaunch) { + localPaymentLauncher.launch(requireActivity(), + (LocalPaymentAuthRequest.ReadyToLaunch) paymentAuthRequest); + } else if (paymentAuthRequest instanceof LocalPaymentAuthRequest.Failure) { + handleError(((LocalPaymentAuthRequest.Failure) paymentAuthRequest).getError()); } }); } - protected void handleLocalPaymentResult(LocalPaymentNonce localPaymentNonce, Exception error) { - super.onPaymentMethodNonceCreated(localPaymentNonce); - - if (error != null) { - handleError(error); - return; + protected void handleLocalPaymentResult(LocalPaymentResult localPaymentResult) { + if (localPaymentResult instanceof LocalPaymentResult.Success) { + onPaymentMethodNonceCreated(((LocalPaymentResult.Success) localPaymentResult).getNonce()); + } else if (localPaymentResult instanceof LocalPaymentResult.Failure) { + handleError(((LocalPaymentResult.Failure) localPaymentResult).getError()); + } else if (localPaymentResult instanceof LocalPaymentResult.Cancel) { + handleError(new UserCanceledException("User canceled Local Payment")); } + } + + protected void onPaymentMethodNonceCreated(LocalPaymentNonce localPaymentNonce) { + super.onPaymentMethodNonceCreated(localPaymentNonce); LocalPaymentFragmentDirections.ActionLocalPaymentFragmentToDisplayNonceFragment action = LocalPaymentFragmentDirections.actionLocalPaymentFragmentToDisplayNonceFragment( diff --git a/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java b/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java index 9d871a912b..c5f127ea2f 100644 --- a/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java +++ b/LocalPayment/src/androidTest/java/com/braintreepayments/api/LocalPaymentClientTest.java @@ -2,6 +2,8 @@ import static junit.framework.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import androidx.test.core.app.ApplicationProvider; import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner; @@ -43,9 +45,10 @@ public void createPaymentAuthRequest_callsBack_withApprovalUrl_andPaymentId() th request.setCurrencyCode("EUR"); LocalPaymentClient sut = new LocalPaymentClient(braintreeClient); - sut.createPaymentAuthRequest(request, (localPaymentResult, error) -> { - assertNotNull(localPaymentResult.getApprovalUrl()); - assertNotNull(localPaymentResult.getPaymentId()); + sut.createPaymentAuthRequest(request, (localPaymentAuthRequest) -> { + assertTrue(localPaymentAuthRequest instanceof LocalPaymentAuthRequest.ReadyToLaunch); + assertNotNull(((LocalPaymentAuthRequest.ReadyToLaunch) localPaymentAuthRequest).getRequestParams().getApprovalUrl()); + assertNotNull(((LocalPaymentAuthRequest.ReadyToLaunch) localPaymentAuthRequest).getRequestParams().getPaymentId()); countDownLatch.countDown(); }); diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentApi.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentApi.java index bce9e866bf..afd03938eb 100644 --- a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentApi.java +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentApi.java @@ -15,7 +15,7 @@ class LocalPaymentApi { } void createPaymentMethod(final LocalPaymentRequest request, - final LocalPaymentAuthRequestCallback callback) { + final LocalPaymentInternalAuthRequestCallback callback) { String returnUrl = braintreeClient.getReturnUrlScheme() + "://" + LOCAL_PAYMENT_SUCCESS; String cancel = braintreeClient.getReturnUrlScheme() + "://" + LOCAL_PAYMENT_CANCEL; @@ -30,8 +30,8 @@ void createPaymentMethod(final LocalPaymentRequest request, String paymentToken = responseJson.getJSONObject("paymentResource") .getString("paymentToken"); - LocalPaymentAuthRequest transaction = - new LocalPaymentAuthRequest(request, redirectUrl, paymentToken); + LocalPaymentAuthRequestParams transaction = + new LocalPaymentAuthRequestParams(request, redirectUrl, paymentToken); callback.onResult(transaction, null); } catch (JSONException e) { callback.onResult(null, e); @@ -43,7 +43,7 @@ void createPaymentMethod(final LocalPaymentRequest request, } void tokenize(String merchantAccountId, String responseString, String clientMetadataID, - final LocalPaymentTokenizeCallback callback) { + final LocalPaymentInternalTokenizeCallback callback) { JSONObject payload = new JSONObject(); try { diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthCallback.kt b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthCallback.kt new file mode 100644 index 0000000000..e85e4717a9 --- /dev/null +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthCallback.kt @@ -0,0 +1,12 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of + * [LocalPaymentClient.createPaymentAuthRequest]. + */ +fun interface LocalPaymentAuthCallback { + /** + * @param paymentAuthRequest a request used to launch the PayPal web authentication flow + */ + fun onLocalPaymentAuthRequest(paymentAuthRequest: LocalPaymentAuthRequest) +} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequest.kt b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequest.kt new file mode 100644 index 0000000000..fe5dd51e93 --- /dev/null +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequest.kt @@ -0,0 +1,18 @@ +package com.braintreepayments.api + +/** + * A request used to launch the continuation of the local payment flow. + */ +sealed class LocalPaymentAuthRequest { + + /** + * The request was successfully created and is ready to be launched by [LocalPaymentLauncher] + */ + class ReadyToLaunch(val requestParams: LocalPaymentAuthRequestParams) : + LocalPaymentAuthRequest() + + /** + * There was an [error] creating the request + */ + class Failure(val error: Exception) : LocalPaymentAuthRequest() +} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequestCallback.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequestCallback.java deleted file mode 100644 index 186a56eae7..0000000000 --- a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequestCallback.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.braintreepayments.api; - -import androidx.annotation.Nullable; - -/** - * Callback for receiving result of - * {@link LocalPaymentClient#createPaymentAuthRequest(LocalPaymentRequest, LocalPaymentAuthRequestCallback)}. - */ -public interface LocalPaymentAuthRequestCallback { - - /** - * @param localPaymentAuthRequest {@link LocalPaymentAuthRequest} - * @param error an exception that occurred while initiating a Local Payment - */ - void onResult(@Nullable LocalPaymentAuthRequest localPaymentAuthRequest, @Nullable Exception error); -} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequest.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequestParams.java similarity index 88% rename from LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequest.java rename to LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequestParams.java index aa37b6fbd1..6f977eff5a 100644 --- a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequest.java +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthRequestParams.java @@ -5,7 +5,7 @@ /** * Local payment result information. */ -public class LocalPaymentAuthRequest { +public class LocalPaymentAuthRequestParams { private final LocalPaymentRequest request; private final String approvalUrl; @@ -13,7 +13,7 @@ public class LocalPaymentAuthRequest { private BrowserSwitchOptions browserSwitchOptions; - LocalPaymentAuthRequest(LocalPaymentRequest request, String approvalUrl, String paymentId) { + LocalPaymentAuthRequestParams(LocalPaymentRequest request, String approvalUrl, String paymentId) { this.request = request; this.approvalUrl = approvalUrl; this.paymentId = paymentId; diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthResult.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthResult.java index 6d0d143edb..ef4e69c56d 100644 --- a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthResult.java +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentAuthResult.java @@ -4,8 +4,8 @@ /** * Result received from the local payment web flow through - * {@link LocalPaymentTokenizeCallback}. This result should be passed to - * {@link LocalPaymentClient#tokenize(Context, LocalPaymentAuthResult, LocalPaymentTokenizeCallback)} + * {@link LocalPaymentInternalTokenizeCallback}. This result should be passed to + * {@link LocalPaymentClient#tokenize(Context, LocalPaymentAuthResult, LocalPaymentInternalTokenizeCallback)} * to complete the local payment flow. */ public class LocalPaymentAuthResult { diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentClient.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentClient.java index cac453bef5..60d4f677f9 100644 --- a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentClient.java +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentClient.java @@ -50,14 +50,14 @@ public LocalPaymentClient(@NonNull Context context, @NonNull String authorizatio /** * Starts the payment flow for a {@link LocalPaymentRequest} and calls back a - * {@link LocalPaymentAuthRequest} on success that should be used to launch the user + * {@link LocalPaymentAuthRequestParams} on success that should be used to launch the user * authentication flow. * * @param request {@link LocalPaymentRequest} with the payment details. - * @param callback {@link LocalPaymentAuthRequestCallback} + * @param callback {@link LocalPaymentInternalAuthRequestCallback} */ public void createPaymentAuthRequest(@NonNull final LocalPaymentRequest request, - @NonNull final LocalPaymentAuthRequestCallback callback) { + @NonNull final LocalPaymentAuthCallback callback) { Exception exception = null; //noinspection ConstantConditions @@ -74,13 +74,13 @@ public void createPaymentAuthRequest(@NonNull final LocalPaymentRequest request, } if (exception != null) { - callback.onResult(null, exception); + callback.onLocalPaymentAuthRequest(new LocalPaymentAuthRequest.Failure(exception)); } else { braintreeClient.getConfiguration((configuration, error) -> { if (configuration != null) { if (!configuration.isPayPalEnabled()) { - callback.onResult(null, new ConfigurationException( - "Local payments are not enabled for this merchant.")); + callback.onLocalPaymentAuthRequest(new LocalPaymentAuthRequest.Failure(new ConfigurationException( + "Local payments are not enabled for this merchant."))); return; } @@ -94,40 +94,41 @@ public void createPaymentAuthRequest(@NonNull final LocalPaymentRequest request, sendAnalyticsEvent(request.getPaymentType(), "local-payment.create.succeeded"); } else if (createPaymentMethodError != null) { - callback.onResult(null, new BraintreeException("An error " + - "occurred creating the local payment method.")); + callback.onLocalPaymentAuthRequest(new LocalPaymentAuthRequest.Failure(new BraintreeException("An error " + + "occurred creating the local payment method."))); sendAnalyticsEvent(request.getPaymentType(), "local-payment.webswitch.initiate.failed"); } }); } else { - callback.onResult(null, error); + callback.onLocalPaymentAuthRequest(new LocalPaymentAuthRequest.Failure(error)); } }); } } - void buildBrowserSwitchOptions(@NonNull LocalPaymentAuthRequest localPaymentAuthRequest, - @NonNull LocalPaymentAuthRequestCallback callback) { + void buildBrowserSwitchOptions(@NonNull + LocalPaymentAuthRequestParams localPaymentAuthRequestParams, + @NonNull LocalPaymentAuthCallback callback) { BrowserSwitchOptions browserSwitchOptions = new BrowserSwitchOptions() .requestCode(BraintreeRequestCodes.LOCAL_PAYMENT) .returnUrlScheme(braintreeClient.getReturnUrlScheme()) .launchAsNewTask(braintreeClient.launchesBrowserSwitchAsNewTask()) - .url(Uri.parse(localPaymentAuthRequest.getApprovalUrl())); + .url(Uri.parse(localPaymentAuthRequestParams.getApprovalUrl())); - String paymentType = localPaymentAuthRequest.getRequest().getPaymentType(); + String paymentType = localPaymentAuthRequestParams.getRequest().getPaymentType(); try { browserSwitchOptions.metadata(new JSONObject() .put("merchant-account-id", - localPaymentAuthRequest.getRequest().getMerchantAccountId()) - .put("payment-type", localPaymentAuthRequest.getRequest().getPaymentType())); + localPaymentAuthRequestParams.getRequest().getMerchantAccountId()) + .put("payment-type", localPaymentAuthRequestParams.getRequest().getPaymentType())); } catch (JSONException e) { - callback.onResult(null, new BraintreeException("Error parsing local payment request")); + callback.onLocalPaymentAuthRequest(new LocalPaymentAuthRequest.Failure(new BraintreeException("Error parsing local payment request"))); } - localPaymentAuthRequest.setBrowserSwitchOptions(browserSwitchOptions); - callback.onResult(localPaymentAuthRequest, null); + localPaymentAuthRequestParams.setBrowserSwitchOptions(browserSwitchOptions); + callback.onLocalPaymentAuthRequest(new LocalPaymentAuthRequest.ReadyToLaunch(localPaymentAuthRequestParams)); sendAnalyticsEvent(paymentType, "local-payment.webswitch.initiate.succeeded"); } @@ -140,22 +141,22 @@ void buildBrowserSwitchOptions(@NonNull LocalPaymentAuthRequest localPaymentAuth * @param context Android Context * @param localPaymentAuthResult a {@link LocalPaymentAuthResult} received * in the callback of {@link LocalPaymentLauncher} - * @param callback {@link LocalPaymentTokenizeCallback} + * @param callback {@link LocalPaymentInternalTokenizeCallback} */ public void tokenize(@NonNull final Context context, @Nullable LocalPaymentAuthResult localPaymentAuthResult, @NonNull final LocalPaymentTokenizeCallback callback) { //noinspection ConstantConditions if (localPaymentAuthResult == null) { - callback.onResult(null, new BraintreeException("LocalPaymentAuthResult " + - "cannot be null")); + callback.onLocalPaymentResult(new LocalPaymentResult.Failure(new BraintreeException("LocalPaymentAuthResult " + + "cannot be null"))); return; } BrowserSwitchResult browserSwitchResult = localPaymentAuthResult.getBrowserSwitchResult(); if (browserSwitchResult == null && localPaymentAuthResult.getError() != null) { - callback.onResult(null, localPaymentAuthResult.getError()); + callback.onLocalPaymentResult(new LocalPaymentResult.Failure(localPaymentAuthResult.getError())); return; } @@ -168,23 +169,22 @@ public void tokenize(@NonNull final Context context, switch (result) { case BrowserSwitchStatus.CANCELED: sendAnalyticsEvent(paymentType, "local-payment.webswitch.canceled"); - callback.onResult(null, new UserCanceledException("User canceled Local Payment.")); + callback.onLocalPaymentResult(LocalPaymentResult.Cancel.INSTANCE); return; case BrowserSwitchStatus.SUCCESS: Uri deepLinkUri = browserSwitchResult.getDeepLinkUrl(); if (deepLinkUri == null) { sendAnalyticsEvent(paymentType, "local-payment.webswitch-response.invalid"); - callback.onResult(null, + callback.onLocalPaymentResult(new LocalPaymentResult.Failure( new BraintreeException("LocalPayment encountered an error, " + - "return URL is invalid.")); + "return URL is invalid."))); return; } final String responseString = deepLinkUri.toString(); if (responseString.toLowerCase().contains(LOCAL_PAYMENT_CANCEL.toLowerCase())) { sendAnalyticsEvent(paymentType, "local-payment.webswitch.canceled"); - callback.onResult(null, - new UserCanceledException("User canceled Local Payment.")); + callback.onLocalPaymentResult(LocalPaymentResult.Cancel.INSTANCE); return; } braintreeClient.getConfiguration((configuration, error) -> { @@ -195,14 +195,15 @@ public void tokenize(@NonNull final Context context, if (localPaymentNonce != null) { sendAnalyticsEvent(paymentType, "local-payment.tokenize.succeeded"); + callback.onLocalPaymentResult(new LocalPaymentResult.Success(localPaymentNonce)); } else if (localPaymentError != null) { sendAnalyticsEvent(paymentType, "local-payment.tokenize.failed"); + callback.onLocalPaymentResult(new LocalPaymentResult.Failure(localPaymentError)); } - callback.onResult(localPaymentNonce, localPaymentError); }); } else if (error != null) { - callback.onResult(null, error); + callback.onLocalPaymentResult(new LocalPaymentResult.Failure(error)); } }); } diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalAuthRequestCallback.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalAuthRequestCallback.java new file mode 100644 index 0000000000..f5f7709b68 --- /dev/null +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalAuthRequestCallback.java @@ -0,0 +1,16 @@ +package com.braintreepayments.api; + +import androidx.annotation.Nullable; + +/** + * Callback for receiving result of + * {@link LocalPaymentClient#createPaymentAuthRequest(LocalPaymentRequest, LocalPaymentAuthCallback)}. + */ +public interface LocalPaymentInternalAuthRequestCallback { + + /** + * @param localPaymentAuthRequestParams {@link LocalPaymentAuthRequestParams} + * @param error an exception that occurred while initiating a Local Payment + */ + void onResult(@Nullable LocalPaymentAuthRequestParams localPaymentAuthRequestParams, @Nullable Exception error); +} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalTokenizeCallback.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalTokenizeCallback.java new file mode 100644 index 0000000000..2b467105c3 --- /dev/null +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentInternalTokenizeCallback.java @@ -0,0 +1,9 @@ +package com.braintreepayments.api; + + +import androidx.annotation.Nullable; + +interface LocalPaymentInternalTokenizeCallback { + + void onResult(@Nullable LocalPaymentNonce localPaymentNonce, @Nullable Exception error); +} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentLauncher.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentLauncher.java index a52cb94800..2e1731b2d2 100644 --- a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentLauncher.java +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentLauncher.java @@ -21,7 +21,7 @@ public class LocalPaymentLauncher { * Used to launch the local payment flow in a web browser and deliver results to your Activity * * @param callback a {@link LocalPaymentLauncherCallback} to handle the result of - * {@link LocalPaymentLauncher#launch(FragmentActivity, LocalPaymentAuthRequest)} + * {@link LocalPaymentLauncher#launch(FragmentActivity, LocalPaymentAuthRequest.ReadyToLaunch)} */ public LocalPaymentLauncher(@NonNull LocalPaymentLauncherCallback callback) { this(new BrowserSwitchClient(), callback); @@ -41,13 +41,12 @@ public LocalPaymentLauncher(@NonNull LocalPaymentLauncherCallback callback) { * * @param activity an Android {@link FragmentActivity} * @param localPaymentAuthRequest the payment auth request created in - * {@link LocalPaymentClient#createPaymentAuthRequest(LocalPaymentRequest, - * LocalPaymentAuthRequestCallback)} + * {@link LocalPaymentClient#createPaymentAuthRequest(LocalPaymentRequest, LocalPaymentAuthCallback)} */ public void launch(@NonNull FragmentActivity activity, - @NonNull LocalPaymentAuthRequest localPaymentAuthRequest) { + @NonNull LocalPaymentAuthRequest.ReadyToLaunch localPaymentAuthRequest) { try { - browserSwitchClient.start(activity, localPaymentAuthRequest.getBrowserSwitchOptions()); + browserSwitchClient.start(activity, localPaymentAuthRequest.getRequestParams().getBrowserSwitchOptions()); } catch (BrowserSwitchException e) { callback.onResult(new LocalPaymentAuthResult(e)); } @@ -57,7 +56,7 @@ public void launch(@NonNull FragmentActivity activity, * Captures and delivers the result of a the browser-based local payment authentication flow. *

* For most integrations, this method should be invoked in the onResume method of the Activity - * used to invoke {@link LocalPaymentLauncher#launch(FragmentActivity, LocalPaymentAuthRequest)}. + * used to invoke {@link LocalPaymentLauncher#launch(FragmentActivity, LocalPaymentAuthRequest.ReadyToLaunch)}. *

* If the Activity used to launch the PayPal flow has is configured with * android:launchMode="singleTop", this method should be invoked in the onNewIntent method of @@ -66,7 +65,7 @@ public void launch(@NonNull FragmentActivity activity, * This method will deliver a {@link LocalPaymentAuthResult} to the * {@link LocalPaymentLauncherCallback} used to instantiate this class. The * {@link LocalPaymentAuthResult} should be passed to - * {@link LocalPaymentClient#tokenize(Context, LocalPaymentAuthResult, LocalPaymentTokenizeCallback)} + * {@link LocalPaymentClient#tokenize(Context, LocalPaymentAuthResult, LocalPaymentTokenizeCallback)} * * @param context the context used to check for pending results * @param intent the intent to return to your application containing a deep link result from diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentResult.kt b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentResult.kt new file mode 100644 index 0000000000..45cf7e98c5 --- /dev/null +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentResult.kt @@ -0,0 +1,22 @@ +package com.braintreepayments.api + +/** + * Result of tokenizing a local payment method + */ +sealed class LocalPaymentResult { + + /** + * The local payment flow completed successfully. This [nonce] should be sent to your server. + */ + class Success(val nonce: LocalPaymentNonce) : LocalPaymentResult() + + /** + * There was an [error] in the local payment flow. + */ + class Failure(val error: Exception) : LocalPaymentResult() + + /** + * The user canceled the local payment flow. + */ + object Cancel : LocalPaymentResult() +} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.java b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.java deleted file mode 100644 index e122fe9c6b..0000000000 --- a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.braintreepayments.api; - -import android.content.Context; - -import androidx.annotation.Nullable; - -/** - * Callback for receiving result of - * {@link LocalPaymentClient#tokenize(Context, LocalPaymentAuthResult, LocalPaymentTokenizeCallback)}. - */ -public interface LocalPaymentTokenizeCallback { - - /** - * @param localPaymentNonce {@link LocalPaymentNonce} - * @param error an exception that occurred while processing Local Payment result - */ - void onResult(@Nullable LocalPaymentNonce localPaymentNonce, @Nullable Exception error); -} diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.kt b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.kt new file mode 100644 index 0000000000..c3d7bdc880 --- /dev/null +++ b/LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentTokenizeCallback.kt @@ -0,0 +1,13 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of + * [LocalPaymentClient.tokenize]. + */ +fun interface LocalPaymentTokenizeCallback { + /** + * + * @param localPaymentResult a success, failure, or cancel result from the local payment flow + */ + fun onLocalPaymentResult(localPaymentResult: LocalPaymentResult) +} diff --git a/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentApiUnitTest.java b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentApiUnitTest.java index be32e915d9..e4b0d1e44c 100644 --- a/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentApiUnitTest.java +++ b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentApiUnitTest.java @@ -25,14 +25,14 @@ @RunWith(RobolectricTestRunner.class) public class LocalPaymentApiUnitTest { - private LocalPaymentAuthRequestCallback localPaymentAuthRequestCallback; - private LocalPaymentTokenizeCallback localPaymentTokenizeCallback; + private LocalPaymentInternalAuthRequestCallback localPaymentInternalAuthRequestCallback; + private LocalPaymentInternalTokenizeCallback localPaymentInternalTokenizeCallback; @Before public void beforeEach() { - localPaymentAuthRequestCallback = mock(LocalPaymentAuthRequestCallback.class); - localPaymentTokenizeCallback = - mock(LocalPaymentTokenizeCallback.class); + localPaymentInternalAuthRequestCallback = mock(LocalPaymentInternalAuthRequestCallback.class); + localPaymentInternalTokenizeCallback = + mock(LocalPaymentInternalTokenizeCallback.class); } @Test @@ -42,7 +42,8 @@ public void createPaymentMethod_sendsCorrectPostParams() throws JSONException { .build(); LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); - sut.createPaymentMethod(getIdealLocalPaymentRequest(), localPaymentAuthRequestCallback); + sut.createPaymentMethod(getIdealLocalPaymentRequest(), + localPaymentInternalAuthRequestCallback); String expectedPath = "/v1/local_payments/create"; ArgumentCaptor bodyCaptor = ArgumentCaptor.forClass(String.class); @@ -82,9 +83,10 @@ public void createPaymentMethod_onPOSTError_forwardsErrorToCallback() { .build(); LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); - sut.createPaymentMethod(getIdealLocalPaymentRequest(), localPaymentAuthRequestCallback); + sut.createPaymentMethod(getIdealLocalPaymentRequest(), + localPaymentInternalAuthRequestCallback); - verify(localPaymentAuthRequestCallback).onResult(isNull(), same(error)); + verify(localPaymentInternalAuthRequestCallback).onResult(isNull(), same(error)); } @@ -95,10 +97,11 @@ public void createPaymentMethod_onJSONError_forwardsJSONErrorToCallback() { .build(); LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); - sut.createPaymentMethod(getIdealLocalPaymentRequest(), localPaymentAuthRequestCallback); + sut.createPaymentMethod(getIdealLocalPaymentRequest(), + localPaymentInternalAuthRequestCallback); ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentAuthRequestCallback).onResult(isNull(), captor.capture()); + verify(localPaymentInternalAuthRequestCallback).onResult(isNull(), captor.capture()); assertTrue(captor.getValue() instanceof JSONException); } @@ -111,13 +114,13 @@ public void createPaymentMethod_onPOSTSuccess_returnsResultWithOriginalRequestTo LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentMethod(request, localPaymentAuthRequestCallback); + sut.createPaymentMethod(request, localPaymentInternalAuthRequestCallback); - ArgumentCaptor captor = - ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); - verify(localPaymentAuthRequestCallback).onResult(captor.capture(), isNull()); + ArgumentCaptor captor = + ArgumentCaptor.forClass(LocalPaymentAuthRequestParams.class); + verify(localPaymentInternalAuthRequestCallback).onResult(captor.capture(), isNull()); - LocalPaymentAuthRequest result = captor.getValue(); + LocalPaymentAuthRequestParams result = captor.getValue(); assertNotNull(result); assertSame(request, result.getRequest()); assertEquals("https://checkout.paypal.com/latinum?token=payment-token", @@ -135,7 +138,7 @@ public void tokenize_sendsCorrectPostParams() throws JSONException { LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); String webUrl = "sample-scheme://local-payment-success?paymentToken=successTokenId"; sut.tokenize("local-merchant-account-id", webUrl, "sample-correlation-id", - localPaymentTokenizeCallback); + localPaymentInternalTokenizeCallback); ArgumentCaptor bodyCaptor = ArgumentCaptor.forClass(String.class); String expectedUrl = "/v1/payment_methods/paypal_accounts"; @@ -176,9 +179,9 @@ public void tokenize_onPOSTError_forwardsErrorToCallback() { LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); String webUrl = "sample-scheme://local-payment-success?paymentToken=successTokenId"; sut.tokenize("local-merchant-account-id", webUrl, "sample-correlation-id", - localPaymentTokenizeCallback); + localPaymentInternalTokenizeCallback); - verify(localPaymentTokenizeCallback).onResult(isNull(), same(error)); + verify(localPaymentInternalTokenizeCallback).onResult(isNull(), same(error)); } @Test @@ -192,10 +195,10 @@ public void tokenize_onJSONError_forwardsErrorToCallback() { LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); String webUrl = "sample-scheme://local-payment-success?paymentToken=successTokenId"; sut.tokenize("local-merchant-account-id", webUrl, "sample-correlation-id", - localPaymentTokenizeCallback); + localPaymentInternalTokenizeCallback); ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentTokenizeCallback).onResult(isNull(), captor.capture()); + verify(localPaymentInternalTokenizeCallback).onResult(isNull(), captor.capture()); assertTrue(captor.getValue() instanceof JSONException); } @@ -211,10 +214,10 @@ public void tokenize_onPOSTSuccess_returnsResultToCallback() { LocalPaymentApi sut = new LocalPaymentApi(braintreeClient); String webUrl = "sample-scheme://local-payment-success?paymentToken=successTokenId"; sut.tokenize("local-merchant-account-id", webUrl, "sample-correlation-id", - localPaymentTokenizeCallback); + localPaymentInternalTokenizeCallback); ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentNonce.class); - verify(localPaymentTokenizeCallback).onResult(captor.capture(), + verify(localPaymentInternalTokenizeCallback).onResult(captor.capture(), (Exception) isNull()); LocalPaymentNonce result = captor.getValue(); diff --git a/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentClientUnitTest.java b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentClientUnitTest.java index b0d22b7c96..51ac823b61 100644 --- a/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentClientUnitTest.java +++ b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentClientUnitTest.java @@ -33,12 +33,12 @@ public class LocalPaymentClientUnitTest { private FragmentActivity activity; - private LocalPaymentAuthRequestCallback localPaymentAuthRequestCallback; + private LocalPaymentAuthCallback localPaymentAuthCallback; private LocalPaymentTokenizeCallback localPaymentTokenizeCallback; private BraintreeClient braintreeClient; private DataCollector dataCollector; private LocalPaymentApi localPaymentApi; - private LocalPaymentAuthRequest localPaymentAuthRequest; + private LocalPaymentAuthRequestParams localPaymentAuthRequestParams; private Configuration payPalEnabledConfig; private Configuration payPalDisabledConfig; @@ -46,18 +46,17 @@ public class LocalPaymentClientUnitTest { @Before public void beforeEach() throws JSONException { activity = mock(FragmentActivity.class); - localPaymentAuthRequestCallback = mock(LocalPaymentAuthRequestCallback.class); - localPaymentTokenizeCallback = - mock(LocalPaymentTokenizeCallback.class); + localPaymentAuthCallback = mock(LocalPaymentAuthCallback.class); + localPaymentTokenizeCallback = mock(LocalPaymentTokenizeCallback.class); braintreeClient = new MockBraintreeClientBuilder().configuration( Configuration.fromJson(Fixtures.CONFIGURATION_WITH_LIVE_PAYPAL)).build(); dataCollector = mock(DataCollector.class); localPaymentApi = mock(LocalPaymentApi.class); - localPaymentAuthRequest = mock(LocalPaymentAuthRequest.class); - when(localPaymentAuthRequest.getApprovalUrl()).thenReturn("https://"); - when(localPaymentAuthRequest.getRequest()).thenReturn(getIdealLocalPaymentRequest()); + localPaymentAuthRequestParams = mock(LocalPaymentAuthRequestParams.class); + when(localPaymentAuthRequestParams.getApprovalUrl()).thenReturn("https://"); + when(localPaymentAuthRequestParams.getRequest()).thenReturn(getIdealLocalPaymentRequest()); payPalEnabledConfig = Configuration.fromJson(Fixtures.CONFIGURATION_WITH_LIVE_PAYPAL); payPalDisabledConfig = Configuration.fromJson(Fixtures.CONFIGURATION_WITH_DISABLED_PAYPAL); @@ -74,10 +73,10 @@ public void createPaymentAuthRequest_createsPaymentMethodWithLocalPaymentApi() { new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); verify(localPaymentApi).createPaymentMethod(same(request), - any(LocalPaymentAuthRequestCallback.class)); + any(LocalPaymentInternalAuthRequestCallback.class)); } @Test @@ -87,16 +86,22 @@ public void createPaymentAuthRequest_success_forwardsResultToCallback() { .build(); LocalPaymentApi localPaymentApi = new MockLocalPaymentApiBuilder() - .createPaymentMethodSuccess(localPaymentAuthRequest) + .createPaymentMethodSuccess(localPaymentAuthRequestParams) .build(); LocalPaymentClient sut = new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); - verify(localPaymentAuthRequestCallback).onResult(same(localPaymentAuthRequest), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); + + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.ReadyToLaunch); + LocalPaymentAuthRequestParams params = ((LocalPaymentAuthRequest.ReadyToLaunch) paymentAuthRequest).getRequestParams(); + assertEquals(localPaymentAuthRequestParams, params); } @Test @@ -105,14 +110,14 @@ public void createPaymentAuthRequest_success_sendsAnalyticsEvents() { .configuration(payPalEnabledConfig) .build(); LocalPaymentApi localPaymentApi = new MockLocalPaymentApiBuilder() - .createPaymentMethodSuccess(localPaymentAuthRequest) + .createPaymentMethodSuccess(localPaymentAuthRequestParams) .build(); LocalPaymentClient sut = new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); verify(braintreeClient).sendAnalyticsEvent("ideal.local-payment.start-payment.selected"); verify(braintreeClient).sendAnalyticsEvent("ideal.local-payment.create.succeeded"); @@ -129,9 +134,15 @@ public void createPaymentAuthRequest_configurationFetchError_forwardsErrorToCall new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - verify(localPaymentAuthRequestCallback).onResult(isNull(), same(configException)); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.Failure); + Exception exception = ((LocalPaymentAuthRequest.Failure) paymentAuthRequest).getError(); + assertEquals(exception, configException); } @Test @@ -148,28 +159,12 @@ public void createPaymentAuthRequest_onLocalPaymentApiError_sendsAnalyticsEvents new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); verify(braintreeClient).sendAnalyticsEvent("ideal.local-payment.start-payment.selected"); verify(braintreeClient).sendAnalyticsEvent("ideal.local-payment.webswitch.initiate.failed"); } - @Test - public void createPaymentAuthRequest_onConfigurationFetchError_forwardsErrorToCallback() { - Exception configError = new Exception("config fetch error"); - BraintreeClient braintreeClient = new MockBraintreeClientBuilder() - .configurationError(configError) - .build(); - - LocalPaymentClient sut = - new LocalPaymentClient(braintreeClient, dataCollector, - localPaymentApi); - LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); - - verify(localPaymentAuthRequestCallback).onResult(null, configError); - } - @Test public void createPaymentAuthRequest_whenPayPalDisabled_returnsErrorToCallback() { BraintreeClient braintreeClient = new MockBraintreeClientBuilder() @@ -180,12 +175,14 @@ public void createPaymentAuthRequest_whenPayPalDisabled_returnsErrorToCallback() new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); LocalPaymentRequest request = getIdealLocalPaymentRequest(); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentAuthRequestCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - Exception exception = captor.getValue(); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.Failure); + Exception exception = ((LocalPaymentAuthRequest.Failure) paymentAuthRequest).getError(); assertTrue(exception instanceof ConfigurationException); assertEquals("Local payments are not enabled for this merchant.", exception.getMessage()); } @@ -198,12 +195,14 @@ public void createPaymentAuthRequest_whenAmountIsNull_returnsErrorToCallback() { LocalPaymentRequest request = getIdealLocalPaymentRequest(); request.setAmount(null); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentAuthRequestCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - Exception exception = captor.getValue(); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.Failure); + Exception exception = ((LocalPaymentAuthRequest.Failure) paymentAuthRequest).getError(); assertTrue(exception instanceof BraintreeException); assertEquals("LocalPaymentRequest is invalid, paymentType and amount are required.", exception.getMessage()); @@ -217,12 +216,14 @@ public void createPaymentAuthRequest_whenPaymentTypeIsNull_returnsErrorToCallbac LocalPaymentRequest request = getIdealLocalPaymentRequest(); request.setPaymentType(null); - sut.createPaymentAuthRequest(request, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(request, localPaymentAuthCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentAuthRequestCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - Exception exception = captor.getValue(); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.Failure); + Exception exception = ((LocalPaymentAuthRequest.Failure) paymentAuthRequest).getError(); assertTrue(exception instanceof BraintreeException); assertEquals("LocalPaymentRequest is invalid, paymentType and amount are required.", exception.getMessage()); @@ -234,12 +235,14 @@ public void createPaymentAuthRequest_whenLocalPaymentRequestIsNull_returnsErrorT new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); - sut.createPaymentAuthRequest(null, localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(null, localPaymentAuthCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentAuthRequestCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - Exception exception = captor.getValue(); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.Failure); + Exception exception = ((LocalPaymentAuthRequest.Failure) paymentAuthRequest).getError(); assertTrue(exception instanceof BraintreeException); assertEquals("A LocalPaymentRequest is required.", exception.getMessage()); } @@ -268,12 +271,15 @@ public void createPaymentAuthRequest_whenCreatePaymentMethodError_returnsErrorTo new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); - sut.createPaymentAuthRequest(getIdealLocalPaymentRequest(), localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(getIdealLocalPaymentRequest(), + localPaymentAuthCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentAuthRequestCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - Exception exception = captor.getValue(); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.Failure); + Exception exception = ((LocalPaymentAuthRequest.Failure) paymentAuthRequest).getError(); assertTrue(exception instanceof BraintreeException); assertEquals("An error occurred creating the local payment method.", exception.getMessage()); @@ -282,16 +288,22 @@ public void createPaymentAuthRequest_whenCreatePaymentMethodError_returnsErrorTo @Test public void createPaymentAuthRequest_whenCreatePaymentMethodSuccess_returnsLocalPaymentResultToCallback() { LocalPaymentApi localPaymentApi = new MockLocalPaymentApiBuilder() - .createPaymentMethodSuccess(localPaymentAuthRequest) + .createPaymentMethodSuccess(localPaymentAuthRequestParams) .build(); LocalPaymentClient sut = new LocalPaymentClient(braintreeClient, dataCollector, localPaymentApi); - sut.createPaymentAuthRequest(getIdealLocalPaymentRequest(), localPaymentAuthRequestCallback); + sut.createPaymentAuthRequest(getIdealLocalPaymentRequest(), localPaymentAuthCallback); + + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - verify(localPaymentAuthRequestCallback).onResult(same(localPaymentAuthRequest), isNull()); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.ReadyToLaunch); + LocalPaymentAuthRequestParams params = ((LocalPaymentAuthRequest.ReadyToLaunch) paymentAuthRequest).getRequestParams(); + assertEquals(localPaymentAuthRequestParams, params); } @Test @@ -303,17 +315,18 @@ public void buildBrowserSwitchOptions_returnsLocalPaymentResultWithBrowserSwitch LocalPaymentRequest request = getIdealLocalPaymentRequest(); String approvalUrl = "https://sample.com/approval?token=sample-token"; - LocalPaymentAuthRequest - transaction = new LocalPaymentAuthRequest(request, approvalUrl, "payment-id"); + LocalPaymentAuthRequestParams + transaction = new LocalPaymentAuthRequestParams(request, approvalUrl, "payment-id"); - sut.buildBrowserSwitchOptions(transaction, localPaymentAuthRequestCallback); + sut.buildBrowserSwitchOptions(transaction, localPaymentAuthCallback); - ArgumentCaptor captor = - ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); - verify(localPaymentAuthRequestCallback).onResult(captor.capture(), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - LocalPaymentAuthRequest result = captor.getValue(); - BrowserSwitchOptions browserSwitchOptions = result.getBrowserSwitchOptions(); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.ReadyToLaunch); + LocalPaymentAuthRequestParams params = ((LocalPaymentAuthRequest.ReadyToLaunch) paymentAuthRequest).getRequestParams(); + BrowserSwitchOptions browserSwitchOptions = params.getBrowserSwitchOptions(); assertEquals(BraintreeRequestCodes.LOCAL_PAYMENT, browserSwitchOptions.getRequestCode()); assertEquals(Uri.parse("https://sample.com/approval?token=sample-token"), browserSwitchOptions.getUrl()); @@ -336,17 +349,18 @@ public void buildBrowserSwitchOptions_withDefaultDeepLinkHandlerEnabled_startsBr LocalPaymentRequest request = getIdealLocalPaymentRequest(); String approvalUrl = "https://sample.com/approval?token=sample-token"; - LocalPaymentAuthRequest - transaction = new LocalPaymentAuthRequest(request, approvalUrl, "payment-id"); + LocalPaymentAuthRequestParams + transaction = new LocalPaymentAuthRequestParams(request, approvalUrl, "payment-id"); - sut.buildBrowserSwitchOptions(transaction, localPaymentAuthRequestCallback); + sut.buildBrowserSwitchOptions(transaction, localPaymentAuthCallback); - ArgumentCaptor captor = - ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); - verify(localPaymentAuthRequestCallback).onResult(captor.capture(), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthRequest.class); + verify(localPaymentAuthCallback).onLocalPaymentAuthRequest(captor.capture()); - LocalPaymentAuthRequest result = captor.getValue(); - BrowserSwitchOptions browserSwitchOptions = result.getBrowserSwitchOptions(); + LocalPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof LocalPaymentAuthRequest.ReadyToLaunch); + LocalPaymentAuthRequestParams params = ((LocalPaymentAuthRequest.ReadyToLaunch) paymentAuthRequest).getRequestParams(); + BrowserSwitchOptions browserSwitchOptions = params.getBrowserSwitchOptions(); assertTrue(browserSwitchOptions.isLaunchAsNewTask()); } @@ -359,10 +373,10 @@ public void buildBrowserSwitchOptions_sendsAnalyticsEvents() { LocalPaymentRequest request = getIdealLocalPaymentRequest(); String approvalUrl = "https://sample.com/approval?token=sample-token"; - LocalPaymentAuthRequest - transaction = new LocalPaymentAuthRequest(request, approvalUrl, "payment-id"); + LocalPaymentAuthRequestParams + transaction = new LocalPaymentAuthRequestParams(request, approvalUrl, "payment-id"); - sut.buildBrowserSwitchOptions(transaction, localPaymentAuthRequestCallback); + sut.buildBrowserSwitchOptions(transaction, localPaymentAuthCallback); verify(braintreeClient).sendAnalyticsEvent( "ideal.local-payment.webswitch.initiate.succeeded"); } @@ -385,11 +399,13 @@ public void tokenize_whenResultOK_uriNull_notifiesCallbackOfErrorAlongWithAnalyt sut.tokenize(activity, localPaymentAuthResult, localPaymentTokenizeCallback); - ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentTokenizeCallback).onResult(isNull(), - exceptionCaptor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentResult.class); + verify(localPaymentTokenizeCallback).onLocalPaymentResult( + captor.capture()); - Exception exception = exceptionCaptor.getValue(); + LocalPaymentResult result = captor.getValue(); + assertTrue(result instanceof LocalPaymentResult.Failure); + Exception exception = ((LocalPaymentResult.Failure) result).getError(); assertTrue(exception instanceof BraintreeException); String expectedMessage = "LocalPayment encountered an error, return URL is invalid."; @@ -435,7 +451,14 @@ public void tokenize_whenPostFailure_notifiesCallbackOfErrorAlongWithAnalyticsEv sut.tokenize(activity, localPaymentAuthResult, localPaymentTokenizeCallback); - verify(localPaymentTokenizeCallback).onResult(isNull(), same(postError)); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentResult.class); + verify(localPaymentTokenizeCallback).onLocalPaymentResult( + captor.capture()); + + LocalPaymentResult result = captor.getValue(); + assertTrue(result instanceof LocalPaymentResult.Failure); + Exception exception = ((LocalPaymentResult.Failure) result).getError(); + assertEquals(postError, exception); verify(braintreeClient).sendAnalyticsEvent(eq("ideal.local-payment.tokenize.failed")); } @@ -469,7 +492,7 @@ public void tokenize_whenResultOKAndSuccessful_tokenizesWithLocalPaymentApi() sut.tokenize(activity, localPaymentAuthResult, localPaymentTokenizeCallback); verify(localPaymentApi).tokenize(eq("local-merchant-account-id"), eq(webUrl), - eq("sample-correlation-id"), any(LocalPaymentTokenizeCallback.class)); + eq("sample-correlation-id"), any(LocalPaymentInternalTokenizeCallback.class)); } @Test @@ -507,7 +530,14 @@ public void tokenize_whenResultOKAndTokenizationSucceeds_sendsResultToCallback() sut.tokenize(activity, localPaymentAuthResult, localPaymentTokenizeCallback); - verify(localPaymentTokenizeCallback).onResult(same(successNonce), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentResult.class); + verify(localPaymentTokenizeCallback).onLocalPaymentResult( + captor.capture()); + + LocalPaymentResult result = captor.getValue(); + assertTrue(result instanceof LocalPaymentResult.Success); + LocalPaymentNonce nonce = ((LocalPaymentResult.Success) result).getNonce(); + assertEquals(successNonce, nonce); } @Test @@ -574,7 +604,15 @@ public void tokenize_whenResultOK_onConfigurationError_returnsError() localPaymentApi); sut.tokenize(activity, localPaymentAuthResult, localPaymentTokenizeCallback); - verify(localPaymentTokenizeCallback).onResult(null, configError); + + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentResult.class); + verify(localPaymentTokenizeCallback).onLocalPaymentResult( + captor.capture()); + + LocalPaymentResult result = captor.getValue(); + assertTrue(result instanceof LocalPaymentResult.Failure); + Exception exception = ((LocalPaymentResult.Failure) result).getError(); + assertEquals(configError, exception); } @Test @@ -598,13 +636,12 @@ public void tokenize_whenResultOKAndUserCancels_notifiesCallbackAndSendsAnalytic sut.tokenize(activity, localPaymentAuthResult, localPaymentTokenizeCallback); - ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentTokenizeCallback).onResult(isNull(), - exceptionCaptor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentResult.class); + verify(localPaymentTokenizeCallback).onLocalPaymentResult( + captor.capture()); - Exception cancelException = exceptionCaptor.getValue(); - assertTrue(cancelException instanceof UserCanceledException); - assertEquals("User canceled Local Payment.", cancelException.getMessage()); + LocalPaymentResult result = captor.getValue(); + assertTrue(result instanceof LocalPaymentResult.Cancel); verify(braintreeClient).sendAnalyticsEvent("ideal.local-payment.webswitch.canceled"); } @@ -626,13 +663,12 @@ public void tokenize_whenResultCANCELED_sendsAnalyticsEvent() sut.tokenize(activity, localPaymentAuthResult, localPaymentTokenizeCallback); - ArgumentCaptor exceptionCaptor = ArgumentCaptor.forClass(Exception.class); - verify(localPaymentTokenizeCallback).onResult(isNull(), - exceptionCaptor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentResult.class); + verify(localPaymentTokenizeCallback).onLocalPaymentResult( + captor.capture()); - Exception cancelException = exceptionCaptor.getValue(); - assertTrue(cancelException instanceof UserCanceledException); - assertEquals("User canceled Local Payment.", cancelException.getMessage()); + LocalPaymentResult result = captor.getValue(); + assertTrue(result instanceof LocalPaymentResult.Cancel); verify(braintreeClient).sendAnalyticsEvent("ideal.local-payment.webswitch.canceled"); } diff --git a/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentLauncherUnitTest.java b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentLauncherUnitTest.java index 4e6733c7d6..60712f874e 100644 --- a/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentLauncherUnitTest.java +++ b/LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentLauncherUnitTest.java @@ -40,28 +40,30 @@ public void beforeEach() { @Test public void launch_startsBrowserSwitch() throws BrowserSwitchException { - LocalPaymentAuthRequest localPaymentAuthRequest = mock(LocalPaymentAuthRequest.class); + LocalPaymentAuthRequestParams + localPaymentAuthRequestParams = mock(LocalPaymentAuthRequestParams.class); BrowserSwitchOptions options = mock(BrowserSwitchOptions.class); - when(localPaymentAuthRequest.getBrowserSwitchOptions()).thenReturn(options); + when(localPaymentAuthRequestParams.getBrowserSwitchOptions()).thenReturn(options); LocalPaymentLauncher sut = new LocalPaymentLauncher(browserSwitchClient, localPaymentLauncherCallback); - sut.launch(activity, localPaymentAuthRequest); + sut.launch(activity, new LocalPaymentAuthRequest.ReadyToLaunch(localPaymentAuthRequestParams)); verify(browserSwitchClient).start(same(activity), same(options)); } @Test public void launch_onError_callsBackError() throws BrowserSwitchException { - LocalPaymentAuthRequest localPaymentAuthRequest = mock(LocalPaymentAuthRequest.class); + LocalPaymentAuthRequestParams + localPaymentAuthRequestParams = mock(LocalPaymentAuthRequestParams.class); BrowserSwitchOptions options = mock(BrowserSwitchOptions.class); BrowserSwitchException exception = new BrowserSwitchException("error"); doThrow(exception).when(browserSwitchClient).start(same(activity), same(options)); - when(localPaymentAuthRequest.getBrowserSwitchOptions()).thenReturn(options); + when(localPaymentAuthRequestParams.getBrowserSwitchOptions()).thenReturn(options); LocalPaymentLauncher sut = new LocalPaymentLauncher(browserSwitchClient, localPaymentLauncherCallback); - sut.launch(activity, localPaymentAuthRequest); + sut.launch(activity, new LocalPaymentAuthRequest.ReadyToLaunch(localPaymentAuthRequestParams)); ArgumentCaptor captor = ArgumentCaptor.forClass(LocalPaymentAuthResult.class); diff --git a/LocalPayment/src/test/java/com/braintreepayments/api/MockLocalPaymentApiBuilder.java b/LocalPayment/src/test/java/com/braintreepayments/api/MockLocalPaymentApiBuilder.java index 655ee36b28..fe7bf76692 100644 --- a/LocalPayment/src/test/java/com/braintreepayments/api/MockLocalPaymentApiBuilder.java +++ b/LocalPayment/src/test/java/com/braintreepayments/api/MockLocalPaymentApiBuilder.java @@ -11,7 +11,7 @@ public class MockLocalPaymentApiBuilder { private LocalPaymentNonce tokenizeSuccess; private Exception tokenizeError; - private LocalPaymentAuthRequest createPaymentMethodSuccess; + private LocalPaymentAuthRequestParams createPaymentMethodSuccess; private Exception createPaymentMethodError; public MockLocalPaymentApiBuilder tokenizeSuccess(LocalPaymentNonce tokenizeSuccess) { @@ -25,7 +25,7 @@ public MockLocalPaymentApiBuilder tokenizeError(Exception error) { } public MockLocalPaymentApiBuilder createPaymentMethodSuccess( - LocalPaymentAuthRequest createPaymentMethodSuccess) { + LocalPaymentAuthRequestParams createPaymentMethodSuccess) { this.createPaymentMethodSuccess = createPaymentMethodSuccess; return this; } @@ -39,8 +39,8 @@ public LocalPaymentApi build() { LocalPaymentApi localPaymentAPI = mock(LocalPaymentApi.class); doAnswer((Answer) invocation -> { - LocalPaymentTokenizeCallback callback = - (LocalPaymentTokenizeCallback) invocation.getArguments()[3]; + LocalPaymentInternalTokenizeCallback callback = + (LocalPaymentInternalTokenizeCallback) invocation.getArguments()[3]; if (tokenizeSuccess != null) { callback.onResult(tokenizeSuccess, null); } else if (tokenizeError != null) { @@ -48,11 +48,11 @@ public LocalPaymentApi build() { } return null; }).when(localPaymentAPI).tokenize(anyString(), anyString(), anyString(), - any(LocalPaymentTokenizeCallback.class)); + any(LocalPaymentInternalTokenizeCallback.class)); doAnswer((Answer) invocation -> { - LocalPaymentAuthRequestCallback callback = - (LocalPaymentAuthRequestCallback) invocation.getArguments()[1]; + LocalPaymentInternalAuthRequestCallback callback = + (LocalPaymentInternalAuthRequestCallback) invocation.getArguments()[1]; if (createPaymentMethodSuccess != null) { callback.onResult(createPaymentMethodSuccess, null); } else if (createPaymentMethodError != null) { @@ -60,7 +60,7 @@ public LocalPaymentApi build() { } return null; }).when(localPaymentAPI).createPaymentMethod(any(LocalPaymentRequest.class), - any(LocalPaymentAuthRequestCallback.class)); + any(LocalPaymentInternalAuthRequestCallback.class)); return localPaymentAPI; } diff --git a/v5_MIGRATION_GUIDE.md b/v5_MIGRATION_GUIDE.md index 31fbfd450b..f3d65abc85 100644 --- a/v5_MIGRATION_GUIDE.md +++ b/v5_MIGRATION_GUIDE.md @@ -326,9 +326,9 @@ class MyActivity : FragmentActivity() { + payPalClient.createPaymentAuthRequest(this, request) { paymentAuthRequest -> + when(paymentAuthRequest) { + is PayPalPaymentAuthRequest.ReadyToLaunch -> { -+ payPalLauncher.launch(paymentAuthRequet) ++ payPalLauncher.launch(this@MyActivity, paymentAuthRequet) + } -+ is PayPalPaymentAuthRequest.Failure -> { /* handle paymentAuthRequest.error +/ } ++ is PayPalPaymentAuthRequest.Failure -> { /* handle paymentAuthRequest.error */ } + } + } } @@ -367,9 +367,12 @@ class MyActivity : FragmentActivity() { + // can initialize clients outside of onCreate if desired - initializeClients() + localPaymentLauncher = LocalPaymentLauncher() { paymentAuthResult -> -+ localPaymentClient.tokenize(paymentAuthResult) { -+ localPaymentNonce, error -> -+ // handle local payment nonce or error ++ localPaymentClient.tokenize(paymentAuthResult) { result -> ++ when(result) { ++ is LocalPaymentResult.Success -> { /* handle result.nonce */ } ++ is LocalPaymentResult.Failure -> { /* handle result.error */ } ++ is LocalPaymentResult.Cancel -> { /* handle user canceled */ } ++ } + } + } } @@ -395,10 +398,12 @@ class MyActivity : FragmentActivity() { fun onPaymentButtonClick() { - localPaymentClient.startPayment(activity, request) -+ localPaymentClient.createPaymentAuthRequest(this, request) { paymentAuthRequest, error -> -+ error?.let { /* handle error */ } -+ paymentAuthRequest?.let { -+ localPaymentLauncher.launch(requireActivity(), it) ++ localPaymentClient.createPaymentAuthRequest(this, request) { paymentAuthRequest -> ++ when(paymentAuthRequest) { ++ is LocalPaymentAuthRequest.ReadyToLaunch -> { ++ lacalPaymentLauncher.launch(this@MyActivity, paymentAuthRequet) ++ } ++ is LocalPaymentAuthRequest.Failure -> { /* handle paymentAuthRequest.error */ } + } + } } @@ -411,6 +416,7 @@ class MyActivity : FragmentActivity() { - // handle error - } } +``` ## SEPA Direct Debit From d2fc46b1edbb2a367abac2bfdd193d0927a17fd0 Mon Sep 17 00:00:00 2001 From: braintreeps Date: Wed, 13 Dec 2023 16:27:06 +0000 Subject: [PATCH 09/15] Release 4.40.1 --- CHANGELOG.md | 2 +- README.md | 2 +- build.gradle | 2 +- .../-american-express-client.html | 2 +- .../get-rewards-balance.html | 2 +- .../-american-express-client/index.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../conversion-rate.html | 2 +- .../currency-amount.html | 2 +- .../currency-iso-code.html | 2 +- .../describe-contents.html | 2 +- .../error-code.html | 2 +- .../error-message.html | 2 +- .../index.html | 2 +- .../request-id.html | 2 +- .../rewards-amount.html | 2 +- .../rewards-unit.html | 2 +- .../write-to-parcel.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/AmericanExpress/index.html | 2 +- .../-analytics-event/id.html | 2 +- .../-analytics-event/index.html | 2 +- .../-analytics-event/name.html | 2 +- .../-analytics-event/timestamp.html | 2 +- .../-app-switch-not-available-exception.html | 2 +- .../index.html | 2 +- .../-braintree-client/-braintree-client.html | 2 +- .../-braintree-client/-companion/index.html | 2 +- ...r-browser-switch-result-from-new-task.html | 2 +- .../deliver-browser-switch-result.html | 2 +- .../-braintree-client/get-configuration.html | 2 +- .../-braintree-client/index.html | 2 +- .../invalidate-client-token.html | 2 +- .../launches-browser-switch-as-new-task.html | 2 +- .../-braintree-deep-link-activity.html | 2 +- .../-braintree-deep-link-activity/index.html | 2 +- .../-companion/-c-r-e-a-t-o-r.html | 2 +- .../-braintree-error/-companion/index.html | 2 +- .../-braintree-error/code.html | 2 +- .../-braintree-error/describe-contents.html | 2 +- .../-braintree-error/error-for.html | 2 +- .../-braintree-error/field-errors.html | 2 +- .../-braintree-error/field.html | 2 +- .../-braintree-error/index.html | 2 +- .../-braintree-error/message.html | 2 +- .../-braintree-error/to-string.html | 2 +- .../-braintree-error/write-to-parcel.html | 2 +- .../-braintree-exception.html | 2 +- .../-braintree-exception/index.html | 2 +- .../-companion/-g-o-o-g-l-e_-p-a-y.html | 2 +- .../-companion/-l-o-c-a-l_-p-a-y-m-e-n-t.html | 2 +- .../-companion/-p-a-y-p-a-l.html | 2 +- .../-companion/-s-a-m-s-u-n-g_-p-a-y.html | 2 +- .../-companion/-s-e-p-a_-d-e-b-i-t.html | 2 +- .../-t-h-r-e-e_-d_-s-e-c-u-r-e.html | 2 +- .../-companion/-v-e-n-m-o.html | 2 +- .../-companion/-v-i-s-a_-c-h-e-c-k-o-u-t.html | 2 +- .../-companion/index.html | 2 +- .../-braintree-request-codes/index.html | 2 +- .../-client-token-callback/index.html | 2 +- .../-client-token-callback/on-failure.html | 2 +- .../-client-token-callback/on-success.html | 2 +- .../get-client-token.html | 2 +- .../-client-token-provider/index.html | 2 +- .../-configuration-callback/index.html | 2 +- .../-configuration-callback/on-result.html | 2 +- .../-configuration-exception.html | 2 +- .../-configuration-exception/index.html | 2 +- .../-configuration/assets-url.html | 2 +- .../cardinal-authentication-jwt.html | 2 +- .../-configuration/client-api-url.html | 2 +- .../-configuration/environment.html | 2 +- .../-configuration/index.html | 2 +- .../is-cvv-challenge-present.html | 2 +- .../-configuration/is-google-pay-enabled.html | 2 +- .../is-local-payment-enabled.html | 2 +- .../-configuration/is-pay-pal-enabled.html | 2 +- .../is-postal-code-challenge-present.html | 2 +- .../is-samsung-pay-enabled.html | 2 +- .../is-three-d-secure-enabled.html | 2 +- .../-configuration/is-union-pay-enabled.html | 2 +- .../-configuration/is-venmo-enabled.html | 2 +- .../is-visa-checkout-enabled.html | 2 +- .../-configuration/merchant-account-id.html | 2 +- .../-configuration/merchant-id.html | 2 +- .../pay-pal-direct-base-url.html | 2 +- .../-configuration/pay-pal-privacy-url.html | 2 +- .../pay-pal-user-agreement-url.html | 2 +- .../-configuration/supported-card-types.html | 2 +- .../-configuration/to-json.html | 2 +- .../-companion/-c-r-e-a-t-o-r.html | 2 +- .../-companion/index.html | 2 +- .../describe-contents.html | 2 +- .../-error-with-response/error-for.html | 2 +- .../-error-with-response/error-response.html | 2 +- .../-error-with-response/field-errors.html | 2 +- .../-error-with-response/index.html | 2 +- .../-error-with-response/message.html | 2 +- .../-error-with-response/status-code.html | 2 +- .../-error-with-response/to-string.html | 2 +- .../-error-with-response/write-to-parcel.html | 2 +- .../-invalid-argument-exception/index.html | 2 +- .../-companion/-c-r-e-a-t-o-r.html | 2 +- .../-companion/index.html | 2 +- .../describe-contents.html | 2 +- .../-payment-method-nonce/index.html | 2 +- .../-payment-method-nonce/is-default.html | 2 +- .../-payment-method-nonce/string.html | 2 +- .../write-to-parcel.html | 2 +- .../-payment-method/api-path.html | 2 +- .../-payment-method/build-j-s-o-n.html | 2 +- .../build-metadata-j-s-o-n.html | 2 +- .../-payment-method/index.html | 2 +- .../-payment-method/write-to-parcel.html | 2 +- .../-companion/-c-r-e-a-t-o-r.html | 2 +- .../-postal-address/-companion/index.html | 2 +- .../-postal-address/-postal-address.html | 2 +- .../-postal-address/country-code-alpha2.html | 2 +- .../-postal-address/describe-contents.html | 2 +- .../-postal-address/extended-address.html | 2 +- .../-postal-address/index.html | 2 +- .../-postal-address/is-empty.html | 2 +- .../-postal-address/locality.html | 2 +- .../-postal-address/phone-number.html | 2 +- .../-postal-address/postal-code.html | 2 +- .../-postal-address/recipient-name.html | 2 +- .../-postal-address/region.html | 2 +- .../-postal-address/sorting-code.html | 2 +- .../-postal-address/street-address.html | 2 +- .../-postal-address/to-string.html | 2 +- .../-postal-address/write-to-parcel.html | 2 +- .../-user-canceled-exception.html | 2 +- .../-user-canceled-exception/index.html | 2 +- .../is-explicit-cancelation.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/BraintreeCore/index.html | 2 +- .../-data-collector-callback/index.html | 2 +- .../-data-collector-callback/on-result.html | 2 +- .../-data-collector/-data-collector.html | 2 +- .../-data-collector/collect-device-data.html | 2 +- .../-data-collector/index.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/BraintreeDataCollector/index.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../describe-contents.html | 2 +- .../-authentication-insight/index.html | 10 ++++----- .../regulation-environment.html | 2 +- .../write-to-parcel.html | 2 +- .../-bin-data/-b-i-n_-d-a-t-a_-k-e-y.html | 2 +- .../-bin-data/-bin-data.html | 2 +- .../-bin-data/-c-r-e-a-t-o-r.html | 2 +- .../-bin-data/-n-o.html | 2 +- .../-bin-data/-u-n-k-n-o-w-n.html | 2 +- .../-bin-data/-y-e-s.html | 2 +- .../-bin-data/commercial.html | 2 +- .../-bin-data/country-of-issuance.html | 2 +- .../-bin-data/debit.html | 2 +- .../-bin-data/describe-contents.html | 2 +- .../-bin-data/durbin-regulated.html | 2 +- .../-bin-data/healthcare.html | 2 +- .../-bin-data/index.html | 10 ++++----- .../-bin-data/issuing-bank.html | 2 +- .../-bin-data/payroll.html | 2 +- .../-bin-data/prepaid.html | 2 +- .../-bin-data/product-id.html | 2 +- .../-bin-data/write-to-parcel.html | 2 +- .../-card-client/-card-client.html | 2 +- .../-card-client/index.html | 2 +- .../-card-client/tokenize.html | 2 +- .../-card-nonce/-c-r-e-a-t-o-r.html | 2 +- .../-card-nonce/authentication-insight.html | 2 +- .../-card-nonce/bin-data.html | 2 +- .../-card-nonce/bin.html | 2 +- .../-card-nonce/card-type.html | 2 +- .../-card-nonce/cardholder-name.html | 2 +- .../-card-nonce/expiration-month.html | 2 +- .../-card-nonce/expiration-year.html | 2 +- .../-card-nonce/index.html | 10 ++++----- .../-card-nonce/last-four.html | 2 +- .../-card-nonce/last-two.html | 2 +- .../-card-nonce/three-d-secure-info.html | 2 +- .../-card-nonce/write-to-parcel.html | 2 +- .../-card-tokenize-callback/index.html | 2 +- .../-card-tokenize-callback/on-result.html | 2 +- .../-card/-c-r-e-a-t-o-r.html | 2 +- .../-card/-card.html | 2 +- .../-card/build-j-s-o-n.html | 2 +- .../-card/index.html | 10 ++++----- .../is-authentication-insight-requested.html | 2 +- .../-card/merchant-account-id.html | 2 +- .../set-authentication-insight-requested.html | 2 +- .../-card/should-validate.html | 2 +- .../-card/write-to-parcel.html | 2 +- .../-three-d-secure-info/-c-r-e-a-t-o-r.html | 2 +- .../-three-d-secure-info.html | 2 +- .../acs-transaction-id.html | 2 +- ...hentication-transaction-status-reason.html | 2 +- .../authentication-transaction-status.html | 2 +- .../-three-d-secure-info/cavv.html | 2 +- .../describe-contents.html | 2 +- .../ds-transaction-id.html | 2 +- .../-three-d-secure-info/eci-flag.html | 2 +- .../-three-d-secure-info/enrolled.html | 2 +- .../-three-d-secure-info/index.html | 10 ++++----- .../is-liability-shift-possible.html | 2 +- .../is-liability-shifted.html | 2 +- .../lookup-transaction-status-reason.html | 2 +- .../lookup-transaction-status.html | 2 +- .../-three-d-secure-info/pares-status.html | 2 +- .../-three-d-secure-info/status.html | 2 +- .../three-d-secure-authentication-id.html | 2 +- .../three-d-secure-server-transaction-id.html | 2 +- .../three-d-secure-version.html | 2 +- .../-three-d-secure-info/was-verified.html | 2 +- .../-three-d-secure-info/write-to-parcel.html | 2 +- .../-three-d-secure-info/xid.html | 2 +- .../Card/com.braintreepayments.api/index.html | 2 +- docs/Card/index.html | 2 +- .../-google-pay-activity/finish.html | 2 +- .../-google-pay-activity/index.html | 2 +- .../-google-pay-capabilities/index.html | 2 +- .../is-google-pay-enabled.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../billing-address.html | 2 +- .../-google-pay-card-nonce/bin-data.html | 2 +- .../-google-pay-card-nonce/bin.html | 2 +- .../-google-pay-card-nonce/card-network.html | 2 +- .../-google-pay-card-nonce/card-type.html | 2 +- .../-google-pay-card-nonce/email.html | 2 +- .../-google-pay-card-nonce/index.html | 10 ++++----- .../is-network-tokenized.html | 2 +- .../-google-pay-card-nonce/last-four.html | 2 +- .../-google-pay-card-nonce/last-two.html | 2 +- .../shipping-address.html | 2 +- .../write-to-parcel.html | 2 +- .../-google-pay-client.html | 2 +- .../get-tokenization-parameters.html | 2 +- .../-google-pay-client/index.html | 2 +- .../-google-pay-client/is-ready-to-pay.html | 2 +- .../on-activity-result.html | 2 +- .../-google-pay-client/request-payment.html | 2 +- .../-google-pay-client/set-listener.html | 2 +- .../-google-pay-exception/-c-r-e-a-t-o-r.html | 2 +- .../describe-contents.html | 2 +- .../-google-pay-exception/index.html | 10 ++++----- .../-google-pay-exception/status.html | 2 +- .../write-to-parcel.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-google-pay-listener/index.html | 2 +- .../on-google-pay-failure.html | 2 +- .../on-google-pay-success.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-google-pay-request/-c-r-e-a-t-o-r.html | 2 +- .../-google-pay-request.html | 2 +- .../allow-prepaid-cards.html | 2 +- .../billing-address-format-to-string.html | 2 +- .../billing-address-format.html | 2 +- .../-google-pay-request/country-code.html | 2 +- .../describe-contents.html | 2 +- .../-google-pay-request/environment.html | 2 +- .../get-allowed-auth-methods-for-type.html | 2 +- .../get-allowed-card-networks-for-type.html | 2 +- .../get-allowed-payment-method.html | 2 +- ...t-tokenization-specification-for-type.html | 2 +- .../google-merchant-id.html | 2 +- .../google-merchant-name.html | 2 +- .../-google-pay-request/index.html | 10 ++++----- .../is-billing-address-required.html | 2 +- .../is-credit-cards-allowed.html | 2 +- .../is-email-required.html | 2 +- .../is-pay-pal-enabled.html | 2 +- .../is-phone-number-required.html | 2 +- .../is-shipping-address-required.html | 2 +- .../set-allow-credit-cards.html | 2 +- .../set-allowed-auth-methods.html | 2 +- .../set-allowed-card-networks.html | 2 +- .../set-allowed-payment-method.html | 2 +- .../set-billing-address-required.html | 2 +- .../set-email-required.html | 2 +- .../set-pay-pal-enabled.html | 2 +- .../set-phone-number-required.html | 2 +- .../set-shipping-address-required.html | 2 +- ...t-tokenization-specification-for-type.html | 2 +- .../shipping-address-requirements.html | 2 +- .../-google-pay-request/to-json.html | 2 +- .../total-price-label.html | 2 +- .../-google-pay-request/transaction-info.html | 2 +- .../-google-pay-request/write-to-parcel.html | 2 +- .../-ready-for-google-pay-request/index.html | 2 +- .../is-existing-payment-method-required.html | 2 +- .../set-existing-payment-method-required.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/GooglePay/index.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-local-payment-client.html | 2 +- .../approve-local-payment.html | 2 +- .../approve-payment.html | 2 +- .../clear-active-browser-switch-requests.html | 2 +- .../-local-payment-client/index.html | 2 +- .../on-browser-switch-result.html | 2 +- .../parse-browser-switch-result.html | 2 +- .../-local-payment-client/set-listener.html | 2 +- .../-local-payment-client/start-payment.html | 2 +- .../-local-payment-listener/index.html | 2 +- .../on-local-payment-failure.html | 2 +- .../on-local-payment-success.html | 2 +- .../-local-payment-nonce/-c-r-e-a-t-o-r.html | 2 +- .../-local-payment-nonce/billing-address.html | 2 +- .../client-metadata-id.html | 2 +- .../-local-payment-nonce/email.html | 2 +- .../-local-payment-nonce/given-name.html | 2 +- .../-local-payment-nonce/index.html | 2 +- .../-local-payment-nonce/payer-id.html | 2 +- .../-local-payment-nonce/phone.html | 2 +- .../shipping-address.html | 2 +- .../-local-payment-nonce/surname.html | 2 +- .../-local-payment-nonce/write-to-parcel.html | 2 +- .../-local-payment-request/address.html | 2 +- .../-local-payment-request/amount.html | 2 +- .../-local-payment-request/build.html | 2 +- .../-local-payment-request/currency-code.html | 2 +- .../-local-payment-request/display-name.html | 2 +- .../-local-payment-request/email.html | 2 +- .../-local-payment-request/get-bic.html | 2 +- .../-local-payment-request/given-name.html | 2 +- .../-local-payment-request/index.html | 2 +- .../is-shipping-address-required.html | 2 +- .../merchant-account-id.html | 2 +- .../payment-type-country-code.html | 2 +- .../-local-payment-request/payment-type.html | 2 +- .../-local-payment-request/phone.html | 2 +- .../-local-payment-request/set-bic.html | 2 +- .../set-shipping-address-required.html | 2 +- .../-local-payment-request/surname.html | 2 +- .../-local-payment-result/approval-url.html | 2 +- .../-local-payment-result/index.html | 2 +- .../-local-payment-result/payment-id.html | 2 +- .../-local-payment-result/request.html | 2 +- .../-local-payment-start-callback/index.html | 2 +- .../on-result.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/LocalPayment/index.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../authenticate-url.html | 2 +- .../billing-address.html | 2 +- .../client-metadata-id.html | 2 +- .../credit-financing.html | 2 +- .../-pay-pal-account-nonce/email.html | 2 +- .../-pay-pal-account-nonce/first-name.html | 2 +- .../-pay-pal-account-nonce/index.html | 10 ++++----- .../-pay-pal-account-nonce/last-name.html | 2 +- .../-pay-pal-account-nonce/payer-id.html | 2 +- .../-pay-pal-account-nonce/phone.html | 2 +- .../shipping-address.html | 2 +- .../write-to-parcel.html | 2 +- .../index.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-pay-pal-checkout-request.html | 2 +- .../-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html | 2 +- .../-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html | 2 +- .../-pay-pal-checkout-request/amount.html | 2 +- .../currency-code.html | 2 +- .../describe-contents.html | 2 +- .../-pay-pal-checkout-request/index.html | 10 ++++----- .../-pay-pal-checkout-request/intent.html | 2 +- .../should-offer-pay-later.html | 2 +- .../should-request-billing-agreement.html | 2 +- .../user-action.html | 2 +- .../write-to-parcel.html | 2 +- .../-pay-pal-client/-pay-pal-client.html | 2 +- .../clear-active-browser-switch-requests.html | 2 +- .../-pay-pal-client/index.html | 2 +- .../on-browser-switch-result.html | 2 +- .../parse-browser-switch-result.html | 2 +- .../request-billing-agreement.html | 2 +- .../request-one-time-payment.html | 2 +- .../-pay-pal-client/set-listener.html | 2 +- .../tokenize-pay-pal-account.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../currency.html | 2 +- .../describe-contents.html | 2 +- .../index.html | 10 ++++----- .../to-string.html | 2 +- .../value.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../describe-contents.html | 2 +- .../has-payer-acceptance.html | 2 +- .../-pay-pal-credit-financing/index.html | 10 ++++----- .../is-card-amount-immutable.html | 2 +- .../monthly-payment.html | 2 +- .../-pay-pal-credit-financing/term.html | 2 +- .../-pay-pal-credit-financing/total-cost.html | 2 +- .../total-interest.html | 2 +- .../write-to-parcel.html | 2 +- .../-pay-pal-flow-started-callback/index.html | 2 +- .../on-result.html | 2 +- .../-pay-pal-line-item/-c-r-e-a-t-o-r.html | 2 +- .../-k-i-n-d_-c-r-e-d-i-t.html | 2 +- .../-k-i-n-d_-d-e-b-i-t.html | 2 +- .../-pay-pal-line-item.html | 2 +- .../-pay-pal-line-item/describe-contents.html | 2 +- .../-pay-pal-line-item/description.html | 2 +- .../-pay-pal-line-item/index.html | 10 ++++----- .../-pay-pal-line-item/kind.html | 2 +- .../-pay-pal-line-item/name.html | 2 +- .../-pay-pal-line-item/product-code.html | 2 +- .../-pay-pal-line-item/quantity.html | 2 +- .../-pay-pal-line-item/to-json.html | 2 +- .../-pay-pal-line-item/unit-amount.html | 2 +- .../-pay-pal-line-item/unit-tax-amount.html | 2 +- .../-pay-pal-line-item/url.html | 2 +- .../-pay-pal-line-item/write-to-parcel.html | 2 +- .../-pay-pal-listener/index.html | 2 +- .../-pay-pal-listener/on-pay-pal-failure.html | 2 +- .../-pay-pal-listener/on-pay-pal-success.html | 2 +- .../-a-u-t-h-o-r-i-z-e.html | 2 +- .../-pay-pal-payment-intent/-o-r-d-e-r.html | 2 +- .../-pay-pal-payment-intent/-s-a-l-e.html | 2 +- .../-pay-pal-payment-intent/index.html | 2 +- ...-n-g_-p-a-g-e_-t-y-p-e_-b-i-l-l-i-n-g.html | 2 +- ...-d-i-n-g_-p-a-g-e_-t-y-p-e_-l-o-g-i-n.html | 2 +- .../-pay-pal-request/-pay-pal-request.html | 2 +- .../billing-agreement-description.html | 2 +- .../-pay-pal-request/describe-contents.html | 2 +- .../-pay-pal-request/display-name.html | 2 +- .../-pay-pal-request/index.html | 10 ++++----- .../is-shipping-address-editable.html | 2 +- .../is-shipping-address-required.html | 2 +- .../-pay-pal-request/landing-page-type.html | 2 +- .../-pay-pal-request/line-items.html | 2 +- .../-pay-pal-request/locale-code.html | 2 +- .../-pay-pal-request/merchant-account-id.html | 2 +- .../-pay-pal-request/risk-correlation-id.html | 2 +- .../-pay-pal-request/set-line-items.html | 2 +- .../set-shipping-address-editable.html | 2 +- .../set-shipping-address-required.html | 2 +- .../shipping-address-override.html | 2 +- .../-pay-pal-request/write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-pay-pal-vault-request.html | 2 +- .../describe-contents.html | 2 +- .../-pay-pal-vault-request/index.html | 10 ++++----- .../should-offer-credit.html | 2 +- .../write-to-parcel.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/PayPal/index.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-pay-pal-data-collector.html | 2 +- .../collect-device-data.html | 2 +- .../-pay-pal-data-collector/index.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/PayPalDataCollector/index.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../authenticate-url.html | 2 +- .../billing-address.html | 2 +- .../client-metadata-id.html | 2 +- .../credit-financing.html | 2 +- .../email.html | 2 +- .../first-name.html | 2 +- .../index.html | 10 ++++----- .../last-name.html | 2 +- .../payer-id.html | 2 +- .../phone.html | 2 +- .../set-payer-info.html | 2 +- .../shipping-address.html | 2 +- .../write-to-parcel.html | 2 +- .../-pay-pal-native-checkout-client.html | 2 +- .../index.html | 2 +- .../launch-native-checkout.html | 2 +- .../set-listener.html | 2 +- .../tokenize-pay-pal-account.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../currency.html | 2 +- .../describe-contents.html | 2 +- .../index.html | 10 ++++----- .../to-string.html | 2 +- .../value.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../describe-contents.html | 2 +- .../has-payer-acceptance.html | 2 +- .../index.html | 10 ++++----- .../is-card-amount-immutable.html | 2 +- .../monthly-payment.html | 2 +- .../term.html | 2 +- .../total-cost.html | 2 +- .../total-interest.html | 2 +- .../write-to-parcel.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-k-i-n-d_-c-r-e-d-i-t.html | 2 +- .../-k-i-n-d_-d-e-b-i-t.html | 2 +- .../-pay-pal-native-checkout-line-item.html | 2 +- .../describe-contents.html | 2 +- .../description.html | 2 +- .../index.html | 10 ++++----- .../kind.html | 2 +- .../name.html | 2 +- .../product-code.html | 2 +- .../quantity.html | 2 +- .../to-json.html | 2 +- .../unit-amount.html | 2 +- .../unit-tax-amount.html | 2 +- .../url.html | 2 +- .../write-to-parcel.html | 2 +- .../index.html | 2 +- .../on-pay-pal-failure.html | 2 +- .../on-pay-pal-success.html | 2 +- .../-a-u-t-h-o-r-i-z-e.html | 2 +- .../-o-r-d-e-r.html | 2 +- .../-s-a-l-e.html | 2 +- .../index.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-pay-pal-native-checkout-request.html | 2 +- .../-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html | 2 +- .../-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html | 2 +- .../amount.html | 2 +- .../currency-code.html | 2 +- .../describe-contents.html | 2 +- .../index.html | 10 ++++----- .../intent.html | 2 +- .../should-offer-pay-later.html | 2 +- .../should-request-billing-agreement.html | 2 +- .../user-action.html | 2 +- .../write-to-parcel.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- ...pay-pal-native-checkout-vault-request.html | 2 +- .../describe-contents.html | 2 +- .../index.html | 10 ++++----- .../should-offer-credit.html | 2 +- .../write-to-parcel.html | 2 +- .../-pay-pal-native-request.html | 2 +- .../billing-agreement-description.html | 2 +- .../describe-contents.html | 2 +- .../-pay-pal-native-request/display-name.html | 2 +- .../-pay-pal-native-request/index.html | 10 ++++----- .../is-shipping-address-editable.html | 2 +- .../is-shipping-address-required.html | 2 +- .../-pay-pal-native-request/line-items.html | 2 +- .../-pay-pal-native-request/locale-code.html | 2 +- .../merchant-account-id.html | 2 +- .../-pay-pal-native-request/return-url.html | 2 +- .../risk-correlation-id.html | 2 +- .../set-line-items.html | 2 +- .../set-shipping-address-editable.html | 2 +- .../set-shipping-address-required.html | 2 +- .../shipping-address-override.html | 2 +- .../user-authentication-email.html | 2 +- .../write-to-parcel.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/PayPalNativeCheckout/index.html | 2 +- .../-s-e-p-a-direct-debit-client.html | 2 +- .../-s-e-p-a-direct-debit-client/index.html | 2 +- .../set-listener.html | 2 +- .../tokenize.html | 2 +- .../-s-e-p-a-direct-debit-listener/index.html | 2 +- .../on-s-e-p-a-direct-debit-failure.html | 2 +- .../on-s-e-p-a-direct-debit-success.html | 2 +- .../-o-n-e_-o-f-f/index.html | 2 +- .../-r-e-c-u-r-r-e-n-t/index.html | 2 +- .../index.html | 2 +- .../to-string.html | 2 +- .../value-of.html | 2 +- .../values.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../customer-id.html | 2 +- .../iban-last-four.html | 2 +- .../-s-e-p-a-direct-debit-nonce/index.html | 2 +- .../mandate-type.html | 2 +- .../write-to-parcel.html | 2 +- .../account-holder-name.html | 2 +- .../billing-address.html | 2 +- .../customer-id.html | 2 +- .../-s-e-p-a-direct-debit-request/iban.html | 2 +- .../-s-e-p-a-direct-debit-request/index.html | 2 +- .../-s-e-p-a-direct-debit-request/locale.html | 2 +- .../mandate-type.html | 2 +- .../merchant-account-id.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/SEPADirectDebit/index.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-samsung-pay-activate-callback/index.html | 2 +- .../on-result.html | 2 +- .../-samsung-pay-client.html | 2 +- .../activate-samsung-pay.html | 2 +- .../build-custom-sheet-payment-info.html | 2 +- .../-samsung-pay-client/index.html | 2 +- .../-samsung-pay-client/is-ready-to-pay.html | 2 +- .../start-samsung-pay.html | 2 +- .../update-custom-sheet.html | 2 +- .../update-samsung-pay.html | 2 +- ...-p-a-y_-a-p-p_-n-e-e-d-s_-u-p-d-a-t-e.html | 2 +- ...-n-g_-p-a-y_-e-r-r-o-r_-u-n-k-n-o-w-n.html | 2 +- ...-a-m-s-u-n-g_-p-a-y_-n-o-t_-r-e-a-d-y.html | 2 +- ...-n-g_-p-a-y_-n-o-t_-s-u-p-p-o-r-t-e-d.html | 2 +- ...-r-t-e-d_-c-a-r-d-s_-i-n_-w-a-l-l-e-t.html | 2 +- ..._-s-e-t-u-p_-n-o-t_-c-o-m-p-l-e-t-e-d.html | 2 +- .../-samsung-pay-error/index.html | 2 +- .../-samsung-pay-exception/error-code.html | 2 +- .../-samsung-pay-exception/index.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-samsung-pay-listener/index.html | 2 +- .../on-samsung-pay-card-info-updated.html | 2 +- .../on-samsung-pay-start-error.html | 2 +- .../on-samsung-pay-start-success.html | 2 +- .../-samsung-pay-nonce/-c-r-e-a-t-o-r.html | 2 +- .../-samsung-pay-nonce/bin-data.html | 2 +- .../-samsung-pay-nonce/card-type.html | 2 +- .../-samsung-pay-nonce/index.html | 2 +- .../-samsung-pay-nonce/last-four.html | 2 +- .../-samsung-pay-nonce/write-to-parcel.html | 2 +- .../-samsung-pay-update-callback/index.html | 2 +- .../on-result.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/SamsungPay/index.html | 2 +- .../-three-d-secure-activity/index.html | 2 +- .../on-validated.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- ...three-d-secure-additional-information.html | 2 +- .../account-age-indicator.html | 2 +- .../account-change-date.html | 2 +- .../account-change-indicator.html | 2 +- .../account-create-date.html | 2 +- .../account-id.html | 2 +- .../account-purchases.html | 2 +- .../account-pwd-change-date.html | 2 +- .../account-pwd-change-indicator.html | 2 +- .../add-card-attempts.html | 2 +- .../address-match.html | 2 +- .../authentication-indicator.html | 2 +- .../delivery-email.html | 2 +- .../delivery-timeframe.html | 2 +- .../describe-contents.html | 2 +- .../fraud-activity.html | 2 +- .../gift-card-amount.html | 2 +- .../gift-card-count.html | 2 +- .../gift-card-currency-code.html | 2 +- .../index.html | 10 ++++----- .../installment.html | 2 +- .../ip-address.html | 2 +- .../order-description.html | 2 +- .../payment-account-age.html | 2 +- .../payment-account-indicator.html | 2 +- .../preorder-date.html | 2 +- .../preorder-indicator.html | 2 +- .../product-code.html | 2 +- .../purchase-date.html | 2 +- .../recurring-end.html | 2 +- .../recurring-frequency.html | 2 +- .../reorder-indicator.html | 2 +- .../sdk-max-timeout.html | 2 +- .../shipping-address-usage-date.html | 2 +- .../shipping-address-usage-indicator.html | 2 +- .../shipping-address.html | 2 +- .../shipping-method-indicator.html | 2 +- .../shipping-name-indicator.html | 2 +- .../tax-amount.html | 2 +- .../to-json.html | 2 +- .../transaction-count-day.html | 2 +- .../transaction-count-year.html | 2 +- .../user-agent.html | 2 +- .../work-phone-number.html | 2 +- .../write-to-parcel.html | 2 +- .../-three-d-secure-client.html | 2 +- .../continue-perform-verification.html | 2 +- .../-three-d-secure-client/index.html | 2 +- ...ialize-challenge-with-lookup-response.html | 2 +- .../on-activity-result.html | 2 +- .../on-browser-switch-result.html | 2 +- .../perform-verification.html | 2 +- .../prepare-lookup.html | 2 +- .../-three-d-secure-client/set-listener.html | 2 +- .../-three-d-secure-listener/index.html | 2 +- .../on-three-d-secure-failure.html | 2 +- .../on-three-d-secure-success.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-three-d-secure-lookup.html | 2 +- .../-three-d-secure-lookup/acs-url.html | 2 +- .../describe-contents.html | 2 +- .../-three-d-secure-lookup/index.html | 10 ++++----- .../-three-d-secure-lookup/md.html | 2 +- .../-three-d-secure-lookup/pareq.html | 2 +- .../requires-user-authentication.html | 2 +- .../-three-d-secure-lookup/term-url.html | 2 +- .../three-d-secure-version.html | 2 +- .../transaction-id.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-three-d-secure-postal-address.html | 2 +- .../country-code-alpha2.html | 2 +- .../describe-contents.html | 2 +- .../extended-address.html | 2 +- .../given-name.html | 2 +- .../-three-d-secure-postal-address/index.html | 10 ++++----- .../-three-d-secure-postal-address/line3.html | 2 +- .../locality.html | 2 +- .../phone-number.html | 2 +- .../postal-code.html | 2 +- .../region.html | 2 +- .../street-address.html | 2 +- .../surname.html | 2 +- .../to-json.html | 2 +- .../write-to-parcel.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-three-d-secure-request/-b-o-t-h.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-three-d-secure-request/-c-r-e-d-i-t.html | 2 +- .../-three-d-secure-request/-d-e-b-i-t.html | 2 +- .../-three-d-secure-request/-h-t-m-l.html | 2 +- .../-l-o-w_-v-a-l-u-e.html | 2 +- .../-m-u-l-t-i_-s-e-l-e-c-t.html | 2 +- .../-three-d-secure-request/-n-a-t-i-v-e.html | 2 +- .../-three-d-secure-request/-o-o-b.html | 2 +- .../-three-d-secure-request/-o-t-p.html | 2 +- .../-r-e-n-d-e-r_-h-t-m-l.html | 2 +- .../-s-e-c-u-r-e_-c-o-r-p-o-r-a-t-e.html | 2 +- .../-s-i-n-g-l-e_-s-e-l-e-c-t.html | 2 +- ...a-c-t-i-o-n_-r-i-s-k_-a-n-a-l-y-s-i-s.html | 2 +- ...-t-r-u-s-t-e-d_-b-e-n-e-f-i-c-i-a-r-y.html | 2 +- .../-three-d-secure-request.html | 2 +- .../-v-e-r-s-i-o-n_1.html | 2 +- .../-v-e-r-s-i-o-n_2.html | 2 +- .../-three-d-secure-request/account-type.html | 2 +- .../additional-information.html | 2 +- .../-three-d-secure-request/amount.html | 2 +- .../billing-address.html | 2 +- .../-three-d-secure-request/build.html | 2 +- .../describe-contents.html | 2 +- .../-three-d-secure-request/email.html | 2 +- .../-three-d-secure-request/index.html | 10 ++++----- .../is-card-add-challenge-requested.html | 2 +- .../is-challenge-requested.html | 2 +- .../is-data-only-requested.html | 2 +- .../is-exemption-requested.html | 2 +- .../mobile-phone-number.html | 2 +- .../-three-d-secure-request/nonce.html | 2 +- .../-three-d-secure-request/render-types.html | 2 +- .../requested-exemption-type.html | 2 +- .../set-card-add-challenge-requested.html | 2 +- .../set-challenge-requested.html | 2 +- .../set-data-only-requested.html | 2 +- .../set-exemption-requested.html | 2 +- .../shipping-method.html | 2 +- .../-three-d-secure-request/ui-type.html | 2 +- .../v1-ui-customization.html | 2 +- .../v2-ui-customization.html | 2 +- .../version-requested.html | 2 +- .../write-to-parcel.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../describe-contents.html | 2 +- .../-three-d-secure-result/error-message.html | 2 +- .../-three-d-secure-result/index.html | 10 ++++----- .../-three-d-secure-result/lookup.html | 2 +- .../tokenized-card.html | 2 +- .../write-to-parcel.html | 2 +- ...-e-l-e-c-t-r-o-n-i-c_-d-e-l-i-v-e-r-y.html | 2 +- .../-e-x-p-e-d-i-t-e-d.html | 2 +- .../-g-r-o-u-n-d.html | 2 +- .../-p-r-i-o-r-i-t-y.html | 2 +- .../-s-a-m-e_-d-a-y.html | 2 +- .../-s-h-i-p_-t-o_-s-t-o-r-e.html | 2 +- .../index.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-three-d-secure-v1-ui-customization.html | 2 +- .../describe-contents.html | 2 +- .../index.html | 10 ++++----- .../redirect-button-text.html | 2 +- .../redirect-description.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../describe-contents.html | 2 +- .../index.html | 22 +++++++++---------- .../text-color.html | 2 +- .../text-font-name.html | 2 +- .../text-font-size.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- ...hree-d-secure-v2-button-customization.html | 2 +- .../describe-contents.html | 2 +- .../get-background-color.html | 2 +- .../get-corner-radius.html | 2 +- .../get-text-color.html | 2 +- .../get-text-font-name.html | 2 +- .../get-text-font-size.html | 2 +- .../index.html | 10 ++++----- .../set-background-color.html | 2 +- .../set-corner-radius.html | 2 +- .../set-text-color.html | 2 +- .../set-text-font-name.html | 2 +- .../set-text-font-size.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- ...three-d-secure-v2-label-customization.html | 2 +- .../describe-contents.html | 2 +- .../get-heading-text-color.html | 2 +- .../get-heading-text-font-name.html | 2 +- .../get-heading-text-font-size.html | 2 +- .../get-text-color.html | 2 +- .../get-text-font-name.html | 2 +- .../get-text-font-size.html | 2 +- .../index.html | 10 ++++----- .../set-heading-text-color.html | 2 +- .../set-heading-text-font-name.html | 2 +- .../set-heading-text-font-size.html | 2 +- .../set-text-color.html | 2 +- .../set-text-font-name.html | 2 +- .../set-text-font-size.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- ...ee-d-secure-v2-text-box-customization.html | 2 +- .../describe-contents.html | 2 +- .../get-border-color.html | 2 +- .../get-border-width.html | 2 +- .../get-corner-radius.html | 2 +- .../get-text-color.html | 2 +- .../get-text-font-name.html | 2 +- .../get-text-font-size.html | 2 +- .../index.html | 10 ++++----- .../set-border-color.html | 2 +- .../set-border-width.html | 2 +- .../set-corner-radius.html | 2 +- .../set-text-color.html | 2 +- .../set-text-font-name.html | 2 +- .../set-text-font-size.html | 2 +- .../write-to-parcel.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- ...ree-d-secure-v2-toolbar-customization.html | 2 +- .../describe-contents.html | 2 +- .../get-background-color.html | 2 +- .../get-button-text.html | 2 +- .../get-header-text.html | 2 +- .../get-text-color.html | 2 +- .../get-text-font-name.html | 2 +- .../get-text-font-size.html | 2 +- .../index.html | 10 ++++----- .../set-background-color.html | 2 +- .../set-button-text.html | 2 +- .../set-header-text.html | 2 +- .../set-text-color.html | 2 +- .../set-text-font-name.html | 2 +- .../set-text-font-size.html | 2 +- .../write-to-parcel.html | 2 +- .../-b-u-t-t-o-n_-t-y-p-e_-c-a-n-c-e-l.html | 2 +- ...b-u-t-t-o-n_-t-y-p-e_-c-o-n-t-i-n-u-e.html | 2 +- .../-b-u-t-t-o-n_-t-y-p-e_-n-e-x-t.html | 2 +- .../-b-u-t-t-o-n_-t-y-p-e_-r-e-s-e-n-d.html | 2 +- .../-b-u-t-t-o-n_-t-y-p-e_-v-e-r-i-f-y.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-three-d-secure-v2-ui-customization.html | 2 +- .../button-customization.html | 2 +- .../describe-contents.html | 2 +- .../index.html | 10 ++++----- .../label-customization.html | 2 +- .../text-box-customization.html | 2 +- .../toolbar-customization.html | 2 +- .../write-to-parcel.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/ThreeDSecure/index.html | 2 +- .../-c-r-e-a-t-o-r.html | 2 +- .../-union-pay-capabilities.html | 2 +- .../describe-contents.html | 2 +- .../-union-pay-capabilities/index.html | 2 +- .../-union-pay-capabilities/is-debit.html | 2 +- .../-union-pay-capabilities/is-supported.html | 2 +- .../-union-pay-capabilities/is-union-pay.html | 2 +- .../supports-two-step-auth-and-capture.html | 2 +- .../write-to-parcel.html | 2 +- .../-union-pay-card/-c-r-e-a-t-o-r.html | 2 +- .../-union-pay-card/-union-pay-card.html | 2 +- .../-union-pay-card/build-enrollment.html | 2 +- .../-union-pay-card/build-j-s-o-n.html | 2 +- .../-union-pay-card/enrollment-id.html | 2 +- .../-union-pay-card/index.html | 2 +- .../-union-pay-card/mobile-country-code.html | 2 +- .../-union-pay-card/mobile-phone-number.html | 2 +- .../-union-pay-card/sms-code.html | 2 +- .../-union-pay-card/write-to-parcel.html | 2 +- .../-union-pay-client/-union-pay-client.html | 2 +- .../-union-pay-client/enroll.html | 2 +- .../-union-pay-client/fetch-capabilities.html | 2 +- .../-union-pay-client/index.html | 2 +- .../-union-pay-client/tokenize.html | 2 +- .../-union-pay-enroll-callback/index.html | 2 +- .../-union-pay-enroll-callback/on-result.html | 2 +- .../-union-pay-enrollment/id.html | 2 +- .../-union-pay-enrollment/index.html | 2 +- .../is-sms-code-required.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-union-pay-tokenize-callback/index.html | 2 +- .../on-result.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/UnionPay/index.html | 2 +- .../-venmo-account-nonce/-c-r-e-a-t-o-r.html | 2 +- .../-venmo-account-nonce/billing-address.html | 2 +- .../-venmo-account-nonce/email.html | 2 +- .../-venmo-account-nonce/external-id.html | 2 +- .../-venmo-account-nonce/first-name.html | 2 +- .../-venmo-account-nonce/index.html | 10 ++++----- .../-venmo-account-nonce/last-name.html | 2 +- .../-venmo-account-nonce/phone-number.html | 2 +- .../shipping-address.html | 2 +- .../-venmo-account-nonce/username.html | 2 +- .../-venmo-account-nonce/write-to-parcel.html | 2 +- .../-venmo-client/-venmo-client.html | 2 +- .../-venmo-client/index.html | 2 +- .../-venmo-client/is-ready-to-pay.html | 2 +- .../is-venmo-app-switch-available.html | 2 +- .../-venmo-client/on-activity-result.html | 2 +- .../-venmo-client/set-listener.html | 2 +- .../show-venmo-in-google-play-store.html | 2 +- .../-venmo-client/tokenize-venmo-account.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-venmo-line-item/-c-r-e-a-t-o-r.html | 2 +- .../-k-i-n-d_-c-r-e-d-i-t.html | 2 +- .../-venmo-line-item/-k-i-n-d_-d-e-b-i-t.html | 2 +- .../-venmo-line-item/-venmo-line-item.html | 2 +- .../-venmo-line-item/describe-contents.html | 2 +- .../-venmo-line-item/description.html | 2 +- .../-venmo-line-item/index.html | 10 ++++----- .../-venmo-line-item/kind.html | 2 +- .../-venmo-line-item/name.html | 2 +- .../-venmo-line-item/product-code.html | 2 +- .../-venmo-line-item/quantity.html | 2 +- .../-venmo-line-item/to-json.html | 2 +- .../-venmo-line-item/unit-amount.html | 2 +- .../-venmo-line-item/unit-tax-amount.html | 2 +- .../-venmo-line-item/url.html | 2 +- .../-venmo-line-item/write-to-parcel.html | 2 +- .../-venmo-listener/index.html | 2 +- .../-venmo-listener/on-venmo-failure.html | 2 +- .../-venmo-listener/on-venmo-success.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../-m-u-l-t-i_-u-s-e.html | 2 +- .../-s-i-n-g-l-e_-u-s-e.html | 2 +- .../-venmo-payment-method-usage/index.html | 2 +- .../-venmo-request/-c-r-e-a-t-o-r.html | 2 +- .../-venmo-request/-venmo-request.html | 2 +- .../collect-customer-billing-address.html | 2 +- .../collect-customer-shipping-address.html | 2 +- .../-venmo-request/describe-contents.html | 2 +- .../-venmo-request/discount-amount.html | 2 +- .../-venmo-request/display-name.html | 2 +- .../-venmo-request/index.html | 10 ++++----- .../-venmo-request/line-items.html | 2 +- .../-venmo-request/payment-method-usage.html | 2 +- .../-venmo-request/profile-id.html | 2 +- .../-venmo-request/set-line-items.html | 2 +- .../-venmo-request/shipping-amount.html | 2 +- .../-venmo-request/should-vault.html | 2 +- .../-venmo-request/sub-total-amount.html | 2 +- .../-venmo-request/tax-amount.html | 2 +- .../-venmo-request/total-amount.html | 2 +- .../-venmo-request/write-to-parcel.html | 2 +- .../index.html | 2 +- .../on-result.html | 2 +- .../com.braintreepayments.api/index.html | 2 +- docs/Venmo/index.html | 2 +- docs/index.html | 2 +- v4.9.0+_MIGRATION_GUIDE.md | 22 +++++++++---------- v4_MIGRATION_GUIDE.md | 22 +++++++++---------- 984 files changed, 1158 insertions(+), 1158 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dd13fcd5c..693ad9c4ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Braintree Android SDK Release Notes -## unreleased +## 4.40.1 (2023-12-13) * BraintreeCore * Bump `browser-switch` version to `2.6.1` (fixes #799) diff --git a/README.md b/README.md index 4caefe1ade..027ed0f84e 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ For an integration offering card payments, add the following dependency in your ```groovy dependencies { - implementation 'com.braintreepayments.api:card:4.40.0' + implementation 'com.braintreepayments.api:card:4.40.1' } ``` diff --git a/build.gradle b/build.gradle index e74aa1f4b2..cabae02fd0 100644 --- a/build.gradle +++ b/build.gradle @@ -97,7 +97,7 @@ allprojects { } } -version '4.40.1-SNAPSHOT' +version '4.40.1' group 'com.braintreepayments' ext { compileSdkVersion = 34 diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/-american-express-client.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/-american-express-client.html index 5be7c3b295..02cbeacdc4 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/-american-express-client.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/-american-express-client.html @@ -34,7 +34,7 @@

braintree_android
-
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/get-rewards-balance.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/get-rewards-balance.html index 557ff8dd31..b630350a44 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/get-rewards-balance.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/get-rewards-balance.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/index.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/index.html index 58137a48bd..cd2f8ac05a 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/index.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/index.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/index.html index ac63bc23e2..7882f30f7a 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/index.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/on-result.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/on-result.html index a75e82e8b3..fb00525f5d 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/on-result.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-get-rewards-balance-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/-c-r-e-a-t-o-r.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/-c-r-e-a-t-o-r.html index 1ea2b548e6..35ad52b037 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/-c-r-e-a-t-o-r.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/conversion-rate.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/conversion-rate.html index 83159c6f49..a42a1035aa 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/conversion-rate.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/conversion-rate.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-amount.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-amount.html index 0a0951c229..cb23517ba3 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-amount.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-iso-code.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-iso-code.html index 29d3edae94..f2e4841ccd 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-iso-code.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/currency-iso-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/describe-contents.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/describe-contents.html index 4956b00f44..bde2666c96 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/describe-contents.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-code.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-code.html index d0b5b499ed..3d000db2fa 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-code.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-message.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-message.html index a02fd25811..dd2b4c84d0 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-message.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/error-message.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/index.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/index.html index 590fe461be..349fb81d18 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/index.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/request-id.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/request-id.html index 0a264510ab..ea16d19dfc 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/request-id.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/request-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-amount.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-amount.html index 77986495e3..293f4b60fe 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-amount.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-unit.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-unit.html index d00ce03813..fc9d12c8d1 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-unit.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/rewards-unit.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/write-to-parcel.html b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/write-to-parcel.html index 2ed062fbc8..125c873068 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/write-to-parcel.html +++ b/docs/AmericanExpress/com.braintreepayments.api/-american-express-rewards-balance/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/com.braintreepayments.api/index.html b/docs/AmericanExpress/com.braintreepayments.api/index.html index 0b0a9a4613..7579f9917e 100644 --- a/docs/AmericanExpress/com.braintreepayments.api/index.html +++ b/docs/AmericanExpress/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/AmericanExpress/index.html b/docs/AmericanExpress/index.html index 0018aa53e7..ac5ea1d3ad 100644 --- a/docs/AmericanExpress/index.html +++ b/docs/AmericanExpress/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/id.html b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/id.html index 115a893275..315da6ef04 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/id.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/index.html b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/index.html index 5f78c3928b..2693609c95 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/name.html b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/name.html index 8c1cdc2b47..5b97620478 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/name.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/timestamp.html b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/timestamp.html index 321e913c39..6c041001a8 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/timestamp.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-analytics-event/timestamp.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/-app-switch-not-available-exception.html b/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/-app-switch-not-available-exception.html index a0aa0e2d23..688c32f13d 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/-app-switch-not-available-exception.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/-app-switch-not-available-exception.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/index.html b/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/index.html index 5b524a8175..68b369eb1c 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-app-switch-not-available-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-braintree-client.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-braintree-client.html index bfa8ff9f59..2273b532ff 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-braintree-client.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-braintree-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-companion/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-companion/index.html index 659cd84ac7..253515e2f5 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-companion/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/-companion/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result-from-new-task.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result-from-new-task.html index da545473aa..b303fbbddf 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result-from-new-task.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result-from-new-task.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result.html index 41ed463880..cce0e752c4 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/deliver-browser-switch-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/get-configuration.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/get-configuration.html index 6d91b28648..f629e1e9cb 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/get-configuration.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/get-configuration.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/index.html index 974fdc28af..734e1a44a7 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/invalidate-client-token.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/invalidate-client-token.html index d3f91d7f74..8957ab82dd 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/invalidate-client-token.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/invalidate-client-token.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/launches-browser-switch-as-new-task.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/launches-browser-switch-as-new-task.html index bfe546f78a..bdc593d18d 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/launches-browser-switch-as-new-task.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-client/launches-browser-switch-as-new-task.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/-braintree-deep-link-activity.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/-braintree-deep-link-activity.html index 6b69785827..c14087690c 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/-braintree-deep-link-activity.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/-braintree-deep-link-activity.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/index.html index 246c2ba61f..545e16a4f8 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-deep-link-activity/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/-c-r-e-a-t-o-r.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/-c-r-e-a-t-o-r.html index 0c9d1ff6d4..5547b8526a 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/-c-r-e-a-t-o-r.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/index.html index b8d9030cf0..6038e3d7da 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/-companion/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/code.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/code.html index 03fbf7c0b9..435811dc21 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/code.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/describe-contents.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/describe-contents.html index 5ec3d6952f..88ac29b6f0 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/describe-contents.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/error-for.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/error-for.html index d381110ec5..da60e371db 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/error-for.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/error-for.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field-errors.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field-errors.html index 00ee184c7a..b3c4e78b3d 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field-errors.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field-errors.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field.html index 561413c100..d8cd1f6ff0 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/field.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/index.html index e2f10e7232..e47cf15e8e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/message.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/message.html index 0a34764955..9c9e1161e5 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/message.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/message.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/to-string.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/to-string.html index e231c3eb3d..17c0c64e98 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/to-string.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/to-string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/write-to-parcel.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/write-to-parcel.html index be40289bb7..78617634c2 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/write-to-parcel.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-error/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/-braintree-exception.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/-braintree-exception.html index 33792afccb..b3d94fb9e3 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/-braintree-exception.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/-braintree-exception.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/index.html index bf396fd29c..ef993ce5e4 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-g-o-o-g-l-e_-p-a-y.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-g-o-o-g-l-e_-p-a-y.html index beb87e55de..c9e5aca8b1 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-g-o-o-g-l-e_-p-a-y.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-g-o-o-g-l-e_-p-a-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-l-o-c-a-l_-p-a-y-m-e-n-t.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-l-o-c-a-l_-p-a-y-m-e-n-t.html index 9f53e4a525..67912ee903 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-l-o-c-a-l_-p-a-y-m-e-n-t.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-l-o-c-a-l_-p-a-y-m-e-n-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-p-a-y-p-a-l.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-p-a-y-p-a-l.html index 3653a4fdad..f1998ba64d 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-p-a-y-p-a-l.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-p-a-y-p-a-l.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-a-m-s-u-n-g_-p-a-y.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-a-m-s-u-n-g_-p-a-y.html index 36806af830..6b7f2e55dc 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-a-m-s-u-n-g_-p-a-y.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-a-m-s-u-n-g_-p-a-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-e-p-a_-d-e-b-i-t.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-e-p-a_-d-e-b-i-t.html index 974d2b9fbc..41d40f6e6e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-e-p-a_-d-e-b-i-t.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-s-e-p-a_-d-e-b-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-t-h-r-e-e_-d_-s-e-c-u-r-e.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-t-h-r-e-e_-d_-s-e-c-u-r-e.html index 06333f6dc3..8f89b94009 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-t-h-r-e-e_-d_-s-e-c-u-r-e.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-t-h-r-e-e_-d_-s-e-c-u-r-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-e-n-m-o.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-e-n-m-o.html index eab38faf56..99e78cd158 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-e-n-m-o.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-e-n-m-o.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-i-s-a_-c-h-e-c-k-o-u-t.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-i-s-a_-c-h-e-c-k-o-u-t.html index dd4f44dce3..0878c21ffb 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-i-s-a_-c-h-e-c-k-o-u-t.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/-v-i-s-a_-c-h-e-c-k-o-u-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/index.html index 6bfd4660f9..fd56c00c0e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/-companion/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/index.html b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/index.html index 8d6ff5372c..89fd7d24ed 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-braintree-request-codes/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/index.html b/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/index.html index 6de36e5c7b..01ba8bccc2 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-failure.html b/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-failure.html index d752747104..40728d7bc6 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-failure.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-success.html b/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-success.html index 7118db9977..758e8018bd 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-success.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-client-token-callback/on-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/get-client-token.html b/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/get-client-token.html index 276bcbc88a..3b02922b71 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/get-client-token.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/get-client-token.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/index.html b/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/index.html index 3785e71fa3..7897fa5697 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-client-token-provider/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/index.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/index.html index 1aa40e502d..5f92a22d0d 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/on-result.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/on-result.html index 4ac4a151c6..0b6e482f05 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/on-result.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/-configuration-exception.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/-configuration-exception.html index c0a90eb4bc..9539b067a0 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/-configuration-exception.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/-configuration-exception.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/index.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/index.html index ad7dc23302..dcb19eb6fd 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/assets-url.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/assets-url.html index f0fdf64b78..af37acef26 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/assets-url.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/assets-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/cardinal-authentication-jwt.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/cardinal-authentication-jwt.html index eb6de32e40..30291058c1 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/cardinal-authentication-jwt.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/cardinal-authentication-jwt.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/client-api-url.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/client-api-url.html index 1a70b469e8..dbc3680828 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/client-api-url.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/client-api-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/environment.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/environment.html index e0db3dc5f0..1aec32e288 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/environment.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/environment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/index.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/index.html index 49b692dd19..8bd623e5c3 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-cvv-challenge-present.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-cvv-challenge-present.html index e2d9613a98..1c521c42af 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-cvv-challenge-present.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-cvv-challenge-present.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-google-pay-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-google-pay-enabled.html index eeceef3521..e2b8d94db9 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-google-pay-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-google-pay-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-local-payment-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-local-payment-enabled.html index d5d5ee84d0..e6605322a4 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-local-payment-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-local-payment-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-pay-pal-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-pay-pal-enabled.html index d03da84cee..3f23e00409 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-pay-pal-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-pay-pal-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-postal-code-challenge-present.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-postal-code-challenge-present.html index f0daf9ab02..1d98a1fbd5 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-postal-code-challenge-present.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-postal-code-challenge-present.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-samsung-pay-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-samsung-pay-enabled.html index 0acffc228c..77851049e2 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-samsung-pay-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-samsung-pay-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-three-d-secure-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-three-d-secure-enabled.html index 46d07e35c1..d287ee7322 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-three-d-secure-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-three-d-secure-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-union-pay-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-union-pay-enabled.html index 121a4b24b4..a6ef96ddea 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-union-pay-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-union-pay-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-venmo-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-venmo-enabled.html index 2b7bba2411..e8a978584a 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-venmo-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-venmo-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-visa-checkout-enabled.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-visa-checkout-enabled.html index 5042e97f0d..5bb3d2b73b 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-visa-checkout-enabled.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/is-visa-checkout-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-account-id.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-account-id.html index d02c356457..d5c870c414 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-account-id.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-account-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-id.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-id.html index 6b3dec0fa5..88a805d9f4 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-id.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/merchant-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-direct-base-url.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-direct-base-url.html index a2e3dfafab..14c9093d7e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-direct-base-url.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-direct-base-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-privacy-url.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-privacy-url.html index 45bc5faaaf..a23c45836d 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-privacy-url.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-privacy-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-user-agreement-url.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-user-agreement-url.html index e264edad93..0af0ccc82c 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-user-agreement-url.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/pay-pal-user-agreement-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/supported-card-types.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/supported-card-types.html index df92d11e16..8c35f4fd2e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/supported-card-types.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/supported-card-types.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-configuration/to-json.html b/docs/BraintreeCore/com.braintreepayments.api/-configuration/to-json.html index 5d082e715b..89e046003e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-configuration/to-json.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-configuration/to-json.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/-c-r-e-a-t-o-r.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/-c-r-e-a-t-o-r.html index c1899da681..ae51943f20 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/-c-r-e-a-t-o-r.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/index.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/index.html index fa0b207f85..5364496f6a 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/-companion/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/describe-contents.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/describe-contents.html index 3850a5449f..f6ce786809 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/describe-contents.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-for.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-for.html index bf439def63..fe86532199 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-for.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-for.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-response.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-response.html index 601d6c561e..8189189431 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-response.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/error-response.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/field-errors.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/field-errors.html index 0453ae74ab..62b8123aa2 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/field-errors.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/field-errors.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/index.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/index.html index 00affce331..fc49197e06 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/message.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/message.html index ec3ae4a7cb..ebb8db5122 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/message.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/message.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/status-code.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/status-code.html index 6bbae7ee46..435cad7a68 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/status-code.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/status-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/to-string.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/to-string.html index 442ff2f9c5..9768c10de8 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/to-string.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/to-string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/write-to-parcel.html b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/write-to-parcel.html index 27341cb165..572089ae23 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/write-to-parcel.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-error-with-response/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-invalid-argument-exception/index.html b/docs/BraintreeCore/com.braintreepayments.api/-invalid-argument-exception/index.html index 84947e3bd7..3cd2a1f05e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-invalid-argument-exception/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-invalid-argument-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/-c-r-e-a-t-o-r.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/-c-r-e-a-t-o-r.html index e51e02b070..922782cd62 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/-c-r-e-a-t-o-r.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/index.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/index.html index 3865619af0..50a223ab96 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/-companion/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/describe-contents.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/describe-contents.html index 4110748d4c..290cd2ffae 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/describe-contents.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/index.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/index.html index cf9bce8a69..cb084c4c88 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/is-default.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/is-default.html index c67456b51e..67254b7262 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/is-default.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/is-default.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/string.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/string.html index 34fc9b5e17..4a530cf876 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/string.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/write-to-parcel.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/write-to-parcel.html index ea15728997..214ab221c3 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/write-to-parcel.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/api-path.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/api-path.html index 5e1c45491c..0e20ea5941 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/api-path.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/api-path.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-j-s-o-n.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-j-s-o-n.html index d03b631883..fc10c37206 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-j-s-o-n.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-j-s-o-n.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-metadata-j-s-o-n.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-metadata-j-s-o-n.html index 8ad53b1c0d..18aabc115d 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-metadata-j-s-o-n.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/build-metadata-j-s-o-n.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/index.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/index.html index 27ec608dbc..5cc66fb4a5 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/write-to-parcel.html b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/write-to-parcel.html index 24af4b3881..95d9c57282 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-payment-method/write-to-parcel.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-payment-method/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/-c-r-e-a-t-o-r.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/-c-r-e-a-t-o-r.html index fe8d13e56a..900cb697c0 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/-c-r-e-a-t-o-r.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/index.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/index.html index a5fe3b5cfb..4ff331a0c3 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-companion/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-postal-address.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-postal-address.html index 7328b09173..ba8018fa93 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-postal-address.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/-postal-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/country-code-alpha2.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/country-code-alpha2.html index 3599ccc923..371963e279 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/country-code-alpha2.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/country-code-alpha2.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/describe-contents.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/describe-contents.html index 5f021e6873..ce2a4e9f3b 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/describe-contents.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/extended-address.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/extended-address.html index c541c3312a..4e5da3d904 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/extended-address.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/extended-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/index.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/index.html index 701b309bcb..a92d085aef 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/is-empty.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/is-empty.html index 73678fd262..2a320ee0af 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/is-empty.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/is-empty.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/locality.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/locality.html index bb31e717ca..762e9b8bd7 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/locality.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/locality.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/phone-number.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/phone-number.html index 8dac47a46f..592eda6313 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/phone-number.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/phone-number.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/postal-code.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/postal-code.html index e7559e7473..660ec1ca37 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/postal-code.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/postal-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/recipient-name.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/recipient-name.html index fab03b4da6..26d585a90e 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/recipient-name.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/recipient-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/region.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/region.html index 0f2451bfba..e8fa4258a6 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/region.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/region.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/sorting-code.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/sorting-code.html index e8535824bc..b65826f156 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/sorting-code.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/sorting-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/street-address.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/street-address.html index dcc288bf34..349ed5d46c 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/street-address.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/street-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/to-string.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/to-string.html index e4441b2951..1e2c9ef0fe 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/to-string.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/to-string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/write-to-parcel.html b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/write-to-parcel.html index e13d4fd927..da49a1d479 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-postal-address/write-to-parcel.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-postal-address/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/-user-canceled-exception.html b/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/-user-canceled-exception.html index ac92926d4a..c21308d0d4 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/-user-canceled-exception.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/-user-canceled-exception.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/index.html b/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/index.html index e2d88515ed..8530faa8c4 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/is-explicit-cancelation.html b/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/is-explicit-cancelation.html index 2fa039a2cf..022b2eada0 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/is-explicit-cancelation.html +++ b/docs/BraintreeCore/com.braintreepayments.api/-user-canceled-exception/is-explicit-cancelation.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/com.braintreepayments.api/index.html b/docs/BraintreeCore/com.braintreepayments.api/index.html index 3145b766ec..1257bf87b7 100644 --- a/docs/BraintreeCore/com.braintreepayments.api/index.html +++ b/docs/BraintreeCore/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeCore/index.html b/docs/BraintreeCore/index.html index 46884195b6..313eb5f894 100644 --- a/docs/BraintreeCore/index.html +++ b/docs/BraintreeCore/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/index.html b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/index.html index 4bc317693f..a1a507d5a4 100644 --- a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/index.html +++ b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/on-result.html b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/on-result.html index 54ac5fc569..b9bdcbb750 100644 --- a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/on-result.html +++ b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/-data-collector.html b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/-data-collector.html index 743f6adad3..1cb25612df 100644 --- a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/-data-collector.html +++ b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/-data-collector.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/collect-device-data.html b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/collect-device-data.html index c6981f13bf..440da4c1c4 100644 --- a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/collect-device-data.html +++ b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/collect-device-data.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/index.html b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/index.html index 8c218af278..9153da6c5b 100644 --- a/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/index.html +++ b/docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeDataCollector/com.braintreepayments.api/index.html b/docs/BraintreeDataCollector/com.braintreepayments.api/index.html index f21c611c2f..c856b8b2a5 100644 --- a/docs/BraintreeDataCollector/com.braintreepayments.api/index.html +++ b/docs/BraintreeDataCollector/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/BraintreeDataCollector/index.html b/docs/BraintreeDataCollector/index.html index e05074ade9..e95ecb2ff4 100644 --- a/docs/BraintreeDataCollector/index.html +++ b/docs/BraintreeDataCollector/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-authentication-insight/-c-r-e-a-t-o-r.html b/docs/Card/com.braintreepayments.api/-authentication-insight/-c-r-e-a-t-o-r.html index 5000ae6b22..a132860f6f 100644 --- a/docs/Card/com.braintreepayments.api/-authentication-insight/-c-r-e-a-t-o-r.html +++ b/docs/Card/com.braintreepayments.api/-authentication-insight/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-authentication-insight/describe-contents.html b/docs/Card/com.braintreepayments.api/-authentication-insight/describe-contents.html index 4b3a3a36ca..74a03669e7 100644 --- a/docs/Card/com.braintreepayments.api/-authentication-insight/describe-contents.html +++ b/docs/Card/com.braintreepayments.api/-authentication-insight/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-authentication-insight/index.html b/docs/Card/com.braintreepayments.api/-authentication-insight/index.html index cb865bbba0..6604a52984 100644 --- a/docs/Card/com.braintreepayments.api/-authentication-insight/index.html +++ b/docs/Card/com.braintreepayments.api/-authentication-insight/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -92,13 +92,13 @@

Properties

@@ -122,13 +122,13 @@

Properties

diff --git a/docs/Card/com.braintreepayments.api/-authentication-insight/regulation-environment.html b/docs/Card/com.braintreepayments.api/-authentication-insight/regulation-environment.html index 8491536d96..10efec78f1 100644 --- a/docs/Card/com.braintreepayments.api/-authentication-insight/regulation-environment.html +++ b/docs/Card/com.braintreepayments.api/-authentication-insight/regulation-environment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-authentication-insight/write-to-parcel.html b/docs/Card/com.braintreepayments.api/-authentication-insight/write-to-parcel.html index 0c09299a4d..fd55180336 100644 --- a/docs/Card/com.braintreepayments.api/-authentication-insight/write-to-parcel.html +++ b/docs/Card/com.braintreepayments.api/-authentication-insight/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/-b-i-n_-d-a-t-a_-k-e-y.html b/docs/Card/com.braintreepayments.api/-bin-data/-b-i-n_-d-a-t-a_-k-e-y.html index 32f64f1b9b..f99958d66e 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/-b-i-n_-d-a-t-a_-k-e-y.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/-b-i-n_-d-a-t-a_-k-e-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/-bin-data.html b/docs/Card/com.braintreepayments.api/-bin-data/-bin-data.html index ee58628e99..644f5e968b 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/-bin-data.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/-bin-data.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/-c-r-e-a-t-o-r.html b/docs/Card/com.braintreepayments.api/-bin-data/-c-r-e-a-t-o-r.html index 262f909fe1..a8d9773293 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/-c-r-e-a-t-o-r.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/-n-o.html b/docs/Card/com.braintreepayments.api/-bin-data/-n-o.html index 0610964ee1..778f278e07 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/-n-o.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/-n-o.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/-u-n-k-n-o-w-n.html b/docs/Card/com.braintreepayments.api/-bin-data/-u-n-k-n-o-w-n.html index daae5b6dd7..4348f1e804 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/-u-n-k-n-o-w-n.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/-u-n-k-n-o-w-n.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/-y-e-s.html b/docs/Card/com.braintreepayments.api/-bin-data/-y-e-s.html index 0f241ee00b..b336b0b3c4 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/-y-e-s.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/-y-e-s.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/commercial.html b/docs/Card/com.braintreepayments.api/-bin-data/commercial.html index c9f4adf401..b8beb8ac98 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/commercial.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/commercial.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/country-of-issuance.html b/docs/Card/com.braintreepayments.api/-bin-data/country-of-issuance.html index 1f76230863..cce4227015 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/country-of-issuance.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/country-of-issuance.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/debit.html b/docs/Card/com.braintreepayments.api/-bin-data/debit.html index 0b2953f584..cc8490dfd2 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/debit.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/debit.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/describe-contents.html b/docs/Card/com.braintreepayments.api/-bin-data/describe-contents.html index bac738c468..a0c33f81b7 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/describe-contents.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/durbin-regulated.html b/docs/Card/com.braintreepayments.api/-bin-data/durbin-regulated.html index d0fed9eaa7..6096d4daf1 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/durbin-regulated.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/durbin-regulated.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/healthcare.html b/docs/Card/com.braintreepayments.api/-bin-data/healthcare.html index 1360568656..2d5b5698dc 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/healthcare.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/healthcare.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/index.html b/docs/Card/com.braintreepayments.api/-bin-data/index.html index b8ce825b42..0153cd14da 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/index.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -139,13 +139,13 @@

Properties

@@ -259,13 +259,13 @@

Properties

diff --git a/docs/Card/com.braintreepayments.api/-bin-data/issuing-bank.html b/docs/Card/com.braintreepayments.api/-bin-data/issuing-bank.html index c20bef0cec..5c1aa25b5c 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/issuing-bank.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/issuing-bank.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/payroll.html b/docs/Card/com.braintreepayments.api/-bin-data/payroll.html index 291e8446b5..823ef57f8d 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/payroll.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/payroll.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/prepaid.html b/docs/Card/com.braintreepayments.api/-bin-data/prepaid.html index 500a5abb88..5031424fa0 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/prepaid.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/prepaid.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/product-id.html b/docs/Card/com.braintreepayments.api/-bin-data/product-id.html index edd83d7915..d3f2cda4a7 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/product-id.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/product-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-bin-data/write-to-parcel.html b/docs/Card/com.braintreepayments.api/-bin-data/write-to-parcel.html index cbb0edd63a..ffa2f383c9 100644 --- a/docs/Card/com.braintreepayments.api/-bin-data/write-to-parcel.html +++ b/docs/Card/com.braintreepayments.api/-bin-data/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-client/-card-client.html b/docs/Card/com.braintreepayments.api/-card-client/-card-client.html index f7bd95ccb9..72903c03d5 100644 --- a/docs/Card/com.braintreepayments.api/-card-client/-card-client.html +++ b/docs/Card/com.braintreepayments.api/-card-client/-card-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-client/index.html b/docs/Card/com.braintreepayments.api/-card-client/index.html index 1a5d9e8211..28b5f3fb2d 100644 --- a/docs/Card/com.braintreepayments.api/-card-client/index.html +++ b/docs/Card/com.braintreepayments.api/-card-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-client/tokenize.html b/docs/Card/com.braintreepayments.api/-card-client/tokenize.html index 424867d803..c2aa96027a 100644 --- a/docs/Card/com.braintreepayments.api/-card-client/tokenize.html +++ b/docs/Card/com.braintreepayments.api/-card-client/tokenize.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/-c-r-e-a-t-o-r.html b/docs/Card/com.braintreepayments.api/-card-nonce/-c-r-e-a-t-o-r.html index be6e2493d8..f6f4b85f6a 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/-c-r-e-a-t-o-r.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/authentication-insight.html b/docs/Card/com.braintreepayments.api/-card-nonce/authentication-insight.html index 7c54475eaf..8b8404da0e 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/authentication-insight.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/authentication-insight.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/bin-data.html b/docs/Card/com.braintreepayments.api/-card-nonce/bin-data.html index 3ddbdde63f..f78737c554 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/bin-data.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/bin-data.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/bin.html b/docs/Card/com.braintreepayments.api/-card-nonce/bin.html index 34c3b23d27..b512409dec 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/bin.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/bin.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/card-type.html b/docs/Card/com.braintreepayments.api/-card-nonce/card-type.html index 2cdef0854f..2254d5d5f3 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/card-type.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/card-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/cardholder-name.html b/docs/Card/com.braintreepayments.api/-card-nonce/cardholder-name.html index cf947c4084..94de5d8a0e 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/cardholder-name.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/cardholder-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/expiration-month.html b/docs/Card/com.braintreepayments.api/-card-nonce/expiration-month.html index 0c04e96c45..52c236a76c 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/expiration-month.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/expiration-month.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/expiration-year.html b/docs/Card/com.braintreepayments.api/-card-nonce/expiration-year.html index 3d08f19d73..4125d182f9 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/expiration-year.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/expiration-year.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/index.html b/docs/Card/com.braintreepayments.api/-card-nonce/index.html index 8e9c9a01b9..521ec200f3 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/index.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -182,13 +182,13 @@

Properties

@@ -287,13 +287,13 @@

Properties

diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/last-four.html b/docs/Card/com.braintreepayments.api/-card-nonce/last-four.html index b7fa7a25ed..499d3c7e3c 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/last-four.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/last-four.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/last-two.html b/docs/Card/com.braintreepayments.api/-card-nonce/last-two.html index 7fe92d8553..3bcf5d20cf 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/last-two.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/last-two.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/three-d-secure-info.html b/docs/Card/com.braintreepayments.api/-card-nonce/three-d-secure-info.html index 35491c2427..fc401a574c 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/three-d-secure-info.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/three-d-secure-info.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-nonce/write-to-parcel.html b/docs/Card/com.braintreepayments.api/-card-nonce/write-to-parcel.html index ea4d012df3..00117b2595 100644 --- a/docs/Card/com.braintreepayments.api/-card-nonce/write-to-parcel.html +++ b/docs/Card/com.braintreepayments.api/-card-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-tokenize-callback/index.html b/docs/Card/com.braintreepayments.api/-card-tokenize-callback/index.html index 30e150463e..6016f52ef9 100644 --- a/docs/Card/com.braintreepayments.api/-card-tokenize-callback/index.html +++ b/docs/Card/com.braintreepayments.api/-card-tokenize-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card-tokenize-callback/on-result.html b/docs/Card/com.braintreepayments.api/-card-tokenize-callback/on-result.html index 48c542e9de..04afde825d 100644 --- a/docs/Card/com.braintreepayments.api/-card-tokenize-callback/on-result.html +++ b/docs/Card/com.braintreepayments.api/-card-tokenize-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/-c-r-e-a-t-o-r.html b/docs/Card/com.braintreepayments.api/-card/-c-r-e-a-t-o-r.html index 0a668161e1..b8a5f4d8a2 100644 --- a/docs/Card/com.braintreepayments.api/-card/-c-r-e-a-t-o-r.html +++ b/docs/Card/com.braintreepayments.api/-card/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/-card.html b/docs/Card/com.braintreepayments.api/-card/-card.html index bed43acab3..cdcc7ae734 100644 --- a/docs/Card/com.braintreepayments.api/-card/-card.html +++ b/docs/Card/com.braintreepayments.api/-card/-card.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/build-j-s-o-n.html b/docs/Card/com.braintreepayments.api/-card/build-j-s-o-n.html index 05e3d88c74..80fc1636ff 100644 --- a/docs/Card/com.braintreepayments.api/-card/build-j-s-o-n.html +++ b/docs/Card/com.braintreepayments.api/-card/build-j-s-o-n.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/index.html b/docs/Card/com.braintreepayments.api/-card/index.html index 0051d25c0a..507edad369 100644 --- a/docs/Card/com.braintreepayments.api/-card/index.html +++ b/docs/Card/com.braintreepayments.api/-card/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -304,13 +304,13 @@

Properties

@@ -514,13 +514,13 @@

Properties

diff --git a/docs/Card/com.braintreepayments.api/-card/is-authentication-insight-requested.html b/docs/Card/com.braintreepayments.api/-card/is-authentication-insight-requested.html index 47c3f13e56..28df8ffb17 100644 --- a/docs/Card/com.braintreepayments.api/-card/is-authentication-insight-requested.html +++ b/docs/Card/com.braintreepayments.api/-card/is-authentication-insight-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/merchant-account-id.html b/docs/Card/com.braintreepayments.api/-card/merchant-account-id.html index b20917b303..9ad38b5b2c 100644 --- a/docs/Card/com.braintreepayments.api/-card/merchant-account-id.html +++ b/docs/Card/com.braintreepayments.api/-card/merchant-account-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/set-authentication-insight-requested.html b/docs/Card/com.braintreepayments.api/-card/set-authentication-insight-requested.html index 099f7c9921..647aa3c580 100644 --- a/docs/Card/com.braintreepayments.api/-card/set-authentication-insight-requested.html +++ b/docs/Card/com.braintreepayments.api/-card/set-authentication-insight-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/should-validate.html b/docs/Card/com.braintreepayments.api/-card/should-validate.html index 2c69395aab..2a5ed883e1 100644 --- a/docs/Card/com.braintreepayments.api/-card/should-validate.html +++ b/docs/Card/com.braintreepayments.api/-card/should-validate.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-card/write-to-parcel.html b/docs/Card/com.braintreepayments.api/-card/write-to-parcel.html index 436b14450c..e2fd040a60 100644 --- a/docs/Card/com.braintreepayments.api/-card/write-to-parcel.html +++ b/docs/Card/com.braintreepayments.api/-card/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/-c-r-e-a-t-o-r.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/-c-r-e-a-t-o-r.html index 4245e83757..60e952db69 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/-c-r-e-a-t-o-r.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/-three-d-secure-info.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/-three-d-secure-info.html index 73e9dc1249..df157bda5d 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/-three-d-secure-info.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/-three-d-secure-info.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/acs-transaction-id.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/acs-transaction-id.html index f05417e399..9636bad606 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/acs-transaction-id.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/acs-transaction-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status-reason.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status-reason.html index c062bae7f2..f3197e34b8 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status-reason.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status-reason.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status.html index 5f8bd7d7b6..93ec131a02 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/authentication-transaction-status.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/cavv.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/cavv.html index b56f2d2e1f..9b86805a47 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/cavv.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/cavv.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/describe-contents.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/describe-contents.html index 0018def580..a3c93225d2 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/describe-contents.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/ds-transaction-id.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/ds-transaction-id.html index 640bca7922..aebe647941 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/ds-transaction-id.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/ds-transaction-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/eci-flag.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/eci-flag.html index e3d0601091..dcfa944ebc 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/eci-flag.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/eci-flag.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/enrolled.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/enrolled.html index a1b854e75c..f29e151cdd 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/enrolled.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/enrolled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/index.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/index.html index e0d4d7ae95..1e17bed058 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/index.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -214,13 +214,13 @@

Properties

@@ -319,13 +319,13 @@

Properties

diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shift-possible.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shift-possible.html index ce9c4b2c1a..9cf3cc592d 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shift-possible.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shift-possible.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shifted.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shifted.html index d4626309a6..5f18b0eacc 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shifted.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/is-liability-shifted.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status-reason.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status-reason.html index 3e31218d61..8c6a545f16 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status-reason.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status-reason.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status.html index 9d5c944cb0..d281c04ab6 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/lookup-transaction-status.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/pares-status.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/pares-status.html index 99d2a23bb6..fbe4c08942 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/pares-status.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/pares-status.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/status.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/status.html index 673cc23072..b9d0cec01f 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/status.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/status.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-authentication-id.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-authentication-id.html index d5cf85fb0d..6585d49ccb 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-authentication-id.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-authentication-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-server-transaction-id.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-server-transaction-id.html index 4fd86de36c..0cbf20a28c 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-server-transaction-id.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-server-transaction-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-version.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-version.html index 2821925b68..750272d13c 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-version.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/three-d-secure-version.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/was-verified.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/was-verified.html index bf6245cb19..d6bd8fe12d 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/was-verified.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/was-verified.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/write-to-parcel.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/write-to-parcel.html index 22af07d59c..29a2acbe71 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/write-to-parcel.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/-three-d-secure-info/xid.html b/docs/Card/com.braintreepayments.api/-three-d-secure-info/xid.html index 38bf2b7774..9bcfa37694 100644 --- a/docs/Card/com.braintreepayments.api/-three-d-secure-info/xid.html +++ b/docs/Card/com.braintreepayments.api/-three-d-secure-info/xid.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/com.braintreepayments.api/index.html b/docs/Card/com.braintreepayments.api/index.html index 11a630d550..b30cae7502 100644 --- a/docs/Card/com.braintreepayments.api/index.html +++ b/docs/Card/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Card/index.html b/docs/Card/index.html index dbbd4c7089..27901e73b5 100644 --- a/docs/Card/index.html +++ b/docs/Card/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/finish.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/finish.html index c19f3018fb..d33dcd8ee4 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/finish.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/finish.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/index.html index 795c60eaa6..27201dff86 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-activity/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/index.html index 35680fd762..358e6459de 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/is-google-pay-enabled.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/is-google-pay-enabled.html index 01c0cf7369..1a0dc0d448 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/is-google-pay-enabled.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-capabilities/is-google-pay-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/-c-r-e-a-t-o-r.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/-c-r-e-a-t-o-r.html index 2222dde789..8fab0b2f50 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/-c-r-e-a-t-o-r.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/billing-address.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/billing-address.html index 53ab978aff..332b58fecf 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/billing-address.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin-data.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin-data.html index 7f8dbe0a40..1be8048a56 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin-data.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin-data.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin.html index 5fc8b27990..a1b7ebaf56 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/bin.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-network.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-network.html index 5cecf5c222..81b85c468a 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-network.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-network.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-type.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-type.html index 2bd8018695..33b9ec103c 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-type.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/card-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/email.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/email.html index 1804980bf3..b31a08b529 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/email.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/index.html index d37a9a569c..8a5c68a996 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -186,13 +186,13 @@

Properties

@@ -291,13 +291,13 @@

Properties

diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/is-network-tokenized.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/is-network-tokenized.html index b05a9b6816..01c91ac5d6 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/is-network-tokenized.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/is-network-tokenized.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-four.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-four.html index 5ee95f7fb6..5545c7aeb7 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-four.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-four.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-two.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-two.html index 2ce129138b..3f1c4057a5 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-two.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/last-two.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/shipping-address.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/shipping-address.html index 562d3c7875..c95e71a76e 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/shipping-address.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/shipping-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/write-to-parcel.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/write-to-parcel.html index 8c4ac98973..2b6ea386c1 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/write-to-parcel.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-card-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/-google-pay-client.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/-google-pay-client.html index 48a4bcce5c..ec4338e8e6 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/-google-pay-client.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/-google-pay-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/get-tokenization-parameters.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/get-tokenization-parameters.html index 74924eb206..45304d43f4 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/get-tokenization-parameters.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/get-tokenization-parameters.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/index.html index 3ae9a8c343..52faf20c31 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/is-ready-to-pay.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/is-ready-to-pay.html index e23ca84f51..949456dab8 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/is-ready-to-pay.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/is-ready-to-pay.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/on-activity-result.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/on-activity-result.html index 22414997b5..528a8aece1 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/on-activity-result.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/on-activity-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/request-payment.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/request-payment.html index 75c4537626..8fde8412f2 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/request-payment.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/request-payment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/set-listener.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/set-listener.html index f7f912e0b6..528a9c2408 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-client/set-listener.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-client/set-listener.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/-c-r-e-a-t-o-r.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/-c-r-e-a-t-o-r.html index 7ca2af3d9f..233ede0d7d 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/-c-r-e-a-t-o-r.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/describe-contents.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/describe-contents.html index 5ff99522fc..0b2cac8dfa 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/describe-contents.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/index.html index f9e78f7243..ff028c229e 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -257,13 +257,13 @@

Properties

@@ -287,13 +287,13 @@

Properties

diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/status.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/status.html index 5d89d267e1..e79562f210 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/status.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/status.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/write-to-parcel.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/write-to-parcel.html index 1c998476fc..50f590e9ea 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/write-to-parcel.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-exception/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/index.html index 4ab93b97ff..697b15c472 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/on-result.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/on-result.html index 525e7a9f89..2f01809b0a 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/on-result.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-get-tokenization-parameters-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/index.html index 20162e48c7..803ab3480a 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/on-result.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/on-result.html index 2456862b68..f67c2d23cf 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/on-result.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-is-ready-to-pay-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/index.html index 2a8053ac2a..b8bb414521 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-failure.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-failure.html index 5084c0dbd3..eb0b53b868 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-failure.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-success.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-success.html index 2ff01e27f1..17571309ff 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-success.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-listener/on-google-pay-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/index.html index ff3337bb3b..ff215fc01b 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/on-result.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/on-result.html index 197bd551f1..48c0e4aa23 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/on-result.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-on-activity-result-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/index.html index 4a69339af6..ff820de016 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/on-result.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/on-result.html index 2f9ea03e78..9dbced7e81 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/on-result.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request-payment-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-c-r-e-a-t-o-r.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-c-r-e-a-t-o-r.html index 49af759b10..f0afe7b605 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-c-r-e-a-t-o-r.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-google-pay-request.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-google-pay-request.html index f04fc6a886..65b6aa77e0 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-google-pay-request.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/-google-pay-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/allow-prepaid-cards.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/allow-prepaid-cards.html index 5411b73732..f1c1c7125c 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/allow-prepaid-cards.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/allow-prepaid-cards.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format-to-string.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format-to-string.html index e045333fa4..e5377aa1ea 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format-to-string.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format-to-string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format.html index 57ac3cb138..9e0b761801 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/billing-address-format.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/country-code.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/country-code.html index 4cf4296263..6dfcdbca17 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/country-code.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/country-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/describe-contents.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/describe-contents.html index b4cb164dca..79d2611f1d 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/describe-contents.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/environment.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/environment.html index 80525b99e5..cf5ce226f5 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/environment.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/environment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-auth-methods-for-type.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-auth-methods-for-type.html index ede36980bc..70735b7b0c 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-auth-methods-for-type.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-auth-methods-for-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-card-networks-for-type.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-card-networks-for-type.html index 31ba300b92..cfc0024d5f 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-card-networks-for-type.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-card-networks-for-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-payment-method.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-payment-method.html index 60d9a3a439..487678a3a4 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-payment-method.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-allowed-payment-method.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-tokenization-specification-for-type.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-tokenization-specification-for-type.html index 3713f89b5d..c586091dcd 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-tokenization-specification-for-type.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/get-tokenization-specification-for-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-id.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-id.html index 6b9948b554..9692f78820 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-id.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-name.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-name.html index 0284815213..fd3a653c85 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-name.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/google-merchant-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/index.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/index.html index bf06420889..7152a9aafe 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -469,13 +469,13 @@

Properties

@@ -559,13 +559,13 @@

Properties

diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-billing-address-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-billing-address-required.html index 463509d5bd..32e0024994 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-billing-address-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-billing-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-credit-cards-allowed.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-credit-cards-allowed.html index 460ecacb55..abdab477eb 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-credit-cards-allowed.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-credit-cards-allowed.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-email-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-email-required.html index dc2da6542c..50b9908b4d 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-email-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-email-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-pay-pal-enabled.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-pay-pal-enabled.html index 111bfb5060..ccc594aff6 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-pay-pal-enabled.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-pay-pal-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-phone-number-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-phone-number-required.html index 16312ae8c4..dbdc43af30 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-phone-number-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-phone-number-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-shipping-address-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-shipping-address-required.html index a9b074af0e..d5c58b015a 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-shipping-address-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/is-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allow-credit-cards.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allow-credit-cards.html index 449e378312..d48497aaed 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allow-credit-cards.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allow-credit-cards.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-auth-methods.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-auth-methods.html index 1dc5b8de45..aa5de6673e 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-auth-methods.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-auth-methods.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-card-networks.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-card-networks.html index 24ec20186d..a3707cf566 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-card-networks.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-card-networks.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-payment-method.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-payment-method.html index a9564d0030..78ea7c5706 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-payment-method.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-allowed-payment-method.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-billing-address-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-billing-address-required.html index 7a04c761a4..12454c595f 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-billing-address-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-billing-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-email-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-email-required.html index de3f951f14..d499f5e14e 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-email-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-email-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-pay-pal-enabled.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-pay-pal-enabled.html index 9fe91c0d97..c142b57896 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-pay-pal-enabled.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-pay-pal-enabled.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-phone-number-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-phone-number-required.html index 7fa7b6fd36..eb766a39a1 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-phone-number-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-phone-number-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-shipping-address-required.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-shipping-address-required.html index 18f6ce78fc..34262be58b 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-shipping-address-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-tokenization-specification-for-type.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-tokenization-specification-for-type.html index ca1ad00ad4..095fb85e99 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-tokenization-specification-for-type.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/set-tokenization-specification-for-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/shipping-address-requirements.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/shipping-address-requirements.html index ad10e58ea2..d2cc074927 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/shipping-address-requirements.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/shipping-address-requirements.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/to-json.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/to-json.html index aeda8bb88d..96141dafcd 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/to-json.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/to-json.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/total-price-label.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/total-price-label.html index 1f1ffc4217..3dfa603e07 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/total-price-label.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/total-price-label.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/transaction-info.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/transaction-info.html index 238edbf14b..0d359486d7 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/transaction-info.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/transaction-info.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/write-to-parcel.html b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/write-to-parcel.html index 61099731e2..acd1a7b189 100644 --- a/docs/GooglePay/com.braintreepayments.api/-google-pay-request/write-to-parcel.html +++ b/docs/GooglePay/com.braintreepayments.api/-google-pay-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/index.html b/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/index.html index 4db80ef969..cb3a34191f 100644 --- a/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/index.html +++ b/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/is-existing-payment-method-required.html b/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/is-existing-payment-method-required.html index ff0dd6f061..45d2168039 100644 --- a/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/is-existing-payment-method-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/is-existing-payment-method-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/set-existing-payment-method-required.html b/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/set-existing-payment-method-required.html index 89cc7a105f..2b594b3ee4 100644 --- a/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/set-existing-payment-method-required.html +++ b/docs/GooglePay/com.braintreepayments.api/-ready-for-google-pay-request/set-existing-payment-method-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/com.braintreepayments.api/index.html b/docs/GooglePay/com.braintreepayments.api/index.html index 260161d369..0279d168e2 100644 --- a/docs/GooglePay/com.braintreepayments.api/index.html +++ b/docs/GooglePay/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/GooglePay/index.html b/docs/GooglePay/index.html index c120a616c5..c70d6c92a1 100644 --- a/docs/GooglePay/index.html +++ b/docs/GooglePay/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/index.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/index.html index d412ec08c6..254b144010 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/on-result.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/on-result.html index c54b7fd8b0..b13f039389 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/on-result.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-browser-switch-result-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/-local-payment-client.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/-local-payment-client.html index cf8ef2a1a7..3a4f8a6ffe 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/-local-payment-client.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/-local-payment-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-local-payment.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-local-payment.html index 196576d49a..cb343f2388 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-local-payment.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-local-payment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-payment.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-payment.html index 1369ab79f7..771fa996c0 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-payment.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/approve-payment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/clear-active-browser-switch-requests.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/clear-active-browser-switch-requests.html index 25e6c3e5eb..ce9417be12 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/clear-active-browser-switch-requests.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/clear-active-browser-switch-requests.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/index.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/index.html index e10eddfc5c..38f4dba387 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/on-browser-switch-result.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/on-browser-switch-result.html index e3854f8eae..dfb6b345d5 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/on-browser-switch-result.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/on-browser-switch-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/parse-browser-switch-result.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/parse-browser-switch-result.html index b6ec601e8e..21b462ec3c 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/parse-browser-switch-result.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/parse-browser-switch-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/set-listener.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/set-listener.html index 44f99be709..f3fe565ae6 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/set-listener.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/set-listener.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/start-payment.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/start-payment.html index 4b699e9f11..028275093a 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/start-payment.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-client/start-payment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/index.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/index.html index 66e73718b4..b35459cf89 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-failure.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-failure.html index 4749c8ad35..1365ef53d8 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-failure.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-success.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-success.html index 56776c3365..0873da4a9b 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-success.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-listener/on-local-payment-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/-c-r-e-a-t-o-r.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/-c-r-e-a-t-o-r.html index 54ef2188a1..d2d938677a 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/-c-r-e-a-t-o-r.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/billing-address.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/billing-address.html index ce8cf923ba..cceeccfdda 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/billing-address.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/client-metadata-id.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/client-metadata-id.html index 4837092554..f1536f67e7 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/client-metadata-id.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/client-metadata-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/email.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/email.html index 28e532a4b3..837b313f8e 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/email.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/given-name.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/given-name.html index cd05715071..a7d6e81101 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/given-name.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/given-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/index.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/index.html index bbbdc4e076..61d7992c5d 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/payer-id.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/payer-id.html index 6251fd3254..25791d9531 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/payer-id.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/payer-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/phone.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/phone.html index f7f8a0a239..7ad064f6d4 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/phone.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/phone.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/shipping-address.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/shipping-address.html index 59a26360b0..6359390c2a 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/shipping-address.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/shipping-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/surname.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/surname.html index 4394da6be1..6441a37a70 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/surname.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/surname.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/write-to-parcel.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/write-to-parcel.html index 5007375bc7..45bca476a5 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/write-to-parcel.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/address.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/address.html index 11adc3cde3..9d5a60f74e 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/address.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/amount.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/amount.html index 2366b1053e..7afb487ba2 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/amount.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/build.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/build.html index 766ef3a64c..3e0da9cf88 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/build.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/build.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/currency-code.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/currency-code.html index f0d432a1b6..24fe85dd34 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/currency-code.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/currency-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/display-name.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/display-name.html index bd4e90aa42..1c84a7c172 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/display-name.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/display-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/email.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/email.html index 3a799485db..6cf249d254 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/email.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/get-bic.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/get-bic.html index 9694052948..40a6c74401 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/get-bic.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/get-bic.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/given-name.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/given-name.html index 4862ba8090..7e6def79f7 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/given-name.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/given-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/index.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/index.html index 869ac217eb..7f48959db1 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/is-shipping-address-required.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/is-shipping-address-required.html index 24d1ab0cb8..74a3109576 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/is-shipping-address-required.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/is-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/merchant-account-id.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/merchant-account-id.html index 438d4932c8..d91bfb67b8 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/merchant-account-id.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/merchant-account-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type-country-code.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type-country-code.html index ef8b6e0343..a35d0e137f 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type-country-code.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type-country-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type.html index eebfd10f05..3e1a9d2abc 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/payment-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/phone.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/phone.html index f68e6282e6..ab79d00b00 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/phone.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/phone.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-bic.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-bic.html index 704718f5bd..4f94214500 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-bic.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-bic.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-shipping-address-required.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-shipping-address-required.html index 36110d2291..4dc89d2bcb 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-shipping-address-required.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/set-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/surname.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/surname.html index c80b875ea6..3fb8a09805 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/surname.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-request/surname.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/approval-url.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/approval-url.html index b0586b3e6c..58dc4a0d2d 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/approval-url.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/approval-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/index.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/index.html index daf8a2b1b9..b3df1a7045 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/payment-id.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/payment-id.html index 51fa666926..715aaa6141 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/payment-id.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/payment-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/request.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/request.html index 4dd0248975..e2cc66489c 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/request.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-result/request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/index.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/index.html index 6c793d1a83..016377fbb2 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/on-result.html b/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/on-result.html index 1403b3a11d..7a1fd65e39 100644 --- a/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/on-result.html +++ b/docs/LocalPayment/com.braintreepayments.api/-local-payment-start-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/com.braintreepayments.api/index.html b/docs/LocalPayment/com.braintreepayments.api/index.html index ca60cb0d04..54585d2cb6 100644 --- a/docs/LocalPayment/com.braintreepayments.api/index.html +++ b/docs/LocalPayment/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/LocalPayment/index.html b/docs/LocalPayment/index.html index b1acc49849..8fc7815550 100644 --- a/docs/LocalPayment/index.html +++ b/docs/LocalPayment/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/-c-r-e-a-t-o-r.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/-c-r-e-a-t-o-r.html index 161b341dc3..caac508b5d 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/-c-r-e-a-t-o-r.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/authenticate-url.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/authenticate-url.html index e4d0ab9f29..ee7036679e 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/authenticate-url.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/authenticate-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/billing-address.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/billing-address.html index dee8aec237..86ef4bd330 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/billing-address.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/client-metadata-id.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/client-metadata-id.html index 217dfe7791..24233a4dd7 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/client-metadata-id.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/client-metadata-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/credit-financing.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/credit-financing.html index b5d85e37b5..1169d5782c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/credit-financing.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/credit-financing.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/email.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/email.html index 48b039b821..057fc63722 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/email.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/first-name.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/first-name.html index 7fd925889c..2369fe871a 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/first-name.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/first-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/index.html index 7993d3e270..eb0ed288b1 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -156,13 +156,13 @@

Properties

@@ -261,13 +261,13 @@

Properties

diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/last-name.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/last-name.html index 3e529d25c4..98e9627181 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/last-name.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/last-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/payer-id.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/payer-id.html index c1f743d1a1..5e7bf19d53 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/payer-id.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/payer-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/phone.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/phone.html index 5af8ba848b..505274eaf3 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/phone.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/phone.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/shipping-address.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/shipping-address.html index 9ab44ab3f5..dbabbe4f64 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/shipping-address.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/shipping-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/write-to-parcel.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/write-to-parcel.html index 0b8620c712..1dadeada2d 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/write-to-parcel.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-account-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-exception/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-exception/index.html index 9d0ca1235d..4351d55c02 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-exception/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/index.html index de2745c503..c8ca9d8bb9 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/on-result.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/on-result.html index 6ab1c232a0..50f78d3e0c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/on-result.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-browser-switch-result-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-c-r-e-a-t-o-r.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-c-r-e-a-t-o-r.html index 18da4e5d00..11674f8179 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-c-r-e-a-t-o-r.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-pay-pal-checkout-request.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-pay-pal-checkout-request.html index 8696930b3d..b98b5d5130 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-pay-pal-checkout-request.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-pay-pal-checkout-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html index dac7441b03..fec0df3723 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html index 34218ec54b..e64b0b6321 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/amount.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/amount.html index c1747a5b5b..3999aefafc 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/amount.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/currency-code.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/currency-code.html index 06c91b8a9f..b80aaa4727 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/currency-code.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/currency-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/describe-contents.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/describe-contents.html index a2fb58b709..bb25353219 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/describe-contents.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/index.html index 5f7b1c7374..5f876e9c25 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -214,13 +214,13 @@

Properties

@@ -379,13 +379,13 @@

Properties

diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/intent.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/intent.html index 47ddba8d2a..df365071a1 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/intent.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/intent.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-offer-pay-later.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-offer-pay-later.html index ba4b18a36e..70b2bb593c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-offer-pay-later.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-offer-pay-later.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-request-billing-agreement.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-request-billing-agreement.html index 24699c0fbe..9874686813 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-request-billing-agreement.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/should-request-billing-agreement.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/user-action.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/user-action.html index 3f45e56c94..6735bb1cd7 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/user-action.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/user-action.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/write-to-parcel.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/write-to-parcel.html index f4684f3b97..e5593ecf3a 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/write-to-parcel.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-checkout-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/-pay-pal-client.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/-pay-pal-client.html index 49ff3f8004..d60112fc08 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/-pay-pal-client.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/-pay-pal-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/clear-active-browser-switch-requests.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/clear-active-browser-switch-requests.html index 10c9ba7c38..c36df7b70f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/clear-active-browser-switch-requests.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/clear-active-browser-switch-requests.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/index.html index d1f4200eac..3ff471c339 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/on-browser-switch-result.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/on-browser-switch-result.html index 13cb5115a0..826152c65f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/on-browser-switch-result.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/on-browser-switch-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/parse-browser-switch-result.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/parse-browser-switch-result.html index 5f210a2bf0..5f9cbec391 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/parse-browser-switch-result.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/parse-browser-switch-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-billing-agreement.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-billing-agreement.html index d56bf5f193..42f4dc6865 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-billing-agreement.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-billing-agreement.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-one-time-payment.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-one-time-payment.html index 24057ff2f9..c510f2580f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-one-time-payment.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/request-one-time-payment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/set-listener.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/set-listener.html index 04d3c42a9d..40007a7ed7 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/set-listener.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/set-listener.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/tokenize-pay-pal-account.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/tokenize-pay-pal-account.html index 9fc973c968..14a34165ac 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-client/tokenize-pay-pal-account.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-client/tokenize-pay-pal-account.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/-c-r-e-a-t-o-r.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/-c-r-e-a-t-o-r.html index f868f9b4c9..ca5289ed05 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/-c-r-e-a-t-o-r.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/currency.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/currency.html index 4f65f59670..5e63ed1f0c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/currency.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/currency.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/describe-contents.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/describe-contents.html index 50b398ce87..bd69b5e92e 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/describe-contents.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/index.html index 8fd1aecfb6..a39bffe37a 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -107,13 +107,13 @@

Properties

@@ -152,13 +152,13 @@

Properties

diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/to-string.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/to-string.html index b3ee0e7550..e988c08851 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/to-string.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/to-string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/value.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/value.html index 7ccfecebe9..2dd04f51a9 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/value.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/value.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/write-to-parcel.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/write-to-parcel.html index 7f534c3e98..deb525e22e 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/write-to-parcel.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing-amount/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/-c-r-e-a-t-o-r.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/-c-r-e-a-t-o-r.html index 5b575f4922..db6528f5f2 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/-c-r-e-a-t-o-r.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/describe-contents.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/describe-contents.html index c28c558807..6d616beaec 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/describe-contents.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/has-payer-acceptance.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/has-payer-acceptance.html index 2df98e8b08..a6f4ace639 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/has-payer-acceptance.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/has-payer-acceptance.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/index.html index f7278c6bef..34ba314519 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -122,13 +122,13 @@

Properties

@@ -167,13 +167,13 @@

Properties

diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/is-card-amount-immutable.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/is-card-amount-immutable.html index 9b74b8dd59..efd4e0c148 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/is-card-amount-immutable.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/is-card-amount-immutable.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/monthly-payment.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/monthly-payment.html index c7396532d1..f96a02f11f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/monthly-payment.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/monthly-payment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/term.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/term.html index de32bf24fe..7e806abced 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/term.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/term.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-cost.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-cost.html index dd61cc97ac..904da89ae1 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-cost.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-cost.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-interest.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-interest.html index 838dd32880..e73f8a8496 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-interest.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/total-interest.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/write-to-parcel.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/write-to-parcel.html index fe1f9d0b15..b5d9b2d46c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/write-to-parcel.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-credit-financing/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/index.html index c366d1bf4f..00841a80db 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/on-result.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/on-result.html index 813bffa01d..7ff2a2d391 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/on-result.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-flow-started-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-c-r-e-a-t-o-r.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-c-r-e-a-t-o-r.html index 29dd3db620..54ae4b23fe 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-c-r-e-a-t-o-r.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-c-r-e-d-i-t.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-c-r-e-d-i-t.html index 54de1c22b2..7e6e45b378 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-c-r-e-d-i-t.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-c-r-e-d-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-d-e-b-i-t.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-d-e-b-i-t.html index 15c8e100af..4c0292ea7b 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-d-e-b-i-t.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-k-i-n-d_-d-e-b-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-pay-pal-line-item.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-pay-pal-line-item.html index 537c27f7c5..5ec37496da 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-pay-pal-line-item.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/-pay-pal-line-item.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/describe-contents.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/describe-contents.html index c98452c12d..a2f593d3cb 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/describe-contents.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/description.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/description.html index 7f83d47c6c..ca3f0b7122 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/description.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/description.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/index.html index f5dd8b7265..34318bcbe6 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -124,13 +124,13 @@

Properties

@@ -229,13 +229,13 @@

Properties

diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/kind.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/kind.html index 84ab4264da..d8d75b726b 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/kind.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/kind.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/name.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/name.html index 14493cf1b9..f0bb44b6a7 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/name.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/product-code.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/product-code.html index b52f2f7cf4..4e6e2547fe 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/product-code.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/product-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/quantity.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/quantity.html index 7fa31ac040..bd071690ad 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/quantity.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/quantity.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/to-json.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/to-json.html index b10899bd9d..2e82f6293a 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/to-json.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/to-json.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-amount.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-amount.html index 12f38b6ac0..b4cb50db5d 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-amount.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-tax-amount.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-tax-amount.html index 9364d127e1..dbb2c1b9b5 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-tax-amount.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/unit-tax-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/url.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/url.html index 1a6644113b..f77fc715ba 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/url.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/write-to-parcel.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/write-to-parcel.html index 8fd6edbbff..532157acf9 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/write-to-parcel.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-line-item/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/index.html index d703e48b52..cdc08429cf 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-failure.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-failure.html index 5c28660f6d..a7eb3886b0 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-failure.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-success.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-success.html index 38bd325567..5e141ca66b 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-success.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-listener/on-pay-pal-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-a-u-t-h-o-r-i-z-e.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-a-u-t-h-o-r-i-z-e.html index 8ce3e6a7ac..aea55b6d4f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-a-u-t-h-o-r-i-z-e.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-a-u-t-h-o-r-i-z-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-o-r-d-e-r.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-o-r-d-e-r.html index bdef1b3780..9764c17ccb 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-o-r-d-e-r.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-o-r-d-e-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-s-a-l-e.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-s-a-l-e.html index fcb6024995..476371b497 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-s-a-l-e.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/-s-a-l-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/index.html index f2c2e88dd7..7fbcc159d0 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-payment-intent/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-b-i-l-l-i-n-g.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-b-i-l-l-i-n-g.html index 72fa03bf9e..a130425bea 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-b-i-l-l-i-n-g.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-b-i-l-l-i-n-g.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-l-o-g-i-n.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-l-o-g-i-n.html index abf1bed80d..ecfc57cf6c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-l-o-g-i-n.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-l-a-n-d-i-n-g_-p-a-g-e_-t-y-p-e_-l-o-g-i-n.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-pay-pal-request.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-pay-pal-request.html index db2a3ac18e..81d8f4eee3 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-pay-pal-request.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/-pay-pal-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/billing-agreement-description.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/billing-agreement-description.html index a0b9041a5f..cbf11b9665 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/billing-agreement-description.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/billing-agreement-description.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/describe-contents.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/describe-contents.html index 6f93feb240..8b47208c1f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/describe-contents.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/display-name.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/display-name.html index c9681fe51f..0f347bbeeb 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/display-name.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/display-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/index.html index 36a69b0d8f..838ee2e715 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -199,13 +199,13 @@

Properties

@@ -319,13 +319,13 @@

Properties

diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-editable.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-editable.html index d3ce297b3f..338a6124b9 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-editable.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-editable.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-required.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-required.html index 1783d53b73..93ddd46b9c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-required.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/is-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/landing-page-type.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/landing-page-type.html index 3306eb369a..775e4e2491 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/landing-page-type.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/landing-page-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/line-items.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/line-items.html index a471873a6b..2d9b357131 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/line-items.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/line-items.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/locale-code.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/locale-code.html index a4ce525250..6b1661a03a 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/locale-code.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/locale-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/merchant-account-id.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/merchant-account-id.html index 509dda5b9b..4b669ab12f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/merchant-account-id.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/merchant-account-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/risk-correlation-id.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/risk-correlation-id.html index e9d76f2ea9..6aa6dbcde9 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/risk-correlation-id.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/risk-correlation-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-line-items.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-line-items.html index 4a9d06c778..95ce551ac0 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-line-items.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-line-items.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-editable.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-editable.html index d5ebfd0cbd..4996079d9f 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-editable.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-editable.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-required.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-required.html index 765d72e396..5116f686ad 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-required.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/set-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/shipping-address-override.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/shipping-address-override.html index 051a906c5d..d177129411 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/shipping-address-override.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/shipping-address-override.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/write-to-parcel.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/write-to-parcel.html index db23292858..495cf91465 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-request/write-to-parcel.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-c-r-e-a-t-o-r.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-c-r-e-a-t-o-r.html index 0361dd5698..e6719d3c80 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-c-r-e-a-t-o-r.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-pay-pal-vault-request.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-pay-pal-vault-request.html index e5b92bb712..e1115630ca 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-pay-pal-vault-request.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/-pay-pal-vault-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/describe-contents.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/describe-contents.html index 77490a5b0d..2c96395927 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/describe-contents.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/index.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/index.html index 25acab4848..3266726472 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/index.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -199,13 +199,13 @@

Properties

@@ -334,13 +334,13 @@

Properties

diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/should-offer-credit.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/should-offer-credit.html index be5fc940e9..c3823c850c 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/should-offer-credit.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/should-offer-credit.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/write-to-parcel.html b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/write-to-parcel.html index d2995d693d..365b5f5471 100644 --- a/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/write-to-parcel.html +++ b/docs/PayPal/com.braintreepayments.api/-pay-pal-vault-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/com.braintreepayments.api/index.html b/docs/PayPal/com.braintreepayments.api/index.html index 0621c15518..0ffdbc7aa7 100644 --- a/docs/PayPal/com.braintreepayments.api/index.html +++ b/docs/PayPal/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPal/index.html b/docs/PayPal/index.html index f9e502c4c3..5a623cdbe2 100644 --- a/docs/PayPal/index.html +++ b/docs/PayPal/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/index.html b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/index.html index 2a4bd4245a..cb66463e39 100644 --- a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/index.html +++ b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/on-result.html b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/on-result.html index 51ad0c21ca..81bcbfe8ff 100644 --- a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/on-result.html +++ b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/-pay-pal-data-collector.html b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/-pay-pal-data-collector.html index f7033b4582..ed97f4e678 100644 --- a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/-pay-pal-data-collector.html +++ b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/-pay-pal-data-collector.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/collect-device-data.html b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/collect-device-data.html index da13a5b006..11abe0404e 100644 --- a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/collect-device-data.html +++ b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/collect-device-data.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/index.html b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/index.html index 7e1fd43a44..c7e25683ec 100644 --- a/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/index.html +++ b/docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalDataCollector/com.braintreepayments.api/index.html b/docs/PayPalDataCollector/com.braintreepayments.api/index.html index 0b5bee10cc..87f1dfdeed 100644 --- a/docs/PayPalDataCollector/com.braintreepayments.api/index.html +++ b/docs/PayPalDataCollector/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalDataCollector/index.html b/docs/PayPalDataCollector/index.html index 64c2ce89ba..51679e0d7d 100644 --- a/docs/PayPalDataCollector/index.html +++ b/docs/PayPalDataCollector/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/-c-r-e-a-t-o-r.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/-c-r-e-a-t-o-r.html index e0ea5bc5b7..efd5174492 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/-c-r-e-a-t-o-r.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/authenticate-url.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/authenticate-url.html index cc255c9712..85a00d555e 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/authenticate-url.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/authenticate-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/billing-address.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/billing-address.html index 245040fd67..6bae96f0e6 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/billing-address.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/client-metadata-id.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/client-metadata-id.html index a76661640d..738c84122b 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/client-metadata-id.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/client-metadata-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/credit-financing.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/credit-financing.html index f18e425a55..f2b3e50aa6 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/credit-financing.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/credit-financing.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/email.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/email.html index a745678627..b5f9c34840 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/email.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/first-name.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/first-name.html index 2615b9b2ea..31a53585d3 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/first-name.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/first-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/index.html index 05b5f893f8..f770826850 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -171,13 +171,13 @@

Properties

@@ -276,13 +276,13 @@

Properties

diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/last-name.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/last-name.html index 3f614dd74c..83659a6850 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/last-name.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/last-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/payer-id.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/payer-id.html index d54716e53a..aff6dd5974 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/payer-id.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/payer-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/phone.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/phone.html index 64535c33eb..f859f54eb5 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/phone.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/phone.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/set-payer-info.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/set-payer-info.html index 1b5a4a2ad1..998b2492f5 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/set-payer-info.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/set-payer-info.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/shipping-address.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/shipping-address.html index 523c88985e..d4973669aa 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/shipping-address.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/shipping-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/write-to-parcel.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/write-to-parcel.html index 489cc5b822..4cbcf3731e 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/write-to-parcel.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-account-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/-pay-pal-native-checkout-client.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/-pay-pal-native-checkout-client.html index ea9020ceb3..2181e12ca9 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/-pay-pal-native-checkout-client.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/-pay-pal-native-checkout-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/index.html index e53ad5b821..ed3e1ea8a7 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/launch-native-checkout.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/launch-native-checkout.html index f16ad011b6..74ec842130 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/launch-native-checkout.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/launch-native-checkout.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/set-listener.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/set-listener.html index 34d19dd5e3..196be0414f 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/set-listener.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/set-listener.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/tokenize-pay-pal-account.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/tokenize-pay-pal-account.html index 0149559dae..f1e186c9ea 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/tokenize-pay-pal-account.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-client/tokenize-pay-pal-account.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/-c-r-e-a-t-o-r.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/-c-r-e-a-t-o-r.html index c9b766d001..d358f54424 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/-c-r-e-a-t-o-r.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/currency.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/currency.html index 61778afc28..6d588f83cb 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/currency.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/currency.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/describe-contents.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/describe-contents.html index b315ab69b7..dba2846d5a 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/describe-contents.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/index.html index 5de61009cb..0addfe0bba 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -107,13 +107,13 @@

Properties

@@ -152,13 +152,13 @@

Properties

diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/to-string.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/to-string.html index e3360a81fd..b6cf170880 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/to-string.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/to-string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/value.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/value.html index 0a3d41e7e9..c7de561419 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/value.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/value.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/write-to-parcel.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/write-to-parcel.html index 24b66853ac..ee1f23124c 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/write-to-parcel.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing-amount/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/-c-r-e-a-t-o-r.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/-c-r-e-a-t-o-r.html index ea2f3e0450..ac7a00d791 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/-c-r-e-a-t-o-r.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/describe-contents.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/describe-contents.html index 6e184ead53..0935ff39ab 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/describe-contents.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/has-payer-acceptance.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/has-payer-acceptance.html index a2083c7cb7..34d12503f6 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/has-payer-acceptance.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/has-payer-acceptance.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/index.html index 1649cd2fe6..cb856f0e90 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -122,13 +122,13 @@

Properties

@@ -167,13 +167,13 @@

Properties

diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/is-card-amount-immutable.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/is-card-amount-immutable.html index a71e1054c3..042549e3c9 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/is-card-amount-immutable.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/is-card-amount-immutable.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/monthly-payment.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/monthly-payment.html index c1fee2c625..59c087a896 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/monthly-payment.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/monthly-payment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/term.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/term.html index 886ead69a9..769e50d589 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/term.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/term.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-cost.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-cost.html index 291370bbef..a65c9ca344 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-cost.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-cost.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-interest.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-interest.html index 69058a8c40..a0cd5c09a0 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-interest.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/total-interest.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/write-to-parcel.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/write-to-parcel.html index 2876fda551..f992789abc 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/write-to-parcel.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-credit-financing/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/index.html index da4448e1a6..cdd773613b 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/on-result.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/on-result.html index c94742aa61..c64900c97f 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/on-result.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-internal-client-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-c-r-e-a-t-o-r.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-c-r-e-a-t-o-r.html index 2250e03661..edfc56c1e0 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-c-r-e-a-t-o-r.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-c-r-e-d-i-t.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-c-r-e-d-i-t.html index 989eff0326..4c3ad2bcc8 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-c-r-e-d-i-t.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-c-r-e-d-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-d-e-b-i-t.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-d-e-b-i-t.html index f7f00a4ce6..7c87db3e23 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-d-e-b-i-t.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-k-i-n-d_-d-e-b-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-pay-pal-native-checkout-line-item.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-pay-pal-native-checkout-line-item.html index 0bf67ae473..aedb6c71c4 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-pay-pal-native-checkout-line-item.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/-pay-pal-native-checkout-line-item.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/describe-contents.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/describe-contents.html index 07beb6b189..1912c71598 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/describe-contents.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/description.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/description.html index b9a993438e..42cc85382e 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/description.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/description.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/index.html index 1d660d965e..0315a678ae 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -124,13 +124,13 @@

Properties

@@ -229,13 +229,13 @@

Properties

diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/kind.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/kind.html index 5f83f716ca..fe620c27d1 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/kind.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/kind.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/name.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/name.html index bf78669b1c..a8e722fd69 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/name.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/product-code.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/product-code.html index 26f45b4c57..f5ef466599 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/product-code.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/product-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/quantity.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/quantity.html index 47c9fb4cd7..0f6e096766 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/quantity.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/quantity.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/to-json.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/to-json.html index d82c952f7e..f0b591bb03 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/to-json.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/to-json.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-amount.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-amount.html index 0680908000..8516db9989 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-amount.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-tax-amount.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-tax-amount.html index fb665a895e..c693f626bb 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-tax-amount.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/unit-tax-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/url.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/url.html index b1df2b9dcb..b0a24fa2e9 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/url.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/write-to-parcel.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/write-to-parcel.html index 93c9f7df78..de5b89917c 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/write-to-parcel.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-line-item/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/index.html index 34f6ddfc69..00c7dcf3e9 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-failure.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-failure.html index 184cbf6432..a84913da34 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-failure.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-success.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-success.html index ca9cfc2e4d..fcce910adf 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-success.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-listener/on-pay-pal-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-a-u-t-h-o-r-i-z-e.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-a-u-t-h-o-r-i-z-e.html index 8eb87130f6..9907994b32 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-a-u-t-h-o-r-i-z-e.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-a-u-t-h-o-r-i-z-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-o-r-d-e-r.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-o-r-d-e-r.html index d1b9666400..9686ca7a74 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-o-r-d-e-r.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-o-r-d-e-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-s-a-l-e.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-s-a-l-e.html index 653b54ecd9..5acc17cb6b 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-s-a-l-e.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/-s-a-l-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/index.html index 5e77401040..a6f990cd2d 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-payment-intent/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-c-r-e-a-t-o-r.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-c-r-e-a-t-o-r.html index f5d587124c..2c48088252 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-c-r-e-a-t-o-r.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-pay-pal-native-checkout-request.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-pay-pal-native-checkout-request.html index 89ef41018a..07c7b1f257 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-pay-pal-native-checkout-request.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-pay-pal-native-checkout-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html index b6e1fdf041..de6b3d0f67 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-c-o-m-m-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html index 1e45d649ca..d71ce488c5 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/-u-s-e-r_-a-c-t-i-o-n_-d-e-f-a-u-l-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/amount.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/amount.html index 71b0235aa7..23ee148d31 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/amount.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/currency-code.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/currency-code.html index 53558e8202..823d9a32d9 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/currency-code.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/currency-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/describe-contents.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/describe-contents.html index 5acc80dcdd..3a2f4ee165 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/describe-contents.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/index.html index 9c8249f158..31e602d32a 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -214,13 +214,13 @@

Properties

@@ -334,13 +334,13 @@

Properties

diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/intent.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/intent.html index 3d00596b01..6e87da8270 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/intent.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/intent.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-offer-pay-later.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-offer-pay-later.html index 598cbf2208..e68f1c10f1 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-offer-pay-later.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-offer-pay-later.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-request-billing-agreement.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-request-billing-agreement.html index 1c0677c40c..3b9e7c01c5 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-request-billing-agreement.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/should-request-billing-agreement.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/user-action.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/user-action.html index 56a06ddb5a..bd7e4797a3 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/user-action.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/user-action.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/write-to-parcel.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/write-to-parcel.html index e5e42d29c0..71c315e6af 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/write-to-parcel.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/index.html index 6a536af97b..1e4ebdd68b 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/on-result.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/on-result.html index 34dbded8d1..2b9721a79c 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/on-result.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-result-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-c-r-e-a-t-o-r.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-c-r-e-a-t-o-r.html index fe4484bee5..7e6319a182 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-c-r-e-a-t-o-r.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-pay-pal-native-checkout-vault-request.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-pay-pal-native-checkout-vault-request.html index ff73d66f35..54d30d8824 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-pay-pal-native-checkout-vault-request.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/-pay-pal-native-checkout-vault-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/describe-contents.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/describe-contents.html index c1533f2378..e47ff33ded 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/describe-contents.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/index.html index 30f9253278..b9f27356d3 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -199,13 +199,13 @@

Properties

@@ -289,13 +289,13 @@

Properties

diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/should-offer-credit.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/should-offer-credit.html index daba2a89b4..e8a93fc920 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/should-offer-credit.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/should-offer-credit.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/write-to-parcel.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/write-to-parcel.html index d56bd003a9..7e7f058730 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/write-to-parcel.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-checkout-vault-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/-pay-pal-native-request.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/-pay-pal-native-request.html index ae324fc2e9..23d0d104ee 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/-pay-pal-native-request.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/-pay-pal-native-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/billing-agreement-description.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/billing-agreement-description.html index b3b82e673d..fd39e4313b 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/billing-agreement-description.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/billing-agreement-description.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/describe-contents.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/describe-contents.html index 791faceadf..cbe52b36fc 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/describe-contents.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/display-name.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/display-name.html index 808a7695b0..99f681f3c6 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/display-name.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/display-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/index.html index 2e5de608ea..33c43c1442 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -199,13 +199,13 @@

Properties

@@ -274,13 +274,13 @@

Properties

diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-editable.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-editable.html index d92caf832f..4d3571a522 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-editable.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-editable.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-required.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-required.html index 0f942197c0..c4b0178692 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-required.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/is-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/line-items.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/line-items.html index 95f9ce0b26..0488d41e3c 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/line-items.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/line-items.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/locale-code.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/locale-code.html index 6c124c3e4a..6624cf0319 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/locale-code.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/locale-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/merchant-account-id.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/merchant-account-id.html index f206742dbf..c88c2e7ced 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/merchant-account-id.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/merchant-account-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/return-url.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/return-url.html index 8b62e20c9b..08b6a11e45 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/return-url.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/return-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/risk-correlation-id.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/risk-correlation-id.html index c9ca72f21b..af888140a3 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/risk-correlation-id.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/risk-correlation-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-line-items.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-line-items.html index 275eb67e48..05b2f44bcf 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-line-items.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-line-items.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-editable.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-editable.html index a0eee96197..4340ffbe5a 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-editable.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-editable.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-required.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-required.html index 98526ace49..345ab35cb6 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-required.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/set-shipping-address-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/shipping-address-override.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/shipping-address-override.html index 70c4ed982c..dae7db3b8b 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/shipping-address-override.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/shipping-address-override.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/user-authentication-email.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/user-authentication-email.html index 0eea436092..2073932827 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/user-authentication-email.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/user-authentication-email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/write-to-parcel.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/write-to-parcel.html index 2e618a7888..4fb4686077 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/write-to-parcel.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/com.braintreepayments.api/index.html b/docs/PayPalNativeCheckout/com.braintreepayments.api/index.html index 9323bea9ac..86c3545e10 100644 --- a/docs/PayPalNativeCheckout/com.braintreepayments.api/index.html +++ b/docs/PayPalNativeCheckout/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/PayPalNativeCheckout/index.html b/docs/PayPalNativeCheckout/index.html index 6ba2dc85aa..073466cf02 100644 --- a/docs/PayPalNativeCheckout/index.html +++ b/docs/PayPalNativeCheckout/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/-s-e-p-a-direct-debit-client.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/-s-e-p-a-direct-debit-client.html index a4f1c00c85..b60d934f45 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/-s-e-p-a-direct-debit-client.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/-s-e-p-a-direct-debit-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/index.html index 559fc4cd28..b23b10645d 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/set-listener.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/set-listener.html index ddd24990fb..881d4d256d 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/set-listener.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/set-listener.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/tokenize.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/tokenize.html index d7ad54f0b7..44fd1fce70 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/tokenize.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-client/tokenize.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/index.html index 0c74067e60..761f5ba0ef 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-failure.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-failure.html index 2b970243cc..5a9f08809b 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-failure.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-success.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-success.html index 0c11634dd4..05349ae988 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-success.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-listener/on-s-e-p-a-direct-debit-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-o-n-e_-o-f-f/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-o-n-e_-o-f-f/index.html index 6293cf0c56..04187d6573 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-o-n-e_-o-f-f/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-o-n-e_-o-f-f/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-r-e-c-u-r-r-e-n-t/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-r-e-c-u-r-r-e-n-t/index.html index 7398501090..81c46bf4f9 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-r-e-c-u-r-r-e-n-t/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/-r-e-c-u-r-r-e-n-t/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/index.html index 8804c43318..069456fc5f 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/to-string.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/to-string.html index cc6818d707..b227ae8e16 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/to-string.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/to-string.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/value-of.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/value-of.html index 1411137556..ad7255f7b9 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/value-of.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/value-of.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/values.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/values.html index 3c17b48d4c..d40f829b93 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/values.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-mandate-type/values.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/-c-r-e-a-t-o-r.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/-c-r-e-a-t-o-r.html index 9ef96d93c9..d25de79c52 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/-c-r-e-a-t-o-r.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/customer-id.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/customer-id.html index 8eaca19535..a21a088cb9 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/customer-id.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/customer-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/iban-last-four.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/iban-last-four.html index 4e3b733faf..aeb55d96fb 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/iban-last-four.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/iban-last-four.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/index.html index 93e02522c5..b8fef5eff2 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/mandate-type.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/mandate-type.html index f1ee84b4be..d2fd92bdcd 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/mandate-type.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/mandate-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/write-to-parcel.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/write-to-parcel.html index 67d995e35e..c05504beb5 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/write-to-parcel.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/account-holder-name.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/account-holder-name.html index 363459d988..eac509c68d 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/account-holder-name.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/account-holder-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/billing-address.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/billing-address.html index c559a85bb4..d8d0b3e1d2 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/billing-address.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/customer-id.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/customer-id.html index 2431661dc5..2bb4600552 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/customer-id.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/customer-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/iban.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/iban.html index a5a46d041f..d7b137e014 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/iban.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/iban.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/index.html index a6b0d4ce82..7359992256 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/locale.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/locale.html index b6b05e0543..cf696db5ec 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/locale.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/locale.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/mandate-type.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/mandate-type.html index f5c0e4cb9e..48f80b99e9 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/mandate-type.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/mandate-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/merchant-account-id.html b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/merchant-account-id.html index 25fe76794b..9ccdc81e14 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/merchant-account-id.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/-s-e-p-a-direct-debit-request/merchant-account-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/com.braintreepayments.api/index.html b/docs/SEPADirectDebit/com.braintreepayments.api/index.html index 03e313f3ff..b93ae2d26e 100644 --- a/docs/SEPADirectDebit/com.braintreepayments.api/index.html +++ b/docs/SEPADirectDebit/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SEPADirectDebit/index.html b/docs/SEPADirectDebit/index.html index 2ddf67bd0c..669a0bfb70 100644 --- a/docs/SEPADirectDebit/index.html +++ b/docs/SEPADirectDebit/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/index.html b/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/index.html index db35fce21d..c4d8d39934 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/on-result.html b/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/on-result.html index daec1f77b1..d449e6e33d 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/on-result.html +++ b/docs/SamsungPay/com.braintreepayments.api/-build-custom-sheet-payment-info-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/index.html index 11485d4efe..713900b3c0 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/on-result.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/on-result.html index 26e466eeeb..37060c607d 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/on-result.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-activate-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/-samsung-pay-client.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/-samsung-pay-client.html index d7deed130a..22315eed61 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/-samsung-pay-client.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/-samsung-pay-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/activate-samsung-pay.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/activate-samsung-pay.html index 0654220913..2292dae353 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/activate-samsung-pay.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/activate-samsung-pay.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/build-custom-sheet-payment-info.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/build-custom-sheet-payment-info.html index 330af846d8..eefadb367d 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/build-custom-sheet-payment-info.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/build-custom-sheet-payment-info.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/index.html index 351547b723..dd8ad5f0bc 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/is-ready-to-pay.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/is-ready-to-pay.html index 5b06401499..4780946170 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/is-ready-to-pay.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/is-ready-to-pay.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/start-samsung-pay.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/start-samsung-pay.html index 1772498f21..3ed8e1beaa 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/start-samsung-pay.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/start-samsung-pay.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-custom-sheet.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-custom-sheet.html index d40e3cb79d..778c47a065 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-custom-sheet.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-custom-sheet.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-samsung-pay.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-samsung-pay.html index f2713ffea2..502f2b04e1 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-samsung-pay.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-client/update-samsung-pay.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-a-p-p_-n-e-e-d-s_-u-p-d-a-t-e.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-a-p-p_-n-e-e-d-s_-u-p-d-a-t-e.html index eeb4bf7fe0..812a4681a5 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-a-p-p_-n-e-e-d-s_-u-p-d-a-t-e.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-a-p-p_-n-e-e-d-s_-u-p-d-a-t-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-e-r-r-o-r_-u-n-k-n-o-w-n.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-e-r-r-o-r_-u-n-k-n-o-w-n.html index ec70487b89..72cf5062dc 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-e-r-r-o-r_-u-n-k-n-o-w-n.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-e-r-r-o-r_-u-n-k-n-o-w-n.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-r-e-a-d-y.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-r-e-a-d-y.html index e26bb7a620..ba8d3ceed5 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-r-e-a-d-y.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-r-e-a-d-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-s-u-p-p-o-r-t-e-d.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-s-u-p-p-o-r-t-e-d.html index 91e9c6f25e..ea72ab6bca 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-s-u-p-p-o-r-t-e-d.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o-t_-s-u-p-p-o-r-t-e-d.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o_-s-u-p-p-o-r-t-e-d_-c-a-r-d-s_-i-n_-w-a-l-l-e-t.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o_-s-u-p-p-o-r-t-e-d_-c-a-r-d-s_-i-n_-w-a-l-l-e-t.html index bfc4b65f27..1c5a545b15 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o_-s-u-p-p-o-r-t-e-d_-c-a-r-d-s_-i-n_-w-a-l-l-e-t.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-n-o_-s-u-p-p-o-r-t-e-d_-c-a-r-d-s_-i-n_-w-a-l-l-e-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-s-e-t-u-p_-n-o-t_-c-o-m-p-l-e-t-e-d.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-s-e-t-u-p_-n-o-t_-c-o-m-p-l-e-t-e-d.html index cfdfc39121..d06f0e4727 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-s-e-t-u-p_-n-o-t_-c-o-m-p-l-e-t-e-d.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/-s-a-m-s-u-n-g_-p-a-y_-s-e-t-u-p_-n-o-t_-c-o-m-p-l-e-t-e-d.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/index.html index eb5022546c..10f00eb92d 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-error/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/error-code.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/error-code.html index eff327e082..8ef6146d5b 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/error-code.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/error-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/index.html index 270e52189e..9d4367c56e 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-exception/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/index.html index 73273e50b1..eb466824a5 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/on-result.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/on-result.html index 4f3d1474d6..c005cf10fe 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/on-result.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-is-ready-to-pay-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/index.html index d209257aa0..9469319007 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-card-info-updated.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-card-info-updated.html index b603c683c5..9a453d4f59 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-card-info-updated.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-card-info-updated.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-error.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-error.html index dfc3a9f27e..8ba5fd5d0e 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-error.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-error.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-success.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-success.html index 53b51e1c06..edd9039b17 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-success.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-listener/on-samsung-pay-start-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/-c-r-e-a-t-o-r.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/-c-r-e-a-t-o-r.html index 84ba59295e..0778181bb1 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/-c-r-e-a-t-o-r.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/bin-data.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/bin-data.html index 8855fe7e89..c72615a14f 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/bin-data.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/bin-data.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/card-type.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/card-type.html index 636aac0c22..286d0434d2 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/card-type.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/card-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/index.html index 5e7b771cd0..87488e0c06 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/last-four.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/last-four.html index 0211c34e90..c00cb5bde1 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/last-four.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/last-four.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/write-to-parcel.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/write-to-parcel.html index c9ffb47325..8f6bddaa83 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/write-to-parcel.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/index.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/index.html index b12f4e484b..1a680ca862 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/on-result.html b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/on-result.html index 7c4ae0c5ea..17031d53f5 100644 --- a/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/on-result.html +++ b/docs/SamsungPay/com.braintreepayments.api/-samsung-pay-update-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/com.braintreepayments.api/index.html b/docs/SamsungPay/com.braintreepayments.api/index.html index f8657e6509..34362dea2c 100644 --- a/docs/SamsungPay/com.braintreepayments.api/index.html +++ b/docs/SamsungPay/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/SamsungPay/index.html b/docs/SamsungPay/index.html index cf17ef829c..e7ea9f55d9 100644 --- a/docs/SamsungPay/index.html +++ b/docs/SamsungPay/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/index.html index 699e1406b7..b34486b366 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/on-validated.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/on-validated.html index 67d55004f8..c2c33d8339 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/on-validated.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-activity/on-validated.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-c-r-e-a-t-o-r.html index 3e9c6e2de2..bcb8a92f5a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-three-d-secure-additional-information.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-three-d-secure-additional-information.html index 9d7e0846dd..4ab360346f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-three-d-secure-additional-information.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/-three-d-secure-additional-information.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-age-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-age-indicator.html index 24ea0cd303..2c12d88294 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-age-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-age-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-date.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-date.html index 6a9522fcf7..cb3470ff4c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-date.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-date.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-indicator.html index bb8249b764..180e18a2df 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-change-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-create-date.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-create-date.html index 3b9a23eba5..22863b0589 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-create-date.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-create-date.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-id.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-id.html index b5b04e38ab..74552c1127 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-id.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-purchases.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-purchases.html index 41fb886f47..ed56ab8b5c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-purchases.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-purchases.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-date.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-date.html index 747fc6ea3e..7f380f9af8 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-date.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-date.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-indicator.html index acdfa430ab..f56c7bfa84 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/account-pwd-change-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/add-card-attempts.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/add-card-attempts.html index e30c068ca8..8c2b8df2ca 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/add-card-attempts.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/add-card-attempts.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/address-match.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/address-match.html index 7a363389d1..0e82bebd8c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/address-match.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/address-match.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/authentication-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/authentication-indicator.html index 3a5f2dd4ef..b031c22784 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/authentication-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/authentication-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-email.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-email.html index a42f797693..afec67e88a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-email.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-timeframe.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-timeframe.html index 3ad2e52189..7154ecfac6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-timeframe.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/delivery-timeframe.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/describe-contents.html index c0996b7140..cbe6d41c48 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/fraud-activity.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/fraud-activity.html index 5534aac8a1..337babd9a6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/fraud-activity.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/fraud-activity.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-amount.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-amount.html index 848e4ad9c6..11ac9bb8b6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-amount.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-count.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-count.html index 50041baa4f..ad9b283588 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-count.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-count.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-currency-code.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-currency-code.html index 8312202cec..524cad31df 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-currency-code.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/gift-card-currency-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/index.html index f99d7d2bc8..c4eb408538 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -304,13 +304,13 @@

Properties

@@ -469,13 +469,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/installment.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/installment.html index 4e2bf59f5f..02b50c66f2 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/installment.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/installment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/ip-address.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/ip-address.html index c92cf6a5ff..b9309f721f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/ip-address.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/ip-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/order-description.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/order-description.html index d8cf5a162a..f9f0847f6e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/order-description.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/order-description.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-age.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-age.html index 6b21d61ff3..9e2dd4e353 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-age.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-age.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-indicator.html index fa5b94f5d2..236bbe7664 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/payment-account-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-date.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-date.html index 2b945b7a40..d3ac342ef8 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-date.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-date.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-indicator.html index c3c16dd480..113502ef8c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/preorder-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/product-code.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/product-code.html index b8eaa19a6d..bac9ded47d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/product-code.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/product-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/purchase-date.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/purchase-date.html index e18991d73b..7b8c101708 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/purchase-date.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/purchase-date.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-end.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-end.html index f89433d58c..79eb6ab548 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-end.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-end.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-frequency.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-frequency.html index a08c850572..bac7d02a22 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-frequency.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/recurring-frequency.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/reorder-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/reorder-indicator.html index 9e2ec8cdd8..2956ba678e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/reorder-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/reorder-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/sdk-max-timeout.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/sdk-max-timeout.html index a4dd3f19f1..dabc361541 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/sdk-max-timeout.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/sdk-max-timeout.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-date.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-date.html index 9127fb5431..6b7caf61e7 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-date.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-date.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-indicator.html index 2f5d9a7756..46603e576f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address-usage-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address.html index 01e721c8ad..73a888abd7 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-method-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-method-indicator.html index dde9d9d848..902bbe6fcc 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-method-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-method-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-name-indicator.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-name-indicator.html index 5fdc335f0d..083e7ebb07 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-name-indicator.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/shipping-name-indicator.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/tax-amount.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/tax-amount.html index 10e3e6885c..f74f4f61f7 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/tax-amount.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/tax-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/to-json.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/to-json.html index 41784bacee..7fe2130162 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/to-json.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/to-json.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-day.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-day.html index 16e294b273..989b8ef903 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-day.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-day.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-year.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-year.html index 536e5f5d20..0a6f902c20 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-year.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/transaction-count-year.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/user-agent.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/user-agent.html index f95ae98b88..37b48a8f2e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/user-agent.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/user-agent.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/work-phone-number.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/work-phone-number.html index aa732f0d6c..c85c60a35a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/work-phone-number.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/work-phone-number.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/write-to-parcel.html index 4db0eaaf60..c4638a6bbc 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-additional-information/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/-three-d-secure-client.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/-three-d-secure-client.html index fd3e0bbb87..8e99c7eaa1 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/-three-d-secure-client.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/-three-d-secure-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/continue-perform-verification.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/continue-perform-verification.html index edffcec7c2..c9afd44ef9 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/continue-perform-verification.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/continue-perform-verification.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/index.html index d0cc10a629..95d15b104b 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/initialize-challenge-with-lookup-response.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/initialize-challenge-with-lookup-response.html index c181d70a19..2b17b13aa7 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/initialize-challenge-with-lookup-response.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/initialize-challenge-with-lookup-response.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-activity-result.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-activity-result.html index f68e7ec26e..4cb3a0be20 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-activity-result.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-activity-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-browser-switch-result.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-browser-switch-result.html index d33012467d..75099c5376 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-browser-switch-result.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/on-browser-switch-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/perform-verification.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/perform-verification.html index b2ef4bf16b..c0f3c8720b 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/perform-verification.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/perform-verification.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/prepare-lookup.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/prepare-lookup.html index 19c7ae3878..cc381a0cbb 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/prepare-lookup.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/prepare-lookup.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/set-listener.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/set-listener.html index 572ec31d13..d780a3b746 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/set-listener.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-client/set-listener.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/index.html index d0bfad3ca6..de40dbc051 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-failure.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-failure.html index 7bc8ff714e..faaa3afe34 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-failure.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-success.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-success.html index e0cc5bd1dd..767bb672da 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-success.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-listener/on-three-d-secure-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-c-r-e-a-t-o-r.html index db404d8008..070803fa43 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-three-d-secure-lookup.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-three-d-secure-lookup.html index 820a9f0142..6b6719216c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-three-d-secure-lookup.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/-three-d-secure-lookup.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/acs-url.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/acs-url.html index 23a4fa8f46..431af7d99e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/acs-url.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/acs-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/describe-contents.html index c336b4711b..07e8416392 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/index.html index 793bc1bd09..1a745965dc 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -139,13 +139,13 @@

Properties

@@ -184,13 +184,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/md.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/md.html index 2cf0e5c9c1..df5fff9087 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/md.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/md.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/pareq.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/pareq.html index 0fd1d04f3f..aaa8ff47c4 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/pareq.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/pareq.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/requires-user-authentication.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/requires-user-authentication.html index d79dd4b6e0..50a0abcac3 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/requires-user-authentication.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/requires-user-authentication.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/term-url.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/term-url.html index 052788fec3..805563c3d1 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/term-url.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/term-url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/three-d-secure-version.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/three-d-secure-version.html index 735badd6a3..ca101445bd 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/three-d-secure-version.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/three-d-secure-version.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/transaction-id.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/transaction-id.html index 079ec0b4aa..93bbafd0ec 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/transaction-id.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/transaction-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/write-to-parcel.html index 22bc5d755b..ae7c3b3d95 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-lookup/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-c-r-e-a-t-o-r.html index 68bc428160..7dbdb9457e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-three-d-secure-postal-address.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-three-d-secure-postal-address.html index 1537fc9c05..1eac6b32f5 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-three-d-secure-postal-address.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/-three-d-secure-postal-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/country-code-alpha2.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/country-code-alpha2.html index cf1de7a803..c403eb43f6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/country-code-alpha2.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/country-code-alpha2.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/describe-contents.html index e59d2ffe7b..7de8e0cb27 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/extended-address.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/extended-address.html index cdb427e304..74eace0690 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/extended-address.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/extended-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/given-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/given-name.html index 2d23849b7e..795f23347b 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/given-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/given-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/index.html index ec8bcc3b83..534e9817ea 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -139,13 +139,13 @@

Properties

@@ -244,13 +244,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/line3.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/line3.html index fb4c559321..539fd12fb3 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/line3.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/line3.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/locality.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/locality.html index c9bd5dd391..24bd5e3d32 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/locality.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/locality.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/phone-number.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/phone-number.html index 082b565922..1a60411d4c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/phone-number.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/phone-number.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/postal-code.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/postal-code.html index c872bad574..0077da6e3d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/postal-code.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/postal-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/region.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/region.html index 6a87875605..67fb72d1ce 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/region.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/region.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/street-address.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/street-address.html index 07402a9329..97955ef707 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/street-address.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/street-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/surname.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/surname.html index dae7c80d72..b53761887d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/surname.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/surname.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/to-json.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/to-json.html index 929b2a113e..dbeb4b8b34 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/to-json.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/to-json.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/write-to-parcel.html index 739ba57e26..db4baa6d11 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-postal-address/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/index.html index 42da88b2b0..c9dc93933e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/on-result.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/on-result.html index baf53f9fdb..1b56da1368 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/on-result.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-prepare-lookup-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-b-o-t-h.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-b-o-t-h.html index 485d95b30e..286bfbaa25 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-b-o-t-h.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-b-o-t-h.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-a-t-o-r.html index 3bf129cc61..ee70de1835 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-d-i-t.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-d-i-t.html index 5e5e47ed76..65f7df061d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-d-i-t.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-c-r-e-d-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-d-e-b-i-t.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-d-e-b-i-t.html index 30d5d4574b..76e5fd72f4 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-d-e-b-i-t.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-d-e-b-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-h-t-m-l.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-h-t-m-l.html index a1559c60fe..2917f71249 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-h-t-m-l.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-h-t-m-l.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-l-o-w_-v-a-l-u-e.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-l-o-w_-v-a-l-u-e.html index 9b2c8b8dc3..0c72ddb6c0 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-l-o-w_-v-a-l-u-e.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-l-o-w_-v-a-l-u-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-m-u-l-t-i_-s-e-l-e-c-t.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-m-u-l-t-i_-s-e-l-e-c-t.html index 9b111e313b..e63d85824e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-m-u-l-t-i_-s-e-l-e-c-t.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-m-u-l-t-i_-s-e-l-e-c-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-n-a-t-i-v-e.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-n-a-t-i-v-e.html index 69ecadea8a..3138b1489d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-n-a-t-i-v-e.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-n-a-t-i-v-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-o-b.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-o-b.html index 79f62643df..f1bf8e83e6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-o-b.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-o-b.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-t-p.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-t-p.html index 4dddda7fab..c0a85b7980 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-t-p.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-o-t-p.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-r-e-n-d-e-r_-h-t-m-l.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-r-e-n-d-e-r_-h-t-m-l.html index 017929cbad..9df280a490 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-r-e-n-d-e-r_-h-t-m-l.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-r-e-n-d-e-r_-h-t-m-l.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-e-c-u-r-e_-c-o-r-p-o-r-a-t-e.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-e-c-u-r-e_-c-o-r-p-o-r-a-t-e.html index 658f7a2588..dc37858688 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-e-c-u-r-e_-c-o-r-p-o-r-a-t-e.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-e-c-u-r-e_-c-o-r-p-o-r-a-t-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-i-n-g-l-e_-s-e-l-e-c-t.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-i-n-g-l-e_-s-e-l-e-c-t.html index 1a254b9f6b..6937ef02eb 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-i-n-g-l-e_-s-e-l-e-c-t.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-s-i-n-g-l-e_-s-e-l-e-c-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-a-n-s-a-c-t-i-o-n_-r-i-s-k_-a-n-a-l-y-s-i-s.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-a-n-s-a-c-t-i-o-n_-r-i-s-k_-a-n-a-l-y-s-i-s.html index 55bbe70968..65a50fa124 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-a-n-s-a-c-t-i-o-n_-r-i-s-k_-a-n-a-l-y-s-i-s.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-a-n-s-a-c-t-i-o-n_-r-i-s-k_-a-n-a-l-y-s-i-s.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-u-s-t-e-d_-b-e-n-e-f-i-c-i-a-r-y.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-u-s-t-e-d_-b-e-n-e-f-i-c-i-a-r-y.html index b583f0bc36..67d982e78f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-u-s-t-e-d_-b-e-n-e-f-i-c-i-a-r-y.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-t-r-u-s-t-e-d_-b-e-n-e-f-i-c-i-a-r-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-three-d-secure-request.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-three-d-secure-request.html index de753f57b3..3edafe1206 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-three-d-secure-request.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-three-d-secure-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_1.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_1.html index 1158dcdd11..9a5f81a85d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_1.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_1.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_2.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_2.html index a228f72b70..fb3afc5832 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_2.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/-v-e-r-s-i-o-n_2.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/account-type.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/account-type.html index c1f01b9f94..336fd11c2a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/account-type.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/account-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/additional-information.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/additional-information.html index c6283d8d07..ed1a829677 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/additional-information.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/additional-information.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/amount.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/amount.html index dececd54cd..a4bf9d1dd0 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/amount.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/billing-address.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/billing-address.html index bd84f61309..d2b68a4ba6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/billing-address.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/build.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/build.html index beb54364bd..892e2bee05 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/build.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/build.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/describe-contents.html index b231e17534..9fbb9363d2 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/email.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/email.html index 3144c0141b..f966ff49ce 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/email.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/index.html index 9bec4e6ff4..68f629dfaf 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -334,13 +334,13 @@

Properties

@@ -529,13 +529,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-card-add-challenge-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-card-add-challenge-requested.html index 44f50212ff..6f0c09780c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-card-add-challenge-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-card-add-challenge-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-challenge-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-challenge-requested.html index 388854c489..93d4881407 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-challenge-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-challenge-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-data-only-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-data-only-requested.html index 80f357a5f7..ba8afbf078 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-data-only-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-data-only-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-exemption-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-exemption-requested.html index 74e7cd0012..b2336879ce 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-exemption-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/is-exemption-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/mobile-phone-number.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/mobile-phone-number.html index c194fa4333..dd813dd486 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/mobile-phone-number.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/mobile-phone-number.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/nonce.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/nonce.html index d77e55e2d7..52c9ba5438 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/nonce.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/nonce.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/render-types.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/render-types.html index 22daed495e..909b5737a6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/render-types.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/render-types.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/requested-exemption-type.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/requested-exemption-type.html index bc818f4568..0d8eb17c28 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/requested-exemption-type.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/requested-exemption-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-card-add-challenge-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-card-add-challenge-requested.html index 42a18f4027..b8b3fbe661 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-card-add-challenge-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-card-add-challenge-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-challenge-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-challenge-requested.html index 6385edb13b..99b772b90c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-challenge-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-challenge-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-data-only-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-data-only-requested.html index 1ada8e503d..eb39adeab3 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-data-only-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-data-only-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-exemption-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-exemption-requested.html index 121ce3f8dd..09055d7a1a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-exemption-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/set-exemption-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/shipping-method.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/shipping-method.html index c4df177a66..a4c29bd7ca 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/shipping-method.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/shipping-method.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/ui-type.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/ui-type.html index f7cecc2d14..23d4c7af98 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/ui-type.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/ui-type.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v1-ui-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v1-ui-customization.html index 9366344cae..ad3706ea3d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v1-ui-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v1-ui-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v2-ui-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v2-ui-customization.html index cfe09ec40f..94378bfb9a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v2-ui-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/v2-ui-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/version-requested.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/version-requested.html index 2afe0747f1..736a48ee65 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/version-requested.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/version-requested.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/write-to-parcel.html index 3761c5a93b..2407bc8447 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/index.html index ad383d9a4d..24c0ccac54 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/on-result.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/on-result.html index 86964b1d91..e12328849d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/on-result.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/-c-r-e-a-t-o-r.html index 054a6f100a..c7a50f9e23 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/describe-contents.html index 66298c4577..e7a0a59470 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/error-message.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/error-message.html index 52582c968f..f37bb55edd 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/error-message.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/error-message.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/index.html index 8f765768b1..c6ae9e4209 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -92,13 +92,13 @@

Properties

@@ -152,13 +152,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/lookup.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/lookup.html index 3d3fcf31c5..c7dda98a08 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/lookup.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/lookup.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/tokenized-card.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/tokenized-card.html index 503ffe2756..a32eeb875d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/tokenized-card.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/tokenized-card.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/write-to-parcel.html index e0c165449e..33c938b92f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-result/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-l-e-c-t-r-o-n-i-c_-d-e-l-i-v-e-r-y.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-l-e-c-t-r-o-n-i-c_-d-e-l-i-v-e-r-y.html index e32eb24638..c8639c3907 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-l-e-c-t-r-o-n-i-c_-d-e-l-i-v-e-r-y.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-l-e-c-t-r-o-n-i-c_-d-e-l-i-v-e-r-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-x-p-e-d-i-t-e-d.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-x-p-e-d-i-t-e-d.html index 705d3d65ef..5ba7824421 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-x-p-e-d-i-t-e-d.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-e-x-p-e-d-i-t-e-d.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-g-r-o-u-n-d.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-g-r-o-u-n-d.html index 247df01a3b..d7a152fdaf 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-g-r-o-u-n-d.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-g-r-o-u-n-d.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-p-r-i-o-r-i-t-y.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-p-r-i-o-r-i-t-y.html index 6cd8523052..14d81b5fa8 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-p-r-i-o-r-i-t-y.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-p-r-i-o-r-i-t-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-a-m-e_-d-a-y.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-a-m-e_-d-a-y.html index 7ae5d938e5..8cb6400f68 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-a-m-e_-d-a-y.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-a-m-e_-d-a-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-h-i-p_-t-o_-s-t-o-r-e.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-h-i-p_-t-o_-s-t-o-r-e.html index 777e17e3c7..2df633ac33 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-h-i-p_-t-o_-s-t-o-r-e.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/-s-h-i-p_-t-o_-s-t-o-r-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/index.html index 9d24eff634..9514c1c79d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-shipping-method/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-c-r-e-a-t-o-r.html index f70800831d..d6ad57d1d1 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-three-d-secure-v1-ui-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-three-d-secure-v1-ui-customization.html index 7f215ff130..65987e9cc2 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-three-d-secure-v1-ui-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/-three-d-secure-v1-ui-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/describe-contents.html index d4036e85dd..9e84447ee4 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/index.html index 6730da44e8..d1c2395404 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -109,13 +109,13 @@

Properties

@@ -139,13 +139,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-button-text.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-button-text.html index 6ebadf19e6..4da34b31c4 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-button-text.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-button-text.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-description.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-description.html index 426f92dde0..d4ebd4c736 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-description.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/redirect-description.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/write-to-parcel.html index 3c861c08d3..051189d5f5 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v1-ui-customization/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/-c-r-e-a-t-o-r.html index c0743a7442..95753b0093 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/describe-contents.html index f27b8ad3fe..bef9607f9f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/index.html index cf1fc9b534..61e321d8ef 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -92,13 +92,13 @@

Properties

@@ -122,13 +122,13 @@

Properties

@@ -202,23 +202,23 @@

Inheritors

- + - +
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-color.html index 303837ee28..9996d06817 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-name.html index 28a89dd569..e8ba33a048 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-size.html index 0927c88e76..22e50c5828 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/write-to-parcel.html index 5ec842ac61..4063b9986d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-base-customization/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-c-r-e-a-t-o-r.html index b180986efe..3a32dd9a05 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-three-d-secure-v2-button-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-three-d-secure-v2-button-customization.html index a9c3ae7bb7..c95e1b7732 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-three-d-secure-v2-button-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/-three-d-secure-v2-button-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/describe-contents.html index b918b9c9c8..54af80b8e2 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-background-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-background-color.html index 417669cbba..d4d37b93d3 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-background-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-background-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-corner-radius.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-corner-radius.html index bcf8010d1a..adf5b4df24 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-corner-radius.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-corner-radius.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-color.html index 8b7cd51bd9..8c2f9ccdac 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-name.html index 74b4fb0cca..5d21deea29 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-size.html index b4e8e48f68..9fd1b1184f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/get-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/index.html index 6497610a6f..ceb0eccb1f 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -259,13 +259,13 @@

Properties

@@ -289,13 +289,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-background-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-background-color.html index 778fff0dff..14c3cac236 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-background-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-background-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-corner-radius.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-corner-radius.html index c974ae9bcb..8e99c1d22a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-corner-radius.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-corner-radius.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-color.html index c843320291..d531ec8391 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-name.html index 8506686853..3ed6af1f36 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-size.html index e9623b6564..0c11cc25fa 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/set-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/write-to-parcel.html index ac2b92db41..47c31d0924 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-button-customization/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-c-r-e-a-t-o-r.html index 4a63d10200..83a0645855 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-three-d-secure-v2-label-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-three-d-secure-v2-label-customization.html index 42b46a854a..ed47bad9f9 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-three-d-secure-v2-label-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/-three-d-secure-v2-label-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/describe-contents.html index 9ed0872cf1..17e2ea529d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-color.html index f79f4361d2..c9ad335005 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-name.html index b7a9f42894..daf8251b33 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-size.html index 8a9948e725..3b4fbd1a43 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-heading-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-color.html index 8426ba6c6a..a3b425074c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-name.html index cc96129663..0b573d38f8 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-size.html index 28db75d0d2..f0a615cf0e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/get-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/index.html index a0828d75e8..1111212cb2 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -289,13 +289,13 @@

Properties

@@ -319,13 +319,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-color.html index 2e69e58a66..5553d90198 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-name.html index 1fd7f448b4..fb28b560c9 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-size.html index 1585f7aef8..ad73e92f65 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-heading-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-color.html index c399b947ab..988a02126d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-name.html index 33ce7ad252..7fc2622092 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-size.html index c77ba1e6b5..55990eab3e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/set-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/write-to-parcel.html index 06cbbd927d..023da83655 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-label-customization/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-c-r-e-a-t-o-r.html index 26b8459464..ec0d3772d2 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-three-d-secure-v2-text-box-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-three-d-secure-v2-text-box-customization.html index 4ae93abc24..d41c06e7dd 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-three-d-secure-v2-text-box-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/-three-d-secure-v2-text-box-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/describe-contents.html index 5234a6a06a..512cd26e85 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-color.html index 7e2aaf07f1..dbbbe143a1 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-width.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-width.html index 434e37f867..b7e9e9d1c6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-width.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-border-width.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-corner-radius.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-corner-radius.html index a2406a779a..ae92e90f66 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-corner-radius.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-corner-radius.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-color.html index 35a32b575b..1d1f16cd59 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-name.html index 9904bdcf5b..b0d26206fe 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-size.html index 9e35669273..4559082389 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/get-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/index.html index c75beaa7a0..59e18d1209 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -289,13 +289,13 @@

Properties

@@ -319,13 +319,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-color.html index 625375a9ed..6ee7e293bb 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-width.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-width.html index 67ad6745f4..a4d7beb195 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-width.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-border-width.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-corner-radius.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-corner-radius.html index 0e93651cfa..aaee4ced62 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-corner-radius.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-corner-radius.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-color.html index d70c56da39..dea378824c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-name.html index 4b5f27f692..ca32f4a3e9 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-size.html index a5c2872866..134cb0d22c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/set-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/write-to-parcel.html index f529a590a8..f943b9f6e2 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-text-box-customization/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-c-r-e-a-t-o-r.html index ba8e2d5d0f..cefe919e33 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-three-d-secure-v2-toolbar-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-three-d-secure-v2-toolbar-customization.html index cabfc5aca8..68991f7cfa 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-three-d-secure-v2-toolbar-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/-three-d-secure-v2-toolbar-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/describe-contents.html index 06d5e71594..59ca36f518 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-background-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-background-color.html index 00a90e6297..4b3f5cce7e 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-background-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-background-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-button-text.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-button-text.html index 3b368fe4de..bb4f186de1 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-button-text.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-button-text.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-header-text.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-header-text.html index 0d2a074114..545f71d44d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-header-text.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-header-text.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-color.html index cc88edb98e..9ea3406bc3 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-name.html index 7f90342415..8fe7e3be67 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-size.html index d10d2a6f2b..7f69b2349c 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/get-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/index.html index 5f39bcb9da..2f6a56c311 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -289,13 +289,13 @@

Properties

@@ -319,13 +319,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-background-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-background-color.html index c6ae3afb1b..2f8fd41cdd 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-background-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-background-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-button-text.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-button-text.html index e456a6e8c8..68cc4f5a1d 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-button-text.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-button-text.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-header-text.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-header-text.html index 3b5c757c77..e992c7c5a6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-header-text.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-header-text.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-color.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-color.html index 2b4256a2a3..d552f31358 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-color.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-color.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-name.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-name.html index c0df940cee..7c07675cb5 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-name.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-size.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-size.html index e62e2d5e5c..c1a6756b27 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-size.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/set-text-font-size.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/write-to-parcel.html index 56042251e0..2a93667eb3 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-toolbar-customization/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-a-n-c-e-l.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-a-n-c-e-l.html index c32e067a85..30061da452 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-a-n-c-e-l.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-a-n-c-e-l.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-o-n-t-i-n-u-e.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-o-n-t-i-n-u-e.html index d4de4abf96..762f048a87 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-o-n-t-i-n-u-e.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-c-o-n-t-i-n-u-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-n-e-x-t.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-n-e-x-t.html index ab22ae71d3..30260d8a70 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-n-e-x-t.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-n-e-x-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-r-e-s-e-n-d.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-r-e-s-e-n-d.html index 1e36ca283a..0da9b78a11 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-r-e-s-e-n-d.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-r-e-s-e-n-d.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-v-e-r-i-f-y.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-v-e-r-i-f-y.html index 4ae19285c3..ce9363dc52 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-v-e-r-i-f-y.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-b-u-t-t-o-n_-t-y-p-e_-v-e-r-i-f-y.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-c-r-e-a-t-o-r.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-c-r-e-a-t-o-r.html index 7a01606b0f..8348d70ae6 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-c-r-e-a-t-o-r.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-three-d-secure-v2-ui-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-three-d-secure-v2-ui-customization.html index 2d078f1c1f..d892589de9 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-three-d-secure-v2-ui-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/-three-d-secure-v2-ui-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/button-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/button-customization.html index a05d301354..61f4ee8013 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/button-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/button-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/describe-contents.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/describe-contents.html index 3f9969919d..a31c972a58 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/describe-contents.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/index.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/index.html index 4fd7218d61..82cd770994 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -199,13 +199,13 @@

Properties

@@ -244,13 +244,13 @@

Properties

diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/label-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/label-customization.html index ce97e94979..d2cd859c1b 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/label-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/label-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/text-box-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/text-box-customization.html index 19643fbc0d..3610b403ca 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/text-box-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/text-box-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/toolbar-customization.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/toolbar-customization.html index 953d7e54be..8145aa7d89 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/toolbar-customization.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/toolbar-customization.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/write-to-parcel.html b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/write-to-parcel.html index f93ad97dff..1be17b980a 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/write-to-parcel.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/-three-d-secure-v2-ui-customization/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/com.braintreepayments.api/index.html b/docs/ThreeDSecure/com.braintreepayments.api/index.html index 18d0dc7523..47dc2591d0 100644 --- a/docs/ThreeDSecure/com.braintreepayments.api/index.html +++ b/docs/ThreeDSecure/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/ThreeDSecure/index.html b/docs/ThreeDSecure/index.html index b727a9565b..1f76fa8677 100644 --- a/docs/ThreeDSecure/index.html +++ b/docs/ThreeDSecure/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-c-r-e-a-t-o-r.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-c-r-e-a-t-o-r.html index 95e5c09314..15748e82a5 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-c-r-e-a-t-o-r.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-union-pay-capabilities.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-union-pay-capabilities.html index 373e625c35..83c1cebcb4 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-union-pay-capabilities.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/-union-pay-capabilities.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/describe-contents.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/describe-contents.html index b0df9c5081..ae6bcc484b 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/describe-contents.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/index.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/index.html index 5c25e2a556..ea0207bcf5 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/index.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-debit.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-debit.html index 77120692d6..6f809b86e0 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-debit.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-debit.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-supported.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-supported.html index 45cf9fa973..bf53d12bbe 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-supported.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-supported.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-union-pay.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-union-pay.html index 654b951696..1b37d47de0 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-union-pay.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/is-union-pay.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/supports-two-step-auth-and-capture.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/supports-two-step-auth-and-capture.html index cfb13a956b..f9cffcc454 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/supports-two-step-auth-and-capture.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/supports-two-step-auth-and-capture.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/write-to-parcel.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/write-to-parcel.html index e39e3f7b47..dac3116831 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/write-to-parcel.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-capabilities/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-c-r-e-a-t-o-r.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-c-r-e-a-t-o-r.html index 1c24781b9d..fc8914f59c 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-c-r-e-a-t-o-r.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-union-pay-card.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-union-pay-card.html index 308cdd9921..634744ec1a 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-union-pay-card.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/-union-pay-card.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-enrollment.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-enrollment.html index eb85edad6d..e70bf96bb3 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-enrollment.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-enrollment.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-j-s-o-n.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-j-s-o-n.html index 376bc22aed..8a78382b64 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-j-s-o-n.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/build-j-s-o-n.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/enrollment-id.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/enrollment-id.html index 2487dcfd0b..8999c854e6 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/enrollment-id.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/enrollment-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/index.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/index.html index 54f6a3f0e6..b5909702bc 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/index.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-country-code.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-country-code.html index 383602eec4..abc909a96b 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-country-code.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-country-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-phone-number.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-phone-number.html index 850ea36cea..13df16732d 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-phone-number.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/mobile-phone-number.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/sms-code.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/sms-code.html index 34beb9dcd0..fd330fd308 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/sms-code.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/sms-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/write-to-parcel.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/write-to-parcel.html index 318bbf14dd..de5f262b12 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-card/write-to-parcel.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-card/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/-union-pay-client.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/-union-pay-client.html index 6e0cee6547..259e89c1a5 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/-union-pay-client.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/-union-pay-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/enroll.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/enroll.html index 4b6389e50c..0b4f549e4b 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/enroll.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/enroll.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/fetch-capabilities.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/fetch-capabilities.html index 97adc3bba3..1d64058c02 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/fetch-capabilities.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/fetch-capabilities.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/index.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/index.html index d0704839a7..12af1c9282 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/index.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/tokenize.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/tokenize.html index bf8b1cf98b..b510564386 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-client/tokenize.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-client/tokenize.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/index.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/index.html index 715a186b51..c67bd16549 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/index.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/on-result.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/on-result.html index 160d4d4e2d..94adcddd24 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/on-result.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-enroll-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/id.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/id.html index 44ceef86f9..d17892980e 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/id.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/index.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/index.html index dbd3436a2d..6e775ad62c 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/index.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/is-sms-code-required.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/is-sms-code-required.html index cfa5e416fd..f82d33d2a0 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/is-sms-code-required.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-enrollment/is-sms-code-required.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/index.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/index.html index 1c6b291b79..1d2f738dde 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/index.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/on-result.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/on-result.html index 6d50d19e18..0be0d4e336 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/on-result.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-fetch-capabilities-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/index.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/index.html index 96a63c10c6..46091bdd29 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/index.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/on-result.html b/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/on-result.html index 31fb32005d..3856afa3e4 100644 --- a/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/on-result.html +++ b/docs/UnionPay/com.braintreepayments.api/-union-pay-tokenize-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/com.braintreepayments.api/index.html b/docs/UnionPay/com.braintreepayments.api/index.html index 6c45c40c27..bd828ab3eb 100644 --- a/docs/UnionPay/com.braintreepayments.api/index.html +++ b/docs/UnionPay/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/UnionPay/index.html b/docs/UnionPay/index.html index 7e6717ed5c..1d771ba54a 100644 --- a/docs/UnionPay/index.html +++ b/docs/UnionPay/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/-c-r-e-a-t-o-r.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/-c-r-e-a-t-o-r.html index a0bbbd8234..4555656bbc 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/-c-r-e-a-t-o-r.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/billing-address.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/billing-address.html index ba214f6808..c0a8ad1318 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/billing-address.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/email.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/email.html index 2f2d8f8ff1..5b722aebc3 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/email.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/email.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/external-id.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/external-id.html index 0755f2acb6..e595379337 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/external-id.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/external-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/first-name.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/first-name.html index ec29ec13cc..929977f3e5 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/first-name.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/first-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/index.html index 53ef63c1b7..e3b4251939 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -126,13 +126,13 @@

Properties

@@ -231,13 +231,13 @@

Properties

diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/last-name.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/last-name.html index 49ce862aa9..fcc2286511 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/last-name.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/last-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/phone-number.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/phone-number.html index 8c564390b2..adee9d0a72 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/phone-number.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/phone-number.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/shipping-address.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/shipping-address.html index bd6e619e5a..29d32e861a 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/shipping-address.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/shipping-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/username.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/username.html index e0879a3ea7..925cd57981 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/username.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/username.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/write-to-parcel.html b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/write-to-parcel.html index ab8af924ce..ae320dd4ad 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/write-to-parcel.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-account-nonce/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/-venmo-client.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/-venmo-client.html index b7e713840d..e5d317f0a2 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/-venmo-client.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/-venmo-client.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/index.html index 97b2e17ad0..cf175a3ed6 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/is-ready-to-pay.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/is-ready-to-pay.html index ac63bc1000..ec93113736 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/is-ready-to-pay.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/is-ready-to-pay.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/is-venmo-app-switch-available.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/is-venmo-app-switch-available.html index 80f402e7fc..5b095f47e4 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/is-venmo-app-switch-available.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/is-venmo-app-switch-available.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/on-activity-result.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/on-activity-result.html index ddeccfafa0..7eb488efb4 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/on-activity-result.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/on-activity-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/set-listener.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/set-listener.html index 83dd4e1134..daf0f031da 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/set-listener.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/set-listener.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/show-venmo-in-google-play-store.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/show-venmo-in-google-play-store.html index 4a06184cb0..6279a202c0 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/show-venmo-in-google-play-store.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/show-venmo-in-google-play-store.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-client/tokenize-venmo-account.html b/docs/Venmo/com.braintreepayments.api/-venmo-client/tokenize-venmo-account.html index 9a09728eab..cadc434e7c 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-client/tokenize-venmo-account.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-client/tokenize-venmo-account.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/index.html index 35e696542f..31fed64527 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/on-result.html b/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/on-result.html index 947f0e6aba..382a55f56a 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/on-result.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-is-ready-to-pay-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-c-r-e-a-t-o-r.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-c-r-e-a-t-o-r.html index 4db9d4f086..c44e30d30b 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-c-r-e-a-t-o-r.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-c-r-e-d-i-t.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-c-r-e-d-i-t.html index 07b1d4210e..621dc2ce02 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-c-r-e-d-i-t.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-c-r-e-d-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-d-e-b-i-t.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-d-e-b-i-t.html index e9f7ff8218..a3a473fe18 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-d-e-b-i-t.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-k-i-n-d_-d-e-b-i-t.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-venmo-line-item.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-venmo-line-item.html index 253ec61e0b..e6bcd21c86 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-venmo-line-item.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/-venmo-line-item.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/describe-contents.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/describe-contents.html index a2e6dc5b8f..d1fad04fe7 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/describe-contents.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/description.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/description.html index 53c32ac7db..755c493171 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/description.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/description.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/index.html index dedb4f26b1..5c45b9abb8 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -124,13 +124,13 @@

Properties

@@ -229,13 +229,13 @@

Properties

diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/kind.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/kind.html index ee94924b47..f6e5e39fc6 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/kind.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/kind.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/name.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/name.html index dc937c4cdc..4eb854247a 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/name.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/product-code.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/product-code.html index 4682a5c559..276ec0e5c4 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/product-code.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/product-code.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/quantity.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/quantity.html index ce2bf76ffa..3fa67e3d7a 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/quantity.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/quantity.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/to-json.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/to-json.html index 8fe0e4bda5..86e67f461b 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/to-json.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/to-json.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-amount.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-amount.html index bd3b494aa0..17bc0d7e6f 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-amount.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-tax-amount.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-tax-amount.html index 8d9aa9d745..7c4d283364 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-tax-amount.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/unit-tax-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/url.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/url.html index 85c7652b3c..c202dbd2b4 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/url.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/url.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/write-to-parcel.html b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/write-to-parcel.html index 6d2ca4a49e..16f1c9770d 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-line-item/write-to-parcel.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-line-item/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-listener/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-listener/index.html index 4f93920e1a..0609c3216c 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-listener/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-listener/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-failure.html b/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-failure.html index 102094817b..ee00d66214 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-failure.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-failure.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-success.html b/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-success.html index dec1f5ca63..024860d2c1 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-success.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-listener/on-venmo-success.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/index.html index d58d2705de..fd56649fbf 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/on-result.html b/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/on-result.html index 276ee645c3..f82d7b7e30 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/on-result.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-on-activity-result-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-m-u-l-t-i_-u-s-e.html b/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-m-u-l-t-i_-u-s-e.html index e488036374..37db9961b1 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-m-u-l-t-i_-u-s-e.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-m-u-l-t-i_-u-s-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-s-i-n-g-l-e_-u-s-e.html b/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-s-i-n-g-l-e_-u-s-e.html index af88dc266e..98e6d8e796 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-s-i-n-g-l-e_-u-s-e.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/-s-i-n-g-l-e_-u-s-e.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/index.html index a1da2094eb..795ff82018 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-payment-method-usage/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/-c-r-e-a-t-o-r.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/-c-r-e-a-t-o-r.html index 17738191d5..7e45aefcb8 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/-c-r-e-a-t-o-r.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/-c-r-e-a-t-o-r.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/-venmo-request.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/-venmo-request.html index 9e1557ab3a..152e3a852b 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/-venmo-request.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/-venmo-request.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-billing-address.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-billing-address.html index 392e5c5dc9..e966184a86 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-billing-address.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-billing-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-shipping-address.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-shipping-address.html index 6af4856991..a25f46013d 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-shipping-address.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/collect-customer-shipping-address.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/describe-contents.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/describe-contents.html index 2b4fe5412a..4e9fd8a8fc 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/describe-contents.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/describe-contents.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/discount-amount.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/discount-amount.html index 5ceb9827f1..9a4374ec4b 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/discount-amount.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/discount-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/display-name.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/display-name.html index 457dc0e783..16ffcaf21f 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/display-name.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/display-name.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/index.html index 99b8c63231..b83033c32c 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
@@ -154,13 +154,13 @@

Properties

@@ -229,13 +229,13 @@

Properties

diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/line-items.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/line-items.html index 8e13bb11f1..ea7a9d1875 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/line-items.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/line-items.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/payment-method-usage.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/payment-method-usage.html index a954485590..b9f5c4fe08 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/payment-method-usage.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/payment-method-usage.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/profile-id.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/profile-id.html index e7f712748a..42e19c9f80 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/profile-id.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/profile-id.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/set-line-items.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/set-line-items.html index 31ac3cbb59..27ebc6d3d4 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/set-line-items.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/set-line-items.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/shipping-amount.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/shipping-amount.html index 4ae568c6c9..378d80e673 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/shipping-amount.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/shipping-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/should-vault.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/should-vault.html index 078bb8f89f..dae0f8d586 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/should-vault.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/should-vault.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/sub-total-amount.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/sub-total-amount.html index 3343be49ca..aa82579dec 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/sub-total-amount.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/sub-total-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/tax-amount.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/tax-amount.html index 94a6264e5f..ae6a1d3f6d 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/tax-amount.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/tax-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/total-amount.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/total-amount.html index d31e3f879c..6af2d26365 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/total-amount.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/total-amount.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-request/write-to-parcel.html b/docs/Venmo/com.braintreepayments.api/-venmo-request/write-to-parcel.html index 51139a67db..117935f600 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-request/write-to-parcel.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-request/write-to-parcel.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/index.html b/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/index.html index 9f61da178c..27576e50fd 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/index.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/on-result.html b/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/on-result.html index 6129f1a7c8..19dac9aff4 100644 --- a/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/on-result.html +++ b/docs/Venmo/com.braintreepayments.api/-venmo-tokenize-account-callback/on-result.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/com.braintreepayments.api/index.html b/docs/Venmo/com.braintreepayments.api/index.html index 0c31f74969..851b4e3a8d 100644 --- a/docs/Venmo/com.braintreepayments.api/index.html +++ b/docs/Venmo/com.braintreepayments.api/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/Venmo/index.html b/docs/Venmo/index.html index 96462ea4f6..434b35b5a0 100644 --- a/docs/Venmo/index.html +++ b/docs/Venmo/index.html @@ -34,7 +34,7 @@ -
4.40.0 +
4.40.1
diff --git a/docs/index.html b/docs/index.html index 9d82e2bef9..d03d325464 100644 --- a/docs/index.html +++ b/docs/index.html @@ -40,7 +40,7 @@
-4.40.0
+4.40.1
diff --git a/v4.9.0+_MIGRATION_GUIDE.md b/v4.9.0+_MIGRATION_GUIDE.md index 142e5ddd41..410ed5a3ac 100644 --- a/v4.9.0+_MIGRATION_GUIDE.md +++ b/v4.9.0+_MIGRATION_GUIDE.md @@ -278,8 +278,8 @@ The American Express feature is now supported by implementing the following depe ```groovy dependencies { - implementation 'com.braintreepayments.api:american-express:4.40.0' - implementation 'com.braintreepayments.api:card:4.40.0' + implementation 'com.braintreepayments.api:american-express:4.40.1' + implementation 'com.braintreepayments.api:card:4.40.1' } ``` @@ -338,7 +338,7 @@ The Card feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:card:4.40.0' + implementation 'com.braintreepayments.api:card:4.40.1' } ``` @@ -386,7 +386,7 @@ The PayPal Data Collector feature is now supported in the following dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:paypal-data-collector:4.40.0' + implementation 'com.braintreepayments.api:paypal-data-collector:4.40.1' } ``` @@ -421,7 +421,7 @@ The Local Payment feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:local-payment:4.40.0' + implementation 'com.braintreepayments.api:local-payment:4.40.1' } ``` @@ -496,7 +496,7 @@ The Google Pay feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:google-pay:4.40.0' + implementation 'com.braintreepayments.api:google-pay:4.40.1' } ``` @@ -565,7 +565,7 @@ The PayPal feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:paypal:4.40.0' + implementation 'com.braintreepayments.api:paypal:4.40.1' } ``` @@ -639,7 +639,7 @@ The SamsungPay feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:samsung-pay:4.40.0' + implementation 'com.braintreepayments.api:samsung-pay:4.40.1' } ``` @@ -737,7 +737,7 @@ The Union Pay feature is now supported by implementing the following dependencie ```groovy dependencies { - implementation 'com.braintreepayments.api:union-pay:4.40.0' + implementation 'com.braintreepayments.api:union-pay:4.40.1' } ``` @@ -804,7 +804,7 @@ The Venmo feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:venmo:4.40.0' + implementation 'com.braintreepayments.api:venmo:4.40.1' } ``` @@ -853,7 +853,7 @@ The 3D Secure feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:three-d-secure:4.40.0' + implementation 'com.braintreepayments.api:three-d-secure:4.40.1' } ``` diff --git a/v4_MIGRATION_GUIDE.md b/v4_MIGRATION_GUIDE.md index 95c2fd4ca9..917fb454dd 100644 --- a/v4_MIGRATION_GUIDE.md +++ b/v4_MIGRATION_GUIDE.md @@ -198,8 +198,8 @@ The American Express feature is now supported by implementing the following depe ```groovy dependencies { - implementation 'com.braintreepayments.api:american-express:4.40.0' - implementation 'com.braintreepayments.api:card:4.40.0' + implementation 'com.braintreepayments.api:american-express:4.40.1' + implementation 'com.braintreepayments.api:card:4.40.1' } ``` @@ -258,7 +258,7 @@ The Card feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:card:4.40.0' + implementation 'com.braintreepayments.api:card:4.40.1' } ``` @@ -306,7 +306,7 @@ The Data Collector feature is now supported in the following dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:data-collector:4.40.0' + implementation 'com.braintreepayments.api:data-collector:4.40.1' } ``` @@ -341,7 +341,7 @@ The Local Payment feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:local-payment:4.40.0' + implementation 'com.braintreepayments.api:local-payment:4.40.1' } ``` @@ -422,7 +422,7 @@ The Google Pay feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:google-pay:4.40.0' + implementation 'com.braintreepayments.api:google-pay:4.40.1' } ``` @@ -499,7 +499,7 @@ The PayPal feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:paypal:4.40.0' + implementation 'com.braintreepayments.api:paypal:4.40.1' } ``` @@ -587,7 +587,7 @@ The SamsungPay feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:samsung-pay:4.40.0' + implementation 'com.braintreepayments.api:samsung-pay:4.40.1' } ``` @@ -685,7 +685,7 @@ The Union Pay feature is now supported by implementing the following dependencie ```groovy dependencies { - implementation 'com.braintreepayments.api:union-pay:4.40.0' + implementation 'com.braintreepayments.api:union-pay:4.40.1' } ``` @@ -752,7 +752,7 @@ The Venmo feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:venmo:4.40.0' + implementation 'com.braintreepayments.api:venmo:4.40.1' } ``` @@ -808,7 +808,7 @@ The 3D Secure feature is now supported in a single dependency: ```groovy dependencies { - implementation 'com.braintreepayments.api:three-d-secure:4.40.0' + implementation 'com.braintreepayments.api:three-d-secure:4.40.1' } ``` From 8d5c4f3877146e55b3ee9a0dc6f961478e3c4fc0 Mon Sep 17 00:00:00 2001 From: braintreeps Date: Wed, 13 Dec 2023 16:27:10 +0000 Subject: [PATCH 10/15] Prepare for development --- README.md | 2 +- build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 027ed0f84e..fe22426fc2 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ To preview the latest work in progress builds, add the following SNAPSHOT depend ```groovy dependencies { - implementation 'com.braintreepayments.api:card:4.40.1-SNAPSHOT' + implementation 'com.braintreepayments.api:card:4.40.2-SNAPSHOT' } ``` diff --git a/build.gradle b/build.gradle index cabae02fd0..f5aecdd266 100644 --- a/build.gradle +++ b/build.gradle @@ -97,12 +97,12 @@ allprojects { } } -version '4.40.1' +version '4.40.2-SNAPSHOT' group 'com.braintreepayments' ext { compileSdkVersion = 34 minSdkVersion = 21 - versionCode = 184 + versionCode = 185 targetSdkVersion = 34 versionName = version } From d27b5fdaeff456274d3cc91f28a23ae329d3cd50 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Thu, 14 Dec 2023 16:09:28 -0600 Subject: [PATCH 11/15] SEPA Direct Debit Single Result Object Pattern (#855) * Rename internal callback * Add SEPADirectDebitResult * Add SEPADirectDebitTokenizeCallback * Fix unit tests for tokenize * Rename params * Add SEPADirectDebitPaymentAuthRequest * Use SEPADirectDebitPaymentAuthRequest * Fix unit tests * Fix unit tests * Update demo integration * Update CHANGELOG and migration guid * Fix unit tests * Make internal callback package private * Update SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitClientUnitTest.java Co-authored-by: saperi22 <104481964+saperi22@users.noreply.github.com> --------- Co-authored-by: saperi22 <104481964+saperi22@users.noreply.github.com> --- CHANGELOG.md | 3 +- .../demo/SEPADirectDebitFragment.java | 29 ++-- .../api/SEPADirectDebitApi.java | 2 +- .../api/SEPADirectDebitClient.java | 38 ++--- ...PADirectDebitInternalTokenizeCallback.java | 9 + .../api/SEPADirectDebitLauncher.java | 11 +- .../api/SEPADirectDebitLauncherCallback.java | 2 +- .../SEPADirectDebitPaymentAuthRequest.java | 38 ----- .../api/SEPADirectDebitPaymentAuthRequest.kt | 23 +++ ...DirectDebitPaymentAuthRequestCallback.java | 20 --- ...PADirectDebitPaymentAuthRequestCallback.kt | 15 ++ ...PADirectDebitPaymentAuthRequestParams.java | 25 +++ .../api/SEPADirectDebitPaymentAuthResult.java | 4 +- .../api/SEPADirectDebitResult.kt | 23 +++ .../api/SEPADirectDebitTokenizeCallback.java | 16 -- .../api/SEPADirectDebitTokenizeCallback.kt | 12 ++ .../api/MockSEPADirectDebitApiBuilder.java | 12 +- .../api/SEPADirectDebitApiUnitTest.java | 4 +- .../api/SEPADirectDebitClientUnitTest.java | 155 +++++++++--------- .../api/SEPADirectDebitLauncherUnitTest.java | 10 +- v5_MIGRATION_GUIDE.md | 26 +-- 21 files changed, 266 insertions(+), 211 deletions(-) create mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitInternalTokenizeCallback.java delete mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.java create mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.kt delete mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.java create mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.kt create mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestParams.java create mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitResult.kt delete mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.java create mode 100644 SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index eca62ae1ce..c429191eca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -98,7 +98,8 @@ * Remove `SEPADirectDebitLifecycleObserver` and `SEPADirectDebitListener` * Add `SEPADirectDebitLauncher`, `SEPADirectDebitLauncherCallback`, `SEPADirectDebitPaymentAuthRequestCallback`, `SEPADirectDebitPaymentAuthRequest`, - `SEPADirectDebitPaymentAuthResult`, and `SEPADirectDebitTokenizeCallback` + `SEPADirectDebitResult`, `SEPADirectDebitPaymentAuthRequestParams` and + `SEPADirectDebitTokenizeCallback` * Remove Fragment or Activity requirement from `SEPADirectDebitClient` constructor * Replace `SEPADirectDebitClient#onBrowserSwitchResult` with `SEPADirectDebitClient#tokenize` and modify parameters diff --git a/Demo/src/main/java/com/braintreepayments/demo/SEPADirectDebitFragment.java b/Demo/src/main/java/com/braintreepayments/demo/SEPADirectDebitFragment.java index 8d7ea10ec3..6f954a27df 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/SEPADirectDebitFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/SEPADirectDebitFragment.java @@ -14,7 +14,10 @@ import com.braintreepayments.api.SEPADirectDebitLauncher; import com.braintreepayments.api.SEPADirectDebitMandateType; import com.braintreepayments.api.SEPADirectDebitNonce; +import com.braintreepayments.api.SEPADirectDebitPaymentAuthRequest; import com.braintreepayments.api.SEPADirectDebitRequest; +import com.braintreepayments.api.SEPADirectDebitResult; +import com.braintreepayments.api.UserCanceledException; import java.util.UUID; @@ -32,11 +35,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, sepaDirectDebitClient = new SEPADirectDebitClient(requireContext(), super.getAuthStringArg()); sepaDirectDebitLauncher = new SEPADirectDebitLauncher(sepaDirectDebitBrowserSwitchResult -> - sepaDirectDebitClient.tokenize(sepaDirectDebitBrowserSwitchResult, (sepaDirectDebitNonce, error) -> { - if (error != null) { - handleError(error); - } else { - handleSEPANonce(sepaDirectDebitNonce); + sepaDirectDebitClient.tokenize(sepaDirectDebitBrowserSwitchResult, (result) -> { + if (result instanceof SEPADirectDebitResult.Failure) { + handleError(((SEPADirectDebitResult.Failure) result).getError()); + } else if (result instanceof SEPADirectDebitResult.Cancel) { + handleError(new UserCanceledException("User canceled SEPA Direct Debit")); + } else if (result instanceof SEPADirectDebitResult.Success) { + handleSEPANonce(((SEPADirectDebitResult.Success) result).getNonce()); } }) ); @@ -67,13 +72,13 @@ public void launchSEPADirectDebit(View view) { request.setBillingAddress(billingAddress); request.setMerchantAccountId("EUR-sepa-direct-debit"); - sepaDirectDebitClient.createPaymentAuthRequest(request, (sepaDirectDebitResponse, error) -> { - if (error != null) { - handleError(error); - } else if (sepaDirectDebitResponse.getNonce() != null) { // web-flow mandate not required - handleSEPANonce(sepaDirectDebitResponse.getNonce()); - } else { // web-flow mandate required - sepaDirectDebitLauncher.launch(requireActivity(), sepaDirectDebitResponse); + sepaDirectDebitClient.createPaymentAuthRequest(request, (paymentAuthRequest) -> { + if (paymentAuthRequest instanceof SEPADirectDebitPaymentAuthRequest.Failure) { + handleError(((SEPADirectDebitPaymentAuthRequest.Failure) paymentAuthRequest).getError()); + } else if (paymentAuthRequest instanceof SEPADirectDebitPaymentAuthRequest.LaunchNotRequired) { + handleSEPANonce(((SEPADirectDebitPaymentAuthRequest.LaunchNotRequired) paymentAuthRequest).getNonce()); + } else if (paymentAuthRequest instanceof SEPADirectDebitPaymentAuthRequest.ReadyToLaunch) { + sepaDirectDebitLauncher.launch(requireActivity(), (SEPADirectDebitPaymentAuthRequest.ReadyToLaunch) paymentAuthRequest); } }); } diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitApi.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitApi.java index ffbc3d440a..e600fc6536 100644 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitApi.java +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitApi.java @@ -35,7 +35,7 @@ void createMandate(SEPADirectDebitRequest sepaDirectDebitRequest, String returnU } void tokenize(String ibanLastFour, String customerId, String bankReferenceToken, - String mandateType, final SEPADirectDebitTokenizeCallback callback) { + String mandateType, final SEPADirectDebitInternalTokenizeCallback callback) { try { JSONObject jsonObject = buildTokenizeRequest(ibanLastFour, customerId, bankReferenceToken, mandateType); diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitClient.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitClient.java index cea89aeb59..226fc09cd1 100644 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitClient.java +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitClient.java @@ -47,9 +47,9 @@ public SEPADirectDebitClient(@NonNull Context context, @NonNull String authoriza } /** - * Starts the SEPA tokenization process by creating a {@link SEPADirectDebitPaymentAuthRequest} to be used + * Starts the SEPA tokenization process by creating a {@link SEPADirectDebitPaymentAuthRequestParams} to be used * to launch the SEPA mandate flow in - * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest)} + * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest.ReadyToLaunch)} * * @param sepaDirectDebitRequest {@link SEPADirectDebitRequest} * @param callback {@link SEPADirectDebitPaymentAuthRequestCallback} @@ -66,13 +66,13 @@ public void createPaymentAuthRequest(@NonNull final SEPADirectDebitRequest sepaD braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.create-mandate.success"); try { - SEPADirectDebitPaymentAuthRequest paymentAuthRequest = - new SEPADirectDebitPaymentAuthRequest(buildBrowserSwitchOptions(result), null); - callback.onResult(paymentAuthRequest, null); + SEPADirectDebitPaymentAuthRequestParams params = + new SEPADirectDebitPaymentAuthRequestParams(buildBrowserSwitchOptions(result)); + callback.onResult(new SEPADirectDebitPaymentAuthRequest.ReadyToLaunch(params)); } catch (JSONException exception) { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.browser-switch.failure"); - callback.onResult(null, exception); + callback.onResult(new SEPADirectDebitPaymentAuthRequest.Failure(exception)); } } else if (result.getApprovalUrl().equals("null")) { braintreeClient.sendAnalyticsEvent( @@ -87,24 +87,22 @@ public void createPaymentAuthRequest(@NonNull final SEPADirectDebitRequest sepaD if (sepaDirectDebitNonce != null) { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.tokenize.success"); - SEPADirectDebitPaymentAuthRequest paymentAuthRequest = - new SEPADirectDebitPaymentAuthRequest(null, sepaDirectDebitNonce); - callback.onResult(paymentAuthRequest, null); + callback.onResult(new SEPADirectDebitPaymentAuthRequest.LaunchNotRequired(sepaDirectDebitNonce)); } else if (tokenizeError != null) { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.tokenize.failure"); - callback.onResult(null, tokenizeError); + callback.onResult(new SEPADirectDebitPaymentAuthRequest.Failure(tokenizeError)); } }); } else { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.create-mandate.failure"); - callback.onResult(null, new BraintreeException("An unexpected error occurred.")); + callback.onResult(new SEPADirectDebitPaymentAuthRequest.Failure(new BraintreeException("An unexpected error occurred."))); } } else if (createMandateError != null) { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.create-mandate.failure"); - callback.onResult(null, createMandateError); + callback.onResult(new SEPADirectDebitPaymentAuthRequest.Failure(createMandateError)); } }); } @@ -118,19 +116,19 @@ public void createPaymentAuthRequest(@NonNull final SEPADirectDebitRequest sepaD * * @param paymentAuthResult a {@link SEPADirectDebitPaymentAuthResult} received * in the callback of {@link SEPADirectDebitLauncher} - * @param callback {@link SEPADirectDebitTokenizeCallback} + * @param callback {@link SEPADirectDebitInternalTokenizeCallback} */ public void tokenize(@NonNull SEPADirectDebitPaymentAuthResult paymentAuthResult, @NonNull final SEPADirectDebitTokenizeCallback callback) { BrowserSwitchResult browserSwitchResult = paymentAuthResult.getBrowserSwitchResult(); if (browserSwitchResult == null && paymentAuthResult.getError() != null) { - callback.onResult(null, paymentAuthResult.getError()); + callback.onSEPADirectDebitResult(new SEPADirectDebitResult.Failure(paymentAuthResult.getError())); return; } if (browserSwitchResult == null) { - callback.onResult(null, new BraintreeException("An unexpected error occurred.")); + callback.onSEPADirectDebitResult(new SEPADirectDebitResult.Failure(new BraintreeException("An unexpected error occurred."))); return; } @@ -138,7 +136,7 @@ public void tokenize(@NonNull SEPADirectDebitPaymentAuthResult paymentAuthResult switch (result) { case BrowserSwitchStatus.CANCELED: braintreeClient.sendAnalyticsEvent("sepa-direct-debit.browser-switch.canceled"); - callback.onResult(null, new UserCanceledException("User canceled SEPA Debit.")); + callback.onSEPADirectDebitResult(SEPADirectDebitResult.Cancel.INSTANCE); break; case BrowserSwitchStatus.SUCCESS: Uri deepLinkUri = browserSwitchResult.getDeepLinkUrl(); @@ -160,21 +158,21 @@ public void tokenize(@NonNull SEPADirectDebitPaymentAuthResult paymentAuthResult if (sepaDirectDebitNonce != null) { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.tokenize.success"); - callback.onResult(sepaDirectDebitNonce, null); + callback.onSEPADirectDebitResult(new SEPADirectDebitResult.Success(sepaDirectDebitNonce)); } else if (error != null) { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.tokenize.failure"); - callback.onResult(null, error); + callback.onSEPADirectDebitResult(new SEPADirectDebitResult.Failure(error)); } }); } else if (deepLinkUri.getPath().contains("cancel")) { braintreeClient.sendAnalyticsEvent( "sepa-direct-debit.browser-switch.failure"); - callback.onResult(null, new BraintreeException("An unexpected error occurred.")); + callback.onSEPADirectDebitResult(new SEPADirectDebitResult.Failure(new BraintreeException("An unexpected error occurred."))); } } else { braintreeClient.sendAnalyticsEvent("sepa-direct-debit.browser-switch.failure"); - callback.onResult(null, new BraintreeException("Unknown error")); + callback.onSEPADirectDebitResult(new SEPADirectDebitResult.Failure(new BraintreeException("Unknown error"))); } break; } diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitInternalTokenizeCallback.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitInternalTokenizeCallback.java new file mode 100644 index 0000000000..33052743c5 --- /dev/null +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitInternalTokenizeCallback.java @@ -0,0 +1,9 @@ +package com.braintreepayments.api; + +import androidx.annotation.Nullable; + + +interface SEPADirectDebitInternalTokenizeCallback { + + void onResult(@Nullable SEPADirectDebitNonce sepaDirectDebitNonce, @Nullable Exception error); +} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncher.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncher.java index bfea43af5e..87d0e5347a 100644 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncher.java +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncher.java @@ -21,7 +21,7 @@ public class SEPADirectDebitLauncher { * Used to launch the SEPA mandate in a web browser and deliver results to your Activity * * @param callback a {@link SEPADirectDebitLauncherCallback} to handle the result of - * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest)} + * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest.ReadyToLaunch)} */ public SEPADirectDebitLauncher(@NonNull SEPADirectDebitLauncherCallback callback) { this(new BrowserSwitchClient(), callback); @@ -44,9 +44,10 @@ public SEPADirectDebitLauncher(@NonNull SEPADirectDebitLauncherCallback callback * {@link SEPADirectDebitClient#createPaymentAuthRequest(SEPADirectDebitRequest, SEPADirectDebitPaymentAuthRequestCallback)} */ public void launch(@NonNull FragmentActivity activity, @NonNull - SEPADirectDebitPaymentAuthRequest paymentAuthRequest) { + SEPADirectDebitPaymentAuthRequest.ReadyToLaunch paymentAuthRequest) { try { - browserSwitchClient.start(activity, paymentAuthRequest.getBrowserSwitchOptions()); + SEPADirectDebitPaymentAuthRequestParams params = paymentAuthRequest.getRequestParams(); + browserSwitchClient.start(activity, params.getBrowserSwitchOptions()); } catch (BrowserSwitchException e) { callback.onResult(new SEPADirectDebitPaymentAuthResult(e)); } @@ -56,7 +57,7 @@ public void launch(@NonNull FragmentActivity activity, @NonNull * Captures and delivers the result of the browser-based SEPA mandate flow. *

* For most integrations, this method should be invoked in the onResume method of the Activity - * used to invoke {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest)}. + * used to invoke {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest.ReadyToLaunch)}. *

* If the Activity used to launch the SEPA mandate is configured with * android:launchMode="singleTop", this method should be invoked in the onNewIntent method of @@ -65,7 +66,7 @@ public void launch(@NonNull FragmentActivity activity, @NonNull * This method will deliver a {@link SEPADirectDebitPaymentAuthResult} to the * {@link SEPADirectDebitLauncherCallback} used to instantiate this class. The * {@link SEPADirectDebitPaymentAuthResult} should be passed to - * {@link SEPADirectDebitClient#tokenize(SEPADirectDebitPaymentAuthResult, SEPADirectDebitTokenizeCallback)} + * {@link SEPADirectDebitClient#tokenize(SEPADirectDebitPaymentAuthResult, SEPADirectDebitTokenizeCallback)} * * @param context the context used to check for pending results * @param intent the intent to return to your application containing a deep link result from diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncherCallback.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncherCallback.java index 0e26281da7..4e85206365 100644 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncherCallback.java +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitLauncherCallback.java @@ -5,7 +5,7 @@ /** * Used to receive notification that the SEPA mandate web browser flow completed. * Once this is invoked, continue the flow by calling - * {@link SEPADirectDebitClient#tokenize(SEPADirectDebitPaymentAuthResult, SEPADirectDebitTokenizeCallback)} + * {@link SEPADirectDebitClient#tokenize(SEPADirectDebitPaymentAuthResult, SEPADirectDebitInternalTokenizeCallback)} */ public interface SEPADirectDebitLauncherCallback { diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.java deleted file mode 100644 index 77d1cc11c9..0000000000 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.braintreepayments.api; - -import androidx.annotation.Nullable; -import androidx.fragment.app.FragmentActivity; - -/** - * Returned via the {@link SEPADirectDebitPaymentAuthRequestCallback} after calling - * {@link SEPADirectDebitClient#createPaymentAuthRequest(SEPADirectDebitRequest, SEPADirectDebitPaymentAuthRequestCallback)}. - * - * Inspect the {@link SEPADirectDebitNonce} property to determine if tokenization is complete, or - * if you must continue the SEPA mandate web flow via - * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest)} - */ -public class SEPADirectDebitPaymentAuthRequest { - - private BrowserSwitchOptions browserSwitchOptions; - private SEPADirectDebitNonce sepaDirectDebitNonce; - - SEPADirectDebitPaymentAuthRequest(BrowserSwitchOptions browserSwitchOptions, SEPADirectDebitNonce sepaDirectDebitNonce) { - this.browserSwitchOptions = browserSwitchOptions; - this.sepaDirectDebitNonce = sepaDirectDebitNonce; - } - - BrowserSwitchOptions getBrowserSwitchOptions() { - return browserSwitchOptions; - } - - /** - * If this nonce is non-null, then the SEPA mandate is already approved. - * If this nonce is null, continue to present the SEPA mandate web flow via - * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest)} - * - * @return {@link SEPADirectDebitNonce} - */ - public @Nullable SEPADirectDebitNonce getNonce() { - return this.sepaDirectDebitNonce; - } -} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.kt b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.kt new file mode 100644 index 0000000000..6971bc9b9d --- /dev/null +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequest.kt @@ -0,0 +1,23 @@ +package com.braintreepayments.api + +/** + * A request used to launch the continuation of the SEPA Direct Debit flow. + */ +sealed class SEPADirectDebitPaymentAuthRequest { + + /** + * The request was successfully created and is ready to be launched by [SEPADirectDebitLauncher] + */ + class ReadyToLaunch(val requestParams: SEPADirectDebitPaymentAuthRequestParams) : + SEPADirectDebitPaymentAuthRequest() + + /** + * No web-based mandate is required. Send this [nonce] to your server + */ + class LaunchNotRequired(val nonce: SEPADirectDebitNonce) : SEPADirectDebitPaymentAuthRequest() + + /** + * There was an [error] creating the request + */ + class Failure(val error: Exception) : SEPADirectDebitPaymentAuthRequest() +} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.java deleted file mode 100644 index 3a2e3e90b8..0000000000 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.braintreepayments.api; - -import androidx.annotation.Nullable; -import androidx.fragment.app.FragmentActivity; - -/** - * Callback for receiving result of - * {@link SEPADirectDebitClient#createPaymentAuthRequest(SEPADirectDebitRequest, SEPADirectDebitPaymentAuthRequestCallback)}. - */ -public interface SEPADirectDebitPaymentAuthRequestCallback { - - /** - * @param paymentAuthRequest the result of the SEPA create mandate call. If a nonce is present, - * no web-based mandate is required. If a nonce is not present, - * you must trigger the web-based mandate flow via - * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest)} - * @param error an exception that occurred while initiating the SEPA transaction - */ - void onResult(@Nullable SEPADirectDebitPaymentAuthRequest paymentAuthRequest, @Nullable Exception error); -} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.kt b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.kt new file mode 100644 index 0000000000..5b503790ff --- /dev/null +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestCallback.kt @@ -0,0 +1,15 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of + * [SEPADirectDebitClient.createPaymentAuthRequest]. + */ +fun interface SEPADirectDebitPaymentAuthRequestCallback { + /** + * @param paymentAuthRequest the result of the SEPA create mandate call. If a nonce is present, + * no web-based mandate is required. If a nonce is not present, you + * must trigger the web-based mandate flow via + * [SEPADirectDebitLauncher.launch] + */ + fun onResult(paymentAuthRequest: SEPADirectDebitPaymentAuthRequest) +} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestParams.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestParams.java new file mode 100644 index 0000000000..9e88db0bab --- /dev/null +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthRequestParams.java @@ -0,0 +1,25 @@ +package com.braintreepayments.api; + +import androidx.fragment.app.FragmentActivity; + +/** + * Returned via the {@link SEPADirectDebitPaymentAuthRequestCallback} after calling + * {@link SEPADirectDebitClient#createPaymentAuthRequest(SEPADirectDebitRequest, SEPADirectDebitPaymentAuthRequestCallback)}. + * + * Inspect the {@link SEPADirectDebitNonce} property to determine if tokenization is complete, or + * if you must continue the SEPA mandate web flow via + * {@link SEPADirectDebitLauncher#launch(FragmentActivity, SEPADirectDebitPaymentAuthRequest.ReadyToLaunch)} + */ +public class SEPADirectDebitPaymentAuthRequestParams { + + private BrowserSwitchOptions browserSwitchOptions; + + SEPADirectDebitPaymentAuthRequestParams(BrowserSwitchOptions browserSwitchOptions) { + this.browserSwitchOptions = browserSwitchOptions; + } + + BrowserSwitchOptions getBrowserSwitchOptions() { + return browserSwitchOptions; + } + +} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthResult.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthResult.java index d3fbf6978d..44074644b9 100644 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthResult.java +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitPaymentAuthResult.java @@ -1,9 +1,9 @@ package com.braintreepayments.api; /** - * Result received from the SEPA mandate web flow through {@link SEPADirectDebitTokenizeCallback}. + * Result received from the SEPA mandate web flow through {@link SEPADirectDebitInternalTokenizeCallback}. * This result should be passed to - * {@link SEPADirectDebitClient#tokenize(SEPADirectDebitPaymentAuthResult, SEPADirectDebitTokenizeCallback)} )} + * {@link SEPADirectDebitClient#tokenize(SEPADirectDebitPaymentAuthResult, SEPADirectDebitInternalTokenizeCallback)} )} * to complete the SEPA mandate flow. */ public class SEPADirectDebitPaymentAuthResult { diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitResult.kt b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitResult.kt new file mode 100644 index 0000000000..92417d9384 --- /dev/null +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitResult.kt @@ -0,0 +1,23 @@ +package com.braintreepayments.api + +/** + * Result of tokenizing a SEPA Direct Debit payment method + */ +sealed class SEPADirectDebitResult { + + /** + * The SEPA Direct Debit flow completed successfully. This [nonce] should be sent to + * your server. + */ + class Success(val nonce: SEPADirectDebitNonce) : SEPADirectDebitResult() + + /** + * There was an [error] in the SEPA Direct Debit flow. + */ + class Failure(val error: Exception) : SEPADirectDebitResult() + + /** + * The user canceled the SEPA Direct Debit flow. + */ + object Cancel : SEPADirectDebitResult() +} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.java b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.java deleted file mode 100644 index 6a28b66687..0000000000 --- a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.braintreepayments.api; - -import androidx.annotation.Nullable; - -/** - * Callback for receiving result of - * {@link SEPADirectDebitClient#tokenize(SEPADirectDebitPaymentAuthResult, SEPADirectDebitTokenizeCallback)}. - */ -public interface SEPADirectDebitTokenizeCallback { - - /** - * @param sepaDirectDebitNonce {@link SEPADirectDebitNonce} - * @param error an exception that occurred while processing a PayPal result - */ - void onResult(@Nullable SEPADirectDebitNonce sepaDirectDebitNonce, @Nullable Exception error); -} diff --git a/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.kt b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.kt new file mode 100644 index 0000000000..00092919f6 --- /dev/null +++ b/SEPADirectDebit/src/main/java/com/braintreepayments/api/SEPADirectDebitTokenizeCallback.kt @@ -0,0 +1,12 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of [SEPADirectDebitClient.tokenize] + */ +fun interface SEPADirectDebitTokenizeCallback { + /** + * @param sepaDirectDebitResult a success, failure, or cancel result from the SEPA Direct Debit + * flow + */ + fun onSEPADirectDebitResult(sepaDirectDebitResult: SEPADirectDebitResult) +} diff --git a/SEPADirectDebit/src/test/java/com/braintreepayments/api/MockSEPADirectDebitApiBuilder.java b/SEPADirectDebit/src/test/java/com/braintreepayments/api/MockSEPADirectDebitApiBuilder.java index f294059bc1..f9b8de5029 100644 --- a/SEPADirectDebit/src/test/java/com/braintreepayments/api/MockSEPADirectDebitApiBuilder.java +++ b/SEPADirectDebit/src/test/java/com/braintreepayments/api/MockSEPADirectDebitApiBuilder.java @@ -57,8 +57,8 @@ public Void answer(InvocationOnMock invocation) { doAnswer(new Answer() { @Override public Void answer(InvocationOnMock invocation) { - SEPADirectDebitTokenizeCallback callback = - (SEPADirectDebitTokenizeCallback) invocation.getArguments()[4]; + SEPADirectDebitInternalTokenizeCallback callback = + (SEPADirectDebitInternalTokenizeCallback) invocation.getArguments()[4]; if (tokenizeSuccess != null) { callback.onResult(tokenizeSuccess, null); } else if (tokenizeError != null) { @@ -67,13 +67,13 @@ public Void answer(InvocationOnMock invocation) { return null; } }).when(sepaDirectDebitApi).tokenize(anyString(), anyString(), anyString(), anyString(), - any(SEPADirectDebitTokenizeCallback.class)); + any(SEPADirectDebitInternalTokenizeCallback.class)); doAnswer(new Answer() { @Override public Void answer(InvocationOnMock invocation) { - SEPADirectDebitTokenizeCallback callback = - (SEPADirectDebitTokenizeCallback) invocation.getArguments()[4]; + SEPADirectDebitInternalTokenizeCallback callback = + (SEPADirectDebitInternalTokenizeCallback) invocation.getArguments()[4]; if (tokenizeSuccess != null) { callback.onResult(tokenizeSuccess, null); } else if (tokenizeError != null) { @@ -82,7 +82,7 @@ public Void answer(InvocationOnMock invocation) { return null; } }).when(sepaDirectDebitApi).tokenize(anyString(), anyString(), anyString(), anyString(), - any(SEPADirectDebitTokenizeCallback.class)); + any(SEPADirectDebitInternalTokenizeCallback.class)); return sepaDirectDebitApi; } diff --git a/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitApiUnitTest.java b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitApiUnitTest.java index 3688374d42..4abb170886 100644 --- a/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitApiUnitTest.java +++ b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitApiUnitTest.java @@ -22,7 +22,7 @@ public class SEPADirectDebitApiUnitTest { private CreateMandateCallback createMandateCallback; - private SEPADirectDebitTokenizeCallback sepaDirectDebitTokenizeCallback; + private SEPADirectDebitInternalTokenizeCallback sepaDirectDebitTokenizeCallback; private SEPADirectDebitRequest request; private PostalAddress billingAddress; private String returnUrl; @@ -30,7 +30,7 @@ public class SEPADirectDebitApiUnitTest { @Before public void beforeEach() { createMandateCallback = mock(CreateMandateCallback.class); - sepaDirectDebitTokenizeCallback = mock(SEPADirectDebitTokenizeCallback.class); + sepaDirectDebitTokenizeCallback = mock(SEPADirectDebitInternalTokenizeCallback.class); request = new SEPADirectDebitRequest(); request.setAccountHolderName("John Doe"); diff --git a/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitClientUnitTest.java b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitClientUnitTest.java index 95dfd4aef8..e1219f2cb2 100644 --- a/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitClientUnitTest.java +++ b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitClientUnitTest.java @@ -32,7 +32,7 @@ public class SEPADirectDebitClientUnitTest { private CreateMandateResult createMandateResult; private SEPADirectDebitRequest sepaDirectDebitRequest; private SEPADirectDebitTokenizeCallback sepaTokenizeCallback; - private SEPADirectDebitPaymentAuthRequestCallback sepaFlowStartedCallback; + private SEPADirectDebitPaymentAuthRequestCallback paymentAuthRequestCallback; @Before public void beforeEach() { @@ -50,7 +50,7 @@ public void beforeEach() { sepaDirectDebitRequest = new SEPADirectDebitRequest(); sepaTokenizeCallback = mock(SEPADirectDebitTokenizeCallback.class); - sepaFlowStartedCallback = mock(SEPADirectDebitPaymentAuthRequestCallback.class); + paymentAuthRequestCallback = mock(SEPADirectDebitPaymentAuthRequestCallback.class); } @Test @@ -63,19 +63,21 @@ public void tokenize_onCreateMandateRequestSuccess_callsBackSEPAResponse_andSend SEPADirectDebitClient sut = new SEPADirectDebitClient(braintreeClient, sepaDirectDebitApi); - sut.createPaymentAuthRequest(sepaDirectDebitRequest, sepaFlowStartedCallback); + sut.createPaymentAuthRequest(sepaDirectDebitRequest, paymentAuthRequestCallback); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.selected.started"); ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitPaymentAuthRequest.class); - verify(sepaFlowStartedCallback).onResult(captor.capture(), isNull()); + verify(paymentAuthRequestCallback).onResult(captor.capture()); - SEPADirectDebitPaymentAuthRequest sepaResponseResult = captor.getValue(); + SEPADirectDebitPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof SEPADirectDebitPaymentAuthRequest.ReadyToLaunch); + SEPADirectDebitPaymentAuthRequestParams params = ((SEPADirectDebitPaymentAuthRequest.ReadyToLaunch) paymentAuthRequest).getRequestParams(); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.create-mandate.requested"); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.create-mandate.success"); - BrowserSwitchOptions browserSwitchOptions = sepaResponseResult.getBrowserSwitchOptions(); + BrowserSwitchOptions browserSwitchOptions = params.getBrowserSwitchOptions(); assertEquals(Uri.parse("http://www.example.com"), browserSwitchOptions.getUrl()); assertEquals("com.example", browserSwitchOptions.getReturnUrlScheme()); assertEquals(BraintreeRequestCodes.SEPA_DEBIT, browserSwitchOptions.getRequestCode()); @@ -108,42 +110,20 @@ public void tokenize_onCreateMandateRequestSuccess_whenMandateAlreadyApproved_on SEPADirectDebitClient sut = new SEPADirectDebitClient(braintreeClient, sepaDirectDebitApi); - sut.createPaymentAuthRequest(sepaDirectDebitRequest, sepaFlowStartedCallback); + sut.createPaymentAuthRequest(sepaDirectDebitRequest, paymentAuthRequestCallback); ArgumentCaptor captor = ArgumentCaptor.forClass( SEPADirectDebitPaymentAuthRequest.class); - verify(sepaFlowStartedCallback).onResult(captor.capture(), isNull()); - assertEquals(captor.getValue().getNonce(), nonce); - verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.tokenize.success"); - } - - @Test - public void tokenize_onCreateMandateRequestSuccess_whenMandateAlreadyApproved_onTokenizeFailure_callsBackError_andSendsAnalytics() { - // null approval URL indicates mandate approved - createMandateResult = new CreateMandateResult( - "null", - "1234", - "fake-customer-id", - "fake-bank-reference-token", - "ONE_OFF" - ); - - Exception exception = new Exception("tokenize error"); - SEPADirectDebitApi sepaDirectDebitApi = new MockSEPADirectDebitApiBuilder() - .createMandateResultSuccess(createMandateResult) - .tokenizeError(exception) - .build(); + verify(paymentAuthRequestCallback).onResult(captor.capture()); - SEPADirectDebitClient sut = - new SEPADirectDebitClient(braintreeClient, sepaDirectDebitApi); - - sut.createPaymentAuthRequest(sepaDirectDebitRequest, sepaFlowStartedCallback); - verify(sepaFlowStartedCallback).onResult(isNull(), eq(exception)); - verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.tokenize.failure"); + SEPADirectDebitPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof SEPADirectDebitPaymentAuthRequest.LaunchNotRequired); + assertEquals(((SEPADirectDebitPaymentAuthRequest.LaunchNotRequired) paymentAuthRequest).getNonce(), nonce); + verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.tokenize.success"); } @Test - public void tokenize_onCreateMandateRequestSuccess_whenApprovalURLInvalid_callsBackError() { + public void createPaymentAuthRequest_onCreateMandateRequestSuccess_whenApprovalURLInvalid_callsBackError() { createMandateResult = new CreateMandateResult( "", "1234", @@ -159,12 +139,16 @@ public void tokenize_onCreateMandateRequestSuccess_whenApprovalURLInvalid_callsB SEPADirectDebitClient sut = new SEPADirectDebitClient(braintreeClient, sepaDirectDebitApi); - sut.createPaymentAuthRequest(sepaDirectDebitRequest, sepaFlowStartedCallback); + sut.createPaymentAuthRequest(sepaDirectDebitRequest, paymentAuthRequestCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(sepaFlowStartedCallback).onResult(isNull(), captor.capture()); - assertTrue(captor.getValue() instanceof BraintreeException); - assertEquals("An unexpected error occurred.", captor.getValue().getMessage()); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitPaymentAuthRequest.class); + verify(paymentAuthRequestCallback).onResult(captor.capture()); + + SEPADirectDebitPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof SEPADirectDebitPaymentAuthRequest.Failure); + Exception error = ((SEPADirectDebitPaymentAuthRequest.Failure) paymentAuthRequest).getError(); + assertTrue(error instanceof BraintreeException); + assertEquals("An unexpected error occurred.", error.getMessage()); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.create-mandate.failure"); } @@ -186,14 +170,14 @@ public void tokenize_onCreateMandateRequestSuccess_whenApprovalURLNull_callsSEPA SEPADirectDebitClient sut = new SEPADirectDebitClient(braintreeClient, sepaDirectDebitApi); - sut.createPaymentAuthRequest(sepaDirectDebitRequest, sepaFlowStartedCallback); + sut.createPaymentAuthRequest(sepaDirectDebitRequest, paymentAuthRequestCallback); verify(braintreeClient, never()).startBrowserSwitch(any(FragmentActivity.class), any(BrowserSwitchOptions.class)); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.create-mandate.success"); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.tokenize.requested"); verify(sepaDirectDebitApi).tokenize(eq("1234"), eq("fake-customer-id"), eq("fake-bank-reference-token"), eq("ONE_OFF"), - any(SEPADirectDebitTokenizeCallback.class)); + any(SEPADirectDebitInternalTokenizeCallback.class)); } @Test @@ -206,8 +190,14 @@ public void tokenize_onCreateMandateError_returnsErrorToListener_andSendsAnalyti SEPADirectDebitClient sut = new SEPADirectDebitClient(braintreeClient, sepaDirectDebitApi); - sut.createPaymentAuthRequest(sepaDirectDebitRequest, sepaFlowStartedCallback); - verify(sepaFlowStartedCallback).onResult(isNull(), eq(error)); + sut.createPaymentAuthRequest(sepaDirectDebitRequest, paymentAuthRequestCallback); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitPaymentAuthRequest.class); + verify(paymentAuthRequestCallback).onResult(captor.capture()); + + SEPADirectDebitPaymentAuthRequest paymentAuthRequest = captor.getValue(); + assertTrue(paymentAuthRequest instanceof SEPADirectDebitPaymentAuthRequest.Failure); + Exception actualError = ((SEPADirectDebitPaymentAuthRequest.Failure) paymentAuthRequest).getError(); + assertEquals(error, actualError); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.create-mandate.failure"); } @@ -225,11 +215,12 @@ public void onBrowserSwitchResult_whenErrorNotNull_callsBackError() { payPalBrowserSwitchResult = new SEPADirectDebitPaymentAuthResult(expectedError); sut.tokenize(payPalBrowserSwitchResult, sepaTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(sepaTokenizeCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); - assertNotNull(captor.getValue()); - assertEquals(expectedError, captor.getValue()); + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Failure); + assertEquals(expectedError, ((SEPADirectDebitResult.Failure) result).getError()); } @Test @@ -245,11 +236,12 @@ public void onBrowserSwitchResult_whenResultAndErrorNull_callsBackUnexpectedErro payPalBrowserSwitchResult = new SEPADirectDebitPaymentAuthResult((BrowserSwitchResult) null); sut.tokenize(payPalBrowserSwitchResult, sepaTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(sepaTokenizeCallback).onResult(isNull(), captor.capture()); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); - assertNotNull(captor.getValue()); - assertEquals("An unexpected error occurred.", captor.getValue().getMessage()); + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Failure); + assertEquals("An unexpected error occurred.", ((SEPADirectDebitResult.Failure) result).getError().getMessage()); } @Test @@ -270,13 +262,12 @@ public void onBrowserSwitchResult_whenBrowserSwitchStatusCanceled_callsBackUserC sut.tokenize(sepaBrowserSwitchResult, sepaTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(sepaTokenizeCallback).onResult(isNull(), captor.capture()); - verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.browser-switch.canceled"); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); - Exception exception = captor.getValue(); - assertTrue(exception instanceof UserCanceledException); - assertEquals("User canceled SEPA Debit.", exception.getMessage()); + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Cancel); + verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.browser-switch.canceled"); } @Test @@ -311,7 +302,7 @@ public void onBrowserSwitchResult_whenBrowserSwitchStatusSuccess_whenDeepLinkCon verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.browser-switch.success"); verify(sepaDirectDebitApi).tokenize(eq("1234"), eq("customer-id"), eq("bank-reference-token"), eq("ONE_OFF"), - any(SEPADirectDebitTokenizeCallback.class)); + any(SEPADirectDebitInternalTokenizeCallback.class)); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.tokenize.requested"); } @@ -348,7 +339,12 @@ public void onBrowserSwitchResult_whenBrowserSwitchStatusSuccess_onTokenizeSucce sut.tokenize(sepaBrowserSwitchResult, sepaTokenizeCallback); - verify(sepaTokenizeCallback).onResult(eq(nonce), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); + + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Success); + assertEquals(nonce, ((SEPADirectDebitResult.Success) result).getNonce()); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.tokenize.success"); } @@ -384,11 +380,16 @@ public void onBrowserSwitchResult_whenBrowserSwitchStatusSuccess_onTokenizeFailu sut.tokenize(sepaBrowserSwitchResult, sepaTokenizeCallback); - verify(sepaTokenizeCallback).onResult(isNull(), eq(exception)); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); + + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Failure); + assertEquals(exception, ((SEPADirectDebitResult.Failure) result).getError()); verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.tokenize.failure"); verify(sepaDirectDebitApi).tokenize(eq("1234"), eq("customer-id"), eq("bank-reference-token"), eq("ONE_OFF"), - any(SEPADirectDebitTokenizeCallback.class)); + any(SEPADirectDebitInternalTokenizeCallback.class)); } @Test @@ -424,7 +425,12 @@ public void onBrowserSwitchResult_whenBrowserSwitchStatusSuccess_onTokenizeSucce sut.tokenize(sepaBrowserSwitchResult, sepaTokenizeCallback); - verify(sepaTokenizeCallback).onResult(eq(nonce), isNull()); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); + + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Success); + assertEquals(nonce, ((SEPADirectDebitResult.Success) result).getNonce()); } @Test @@ -448,13 +454,14 @@ public void onBrowserSwitchResult_whenBrowserSwitchStatusSuccess_whenDeepLinkCon sut.tokenize(sepaBrowserSwitchResult, sepaTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(sepaTokenizeCallback).onResult(isNull(), captor.capture()); - verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.browser-switch.failure"); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); - Exception exception = captor.getValue(); - assertTrue(exception instanceof BraintreeException); - assertEquals("An unexpected error occurred.", exception.getMessage()); + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Failure); + assertTrue(((SEPADirectDebitResult.Failure) result).getError() instanceof BraintreeException); + assertEquals("An unexpected error occurred.", ((SEPADirectDebitResult.Failure) result).getError().getMessage()); + verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.browser-switch.failure"); } @Test @@ -477,12 +484,14 @@ public void onBrowserSwitchResult_whenBrowserSwitchStatusSuccess_whenDeepLinkURL sut.tokenize(sepaBrowserSwitchResult, sepaTokenizeCallback); - ArgumentCaptor captor = ArgumentCaptor.forClass(Exception.class); - verify(sepaTokenizeCallback).onResult(isNull(), captor.capture()); - verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.browser-switch.failure"); + ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitResult.class); + verify(sepaTokenizeCallback).onSEPADirectDebitResult(captor.capture()); - Exception exception = captor.getValue(); + SEPADirectDebitResult result = captor.getValue(); + assertTrue(result instanceof SEPADirectDebitResult.Failure); + Exception exception = ((SEPADirectDebitResult.Failure) result).getError(); assertTrue(exception instanceof BraintreeException); assertEquals("Unknown error", exception.getMessage()); + verify(braintreeClient).sendAnalyticsEvent("sepa-direct-debit.browser-switch.failure"); } } diff --git a/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitLauncherUnitTest.java b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitLauncherUnitTest.java index 955bca1e75..67583cf9b3 100644 --- a/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitLauncherUnitTest.java +++ b/SEPADirectDebit/src/test/java/com/braintreepayments/api/SEPADirectDebitLauncherUnitTest.java @@ -38,26 +38,28 @@ public void beforeEach() { @Test public void launch_startsBrowserSwitch() throws BrowserSwitchException { - SEPADirectDebitPaymentAuthRequest sepaResponse = mock(SEPADirectDebitPaymentAuthRequest.class); + SEPADirectDebitPaymentAuthRequestParams + sepaResponse = mock(SEPADirectDebitPaymentAuthRequestParams.class); BrowserSwitchOptions options = mock(BrowserSwitchOptions.class); when(sepaResponse.getBrowserSwitchOptions()).thenReturn(options); SEPADirectDebitLauncher sut = new SEPADirectDebitLauncher(browserSwitchClient, sepaLauncherCallback); - sut.launch(activity, sepaResponse); + sut.launch(activity, new SEPADirectDebitPaymentAuthRequest.ReadyToLaunch(sepaResponse)); verify(browserSwitchClient).start(same(activity), same(options)); } @Test public void launch_onError_callsBackError() throws BrowserSwitchException { - SEPADirectDebitPaymentAuthRequest sepaResponse = mock(SEPADirectDebitPaymentAuthRequest.class); + SEPADirectDebitPaymentAuthRequestParams + sepaResponse = mock(SEPADirectDebitPaymentAuthRequestParams.class); BrowserSwitchOptions options = mock(BrowserSwitchOptions.class); when(sepaResponse.getBrowserSwitchOptions()).thenReturn(options); BrowserSwitchException exception = new BrowserSwitchException("error"); doThrow(exception).when(browserSwitchClient).start(same(activity), same(options)); SEPADirectDebitLauncher sut = new SEPADirectDebitLauncher(browserSwitchClient, sepaLauncherCallback); - sut.launch(activity, sepaResponse); + sut.launch(activity, new SEPADirectDebitPaymentAuthRequest.ReadyToLaunch(sepaResponse)); ArgumentCaptor captor = ArgumentCaptor.forClass(SEPADirectDebitPaymentAuthResult.class); diff --git a/v5_MIGRATION_GUIDE.md b/v5_MIGRATION_GUIDE.md index f3d65abc85..b20b5444e5 100644 --- a/v5_MIGRATION_GUIDE.md +++ b/v5_MIGRATION_GUIDE.md @@ -442,9 +442,12 @@ class MyActivity : FragmentActivity() { + // can initialize clients outside of onCreate if desired - initializeClients() + sepaDirectDebitLauncher = SEPADirectDebitLauncher() { paymentAuthResult -> -+ sepaDirectDebitClient.tokenize(paymentAuthResult) { -+ sepaDirectDebitNonce, error -> -+ // handle nonce or error ++ sepaDirectDebitClient.tokenize(paymentAuthResult) { result -> ++ when(result) { ++ is SEPADirectDebitResult.Success -> { /* handle result.nonce */ } ++ is SEPADirectDebitResult.Failure -> { /* handle result.error */ } ++ is SEPADirectDebitResult.Cancel -> { /* handle user canceled */ } ++ } + } + } } @@ -469,13 +472,16 @@ class MyActivity : FragmentActivity() { fun onPaymentButtonClick() { - sepaDirectDebitClient.tokenize(activity, request) -+ sepaDirectDebitClient.tokenize(activity, request) { paymentAuthRequest, error -> -+ if (error != null) { -+ // handle error -+ } else if (paymentAuthRequest.nonce != null) { // web-flow mandate not required -+ // handle nonce -+ } else { // web-flow mandate required -+ sepaDirectDebitLauncher.launch(activity, paymentAuthRequest) ++ sepaDirectDebitClient.tokenize(activity, request) { paymentAuthRequest -> ++ when(paymentAuthRequest) { ++ is (SEPADirectDebitPaymentAuthRequest.Failure) -> { ++ // handle paymentAuthRequest.error ++ is (SEPADirectDebitPaymentAuthRequest.LaunchNotRequired) -> { ++ // web-flow mandate not required, handle paymentAuthRequest.nonce ++ is (SEPADirectDebitPaymentAuthRequest.ReadyToLaunch) -> { ++ // web-flow mandate required ++ sepaDirectDebitLauncher.launch(activity, paymentAuthRequest) ++ } + } + } } From 4b4b02786d5ddce2ff0c1285ce2937e1f56f59c9 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Mon, 18 Dec 2023 10:02:21 -0600 Subject: [PATCH 12/15] American Express Single Result Object (#858) * Move American Express result object refactor to new branch * Update demo app * Revert data collector changes --- .../api/AmericanExpressClient.java | 8 +-- ...ricanExpressGetRewardsBalanceCallback.java | 18 ------- ...mericanExpressGetRewardsBalanceCallback.kt | 12 +++++ .../api/AmericanExpressResult.kt | 17 ++++++ .../api/AmericanExpressClientUnitTest.java | 53 ++++++++++++++----- CHANGELOG.md | 3 ++ .../braintreepayments/demo/CardFragment.java | 12 +++-- v5_MIGRATION_GUIDE.md | 15 ++++++ 8 files changed, 99 insertions(+), 39 deletions(-) delete mode 100644 AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.java create mode 100644 AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.kt create mode 100644 AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressResult.kt diff --git a/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressClient.java b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressClient.java index 94eba2095f..7babc2d54e 100644 --- a/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressClient.java +++ b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressClient.java @@ -56,13 +56,13 @@ public void getRewardsBalance(@NonNull String nonce, @NonNull String currencyIso try { AmericanExpressRewardsBalance rewardsBalance = AmericanExpressRewardsBalance.fromJson(responseBody); - callback.onResult(rewardsBalance, null); + callback.onAmericanExpressResult(new AmericanExpressResult.Success(rewardsBalance)); } catch (JSONException e) { braintreeClient.sendAnalyticsEvent("amex.rewards-balance.parse.failed"); - callback.onResult(null, e); + callback.onAmericanExpressResult(new AmericanExpressResult.Failure(e)); } - } else { - callback.onResult(null, httpError); + } else if (httpError != null) { + callback.onAmericanExpressResult(new AmericanExpressResult.Failure(httpError)); braintreeClient.sendAnalyticsEvent("amex.rewards-balance.error"); } }); diff --git a/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.java b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.java deleted file mode 100644 index b7d8b7c5a4..0000000000 --- a/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.braintreepayments.api; - -import androidx.annotation.Nullable; - -/** - * Callback for receiving result of - * {@link AmericanExpressClient#getRewardsBalance(String, String, - * AmericanExpressGetRewardsBalanceCallback)}. - */ -public interface AmericanExpressGetRewardsBalanceCallback { - - /** - * @param rewardsBalance {@link AmericanExpressRewardsBalance} - * @param error an exception that occurred while fetching rewards balance - */ - void onResult(@Nullable AmericanExpressRewardsBalance rewardsBalance, - @Nullable Exception error); -} diff --git a/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.kt b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.kt new file mode 100644 index 0000000000..84e2b22f86 --- /dev/null +++ b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressGetRewardsBalanceCallback.kt @@ -0,0 +1,12 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of + * [AmericanExpressClient.getRewardsBalance]. + */ +fun interface AmericanExpressGetRewardsBalanceCallback { + /** + * @param americanExpressResult the [AmericanExpressResult] + */ + fun onAmericanExpressResult(americanExpressResult: AmericanExpressResult) +} diff --git a/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressResult.kt b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressResult.kt new file mode 100644 index 0000000000..90a538336a --- /dev/null +++ b/AmericanExpress/src/main/java/com/braintreepayments/api/AmericanExpressResult.kt @@ -0,0 +1,17 @@ +package com.braintreepayments.api + +/** + * Result of fetching American Express rewards balance + */ +sealed class AmericanExpressResult { + + /** + * The [rewardsBalance] was successfully fetched + */ + class Success(val rewardsBalance: AmericanExpressRewardsBalance) : AmericanExpressResult() + + /** + * There was an [error] fetching rewards balance + */ + class Failure(val error: Exception) : AmericanExpressResult() +} diff --git a/AmericanExpress/src/test/java/com/braintreepayments/api/AmericanExpressClientUnitTest.java b/AmericanExpress/src/test/java/com/braintreepayments/api/AmericanExpressClientUnitTest.java index 64ba35608f..67a73df0a7 100644 --- a/AmericanExpress/src/test/java/com/braintreepayments/api/AmericanExpressClientUnitTest.java +++ b/AmericanExpress/src/test/java/com/braintreepayments/api/AmericanExpressClientUnitTest.java @@ -3,6 +3,7 @@ import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertNull; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.mock; @@ -48,11 +49,13 @@ public void getRewardsBalance_callsListenerWithRewardsBalanceOnSuccess() { AmericanExpressClient sut = new AmericanExpressClient(braintreeClient); sut.getRewardsBalance("fake-nonce", "USD", amexRewardsCallback); - ArgumentCaptor amexRewardsCaptor = - ArgumentCaptor.forClass(AmericanExpressRewardsBalance.class); - verify(amexRewardsCallback).onResult(amexRewardsCaptor.capture(), (Exception) isNull()); + ArgumentCaptor amexRewardsCaptor = + ArgumentCaptor.forClass(AmericanExpressResult.class); + verify(amexRewardsCallback).onAmericanExpressResult(amexRewardsCaptor.capture()); - AmericanExpressRewardsBalance rewardsBalance = amexRewardsCaptor.getValue(); + AmericanExpressResult result = amexRewardsCaptor.getValue(); + assertTrue(result instanceof AmericanExpressResult.Success); + AmericanExpressRewardsBalance rewardsBalance = ((AmericanExpressResult.Success) result).getRewardsBalance(); assertNotNull(rewardsBalance); assertEquals("0.0070", rewardsBalance.getConversionRate()); assertEquals("316795.03", rewardsBalance.getCurrencyAmount()); @@ -73,11 +76,13 @@ public void getRewardsBalance_callsListenerWithRewardsBalanceWithErrorCode_OnIne AmericanExpressClient sut = new AmericanExpressClient(braintreeClient); sut.getRewardsBalance("fake-nonce", "USD", amexRewardsCallback); - ArgumentCaptor amexRewardsCaptor = - ArgumentCaptor.forClass(AmericanExpressRewardsBalance.class); - verify(amexRewardsCallback).onResult(amexRewardsCaptor.capture(), isNull()); + ArgumentCaptor amexRewardsCaptor = + ArgumentCaptor.forClass(AmericanExpressResult.class); + verify(amexRewardsCallback).onAmericanExpressResult(amexRewardsCaptor.capture()); - AmericanExpressRewardsBalance rewardsBalance = amexRewardsCaptor.getValue(); + AmericanExpressResult result = amexRewardsCaptor.getValue(); + assertTrue(result instanceof AmericanExpressResult.Success); + AmericanExpressRewardsBalance rewardsBalance = ((AmericanExpressResult.Success) result).getRewardsBalance(); assertNotNull(rewardsBalance); assertNull(rewardsBalance.getConversionRate()); assertNull(rewardsBalance.getCurrencyAmount()); @@ -98,11 +103,14 @@ public void getRewardsBalance_callsListenerWithRewardsBalanceWithErrorCode_OnIns AmericanExpressClient sut = new AmericanExpressClient(braintreeClient); sut.getRewardsBalance("fake-nonce", "USD", amexRewardsCallback); - ArgumentCaptor amexRewardsCaptor = - ArgumentCaptor.forClass(AmericanExpressRewardsBalance.class); - verify(amexRewardsCallback).onResult(amexRewardsCaptor.capture(), (Exception) isNull()); + ArgumentCaptor amexRewardsCaptor = + ArgumentCaptor.forClass(AmericanExpressResult.class); + verify(amexRewardsCallback).onAmericanExpressResult(amexRewardsCaptor.capture()); - AmericanExpressRewardsBalance rewardsBalance = amexRewardsCaptor.getValue(); + AmericanExpressResult result = amexRewardsCaptor.getValue(); + assertTrue(result instanceof AmericanExpressResult.Success); + + AmericanExpressRewardsBalance rewardsBalance = ((AmericanExpressResult.Success) result).getRewardsBalance(); assertNotNull(rewardsBalance); assertNull(rewardsBalance.getConversionRate()); assertNull(rewardsBalance.getCurrencyAmount()); @@ -114,6 +122,27 @@ public void getRewardsBalance_callsListenerWithRewardsBalanceWithErrorCode_OnIns assertEquals("Insufficient points on card", rewardsBalance.getErrorMessage()); } + @Test + public void getRewardsBalance_callsBackFailure_OnHttpError() { + Exception expectedError = new Exception("error"); + BraintreeClient braintreeClient = new MockBraintreeClientBuilder() + .sendGETErrorResponse(expectedError) + .build(); + + AmericanExpressClient sut = new AmericanExpressClient(braintreeClient); + sut.getRewardsBalance("fake-nonce", "USD", amexRewardsCallback); + + ArgumentCaptor amexRewardsCaptor = + ArgumentCaptor.forClass(AmericanExpressResult.class); + verify(amexRewardsCallback).onAmericanExpressResult(amexRewardsCaptor.capture()); + + AmericanExpressResult result = amexRewardsCaptor.getValue(); + assertTrue(result instanceof AmericanExpressResult.Failure); + Exception actualError = ((AmericanExpressResult.Failure) result).getError(); + assertEquals(expectedError, actualError); + } + + @Test public void getRewardsBalance_sendsAnalyticsEventOnSuccess() { BraintreeClient braintreeClient = new MockBraintreeClientBuilder() diff --git a/CHANGELOG.md b/CHANGELOG.md index c429191eca..44ec1b435c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -105,6 +105,9 @@ modify parameters * Replace `SEPADirectDebitClient#tokenize` with`SEPADirectDebitClient#createPaymentAuthRequest` and modify parameters + * American Express + * Change parameters of `AmericanExpressGetRewardsBalanceCallback` + * Add `AmericanExpressResult` ## 4.40.1 (2023-12-13) diff --git a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java index 6a91bf819b..9dd2b6e7ac 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java @@ -16,6 +16,7 @@ import androidx.navigation.fragment.NavHostFragment; import com.braintreepayments.api.AmericanExpressClient; +import com.braintreepayments.api.AmericanExpressResult; import com.braintreepayments.api.AmericanExpressRewardsBalance; import com.braintreepayments.api.Card; import com.braintreepayments.api.CardClient; @@ -240,12 +241,13 @@ private void handlePaymentMethodNonceCreated(PaymentMethodNonce paymentMethodNon getString(R.string.loading), true, false); String nonce = paymentMethodNonce.getString(); - americanExpressClient.getRewardsBalance(nonce, "USD", (rewardsBalance, error) -> { - if (rewardsBalance != null) { + americanExpressClient.getRewardsBalance(nonce, "USD", (americanExpressResult) -> { + if (americanExpressResult instanceof AmericanExpressResult.Success) { safelyCloseLoadingView(); - showDialog(getAmexRewardsBalanceString(rewardsBalance)); - } else if (error != null) { - handleError(error); + showDialog(getAmexRewardsBalanceString( + ((AmericanExpressResult.Success) americanExpressResult).getRewardsBalance())); + } else if (americanExpressResult instanceof AmericanExpressResult.Failure) { + handleError(((AmericanExpressResult.Failure) americanExpressResult).getError()); } }); } else { diff --git a/v5_MIGRATION_GUIDE.md b/v5_MIGRATION_GUIDE.md index b20b5444e5..00e3fe3c44 100644 --- a/v5_MIGRATION_GUIDE.md +++ b/v5_MIGRATION_GUIDE.md @@ -7,6 +7,7 @@ basics for updating your Braintree integration from v4 to v5. 1. [Android API](#android-api) 1. [Braintree Client](#braintree-client) +1. [American Express](#american-express) 1. [Data Collector](#data-collector) 1. [Card](#card) 1. [Union Pay](#union-pay) @@ -64,6 +65,20 @@ cardClient.tokenize(card) { cardResult -> } ``` +## American Express + +The result handling of fetching American Express rewards balance has been updated so that the +`AmericanExpressGetRewardsBalanceCallback` returns a single `AmericanExpressResult` object + +```kotlin +americanExpressClient.getRewardsBalance(nonce, currencyCode) { result -> + when(result) { + is AmericanExpressResult.Success -> { /* handle result.rewardsBalance */ } + is AmericanExpressResult.Failure -> { /* handle result.error */ } + } +} +``` + ## Union Pay The `union-pay` module, and all containing classes, was removed in v5. UnionPay cards can now be From d1fe78026a15e5873b6cb9f14b28c3f328143ef7 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Mon, 18 Dec 2023 10:03:36 -0600 Subject: [PATCH 13/15] Data Collector Single Result Object (#859) * Add DataCollector changes * Update CHANGELOG and migration guide --- CHANGELOG.md | 1 + .../braintreepayments/api/DataCollector.java | 39 +++++++++---------- .../api/DataCollectorCallback.java | 18 --------- .../api/DataCollectorCallback.kt | 11 ++++++ .../api/DataCollectorResult.kt | 17 ++++++++ .../api/DataCollectorUnitTest.java | 16 ++++++-- .../braintreepayments/demo/CardFragment.java | 8 +++- .../demo/PayPalFragment.java | 7 ++-- .../demo/PayPalNativeCheckoutFragment.java | 7 ++-- v5_MIGRATION_GUIDE.md | 9 +++-- 10 files changed, 78 insertions(+), 55 deletions(-) delete mode 100644 DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.java create mode 100644 DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.kt create mode 100644 DataCollector/src/main/java/com/braintreepayments/api/DataCollectorResult.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 44ec1b435c..eaae5009e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ * BraintreeDataCollector * Replace `DataCollector#collectDeviceData(context, merchantId, callback)` with `DataCollector#collectDeviceData(context, riskCorrelationId, callback)` + * Add `DataCollectorResult` and update `DataCollectorCallback` parameters * PayPalDataCollector * Remove `paypal-data-collector` module (use `data-collector`) * Venmo diff --git a/DataCollector/src/main/java/com/braintreepayments/api/DataCollector.java b/DataCollector/src/main/java/com/braintreepayments/api/DataCollector.java index 57897eceec..c4c2af73be 100644 --- a/DataCollector/src/main/java/com/braintreepayments/api/DataCollector.java +++ b/DataCollector/src/main/java/com/braintreepayments/api/DataCollector.java @@ -112,30 +112,27 @@ public void collectDeviceData(@NonNull final Context context, @NonNull final Dat * @param callback {@link DataCollectorCallback} */ public void collectDeviceData(@NonNull final Context context, @Nullable final String riskCorrelationId, @NonNull final DataCollectorCallback callback) { - braintreeClient.getConfiguration(new ConfigurationCallback() { - @Override - public void onResult(@Nullable Configuration configuration, @Nullable Exception error) { - if (configuration != null) { - final JSONObject deviceData = new JSONObject(); - try { - DataCollectorRequest request = new DataCollectorRequest() - .setApplicationGuid(getPayPalInstallationGUID(context)); - if (riskCorrelationId != null) { - request.setRiskCorrelationId(riskCorrelationId); - } - - String correlationId = - magnesInternalClient.getClientMetadataId(context, configuration, request); - if (!TextUtils.isEmpty(correlationId)) { - deviceData.put(CORRELATION_ID_KEY, correlationId); - } - } catch (JSONException ignored) { + braintreeClient.getConfiguration((configuration, error) -> { + if (configuration != null) { + final JSONObject deviceData = new JSONObject(); + try { + DataCollectorRequest request = new DataCollectorRequest() + .setApplicationGuid(getPayPalInstallationGUID(context)); + if (riskCorrelationId != null) { + request.setRiskCorrelationId(riskCorrelationId); } - callback.onResult(deviceData.toString(), null); - } else { - callback.onResult(null, error); + String correlationId = + magnesInternalClient.getClientMetadataId(context, configuration, request); + if (!TextUtils.isEmpty(correlationId)) { + deviceData.put(CORRELATION_ID_KEY, correlationId); + } + } catch (JSONException ignored) { } + callback.onDataCollectorResult(new DataCollectorResult.Success(deviceData.toString())); + + } else if (error != null) { + callback.onDataCollectorResult(new DataCollectorResult.Failure(error)); } }); } diff --git a/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.java b/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.java deleted file mode 100644 index 8d6830dcb2..0000000000 --- a/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.braintreepayments.api; - -import android.content.Context; - -import androidx.annotation.Nullable; - -/** - * Callback for receiving result of - * {@link DataCollector#collectDeviceData(Context, DataCollectorCallback)} - */ -public interface DataCollectorCallback { - - /** - * @param deviceData the device information collected for fraud detection - * @param error an exception that occurred while fetching device data - */ - void onResult(@Nullable String deviceData, @Nullable Exception error); -} diff --git a/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.kt b/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.kt new file mode 100644 index 0000000000..083d75a953 --- /dev/null +++ b/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorCallback.kt @@ -0,0 +1,11 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of [DataCollector.collectDeviceData] + */ +fun interface DataCollectorCallback { + /** + * @param dataCollectorResult the [DataCollectorResult] of collecting device data + */ + fun onDataCollectorResult(dataCollectorResult: DataCollectorResult) +} diff --git a/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorResult.kt b/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorResult.kt new file mode 100644 index 0000000000..125f3f0157 --- /dev/null +++ b/DataCollector/src/main/java/com/braintreepayments/api/DataCollectorResult.kt @@ -0,0 +1,17 @@ +package com.braintreepayments.api + +/** + * Result of collecting device data for fraud detection + */ +sealed class DataCollectorResult { + + /** + * The device information was collected for fraud detection. Send [deviceData] to your server + */ + class Success(val deviceData: String) : DataCollectorResult() + + /** + * There was an [error] during device data collection + */ + class Failure(val error: Exception) : DataCollectorResult() +} diff --git a/DataCollector/src/test/java/com/braintreepayments/api/DataCollectorUnitTest.java b/DataCollector/src/test/java/com/braintreepayments/api/DataCollectorUnitTest.java index 1f6e8b7771..ee0f473ead 100644 --- a/DataCollector/src/test/java/com/braintreepayments/api/DataCollectorUnitTest.java +++ b/DataCollector/src/test/java/com/braintreepayments/api/DataCollectorUnitTest.java @@ -1,6 +1,7 @@ package com.braintreepayments.api; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.ArgumentMatchers.same; @@ -113,7 +114,12 @@ public void collectDeviceData_forwardsConfigurationFetchErrors() { DataCollectorCallback callback = mock(DataCollectorCallback.class); sut.collectDeviceData(context, callback); - verify(callback).onResult(null, configError); + ArgumentCaptor deviceDataCaptor = ArgumentCaptor.forClass(DataCollectorResult.class); + verify(callback).onDataCollectorResult(deviceDataCaptor.capture()); + + DataCollectorResult result = deviceDataCaptor.getValue(); + assertTrue(result instanceof DataCollectorResult.Failure); + assertEquals(configError, ((DataCollectorResult.Failure) result).getError()); } @Test @@ -175,10 +181,12 @@ public void collectDeviceData_getsDeviceDataJSONWithCorrelationIdFromPayPal() th DataCollectorCallback callback = mock(DataCollectorCallback.class); sut.collectDeviceData(context, callback); - ArgumentCaptor deviceDataCaptor = ArgumentCaptor.forClass(String.class); - verify(callback).onResult(deviceDataCaptor.capture(), (Exception) isNull()); + ArgumentCaptor deviceDataCaptor = ArgumentCaptor.forClass(DataCollectorResult.class); + verify(callback).onDataCollectorResult(deviceDataCaptor.capture()); - String deviceData = deviceDataCaptor.getValue(); + DataCollectorResult result = deviceDataCaptor.getValue(); + assertTrue(result instanceof DataCollectorResult.Success); + String deviceData = ((DataCollectorResult.Success) result).getDeviceData(); JSONObject json = new JSONObject(deviceData); assertEquals("paypal-clientmetadata-id", json.getString("correlation_id")); } diff --git a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java index 9dd2b6e7ac..467bdb2d2e 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/CardFragment.java @@ -23,6 +23,7 @@ import com.braintreepayments.api.CardNonce; import com.braintreepayments.api.CardResult; import com.braintreepayments.api.DataCollector; +import com.braintreepayments.api.DataCollectorResult; import com.braintreepayments.api.PaymentMethodNonce; import com.braintreepayments.api.ThreeDSecureAdditionalInformation; import com.braintreepayments.api.ThreeDSecureClient; @@ -148,8 +149,11 @@ private void configureCardForm() { .setup(activity); if (getArguments().getBoolean(MainFragment.EXTRA_COLLECT_DEVICE_DATA, false)) { - dataCollector.collectDeviceData(activity, - (deviceData, e) -> this.deviceData = deviceData); + dataCollector.collectDeviceData(activity, dataCollectorResult -> { + if (dataCollectorResult instanceof DataCollectorResult.Success) { + deviceData = ((DataCollectorResult.Success) dataCollectorResult).getDeviceData(); + } + }); } } diff --git a/Demo/src/main/java/com/braintreepayments/demo/PayPalFragment.java b/Demo/src/main/java/com/braintreepayments/demo/PayPalFragment.java index 2069d0ee64..bc9fbca1dd 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/PayPalFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/PayPalFragment.java @@ -15,6 +15,7 @@ import androidx.navigation.fragment.NavHostFragment; import com.braintreepayments.api.DataCollector; +import com.braintreepayments.api.DataCollectorResult; import com.braintreepayments.api.PayPalClient; import com.braintreepayments.api.PayPalLauncher; import com.braintreepayments.api.PayPalPaymentAuthRequest; @@ -79,9 +80,9 @@ private void launchPayPal(boolean isBillingAgreement) { dataCollector = new DataCollector(requireContext(), super.getAuthStringArg()); if (Settings.shouldCollectDeviceData(requireActivity())) { - dataCollector.collectDeviceData(requireActivity(), (deviceDataResult, error) -> { - if (deviceDataResult != null) { - deviceData = deviceDataResult; + dataCollector.collectDeviceData(requireActivity(), (dataCollectorResult) -> { + if (dataCollectorResult instanceof DataCollectorResult.Success) { + deviceData = ((DataCollectorResult.Success) dataCollectorResult).getDeviceData(); } launchPayPal(activity, isBillingAgreement, amount); }); diff --git a/Demo/src/main/java/com/braintreepayments/demo/PayPalNativeCheckoutFragment.java b/Demo/src/main/java/com/braintreepayments/demo/PayPalNativeCheckoutFragment.java index bb53d4ade5..4f72e1da93 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/PayPalNativeCheckoutFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/PayPalNativeCheckoutFragment.java @@ -15,6 +15,7 @@ import androidx.navigation.fragment.NavHostFragment; import com.braintreepayments.api.DataCollector; +import com.braintreepayments.api.DataCollectorResult; import com.braintreepayments.api.PayPalNativeCheckoutAccountNonce; import com.braintreepayments.api.PayPalNativeCheckoutClient; import com.braintreepayments.api.PayPalNativeCheckoutListener; @@ -57,9 +58,9 @@ private void launchPayPalNativeCheckout(boolean isBillingAgreement) { dataCollector = new DataCollector(requireContext(), super.getAuthStringArg()); if (Settings.shouldCollectDeviceData(requireActivity())) { - dataCollector.collectDeviceData(requireActivity(), (deviceDataResult, error) -> { - if (deviceDataResult != null) { - deviceData = deviceDataResult; + dataCollector.collectDeviceData(requireActivity(), (dataCollectorResult) -> { + if (dataCollectorResult instanceof DataCollectorResult.Success) { + deviceData = ((DataCollectorResult.Success) dataCollectorResult).getDeviceData(); } try { if (isBillingAgreement) { diff --git a/v5_MIGRATION_GUIDE.md b/v5_MIGRATION_GUIDE.md index 00e3fe3c44..39836cdb70 100644 --- a/v5_MIGRATION_GUIDE.md +++ b/v5_MIGRATION_GUIDE.md @@ -36,8 +36,7 @@ val cardClient = CardClient(context, "TOKENIZATION_KEY_OR_CLIENT_TOKEN") The `paypal-data-collector` module has been removed and replaced by the `data-collector` module. The `DataCollector` class within the `data-collector` module has the same -`collectDeviceData` methods, so if you were previously using the `paypal-data-collector` library, -no code changes are required aside from updating your dependency. +`collectDeviceData` methods. If you were using the `data-collector` library in v4, `DataCollector#collectDeviceData(context, merchantId, callback)` is now `DataCollector#collectDeviceData(context, riskCorrelationId, @@ -45,8 +44,10 @@ callback)`, where `riskCorrelationId` is an optional client metadata ID. ```kotlin val dataCollector = DataCollector(context, authorization) -dataCollector.collectDeviceData(context) { deviceData, error -> - // send deviceData to your server +dataCollector.collectDeviceData(context) { result -> + if (result is DataCollectorResult.Success) { + // send result.deviceData to your server + } } ``` From 75c09aea8b75b4b66ceba8a40a6efce56bb6bdce Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Mon, 18 Dec 2023 11:38:12 -0600 Subject: [PATCH 14/15] Visa Checkout Single Result Objects (#861) * Visa Checkout changes * Fix changes * Changelog and migration guide * Update v5_MIGRATION_GUIDE.md Co-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com> * Update v5_MIGRATION_GUIDE.md Co-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com> --------- Co-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com> --- CHANGELOG.md | 4 ++ .../demo/VisaCheckoutFragment.java | 22 +++++---- .../api/VisaCheckoutClient.java | 15 +++--- ...aCheckoutCreateProfileBuilderCallback.java | 18 ------- ...isaCheckoutCreateProfileBuilderCallback.kt | 11 +++++ .../api/VisaCheckoutProfileBuilderResult.kt | 19 ++++++++ .../api/VisaCheckoutResult.kt | 17 +++++++ .../api/VisaCheckoutTokenizeCallback.java | 18 ------- .../api/VisaCheckoutTokenizeCallback.kt | 11 +++++ .../api/VisaCheckoutClientUnitTest.kt | 47 ++++++++++++------- v5_MIGRATION_GUIDE.md | 35 +++++++++++++- 11 files changed, 144 insertions(+), 73 deletions(-) delete mode 100644 VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.java create mode 100644 VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.kt create mode 100644 VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutProfileBuilderResult.kt create mode 100644 VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutResult.kt delete mode 100644 VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.java create mode 100644 VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index eaae5009e7..202c1d8648 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -106,6 +106,10 @@ modify parameters * Replace `SEPADirectDebitClient#tokenize` with`SEPADirectDebitClient#createPaymentAuthRequest` and modify parameters + * Visa Checkout + * Change parameters of `VisaCheckoutCreateProfileBuilderCallback` and + `VisaCheckoutTokenizeCallback` + * Add `VisaCheckoutProfileBuilderResult` and `VisaCheckoutTokenizeResult` * American Express * Change parameters of `AmericanExpressGetRewardsBalanceCallback` * Add `AmericanExpressResult` diff --git a/Demo/src/main/java/com/braintreepayments/demo/VisaCheckoutFragment.java b/Demo/src/main/java/com/braintreepayments/demo/VisaCheckoutFragment.java index 5f92a85836..deef0b81d8 100644 --- a/Demo/src/main/java/com/braintreepayments/demo/VisaCheckoutFragment.java +++ b/Demo/src/main/java/com/braintreepayments/demo/VisaCheckoutFragment.java @@ -11,6 +11,8 @@ import com.braintreepayments.api.PaymentMethodNonce; import com.braintreepayments.api.VisaCheckoutClient; +import com.braintreepayments.api.VisaCheckoutProfileBuilderResult; +import com.braintreepayments.api.VisaCheckoutResult; import com.visa.checkout.CheckoutButton; import com.visa.checkout.Profile; import com.visa.checkout.PurchaseInfo; @@ -31,11 +33,11 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c checkoutButton = view.findViewById(R.id.visa_checkout_button); visaCheckoutClient = new VisaCheckoutClient(requireContext(), super.getAuthStringArg()); - visaCheckoutClient.createProfileBuilder((profileBuilder, error) -> { - if (profileBuilder != null) { - setupVisaCheckoutButton(profileBuilder); - } else { - handleError(error); + visaCheckoutClient.createProfileBuilder((profileBuilderResult) -> { + if (profileBuilderResult instanceof VisaCheckoutProfileBuilderResult.Failure) { + handleError(((VisaCheckoutProfileBuilderResult.Failure) profileBuilderResult).getError()); + } else if (profileBuilderResult instanceof VisaCheckoutProfileBuilderResult.Success) { + setupVisaCheckoutButton(((VisaCheckoutProfileBuilderResult.Success) profileBuilderResult).getProfileBuilder()); } }); return view; @@ -54,11 +56,11 @@ public void onButtonClick(LaunchReadyHandler launchReadyHandler) { @Override public void onResult(VisaPaymentSummary visaPaymentSummary) { - visaCheckoutClient.tokenize(visaPaymentSummary, (paymentMethodNonce, error) -> { - if (paymentMethodNonce != null) { - handlePaymentMethodNonceCreated(paymentMethodNonce); - } else { - handleError(error); + visaCheckoutClient.tokenize(visaPaymentSummary, (visaCheckoutResult) -> { + if (visaCheckoutResult instanceof VisaCheckoutResult.Failure) { + handleError(((VisaCheckoutResult.Failure) visaCheckoutResult).getError()); + } else if (visaCheckoutResult instanceof VisaCheckoutResult.Success) { + handlePaymentMethodNonceCreated(((VisaCheckoutResult.Success) visaCheckoutResult).getNonce()); } }); } diff --git a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutClient.java b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutClient.java index 8483ceded8..fde6aaf093 100644 --- a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutClient.java +++ b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutClient.java @@ -3,7 +3,6 @@ import android.content.Context; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.visa.checkout.Environment; @@ -11,7 +10,6 @@ import com.visa.checkout.VisaPaymentSummary; import org.json.JSONException; -import org.json.JSONObject; import java.util.List; @@ -75,8 +73,7 @@ public void createProfileBuilder( isVisaCheckoutSDKAvailable() && configuration.isVisaCheckoutEnabled(); if (!enabledAndSdkAvailable) { - callback.onResult(null, - new ConfigurationException("Visa Checkout is not enabled.")); + callback.onVisaCheckoutProfileBuilderResult(new VisaCheckoutProfileBuilderResult.Failure(new ConfigurationException("Visa Checkout is not enabled."))); return; } @@ -95,7 +92,7 @@ public void createProfileBuilder( profileBuilder.setDataLevel(Profile.DataLevel.FULL); profileBuilder.setExternalClientId(configuration.getVisaCheckoutExternalClientId()); - callback.onResult(profileBuilder, null); + callback.onVisaCheckoutProfileBuilderResult(new VisaCheckoutProfileBuilderResult.Success(profileBuilder)); }); } @@ -122,13 +119,13 @@ public void tokenize(@NonNull VisaPaymentSummary visaPaymentSummary, try { VisaCheckoutNonce visaCheckoutNonce = VisaCheckoutNonce.fromJSON(tokenizationResponse); - callback.onResult(visaCheckoutNonce, null); + callback.onVisaCheckoutResult(new VisaCheckoutResult.Success(visaCheckoutNonce)); braintreeClient.sendAnalyticsEvent("visacheckout.tokenize.succeeded"); } catch (JSONException e) { - callback.onResult(null, e); + callback.onVisaCheckoutResult(new VisaCheckoutResult.Failure(e)); } - } else { - callback.onResult(null, exception); + } else if (exception != null) { + callback.onVisaCheckoutResult(new VisaCheckoutResult.Failure(exception)); braintreeClient.sendAnalyticsEvent("visacheckout.tokenize.failed"); } }); diff --git a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.java b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.java deleted file mode 100644 index 226bd5fe84..0000000000 --- a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.braintreepayments.api; - -import androidx.annotation.Nullable; - -import com.visa.checkout.Profile; - -/** - * Callback for receiving result of - * {@link VisaCheckoutClient#createProfileBuilder(VisaCheckoutCreateProfileBuilderCallback)}. - */ -public interface VisaCheckoutCreateProfileBuilderCallback { - - /** - * @param profileBuilder Visa profile builder - * @param error an exception that occurred while creating a Visa profile - */ - void onResult(@Nullable Profile.ProfileBuilder profileBuilder, @Nullable Exception error); -} diff --git a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.kt b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.kt new file mode 100644 index 0000000000..ff75cf1d4c --- /dev/null +++ b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutCreateProfileBuilderCallback.kt @@ -0,0 +1,11 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of[VisaCheckoutClient.createProfileBuilder]. + */ +fun interface VisaCheckoutCreateProfileBuilderCallback { + /** + * @param profileBuilderResult a [VisaCheckoutProfileBuilderResult] + */ + fun onVisaCheckoutProfileBuilderResult(profileBuilderResult: VisaCheckoutProfileBuilderResult) +} \ No newline at end of file diff --git a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutProfileBuilderResult.kt b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutProfileBuilderResult.kt new file mode 100644 index 0000000000..0125a6c370 --- /dev/null +++ b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutProfileBuilderResult.kt @@ -0,0 +1,19 @@ +package com.braintreepayments.api + +import com.visa.checkout.Profile + +/** + * Result of creating a Visa Checkout profile builder + */ +sealed class VisaCheckoutProfileBuilderResult { + + /** + * The [profileBuilder] was successfully created + */ + class Success(val profileBuilder: Profile.ProfileBuilder) : VisaCheckoutProfileBuilderResult() + + /** + * There was an [error] creating the profile builder + */ + class Failure(val error: Exception) : VisaCheckoutProfileBuilderResult() +} diff --git a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutResult.kt b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutResult.kt new file mode 100644 index 0000000000..f2d389d93a --- /dev/null +++ b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutResult.kt @@ -0,0 +1,17 @@ +package com.braintreepayments.api + +/** + * Result of tokenizing a Visa Checkout account + */ +sealed class VisaCheckoutResult { + + /** + * The Visa Checkout flow completed successfully. This [nonce] should be sent to your server. + */ + class Success(val nonce: VisaCheckoutNonce) : VisaCheckoutResult() + + /** + * There was an [error] in the Visa Checkout flow. + */ + class Failure(val error: Exception) : VisaCheckoutResult() +} diff --git a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.java b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.java deleted file mode 100644 index 3c267ca9a5..0000000000 --- a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.braintreepayments.api; - -import androidx.annotation.Nullable; - -import com.visa.checkout.VisaPaymentSummary; - -/** - * Callback for receiving result of - * {@link VisaCheckoutClient#tokenize(VisaPaymentSummary, VisaCheckoutTokenizeCallback)}. - */ -public interface VisaCheckoutTokenizeCallback { - - /** - * @param paymentMethodNonce {@link PaymentMethodNonce} - * @param error an exception that occurred while tokenizing a Visa payment method - */ - void onResult(@Nullable PaymentMethodNonce paymentMethodNonce, @Nullable Exception error); -} diff --git a/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.kt b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.kt new file mode 100644 index 0000000000..c7dd919bb4 --- /dev/null +++ b/VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutTokenizeCallback.kt @@ -0,0 +1,11 @@ +package com.braintreepayments.api + +/** + * Callback for receiving result of [VisaCheckoutClient.tokenize]. + */ +fun interface VisaCheckoutTokenizeCallback { + /** + * @param visaCheckoutResult a [VisaCheckoutResult] + */ + fun onVisaCheckoutResult(visaCheckoutResult: VisaCheckoutResult) +} \ No newline at end of file diff --git a/VisaCheckout/src/test/java/com/braintreepayments/api/VisaCheckoutClientUnitTest.kt b/VisaCheckout/src/test/java/com/braintreepayments/api/VisaCheckoutClientUnitTest.kt index d0c73d71af..0d6f4223ee 100644 --- a/VisaCheckout/src/test/java/com/braintreepayments/api/VisaCheckoutClientUnitTest.kt +++ b/VisaCheckout/src/test/java/com/braintreepayments/api/VisaCheckoutClientUnitTest.kt @@ -12,11 +12,11 @@ import junit.framework.TestCase.assertEquals import junit.framework.TestCase.assertNotNull import org.json.JSONException import org.json.JSONObject +import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import java.util.Arrays import java.util.concurrent.CountDownLatch @RunWith(RobolectricTestRunner::class) @@ -47,11 +47,13 @@ class VisaCheckoutClientUnitTest { val listener = mockk(relaxed = true) sut.createProfileBuilder(listener) - val configurationExceptionSlot = slot() - verify(exactly = 1) { listener.onResult(null, capture(configurationExceptionSlot)) } + val configurationExceptionSlot = slot() + verify(exactly = 1) { listener.onVisaCheckoutProfileBuilderResult(capture(configurationExceptionSlot)) } - val configurationException = configurationExceptionSlot.captured - assertEquals("Visa Checkout is not enabled.", configurationException.message) + val profileBuilderResult = configurationExceptionSlot.captured + assertTrue(profileBuilderResult is VisaCheckoutProfileBuilderResult.Failure) + val exception = (profileBuilderResult as VisaCheckoutProfileBuilderResult.Failure).error + assertEquals("Visa Checkout is not enabled.", exception.message) } @Test @@ -72,10 +74,14 @@ class VisaCheckoutClientUnitTest { .configurationSuccess(fromJson(configString)) .build() val sut = VisaCheckoutClient(braintreeClient, apiClient) - sut.createProfileBuilder { profileBuilder, error -> - val expectedCardBrands = Arrays.asList(CardBrand.VISA, CardBrand.MASTERCARD) - val profile = profileBuilder!!.build() + sut.createProfileBuilder { profileBuilderResult -> + assertTrue(profileBuilderResult is VisaCheckoutProfileBuilderResult.Success) + val profileBuilder = (profileBuilderResult as VisaCheckoutProfileBuilderResult + .Success).profileBuilder + val profile = profileBuilder.build() assertNotNull(profile) + assertTrue(profile.acceptedCardBrands.contains(CardBrand.VISA)) + assertTrue(profile.acceptedCardBrands.contains(CardBrand.MASTERCARD)) lock.countDown() } lock.await() @@ -99,10 +105,13 @@ class VisaCheckoutClientUnitTest { .configurationSuccess(fromJson(configString)) .build() val sut = VisaCheckoutClient(braintreeClient, apiClient) - sut.createProfileBuilder { profileBuilder, error -> - val expectedCardBrands = Arrays.asList(CardBrand.VISA, CardBrand.MASTERCARD) - val profile = profileBuilder!!.build() + sut.createProfileBuilder { profileBuilderResult -> + val profileBuilder = (profileBuilderResult as VisaCheckoutProfileBuilderResult + .Success).profileBuilder + val profile = profileBuilder.build() assertNotNull(profile) + assertTrue(profile.acceptedCardBrands.contains(CardBrand.VISA)) + assertTrue(profile.acceptedCardBrands.contains(CardBrand.MASTERCARD)) lock.countDown() } lock.await() @@ -118,9 +127,11 @@ class VisaCheckoutClientUnitTest { .configurationSuccess(configurationWithVisaCheckout) .build() val sut = VisaCheckoutClient(braintreeClient, apiClient) - val listener = mockk(relaxed = true) - sut.tokenize(visaPaymentSummary, listener) - verify { listener.onResult(any(), null) } + sut.tokenize(visaPaymentSummary) { visaCheckoutResult -> + assertTrue(visaCheckoutResult is VisaCheckoutResult.Success) + val nonce = (visaCheckoutResult as VisaCheckoutResult.Success).nonce + assertNotNull(nonce) + } } @Test @@ -148,9 +159,11 @@ class VisaCheckoutClientUnitTest { .configurationSuccess(configurationWithVisaCheckout) .build() val sut = VisaCheckoutClient(braintreeClient, apiClient) - val listener = mockk(relaxed = true) - sut.tokenize(visaPaymentSummary, listener) - verify { listener.onResult(null, tokenizeError) } + sut.tokenize(visaPaymentSummary) { visaCheckoutResult -> + assertTrue(visaCheckoutResult is VisaCheckoutResult.Failure) + val error = (visaCheckoutResult as VisaCheckoutResult.Failure).error + assertEquals(tokenizeError, error) + } } @Test diff --git a/v5_MIGRATION_GUIDE.md b/v5_MIGRATION_GUIDE.md index 39836cdb70..881a23e789 100644 --- a/v5_MIGRATION_GUIDE.md +++ b/v5_MIGRATION_GUIDE.md @@ -17,6 +17,7 @@ basics for updating your Braintree integration from v4 to v5. 1. [PayPal](#paypal) 1. [Local Payment](#local-payment) 1. [SEPA Direct Debit](#sepa-direct-debit) +1. [Visa Checkout](#visa-checkout) ## Android API @@ -509,4 +510,36 @@ class MyActivity : FragmentActivity() { - override fun onSEPADirectDebitFailure(error: java.lang.Exception) { - // handle error - } -} \ No newline at end of file +} +``` + +## Visa Checkout + +The Visa Checkout integration has been updated to improve result handling. + +```diff +class MyActivity : FragmentActivity() { + +- private lateinit var braintreeClient: BraintreeClient + private lateinit var visaCheckoutClient: VisaCheckoutClient + + fun initializeClients() { +- braintreeClient = BraintreeClient(context, "TOKENIZATION_KEY_OR_CLIENT_TOKEN") +- visaCheckoutClient = VisaCheckoutClient(braintreeClient) ++ visaCheckoutClient = visaCheckoutClient(context, "TOKENIZATION_KEY_OR_CLIENT_TOKEN") + } + + fun onPaymentButtonClick() { +- visaCheckoutClient.tokenize(request) ++ sepaDirectDebitClient.tokenize(request) { visaCheckoutResult -> ++ when (visaCheckoutResult) { ++ is VisaCheckoutResult.Failure -> { ++ // handle visaCheckoutResult.error ++ is VisaCheckoutResult.Success -> { ++ // handle visaCheckoutResult.nonce ++ } ++ } ++ } + } +} +``` \ No newline at end of file From 5633f121b20e021c9cbea5d98446e40685a28e71 Mon Sep 17 00:00:00 2001 From: Sarah Koop Date: Mon, 18 Dec 2023 11:44:12 -0600 Subject: [PATCH 15/15] Google Pay Public Methods Single Result (#862) * Update Google Pay * Update CHANGELOG * Fix spacing --- CHANGELOG.md | 3 ++- .../api/GooglePayClient.java | 9 ++++---- ...ePayGetTokenizationParametersCallback.java | 16 +++++++------- .../api/GooglePayTokenizationParameters.kt | 21 +++++++++++++++++++ .../api/GooglePayClientUnitTest.java | 13 ++++++------ 5 files changed, 40 insertions(+), 22 deletions(-) create mode 100644 GooglePay/src/main/java/com/braintreepayments/api/GooglePayTokenizationParameters.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 202c1d8648..a8228d1be8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,12 +41,13 @@ * Remove `GooglePayListener` and `GooglePayRequestPaymentCallback` * Add `GooglePayLauncher`, `GooglePayPaymentAuthRequest`, `GooglePayPaymentAuthRequestCallback`, `GooglePayPaymentAuthResult`, - `GooglePayTokenizeCallback` and `GooglePayLauncherCallback` + `GooglePayTokenizeCallback`, `GooglePayTokenizationParameters` and `GooglePayLauncherCallback` * Remove overload constructors, `setListener, and `onActivityResult` from `GooglePayClient` * Change `GooglePayClient#requestPayment` parameters and rename to `GooglePayClient#createPaymentAuthRequest` * Add `GooglePayClient#tokenize` * Remove `merchantId` from `GooglePayRequest` + * Change `GooglePayGetTokenizationParametersCallback` parameters * ThreeDSecure * Remove `ThreeDSecureListener` * Add `ThreeDSecureLauncher`, `ThreeDSecurePaymentAuthResult`, diff --git a/GooglePay/src/main/java/com/braintreepayments/api/GooglePayClient.java b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayClient.java index b9121d16a2..b5c488ac09 100644 --- a/GooglePay/src/main/java/com/braintreepayments/api/GooglePayClient.java +++ b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayClient.java @@ -158,13 +158,12 @@ public void isReadyToPay(@NonNull final FragmentActivity activity, public void getTokenizationParameters( @NonNull final GooglePayGetTokenizationParametersCallback callback) { braintreeClient.getConfiguration((configuration, e) -> { - if (configuration == null) { - callback.onResult(null, null); + if (configuration == null && e != null) { + callback.onTokenizationParametersResult(new GooglePayTokenizationParameters.Failure(e)); return; } - callback.onResult( - getTokenizationParameters(configuration, braintreeClient.getAuthorization()), - getAllowedCardNetworks(configuration)); + callback.onTokenizationParametersResult(new GooglePayTokenizationParameters.Success( + getTokenizationParameters(configuration, braintreeClient.getAuthorization()), getAllowedCardNetworks(configuration))); }); } diff --git a/GooglePay/src/main/java/com/braintreepayments/api/GooglePayGetTokenizationParametersCallback.java b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayGetTokenizationParametersCallback.java index 40cc1e18e9..38133ef523 100644 --- a/GooglePay/src/main/java/com/braintreepayments/api/GooglePayGetTokenizationParametersCallback.java +++ b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayGetTokenizationParametersCallback.java @@ -1,7 +1,5 @@ package com.braintreepayments.api; -import androidx.annotation.Nullable; - import com.google.android.gms.wallet.PaymentMethodTokenizationParameters; import java.util.Collection; @@ -17,17 +15,17 @@ public interface GooglePayGetTokenizationParametersCallback { * Wallet or Google Pay integrations, or when full control over the * {@link com.google.android.gms.wallet.MaskedWalletRequest} and * {@link com.google.android.gms.wallet.FullWalletRequest} is required. - * + *

* {@link PaymentMethodTokenizationParameters} should be supplied to the * {@link com.google.android.gms.wallet.MaskedWalletRequest} via - * {@link com.google.android.gms.wallet.MaskedWalletRequest.Builder#setPaymentMethodTokenizationParameters(PaymentMethodTokenizationParameters)} + * {@link + * com.google.android.gms.wallet.MaskedWalletRequest.Builder#setPaymentMethodTokenizationParameters(PaymentMethodTokenizationParameters)} * and {@link Collection} allowedCardNetworks should be supplied to the * {@link com.google.android.gms.wallet.MaskedWalletRequest} via - * {@link com.google.android.gms.wallet.MaskedWalletRequest.Builder#addAllowedCardNetworks(Collection)}. + * {@link + * com.google.android.gms.wallet.MaskedWalletRequest.Builder#addAllowedCardNetworks(Collection)}. * - * @param parameters {@link PaymentMethodTokenizationParameters} - * @param allowedCardNetworks {@link Collection} of card networks supported by the current - * Braintree merchant account. + * @param tokenizationParameters {@link GooglePayTokenizationParameters} */ - void onResult(@Nullable PaymentMethodTokenizationParameters parameters, @Nullable Collection allowedCardNetworks); + void onTokenizationParametersResult(GooglePayTokenizationParameters tokenizationParameters); } \ No newline at end of file diff --git a/GooglePay/src/main/java/com/braintreepayments/api/GooglePayTokenizationParameters.kt b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayTokenizationParameters.kt new file mode 100644 index 0000000000..3e338d62d6 --- /dev/null +++ b/GooglePay/src/main/java/com/braintreepayments/api/GooglePayTokenizationParameters.kt @@ -0,0 +1,21 @@ +package com.braintreepayments.api + +import com.google.android.gms.wallet.PaymentMethodTokenizationParameters + +/** + * A request used to get Braintree specific tokenization parameters for a Google Pay + */ +sealed class GooglePayTokenizationParameters { + + /** + * The request was successfully created + */ + class Success(val parameters: PaymentMethodTokenizationParameters, + val allowedCardNetworks: Collection + ) : GooglePayTokenizationParameters() + + /** + * There was an [error] creating the request + */ + class Failure(val error: Exception) : GooglePayTokenizationParameters() +} diff --git a/GooglePay/src/test/java/com/braintreepayments/api/GooglePayClientUnitTest.java b/GooglePay/src/test/java/com/braintreepayments/api/GooglePayClientUnitTest.java index df4f64376e..4e9ad809c9 100644 --- a/GooglePay/src/test/java/com/braintreepayments/api/GooglePayClientUnitTest.java +++ b/GooglePay/src/test/java/com/braintreepayments/api/GooglePayClientUnitTest.java @@ -2,6 +2,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; @@ -1247,13 +1248,11 @@ public void getTokenizationParameters_forwardsParametersAndAllowedCardsToCallbac new MockGooglePayInternalClientBuilder().build(); GooglePayClient sut = new GooglePayClient(braintreeClient, internalGooglePayClient); - GooglePayGetTokenizationParametersCallback getTokenizationParametersCallback = - mock(GooglePayGetTokenizationParametersCallback.class); - sut.getTokenizationParameters(getTokenizationParametersCallback); - - verify(getTokenizationParametersCallback).onResult( - any(PaymentMethodTokenizationParameters.class), - eq(sut.getAllowedCardNetworks(configuration))); + sut.getTokenizationParameters(tokenizationParameters -> { + assertTrue(tokenizationParameters instanceof GooglePayTokenizationParameters.Success); + assertNotNull(((GooglePayTokenizationParameters.Success) tokenizationParameters).getParameters()); + assertEquals(sut.getAllowedCardNetworks(configuration), ((GooglePayTokenizationParameters.Success) tokenizationParameters).getAllowedCardNetworks()); + }); } // endregion