diff --git a/BraintreeCore/src/main/java/com/braintreepayments/api/core/AnalyticsEventParams.kt b/BraintreeCore/src/main/java/com/braintreepayments/api/core/AnalyticsEventParams.kt index fa309fb55b..fbebf15c20 100644 --- a/BraintreeCore/src/main/java/com/braintreepayments/api/core/AnalyticsEventParams.kt +++ b/BraintreeCore/src/main/java/com/braintreepayments/api/core/AnalyticsEventParams.kt @@ -20,12 +20,12 @@ import androidx.annotation.RestrictTo */ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) data class AnalyticsEventParams @JvmOverloads constructor( - var payPalContextId: String? = null, - var linkType: String? = null, - var isVaultRequest: Boolean = false, - var startTime: Long? = null, - var endTime: Long? = null, - var endpoint: String? = null, + val payPalContextId: String? = null, + val linkType: String? = null, + val isVaultRequest: Boolean = false, + val startTime: Long? = null, + val endTime: Long? = null, + val endpoint: String? = null, val experiment: String? = null, val paymentMethodsDisplayed: List = emptyList(), val appSwitchUrl: String? = null diff --git a/LocalPayment/src/main/java/com/braintreepayments/api/localpayment/LocalPaymentClient.kt b/LocalPayment/src/main/java/com/braintreepayments/api/localpayment/LocalPaymentClient.kt index 71f91792b0..f1cbf98d85 100644 --- a/LocalPayment/src/main/java/com/braintreepayments/api/localpayment/LocalPaymentClient.kt +++ b/LocalPayment/src/main/java/com/braintreepayments/api/localpayment/LocalPaymentClient.kt @@ -213,8 +213,9 @@ class LocalPaymentClient internal constructor( } private fun sendAnalyticsEvent(eventName: String) { - val eventParameters = AnalyticsEventParams() - eventParameters.payPalContextId = payPalContextId + val eventParameters = AnalyticsEventParams( + payPalContextId = payPalContextId + ) braintreeClient.sendAnalyticsEvent(eventName, eventParameters) } diff --git a/LocalPayment/src/test/java/com/braintreepayments/api/localpayment/LocalPaymentClientUnitTest.java b/LocalPayment/src/test/java/com/braintreepayments/api/localpayment/LocalPaymentClientUnitTest.java index 22f8b84217..360a64feba 100644 --- a/LocalPayment/src/test/java/com/braintreepayments/api/localpayment/LocalPaymentClientUnitTest.java +++ b/LocalPayment/src/test/java/com/braintreepayments/api/localpayment/LocalPaymentClientUnitTest.java @@ -375,8 +375,9 @@ public void createPaymentAuthRequest_success_withPaymentId_sendsAnalyticsEvents( sut.createPaymentAuthRequest(getIdealLocalPaymentRequest(), localPaymentAuthCallback); verify(braintreeClient).sendAnalyticsEvent(LocalPaymentAnalytics.PAYMENT_STARTED, new AnalyticsEventParams()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setPayPalContextId("some-paypal-context-id"); + AnalyticsEventParams params = new AnalyticsEventParams( + "some-paypal-context-id" + ); verify(braintreeClient).sendAnalyticsEvent(LocalPaymentAnalytics.BROWSER_SWITCH_SUCCEEDED, params); } diff --git a/PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalClientUnitTest.java b/PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalClientUnitTest.java index 07f0418064..5f084a0072 100644 --- a/PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalClientUnitTest.java +++ b/PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalClientUnitTest.java @@ -284,8 +284,11 @@ public void createPaymentAuthRequest_whenPayPalNotEnabled_returnsError() { "for more information.", ((PayPalPaymentAuthRequest.Failure) request).getError().getMessage()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setVaultRequest(false); + AnalyticsEventParams params = new AnalyticsEventParams( + null, + null, + false + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.TOKENIZATION_FAILED, params); } @@ -309,8 +312,11 @@ public void createPaymentAuthRequest_whenCheckoutRequest_whenConfigError_forward assertTrue(request instanceof PayPalPaymentAuthRequest.Failure); assertEquals(authError, ((PayPalPaymentAuthRequest.Failure) request).getError()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setVaultRequest(false); + AnalyticsEventParams params = new AnalyticsEventParams( + null, + null, + false + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.TOKENIZATION_FAILED, params); } @@ -334,8 +340,11 @@ public void requestBillingAgreement_whenConfigError_forwardsErrorToListener() { assertTrue(request instanceof PayPalPaymentAuthRequest.Failure); assertEquals(authError, ((PayPalPaymentAuthRequest.Failure) request).getError()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setVaultRequest(true); + AnalyticsEventParams params = new AnalyticsEventParams( + null, + null, + true + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.TOKENIZATION_FAILED, params); } @@ -414,9 +423,11 @@ public void createPaymentAuthRequest_whenVaultRequest_sendsAppSwitchStartedEvent assertFalse(browserSwitchOptions.isLaunchAsNewTask()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setVaultRequest(true); - params.setLinkType("universal"); + AnalyticsEventParams params = new AnalyticsEventParams( + null, + "universal", + true + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.APP_SWITCH_STARTED, params); } @@ -541,8 +552,11 @@ public void tokenize_whenCancelUriReceived_notifiesCancellationAndSendsAnalytics PayPalResult result = captor.getValue(); assertTrue(result instanceof PayPalResult.Cancel); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setVaultRequest(false); + AnalyticsEventParams params = new AnalyticsEventParams( + null, + null, + false + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.BROWSER_LOGIN_CANCELED, params); } @@ -582,9 +596,11 @@ public void tokenize_whenPayPalInternalClientTokenizeResult_callsBackResult() assertTrue(result instanceof PayPalResult.Success); assertEquals(payPalAccountNonce, ((PayPalResult.Success) result).getNonce()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setPayPalContextId("EC-HERMES-SANDBOX-EC-TOKEN"); - params.setVaultRequest(false); + AnalyticsEventParams params = new AnalyticsEventParams( + "EC-HERMES-SANDBOX-EC-TOKEN", + null, + false + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.TOKENIZATION_SUCCEEDED, params); } @@ -624,19 +640,20 @@ public void tokenize_whenPayPalInternalClientTokenizeResult_sendsAppSwitchSuccee assertTrue(result instanceof PayPalResult.Success); assertEquals(payPalAccountNonce, ((PayPalResult.Success) result).getNonce()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setPayPalContextId("EC-HERMES-SANDBOX-EC-TOKEN"); + AnalyticsEventParams params = new AnalyticsEventParams( + "EC-HERMES-SANDBOX-EC-TOKEN" + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.TOKENIZATION_SUCCEEDED, params); AnalyticsEventParams appSwitchParams = new AnalyticsEventParams( - "EC-HERMES-SANDBOX-EC-TOKEN", - null, - false, - null, - null, - null, - null, - emptyList(), - "sample-scheme://onetouch/v1/success?PayerID=HERMES-SANDBOX-PAYER-ID&paymentId=HERMES-SANDBOX-PAYMENT-ID&token=EC-HERMES-SANDBOX-EC-TOKEN&switch_initiated_time=17166111926211" + "EC-HERMES-SANDBOX-EC-TOKEN", + null, + false, + null, + null, + null, + null, + emptyList(), + "sample-scheme://onetouch/v1/success?PayerID=HERMES-SANDBOX-PAYER-ID&paymentId=HERMES-SANDBOX-PAYMENT-ID&token=EC-HERMES-SANDBOX-EC-TOKEN&switch_initiated_time=17166111926211" ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.APP_SWITCH_SUCCEEDED, appSwitchParams); } @@ -666,19 +683,20 @@ public void tokenize_whenPayPalNotEnabled_sendsAppSwitchFailedEvents() throws JS sut.tokenize(payPalPaymentAuthResult, payPalTokenizeCallback); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setPayPalContextId("SOME-BA"); + AnalyticsEventParams params = new AnalyticsEventParams( + "SOME-BA" + ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.TOKENIZATION_FAILED, params); AnalyticsEventParams appSwitchParams = new AnalyticsEventParams( - "SOME-BA", - null, - false, - null, - null, - null, - null, - emptyList(), - "https://some-scheme/onetouch/v1/cancel?token=SOME-BA&switch_initiated_time=17166111926211" + "SOME-BA", + null, + false, + null, + null, + null, + null, + emptyList(), + "https://some-scheme/onetouch/v1/cancel?token=SOME-BA&switch_initiated_time=17166111926211" ); verify(braintreeClient).sendAnalyticsEvent(PayPalAnalytics.APP_SWITCH_FAILED, appSwitchParams); } diff --git a/Venmo/src/main/java/com/braintreepayments/api/venmo/VenmoClient.kt b/Venmo/src/main/java/com/braintreepayments/api/venmo/VenmoClient.kt index efaef70666..754186192d 100644 --- a/Venmo/src/main/java/com/braintreepayments/api/venmo/VenmoClient.kt +++ b/Venmo/src/main/java/com/braintreepayments/api/venmo/VenmoClient.kt @@ -387,10 +387,12 @@ class VenmoClient internal constructor( private val analyticsParams: AnalyticsEventParams get() { - val eventParameters = AnalyticsEventParams(appSwitchUrl = venmoRepository.venmoUrl.toString()) - eventParameters.payPalContextId = payPalContextId - eventParameters.linkType = LINK_TYPE - eventParameters.isVaultRequest = isVaultRequest + val eventParameters = AnalyticsEventParams( + payPalContextId = payPalContextId, + linkType = LINK_TYPE, + isVaultRequest = isVaultRequest, + appSwitchUrl = venmoRepository.venmoUrl.toString(), + ) return eventParameters } diff --git a/Venmo/src/test/java/com/braintreepayments/api/venmo/VenmoClientUnitTest.java b/Venmo/src/test/java/com/braintreepayments/api/venmo/VenmoClientUnitTest.java index b0d0925f73..6807891f72 100644 --- a/Venmo/src/test/java/com/braintreepayments/api/venmo/VenmoClientUnitTest.java +++ b/Venmo/src/test/java/com/braintreepayments/api/venmo/VenmoClientUnitTest.java @@ -960,9 +960,11 @@ public void tokenize_withFailedVaultCall_forwardsErrorToActivityResultListener_a assertTrue(result instanceof VenmoResult.Failure); assertEquals(error, ((VenmoResult.Failure) result).getError()); - AnalyticsEventParams params = new AnalyticsEventParams(); - params.setLinkType(LINK_TYPE); - params.setVaultRequest(true); + AnalyticsEventParams params = new AnalyticsEventParams( + null, + LINK_TYPE, + true + ); verify(braintreeClient).sendAnalyticsEvent(VenmoAnalytics.TOKENIZE_FAILED, expectedVaultAnalyticsParams); }