Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Main into v5 #1029

Merged
merged 141 commits into from
Jun 13, 2024
Merged

Merge Main into v5 #1029

merged 141 commits into from
Jun 13, 2024

Conversation

tdchow
Copy link
Collaborator

@tdchow tdchow commented Jun 7, 2024

Summary of changes

  • Merge main into v5
  • The PayPal Messaging, Shopper Insights/MPE, and App Link features are included in this merge.
  • PayPal Messaging and Shopper Insights/MPE will need to be refactored as the use of BraintreeClient was changed in v5. This work will be in follow up PRs.

Checklist

  • Added a changelog entry
  • Relevant test coverage

Authors

List GitHub usernames for everyone who contributed to this pull request.

agedd and others added 30 commits December 12, 2023 09:37
* added new module for paypal-messaging
* Created empty PayPalMessagingClient.kt and PayPalMessagingClientUnitTest.ktclass files
* Added AndroidManifest.xml to this module
* Created build.gradle to include necessary dependencies and settings

Co-authored-by: Jax DesMarais-Leder <[email protected]>
* Added Shopper Insights client, request, result, stubs and docs

* Added Shopper Insights client unit test

Added Shopper Insights client unit test

* Added insight callback updated unit test

* adding unit test documentation

* remove coroutines

* add new line

* remove open

* fix detekt

* Update BraintreeCore/src/main/java/com/braintreepayments/api/BraintreeShopperInsightsClient.kt

Co-authored-by: Sarah Koop <[email protected]>

* rename ShopperInsightsClient

* lighten ShopperInsight docs

* change ShopperInsightRequest from val to var

* remove special char e.g.

* rename response to info

* Add Email and Phone request sub classes with unit tests

* rename methods

* updated unit tests

* Added Email and Phone data class

* Add docs and make interface a functional interface

* simplify syntax

* updating dependency

* Rename parameters

* fix lint issues

* Addressing PR comment: making email a simple string

* fix tests

* Refactoring tests

* linter fixes

* refactoring

* Renaming class

* formatting

* compact code

* add docs

* add kdoc

* more kdocs

* use constants for key strings

* fix suppress params

* Update BraintreeCore/src/test/java/com/braintreepayments/api/ShopperInsightsClientUnitTest.kt

Co-authored-by: sshropshire <[email protected]>

* Rename classes

* Address PR comments.
Move the object to json conversion to API class

* move class to its own file

* Change the ShopperInsightsRequest class signature

* Moving the validation logic

* adding kdoc

---------

Co-authored-by: Sarah Koop <[email protected]>
Co-authored-by: saperi <[email protected]>
Co-authored-by: saperi22 <[email protected]>
Co-authored-by: sshropshire <[email protected]>
* Create ShopperInsights module and move files there.

* Add EOF line

* Add README.md to the module

* clean up dependencies

* Refactor classes to standard package name

* remove unused files

* Modify release.yml to include newly created ShopperInsights module

* Modify release_snapshot.yml to include newly created ShopperInsights module

* remove example instrumented test

* update dependencies

* add dokka plugin to ShopperInsights module

* removing readme
* Add testing PayPalMessaging to GitHub workflows
* Add PayPalMessaging to build.gradle
* Add Shopping Insights Fragment

* move insight row

* added shopping insight vm, ui and integration

* fix linting

* Add email and phone null switches

* remove unused import

* import ShopperInsights module

---------

Co-authored-by: Sai <[email protected]>
* Add events for merchant analytics

* Add API for merchants to call to send shopper insights analytics events

* Adding tests

* fixing lint issue

* Use constants instead of sealed class for analytics event strings
* Checking if PayPal and Venmo are installed and returning a success result.

* fix linter

* Change logic to check if both Venmo and PayPal apps are installed

* refactoring logic

* rename class

* Wire up demo app

* rename ShoppingInsights to ShopperInsights

* adding another test

* modify tests

* refactor logic
saperi22 and others added 21 commits May 28, 2024 10:54
[DO NOT REVIEW] Merge `paypal-messaing-feature` into `main`
* main: (32 commits)
  Prepare for development
  Release 4.46.0
  Log context ID analytics before launching PayPal browser switch (#1018)
  Prepare for development
  Release 4.45.1
  update changelog.md (#1017)
  Update existing PayPalMessagingView (#1013)
  Update PayPalInternalClient to use Pairing ID as Client Metadata ID (#983)
  Chore messaging set global analytics (#1007)
  bump paypal messaging to version 1.0.1 (#1010)
  Send `is_vault` FPTI tag (#1004)
  Paypal messaging feature update dependency (#1002)
  Add requiresOptin (#1001)
  Add `venmo_installed` Analytics tag (#991)
  Update README - Added upgrade SDK message (#994)
  Bump PayPal Messages to v1.0.0 develop.2 (#981)
  Send `link_type` FPTI tag (#976)
  Add Unit Tests for PayPal Messaging (#925)
  Cleanup PayPal Messaging Implementation (#927)
  Add PayPal Messaging Feature to Demo App (#915)
  ...

# Conflicts:
#	CHANGELOG.md
#	Demo/build.gradle
#	Demo/src/main/java/com/braintreepayments/demo/MainFragment.java
#	Demo/src/main/res/layout/fragment_main.xml
#	Demo/src/main/res/navigation/nav_graph.xml
#	Demo/src/main/res/values/strings.xml
#	settings.gradle
* Remove merchantId from EligiblePaymentsApiRequest

* Use the default tokenization key for prod

* Remove new line

* Update ShopperInsights changelog
…ture

Merge Shopper Insights into Main for release
* Add missing CHANGELOG for pointed versions.

* Add additional timestamps manually.
* Add translucent theme to ThreeDSecureActivity.

* Add reference links.

* Update CHANGELOG.
* Add appLinkReturnUri to BraintreeClient (#980)

* Add appLinkReturnUri to BraintreeClient and collapse BraintreeClient constructors using default values

* Add doc strings and unit tests

* Update BraintreeCore/src/main/java/com/braintreepayments/api/BraintreeClient.kt

Co-authored-by: Sarah Koop <[email protected]>

* Update changelog for appLinkReturnUri

* Fix lint

---------

Co-authored-by: Sarah Koop <[email protected]>

* Add useAppLinkReturn to PayPalRequest (#984)

* Add useAppLinkReturn to PayPalRequest for Android App Link support

* Update changelog

* Update property name to appLinkEnabled

* Update PayPal/src/main/java/com/braintreepayments/api/PayPalRequest.java

Co-authored-by: Sarah Koop <[email protected]>

---------

Co-authored-by: Sarah Koop <[email protected]>

* Send app link URL to PayPal API (#986)

* Add ability to launch PayPal flows with app links (#988)

* Add ability to launch PayPal flows with app links

* Add demo merchant site URL

* Add intent filter for demo app link (#989)

* Pass app link to browser switch (#999)

* Pass app link uri to BrowserSwtichOptions.

* update browser-switch dependency

* Update CHANGELOG.md

Co-authored-by: Sarah Koop <[email protected]>

* Update PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java

Co-authored-by: Sarah Koop <[email protected]>

---------

Co-authored-by: Sarah Koop <[email protected]>

* exclude tests from LargeClass detekt rule

---------

Co-authored-by: Tim Chow <[email protected]>
Co-authored-by: Sarah Koop <[email protected]>
* main: (111 commits)
  Update CHANGELOG with Missing Timestamps (#1022)
  Fix demo app fragment layout
  Shopper Insights Final Changes (#1024)
  Prepare for development
  Release 4.46.0
  Log context ID analytics before launching PayPal browser switch (#1018)
  Prepare for development
  Release 4.45.1
  update changelog.md (#1017)
  Update existing PayPalMessagingView (#1013)
  Update PayPalInternalClient to use Pairing ID as Client Metadata ID (#983)
  Chore messaging set global analytics (#1007)
  bump paypal messaging to version 1.0.1 (#1010)
  Send `is_vault` FPTI tag (#1004)
  Add Shopper Insights to the changelog (#1006)
  Add isEligibleInPayPalNetwork boolean to ShopperInsightsInfo (#1005)
  Paypal messaging feature update dependency (#1002)
  Add requiresOptin (#1001)
  Add `venmo_installed` Analytics tag (#991)
  Handle empty email address (#1000)
  ...

# Conflicts:
#	.github/workflows/release.yml
#	.github/workflows/release_snapshot.yml
#	BraintreeCore/schemas/com.braintreepayments.api.core.AnalyticsDatabase/3.json
#	BraintreeCore/schemas/com.braintreepayments.api.core.AnalyticsDatabase/4.json
#	BraintreeCore/schemas/com.braintreepayments.api.core.AnalyticsDatabase/5.json
#	BraintreeCore/src/androidTest/java/com/braintreepayments/api/core/AnalyticsClientTest.java
#	BraintreeCore/src/main/java/com/braintreepayments/api/BraintreeClient.kt
#	BraintreeCore/src/main/java/com/braintreepayments/api/TLSCertificatePinning.kt
#	BraintreeCore/src/main/java/com/braintreepayments/api/core/AnalyticsClient.kt
#	BraintreeCore/src/main/java/com/braintreepayments/api/core/AnalyticsDatabase.kt
#	BraintreeCore/src/main/java/com/braintreepayments/api/core/AnalyticsEvent.kt
#	BraintreeCore/src/test/java/com/braintreepayments/api/BraintreeClientUnitTest.kt
#	BraintreeCore/src/test/java/com/braintreepayments/api/core/ApiClientUnitTest.kt
#	BraintreeDataCollector/src/main/java/com/braintreepayments/api/DataCollector.java
#	BraintreeDataCollector/src/test/java/com/braintreepayments/api/DataCollectorUnitTest.java
#	CHANGELOG.md
#	DataCollector/libs/android-magnessdk-5.4.0.jar
#	DataCollector/libs/android-magnessdk-5.5.1.jar
#	DataCollector/src/androidTest/java/com/braintreepayments/api/datacollector/DataCollectorTest.java
#	DataCollector/src/main/java/com/braintreepayments/api/datacollector/DataCollectorInternalRequest.java
#	DataCollector/src/main/java/com/braintreepayments/api/datacollector/MagnesInternalClient.java
#	DataCollector/src/main/java/com/braintreepayments/api/datacollector/PayPalDataCollectorInternalRequest.java
#	DataCollector/src/main/java/com/braintreepayments/api/datacollector/PayPalDataCollectorRequest.kt
#	DataCollector/src/test/java/com/braintreepayments/api/datacollector/DataCollectorInternalRequestUnitTest.java
#	DataCollector/src/test/java/com/braintreepayments/api/datacollector/MagnesInternalClientUnitTest.java
#	DataCollector/src/test/java/com/braintreepayments/api/datacollector/PayPalDataCollectorInternalRequestUnitTest.java
#	Demo/build.gradle
#	Demo/src/main/java/com/braintreepayments/demo/DemoActivity.java
#	Demo/src/main/java/com/braintreepayments/demo/MainFragment.java
#	Demo/src/main/java/com/braintreepayments/demo/PayPalFragment.java
#	Demo/src/main/java/com/braintreepayments/demo/PayPalRequestFactory.java
#	Demo/src/main/res/navigation/nav_graph.xml
#	Demo/src/main/res/values/strings.xml
#	GooglePay/src/main/java/com/braintreepayments/api/GooglePayClient.java
#	GooglePay/src/main/java/com/braintreepayments/api/googlepay/GooglePayInternalClient.java
#	GooglePay/src/test/java/com/braintreepayments/api/GooglePayClientUnitTest.java
#	GooglePay/src/test/java/com/braintreepayments/api/googlepay/GooglePayInternalClientUnitTest.kt
#	LocalPayment/src/main/java/com/braintreepayments/api/LocalPaymentClient.java
#	LocalPayment/src/main/java/com/braintreepayments/api/localpayment/LocalPaymentRequest.java
#	LocalPayment/src/test/java/com/braintreepayments/api/LocalPaymentClientUnitTest.java
#	PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java
#	PayPal/src/main/java/com/braintreepayments/api/PayPalInternalClient.java
#	PayPal/src/main/java/com/braintreepayments/api/paypal/PayPalCheckoutRequest.java
#	PayPal/src/main/java/com/braintreepayments/api/paypal/PayPalRequest.java
#	PayPal/src/main/java/com/braintreepayments/api/paypal/PayPalVaultRequest.java
#	PayPal/src/test/java/com/braintreepayments/api/PayPalClientUnitTest.java
#	PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalCheckoutRequestUnitTest.java
#	PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalInternalClientUnitTest.java
#	PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalVaultRequestUnitTest.java
#	PayPalDataCollector/src/main/java/com/braintreepayments/api/PayPalDataCollector.java
#	PayPalDataCollector/src/main/java/com/braintreepayments/api/PayPalDataCollectorRequest.java
#	PayPalDataCollector/src/test/java/com/braintreepayments/api/PayPalDataCollectorRequestUnitTest.java
#	PayPalDataCollector/src/test/java/com/braintreepayments/api/PayPalDataCollectorUnitTest.java
#	PayPalNativeCheckout/build.gradle
#	PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutClient.java
#	PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutInternalClient.java
#	PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutRequest.java
#	PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutVaultRequest.java
#	PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeRequest.java
#	PayPalNativeCheckout/src/test/java/com/braintreepayments/api/PayPalCheckoutRequestUnitTest.java
#	PayPalNativeCheckout/src/test/java/com/braintreepayments/api/PayPalNativeCheckoutClientUnitTest.kt
#	PayPalNativeCheckout/src/test/java/com/braintreepayments/api/PayPalNativeCheckoutInternalClientUnitTest.java
#	PayPalNativeCheckout/src/test/java/com/braintreepayments/api/PayPalVaultRequestUnitTest.java
#	README.md
#	Venmo/src/main/java/com/braintreepayments/api/VenmoClient.java
#	Venmo/src/test/java/com/braintreepayments/api/VenmoClientUnitTest.java
#	VisaCheckout/src/main/java/com/braintreepayments/api/VisaCheckoutClient.java
#	VisaCheckout/src/test/java/com/braintreepayments/api/VisaCheckoutClientUnitTest.kt
#	build.gradle
#	docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-request/-data-collector-request.html
#	docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-request/has-user-location-consent.html
#	docs/BraintreeDataCollector/com.braintreepayments.api/-data-collector-request/index.html
#	docs/GooglePay/com.braintreepayments.api/-google-pay-client/tokenize.html
#	docs/LocalPayment/com.braintreepayments.api/-local-payment-request/-local-payment-request.html
#	docs/LocalPayment/com.braintreepayments.api/-local-payment-request/has-user-location-consent.html
#	docs/PayPal/com.braintreepayments.api/-pay-pal-request/has-user-location-consent.html
#	docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-request/-pay-pal-data-collector-request.html
#	docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-request/has-user-location-consent.html
#	docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-request/index.html
#	docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector-request/risk-correlation-id.html
#	docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/collect-device-data.html
#	docs/PayPalNativeCheckout/com.braintreepayments.api/-pay-pal-native-request/has-user-location-consent.html
#	settings.gradle
#	v4.9.0+_MIGRATION_GUIDE.md
#	v4_MIGRATION_GUIDE.md
* main:
  Prepare for development
  Release 4.47.0
  App links feature (#1027)
  Fix 3DS Black Screen Bug on Android 14 (#1025)

# Conflicts:
#	BraintreeCore/src/main/java/com/braintreepayments/api/BraintreeClient.kt
#	BraintreeCore/src/main/java/com/braintreepayments/api/core/BraintreeOptions.kt
#	BraintreeCore/src/test/java/com/braintreepayments/api/BraintreeClientUnitTest.kt
#	CHANGELOG.md
#	Demo/src/main/AndroidManifest.xml
#	Demo/src/main/java/com/braintreepayments/demo/BraintreeClientFactory.java
#	Demo/src/main/java/com/braintreepayments/demo/DemoActivity.java
#	Demo/src/main/res/values/strings.xml
#	PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java
#	PayPal/src/main/java/com/braintreepayments/api/PayPalInternalClient.java
#	PayPal/src/test/java/com/braintreepayments/api/paypal/PayPalCheckoutRequestUnitTest.java
#	README.md
#	TestUtils/src/main/java/com/braintreepayments/api/MockBraintreeClientBuilder.java
#	ThreeDSecure/src/main/AndroidManifest.xml
#	build.gradle
#	detekt/detekt-config.yml
#	docs/Card/com.braintreepayments.api/-card-client/tokenize.html
#	docs/GooglePay/com.braintreepayments.api/-google-pay-client/on-activity-result.html
#	docs/LocalPayment/com.braintreepayments.api/-local-payment-client/on-browser-switch-result.html
#	docs/PayPalDataCollector/com.braintreepayments.api/-pay-pal-data-collector/collect-device-data.html
#	docs/Venmo/com.braintreepayments.api/-venmo-client/on-activity-result.html
@tdchow tdchow requested a review from a team as a code owner June 7, 2024 16:38
color = PayPalMessagingColor.BLACK
)

// TODO: Refactor BraintreeClient out of PayPalMessagingView
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be addressed in a follow up PR.

private lateinit var payPalClient: PayPalClient
private lateinit var venmoClient: VenmoClient

// TODO: Refactor Shopper Insights to remove BraintreeClient
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be addressed in a follow up PR.

@saperi22 saperi22 merged commit 83a8eba into v5 Jun 13, 2024
3 checks passed
@saperi22 saperi22 deleted the main-into-v5 branch June 13, 2024 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.