{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":21631528,"defaultBranch":"main","name":"braintree_android","ownerLogin":"braintree","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-07-08T22:33:02.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3453?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718998801.0","currentOid":""},"activityList":{"items":[{"before":"4f0655b17906bf7bc05b2ceb16a4214e49a5f07d","after":"d063568970c09cfd6e47f76bfdc7a58dcdbe85d2","ref":"refs/heads/app_link_updates","pushedAt":"2024-06-21T19:51:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sarahkoop","name":"Sarah Koop","path":"/sarahkoop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67924275?s=80&v=4"},"commit":{"message":"Update CHANGELOG","shortMessageHtmlLink":"Update CHANGELOG"}},{"before":"4af8cc5120640cbdf2de68986694388efe801d92","after":"4f0655b17906bf7bc05b2ceb16a4214e49a5f07d","ref":"refs/heads/app_link_updates","pushedAt":"2024-06-21T19:50:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sarahkoop","name":"Sarah Koop","path":"/sarahkoop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67924275?s=80&v=4"},"commit":{"message":"update migration guide","shortMessageHtmlLink":"update migration guide"}},{"before":"3787344dcc255c312a592a1f1a51995713544a1a","after":"4af8cc5120640cbdf2de68986694388efe801d92","ref":"refs/heads/app_link_updates","pushedAt":"2024-06-21T19:49:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sarahkoop","name":"Sarah Koop","path":"/sarahkoop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67924275?s=80&v=4"},"commit":{"message":"Update migration guide","shortMessageHtmlLink":"Update migration guide"}},{"before":null,"after":"3787344dcc255c312a592a1f1a51995713544a1a","ref":"refs/heads/app_link_updates","pushedAt":"2024-06-21T19:40:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sarahkoop","name":"Sarah Koop","path":"/sarahkoop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67924275?s=80&v=4"},"commit":{"message":"Add appLinkUri to PayPalClient","shortMessageHtmlLink":"Add appLinkUri to PayPalClient"}},{"before":"1b3de04f498889d1cf5437630f3b8f055e4d8877","after":"dace9a1a57789cde08844e93d6069d9f416c2eda","ref":"refs/heads/fixups-for-main-merge-into-v5","pushedAt":"2024-06-20T17:00:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"saperi22","name":null,"path":"/saperi22","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104481964?s=80&v=4"},"commit":{"message":"update demo app","shortMessageHtmlLink":"update demo app"}},{"before":null,"after":"f44bc3717252864a38f55cda274d5ee01d84d4d2","ref":"refs/heads/3DS-customFields-verifyCard","pushedAt":"2024-06-18T21:23:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"warmkesselj","name":null,"path":"/warmkesselj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150195168?s=80&v=4"},"commit":{"message":"Add custom fields to threedsecure request","shortMessageHtmlLink":"Add custom fields to threedsecure request"}},{"before":"d6ec39e79bf546e5ce57bd9cb460947e4acfe7e1","after":"db72d32b52e8b72102b90288cec98ea87f540e4f","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-18T20:42:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Update docstrings","shortMessageHtmlLink":"Update docstrings"}},{"before":null,"after":"46ae524ba5ee1d812e0aa3bcf1f59c6b2235d3c9","ref":"refs/heads/cleanup-migration-guide","pushedAt":"2024-06-18T20:18:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"scannillo","name":null,"path":"/scannillo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35243507?s=80&v=4"},"commit":{"message":"Clarify Java & AGP requirements","shortMessageHtmlLink":"Clarify Java & AGP requirements"}},{"before":"679a7a257fc8761ba33cd8bb89adc208f4c2d734","after":"5c7dda6407d17aa1010619d52c902d2420d50445","ref":"refs/heads/network-request-latency-multiple-calls","pushedAt":"2024-06-18T20:12:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Replicate multiple calls issue+","shortMessageHtmlLink":"Replicate multiple calls issue+"}},{"before":null,"after":"679a7a257fc8761ba33cd8bb89adc208f4c2d734","ref":"refs/heads/network-request-latency-multiple-calls","pushedAt":"2024-06-18T20:06:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Merge branch 'network-request-latency' into network-request-latency-multiple-calls","shortMessageHtmlLink":"Merge branch 'network-request-latency' into network-request-latency-m…"}},{"before":"ea509f1a5a548753e744baf415ddc94aa3973605","after":"d6ec39e79bf546e5ce57bd9cb460947e4acfe7e1","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-18T20:05:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Get mutation name","shortMessageHtmlLink":"Get mutation name"}},{"before":"15c60c180911a84ad08427c09531b8c5221056b4","after":"ea509f1a5a548753e744baf415ddc94aa3973605","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-18T17:42:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Stripping out the merchants","shortMessageHtmlLink":"Stripping out the merchants"}},{"before":"ee093d0f4e6042000a09d9b09bb905210f7abd18","after":"15c60c180911a84ad08427c09531b8c5221056b4","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-18T17:34:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Rename HttpTimingResponse with HttpResponse","shortMessageHtmlLink":"Rename HttpTimingResponse with HttpResponse"}},{"before":"1a32ee9f0998d5de4fd6e5c4ae5a539ceb554c49","after":"ee093d0f4e6042000a09d9b09bb905210f7abd18","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-18T17:25:56.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Fix tests","shortMessageHtmlLink":"Fix tests"}},{"before":"6e0a4eeac18f09c560d56a6e3f864a2699e63843","after":"1a32ee9f0998d5de4fd6e5c4ae5a539ceb554c49","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-18T16:05:45.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Made long parameter nullable","shortMessageHtmlLink":"Made long parameter nullable"}},{"before":null,"after":"65e57eac8c5e52920f6292f7189b1103a8b2938c","ref":"refs/heads/store-analytics-payload-as-json-string","pushedAt":"2024-06-14T18:19:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"saperi22","name":null,"path":"/saperi22","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104481964?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"dddf6260d1c02e80b5b0234f56849e5495905577","after":null,"ref":"refs/heads/scannillo-patch-1","pushedAt":"2024-06-14T18:03:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"scannillo","name":null,"path":"/scannillo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35243507?s=80&v=4"}},{"before":"3ace38b39dfe709716a3a7d7a32b11bbe733c0b7","after":"1b3de04f498889d1cf5437630f3b8f055e4d8877","ref":"refs/heads/fixups-for-main-merge-into-v5","pushedAt":"2024-06-14T17:05:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"saperi22","name":null,"path":"/saperi22","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104481964?s=80&v=4"},"commit":{"message":"linter fixes","shortMessageHtmlLink":"linter fixes"}},{"before":"cd3701885a104f0c511666e54b51dc02644aae57","after":null,"ref":"refs/heads/v5-tls-1.3","pushedAt":"2024-06-14T13:58:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"scannillo","name":null,"path":"/scannillo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35243507?s=80&v=4"}},{"before":"83a8eba897ab10ef00c6ddd77b83563f62e94a2c","after":"f3f9ee83c1a558ef82fbfff9fd919973bd58e27f","ref":"refs/heads/v5","pushedAt":"2024-06-14T13:58:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"scannillo","name":null,"path":"/scannillo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35243507?s=80&v=4"},"commit":{"message":"Enable TLS 1.3, when available (#1033)","shortMessageHtmlLink":"Enable TLS 1.3, when available (#1033)"}},{"before":"13b09c98336b8bb4be60d1d47cab31242a92b4ad","after":"cd3701885a104f0c511666e54b51dc02644aae57","ref":"refs/heads/v5-tls-1.3","pushedAt":"2024-06-14T13:42:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"scannillo","name":null,"path":"/scannillo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35243507?s=80&v=4"},"commit":{"message":"Merge branch 'v5' into v5-tls-1.3","shortMessageHtmlLink":"Merge branch 'v5' into v5-tls-1.3"}},{"before":"2ffbfc705885bad41197965a103ad17fa259e3bd","after":"3ace38b39dfe709716a3a7d7a32b11bbe733c0b7","ref":"refs/heads/fixups-for-main-merge-into-v5","pushedAt":"2024-06-14T06:29:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"saperi22","name":null,"path":"/saperi22","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104481964?s=80&v=4"},"commit":{"message":"set authString on launch of PayPalMessaging and ShopperInsights","shortMessageHtmlLink":"set authString on launch of PayPalMessaging and ShopperInsights"}},{"before":null,"after":"2ffbfc705885bad41197965a103ad17fa259e3bd","ref":"refs/heads/fixups-for-main-merge-into-v5","pushedAt":"2024-06-14T06:12:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"saperi22","name":null,"path":"/saperi22","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104481964?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":null,"after":"dddf6260d1c02e80b5b0234f56849e5495905577","ref":"refs/heads/scannillo-patch-1","pushedAt":"2024-06-13T19:44:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"scannillo","name":null,"path":"/scannillo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/35243507?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"a8ec39ceac4e8729e36423fe8b8c0323af4af4fb","after":null,"ref":"refs/heads/main-into-v5","pushedAt":"2024-06-13T18:53:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"saperi22","name":null,"path":"/saperi22","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104481964?s=80&v=4"}},{"before":"6ab7d46a42e655c102d65b0f0455c7215ec34790","after":"83a8eba897ab10ef00c6ddd77b83563f62e94a2c","ref":"refs/heads/v5","pushedAt":"2024-06-13T18:53:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"saperi22","name":null,"path":"/saperi22","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104481964?s=80&v=4"},"commit":{"message":"Merge Main into v5 (#1029)\n\n* Create PayPalMessaging Module (#847)\r\n\r\n* added new module for paypal-messaging\r\n* Created empty PayPalMessagingClient.kt and PayPalMessagingClientUnitTest.ktclass files\r\n* Added AndroidManifest.xml to this module\r\n* Created build.gradle to include necessary dependencies and settings\r\n\r\nCo-authored-by: Jax DesMarais-Leder \r\n\r\n* Add Payment Insights Client public API shell (#844)\r\n\r\n* Added Shopper Insights client, request, result, stubs and docs\r\n\r\n* Added Shopper Insights client unit test\r\n\r\nAdded Shopper Insights client unit test\r\n\r\n* Added insight callback updated unit test\r\n\r\n* adding unit test documentation\r\n\r\n* remove coroutines\r\n\r\n* add new line\r\n\r\n* remove open\r\n\r\n* fix detekt\r\n\r\n* Update BraintreeCore/src/main/java/com/braintreepayments/api/BraintreeShopperInsightsClient.kt\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* rename ShopperInsightsClient\r\n\r\n* lighten ShopperInsight docs\r\n\r\n* change ShopperInsightRequest from val to var\r\n\r\n* remove special char e.g.\r\n\r\n* rename response to info\r\n\r\n* Add Email and Phone request sub classes with unit tests\r\n\r\n* rename methods\r\n\r\n* updated unit tests\r\n\r\n* Added Email and Phone data class\r\n\r\n* Add docs and make interface a functional interface\r\n\r\n* simplify syntax\r\n\r\n* updating dependency\r\n\r\n* Rename parameters\r\n\r\n* fix lint issues\r\n\r\n* Addressing PR comment: making email a simple string\r\n\r\n* fix tests\r\n\r\n* Refactoring tests\r\n\r\n* linter fixes\r\n\r\n* refactoring\r\n\r\n* Renaming class\r\n\r\n* formatting\r\n\r\n* compact code\r\n\r\n* add docs\r\n\r\n* add kdoc\r\n\r\n* more kdocs\r\n\r\n* use constants for key strings\r\n\r\n* fix suppress params\r\n\r\n* Update BraintreeCore/src/test/java/com/braintreepayments/api/ShopperInsightsClientUnitTest.kt\r\n\r\nCo-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com>\r\n\r\n* Rename classes\r\n\r\n* Address PR comments.\r\nMove the object to json conversion to API class\r\n\r\n* move class to its own file\r\n\r\n* Change the ShopperInsightsRequest class signature\r\n\r\n* Moving the validation logic\r\n\r\n* adding kdoc\r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\nCo-authored-by: saperi \r\nCo-authored-by: saperi22 <104481964+saperi22@users.noreply.github.com>\r\nCo-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com>\r\n\r\n* Create ShopperInsights module and move files there. (#853)\r\n\r\n* Create ShopperInsights module and move files there.\r\n\r\n* Add EOF line\r\n\r\n* Add README.md to the module\r\n\r\n* clean up dependencies\r\n\r\n* Refactor classes to standard package name\r\n\r\n* remove unused files\r\n\r\n* Modify release.yml to include newly created ShopperInsights module\r\n\r\n* Modify release_snapshot.yml to include newly created ShopperInsights module\r\n\r\n* remove example instrumented test\r\n\r\n* update dependencies\r\n\r\n* add dokka plugin to ShopperInsights module\r\n\r\n* removing readme\r\n\r\n* Add PayPal Messaging Release Steps (#863)\r\n\r\n* Add testing PayPalMessaging to GitHub workflows\r\n* Add PayPalMessaging to build.gradle\r\n\r\n* Add Shopping Insights Demo App Integration (#854)\r\n\r\n* Add Shopping Insights Fragment\r\n\r\n* move insight row\r\n\r\n* added shopping insight vm, ui and integration\r\n\r\n* fix linting\r\n\r\n* Add email and phone null switches\r\n\r\n* remove unused import\r\n\r\n* import ShopperInsights module\r\n\r\n---------\r\n\r\nCo-authored-by: Sai \r\n\r\n* rename PayPalMessagingClient to PayPalMessagingView (#870)\r\n\r\n* Shopper Insights - Merchant analytics (#869)\r\n\r\n* Add events for merchant analytics\r\n\r\n* Add API for merchants to call to send shopper insights analytics events\r\n\r\n* Adding tests\r\n\r\n* fixing lint issue\r\n\r\n* Use constants instead of sealed class for analytics event strings\r\n\r\n* Adding PayPal and Venmo apps installed check (#872)\r\n\r\n* Checking if PayPal and Venmo are installed and returning a success result.\r\n\r\n* fix linter\r\n\r\n* Change logic to check if both Venmo and PayPal apps are installed\r\n\r\n* refactoring logic\r\n\r\n* rename class\r\n\r\n* Wire up demo app\r\n\r\n* rename ShoppingInsights to ShopperInsights\r\n\r\n* adding another test\r\n\r\n* modify tests\r\n\r\n* refactor logic\r\n\r\n* Created Shopping Insight Api request with default values\r\n\r\n* Created Shopper Insight Api Result\r\n\r\n* change api result to camel case\r\n\r\n* fix\r\n\r\n* create body and api separate classes\r\n\r\n* fix unit test\r\n\r\n* fix detekt\r\n\r\n* remove gson\r\n\r\n* add ShopperInsightApiResultTest\r\n\r\n* change to internal\r\n\r\n* separate data class files\r\n\r\n* drop call name from shopping api class\r\n\r\n* remove vault tokens not needed\r\n\r\n* renamed to ShopperInsightsApi\r\n\r\n* var to val for request data\r\n\r\n* fixed name shoppingInsightsApi\r\n\r\n* removed options and default from ShopperInsightsPaymentMethodDetails\r\n\r\n* rename to eligibleInPayPalNetwork\r\n\r\n* fix eligibleInPayPalNetwork\r\n\r\n* fixed json optional object\r\n\r\n* rename to ShoppingInsightsCreateBodyUnitTest\r\n\r\n* fix ShopperInsightApiResultUnitTest\r\n\r\n* Adding analytics events for Shopper Insights (#882)\r\n\r\n* move toJson into shopper request api\r\n\r\n* create shopper api wrapper class for client\r\n\r\n* fix gradle missing empty space\r\n\r\n* reorganize and renamed classes\r\n\r\n* update class docs\r\n\r\n* move out of findeligiblepayments package\r\n\r\n* remove Find\r\n\r\n* match class name eligiblePaymentsApi\r\n\r\n* Add PayPal Messaging Dependency (#888)\r\n\r\n* add PayPal Messages dependency\r\n* update build.grade to reflect min SDK version and import snapshots\r\n* add TODO to remove importing snapshots before release\r\n* add rootProject.minSdkVersionPayPalMessaging\r\n\r\n* Paypal Messaging Implementation (#895)\r\n\r\n* Add PayPalMessagingRequest, PayPalMessagingColor, PayPalMessagingLogoType, PayPalMessagingOfferType, PayPalMessagingPlacement, PayPalMessagingTextAlignment, and PayPalMessagingListener\r\n* Add PayPalMessagingView as the main entry point for merchants\r\n\r\n* Messaging analytics\r\n\r\n* Add network call for shopper insights (#894)\r\n\r\n* add network call using bt client\r\n\r\n* add authorization header\r\n\r\n* pass result to demo app\r\n\r\n* use bearer token\r\n\r\n* fix linting\r\n\r\n* add move url todo\r\n\r\n* fix detekt\r\n\r\n* Update BraintreeCore/src/main/java/com/braintreepayments/api/BraintreeHttpClient.kt\r\n\r\nCo-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com>\r\n\r\n* suppress CyclomaticComplexMethod\r\n\r\n* check httpError\r\n\r\n* return httpError if responseBody is null\r\n\r\n* use config environment for base url\r\n\r\n* add eligible payments api unit test class\r\n\r\n* Update API response logic in ShopperInsightsClient and add test coverage for BraintreeHttpClient, EligiblePaymentsApi and ShopperInsightsClient\r\n\r\n* Use BraintreeException instead of a NullPointerException\r\n\r\n---------\r\n\r\nCo-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com>\r\nCo-authored-by: Timothy Chow \r\n\r\n* Address PR comments\r\n\r\n* Remove App Check From Shopper Insights and Analytics Updates (#909)\r\n\r\n* Remove app check from Shopper Insights and update analytics logic\r\n\r\n* Fix test names\r\n\r\n* Add function for callbackSuccess\r\n\r\n* update enum for analytics event names\r\n\r\n* Helper method for onSuccess\r\n\r\n* Adding new line\r\n\r\n* Remove .value\r\n\r\n* Remove semicolon on package\r\n\r\n* Add PayPal-Client-Metadata-Id to Shopper Insights API Call (#912)\r\n\r\n* Add PayPal-Client-Metadata-Id to shopper insights API call\r\n\r\n* Fix spacing lint issue\r\n\r\n* Remove unneeded empty map in ApiClient\r\n\r\n* Add PayPal Messaging Feature to Demo App (#915)\r\n\r\n* Add PayPalMessagingFragment to Demo app\r\n* Add button to demo app to select this feature\r\n* Implement PayPalMessagingView\r\n* Update PayPalMessagingView method and subclass FrameLayout so the class is a view type\r\n* Move context to constructor vs in start method as it is needed for FrameLayout subclass\r\n* Update CHANGELOG with these changes\r\n\r\n* [Shopper Insights] Demo App Parity (#913)\r\n\r\n - Add Venmo & PayPal Vault buttons to ShopperInsights demo\r\n - Disable Venmo & PP buttons until `getRecommendedPaymentMethods()` result\r\n - Add default email & phone test values to trigger mocked API response\r\n\r\n* Add optional param, payerEmail, to PayPalVaultRequest (#918)\r\n\r\n* Cleanup PayPal Messaging Implementation (#927)\r\n\r\n* Move to setListener() pattern used in other modules\r\n* Remove unneeded else block\r\n\r\n* Remove payee and merchant id from eligible payments API request (#929)\r\n\r\n* Add Unit Tests for PayPal Messaging (#925)\r\n\r\n* Add Unit Tests for PayPal Messaging feature\r\n\r\nCo-authored-by: Justin Warmkessel \r\n\r\n* DocString on Country Restrictions\r\n\r\n* fix line length lint error\r\n\r\n* Jax PR feedback\r\n\r\n* Add merchant logging in the Shopper Insights demo flow (#933)\r\n\r\n* Update Dependencies (#936)\r\n\r\n* Update Room to 2.6.1 and Dokka to 1.9.10\r\n\r\n* Update gson to 2.10.0 in the demo module\r\n\r\n* Update Play Services to 19.3.0\r\n\r\n* Add network config for Demo app (#938)\r\n\r\n* Add has user location consent to Data Collector and PayPal Data Collector (#954)\r\n\r\n* Add hasUserLocationConsent param to the Data Collector and PayPal Data Collector modules\r\n\r\n* Add unit tests for overloaded methods defaulting to false\r\n\r\n* Add deprecation annotation and add feature branch snapshot trigger\r\n\r\n* Add test case when request object is passed in\r\n\r\n* Add workflow dispatch\r\n\r\n* Add has user location consent param in PayPal, PayPal Native, and Local Payment modules (#956)\r\n\r\n* Add hasUserLocationConsent parameter to the PayPal module\r\n\r\n* Add hasUserLocationConsent parameter to the PayPal Native module\r\n\r\n* Add hasUserLocationConsent parameter to the Local Payment Module\r\n\r\n* Update changelog for hasUserLocationConsent interface changes\r\n\r\n* Update changelog for Data Collector and PayPal Data Collector\r\n\r\n* Update changelog wording and change unit test assertion\r\n\r\n* Update PayPalNativeCheckout/src/main/java/com/braintreepayments/api/PayPalNativeCheckoutVaultRequest.java\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Add empty constructor for PayPalRequest\r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Update PULL_REQUEST_TEMPLATE.MD (#957)\r\n\r\n* Add GooglePay.isReadyToPay() with Context Parameter (#951)\r\n\r\n* Add isReadyToPay method for GooglePayClient with Context.\r\n\r\n* Add unit tests for GooglePayClient application context when calling isReadyToPay.\r\n\r\n* Fix error message for null context in GooglePayClient.isReadyToPay.\r\n\r\n* Fix unit test issue.\r\n\r\n* Add CHANGELOG entry.\r\n\r\n* Update Magnes SDK and Add Javadocs for the hasUserLocationConsent Param (#961)\r\n\r\n* Update Magnes SDK to 5.5.0 and add javadocs for the hasUserLocationConsent param in Local Payment and PayPal modules\r\n\r\n* Revert PayPalNative interface changes\r\n\r\n* Add docs for DataCollector and PayPalDataCollector\r\n\r\n* Update CHANGELOG.md to add Magnes version bump\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Bump Detekt to 1.23.6 for ignoring maxLineLength for comments that contain URLs\r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Remove changlog links to developer docs for the Google Play Store Rejection fix\r\n\r\n* Update PayPal/src/main/java/com/braintreepayments/api/PayPalCheckoutRequest.java\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Use new constructor for LocalPaymentRequest\r\n\r\n* Fix indent for Google Play changelog\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Remove internal javadoc\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Fix indent for Google Play changelog and move riskCorrelationId into PayPalDataCollector\r\n\r\n* Fix javadoc syntax\r\n\r\n* Fix compile error in PayPalDataCollectorTest (#967)\r\n\r\n* Release 4.44.0\r\n\r\n* Prepare for development\r\n\r\n* Add Google Pay Direct Integration (#972)\r\n\r\n* Make direct Google Pay integration method public\r\n\r\n* Add new certs to v4 (#969)\r\n\r\n* Updated expiring certs\r\n\r\n* Update CHANGELOG.md\r\n\r\n* Updated cert output file\r\n\r\n* PayPal Native - Play Store Compliance Fix (#977)\r\n\r\n* Bump MXO SDK to 1.3.2 and bump Magnes SDK to 5.5.1\r\n\r\n* Add hasUserLocationConsent boolean to PayPal Native request classes and pass flag to the MXO SDK and Magnes\r\n\r\n* Add sections to CHANGELOG.md\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Update hasUserLocationConsent doc to remove optional\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Make PayPalNativeRequest constructor package private\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Release 4.45.0\r\n\r\n* Prepare for development\r\n\r\n* Remove duplicate test\r\n\r\n* Buyer Email for PayPal One Time Checkout (#978)\r\n\r\n* Pass buyer email to PayPal one time checkout\r\n\r\n* Update changelog\r\n\r\n* Add input for setting buyer email address in the demo app (#979)\r\n\r\n* Send `link_type` FPTI tag (#976)\r\n\r\n* Add linkt type parameter used by Venmo Client\r\n\r\n* Fix some UTs\r\n\r\n* Add description on CHANGELOG\r\n\r\n* Update UTs\r\n\r\n* Address PR comments\r\n\r\n* Migrate database\r\n\r\n* Delete unnecessary file\r\n\r\n* Fix lint\r\n\r\n* Fix lint\r\n\r\n* Add database migration support from version 1 to version 3\r\n\r\n* Revert changes on v2 json file\r\n\r\n* Remove unnecessary manual migration\r\n\r\n* Add ExperimentalBetaApi annotation (#985)\r\n\r\n* Add ExperimentalBetaApi annotation\r\n\r\n* Add kdocs to annotation class\r\n\r\n* Add New Demo Tokenization Key for PayPal (#996)\r\n\r\n* Add new tokenization key\r\n\r\n* Fix keys and settings\r\n\r\n* Bump PayPal Messages to v1.0.0 develop.2 (#981)\r\n\r\n* Update Gradle with PayPal Messages 1.0.0-develop.2\r\n\r\n* Replace PayPalMessagingPlacement with PayPalMessagingPageType\r\n\r\n* Update PayPalMessagingRequest\r\n\r\n* Fix UTs\r\n\r\n* Update CHANGELOG\r\n\r\n* Add version SDK name method on Braintree Client\r\n\r\n* Rename PayPalMessagingLogoType case simple to none\r\n\r\n* Update UT\r\n\r\n* Remove getter and add Version Name on gradle file\r\n\r\n* Fix UTs\r\n\r\n* Replace rawValue with internalValue\r\n\r\n* Replace default logo type and textAligment values with the same default values in PayPalMessageStyle\r\n\r\n* Revert color parameter on request constructor\r\n\r\n* Revert Request default values\r\n\r\n* Update README - Added upgrade SDK message (#994)\r\n\r\n* Update README - Added upgrade SDK message\r\n\r\n* Added Announcements section\r\n\r\n* Handle empty email address (#1000)\r\n\r\n* Prevent sending email param when email is empty and send postal code in the demo app\r\n\r\n* Use put instead of putOpt\r\n\r\n* Add `venmo_installed` Analytics tag (#991)\r\n\r\n* Add venmo_installed Analytics tag\r\n\r\n* revert changes to 3.json\r\n\r\n* fix lint error\r\n\r\n* fix autoMigration\r\n\r\n* venmoInstalled in BraintreeClient\r\n\r\n* Steven PR feedback: deviceInspector init in constructor\r\n\r\n* Write venmoInstalled values to analytics db\r\n\r\n* Steven PR feedback, incremental database migration\r\n\r\n---------\r\n\r\nCo-authored-by: Sai \r\n\r\n* Add requiresOptin (#1001)\r\n\r\n* Add ExperimentalBetaApi annotation\r\n\r\nvicpark@paypal.com\r\nsaperi@paypal.com\r\n\r\n---------\r\n\r\nCo-authored-by: Sai \r\n\r\n* Paypal messaging feature update dependency (#1002)\r\n\r\njwarmkessel@paypal.com\r\nsaperi@paypal.com\r\nvicpark@paypal.com\r\n\r\n* Update the unit test\r\n\r\n* Update to dependency 1.0.0\r\n\r\n* Add isEligibleInPayPalNetwork boolean to ShopperInsightsInfo (#1005)\r\n\r\n* Add isEligibleInPayPalNetwork boolean to ShopperInsightsInfo\r\n\r\n* Add kdoc for isEligibleInPayPalNetwork\r\n\r\n* Add Shopper Insights to the changelog (#1006)\r\n\r\n* Add Shopper Insights to the changelog\r\n\r\n* Remove individual classes\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Send `is_vault` FPTI tag (#1004)\r\n\r\n* Update Analytics database with isVaultResquest parameter\r\n\r\n* Add isVaultResquest keys on client\r\n\r\n* Update BraintreeClient.sendAnalytics with isVaultRequest parameter\r\n\r\n* Add isVaultRequest in sendAnalytics calls for PayPalClient\r\n\r\n* Add isVaultRequest in semdAnalytitcs calls for VenmoClient\r\n\r\n* Set isVaultRequest up on VenmoClient\r\n\r\n* Update AnalyticsClientTests\r\n\r\n* Update PayPal client tests\r\n\r\n* Update CHANGELOG\r\n\r\n* Fix lint\r\n\r\n* Fix VisaCheckout module after adding new parameter in sendAnalyticsEvent\r\n\r\n* Fix Venmo Client UTs\r\n\r\n* Update PayPalNativeCheckoutClient with isVaultRequest parameter in sendAnalytics method\r\n\r\n* Update Changelog\r\n\r\n* Update CHANGELOG\r\n\r\n* Update Changelog\r\n\r\n* bump paypal messaging to version 1.0.1 (#1010)\r\n\r\n* Chore messaging set global analytics (#1007)\r\n\r\n* Use PayPalMessageConfig setGlobalAnalytics for integration and version\r\n\r\nvicpark@paypal.com\r\nsaperi@paypal.com\r\njwarmkessel@gmail.com\r\n\r\n* Update PayPalMessaging/src/main/java/com/braintreepayments/api/PayPalMessagingView.kt\r\n\r\nCo-authored-by: Jax DesMarais-Leder \r\n\r\n---------\r\n\r\nCo-authored-by: Jax DesMarais-Leder \r\n\r\n* Update PayPalInternalClient to use Pairing ID as Client Metadata ID (#983)\r\n\r\n* Update PayPalInternalClient to use pairing ID as client metadata ID by default.\r\n\r\n* Set applicationGuid for data collector request\r\n\r\n* Add unit tests for ba_token and token url param parsing from PayPal redirect URL.\r\n\r\n* Fix unit tests for PayPal Native Checkout.\r\n\r\n---------\r\n\r\nCo-authored-by: Sai \r\n\r\n* Update existing PayPalMessagingView (#1013)\r\n\r\n* Create internal messageView property to track if has been initialized\r\n\r\n* Add test to validate number of subviews\r\n\r\n* Address PR comment\r\n\r\n* update changelog.md (#1017)\r\n\r\n* Release 4.45.1\r\n\r\n* Prepare for development\r\n\r\n* Log context ID analytics before launching PayPal browser switch (#1018)\r\n\r\n* Release 4.46.0\r\n\r\n* Prepare for development\r\n\r\n* Shopper Insights Final Changes (#1024)\r\n\r\n* Remove merchantId from EligiblePaymentsApiRequest\r\n\r\n* Use the default tokenization key for prod\r\n\r\n* Remove new line\r\n\r\n* Update ShopperInsights changelog\r\n\r\n* Fix demo app fragment layout\r\n\r\n* Update CHANGELOG with Missing Timestamps (#1022)\r\n\r\n* Add missing CHANGELOG for pointed versions.\r\n\r\n* Add additional timestamps manually.\r\n\r\n* Fix 3DS Black Screen Bug on Android 14 (#1025)\r\n\r\n* Add translucent theme to ThreeDSecureActivity.\r\n\r\n* Add reference links.\r\n\r\n* Update CHANGELOG.\r\n\r\n* App links feature (#1027)\r\n\r\n* Add appLinkReturnUri to BraintreeClient (#980)\r\n\r\n* Add appLinkReturnUri to BraintreeClient and collapse BraintreeClient constructors using default values\r\n\r\n* Add doc strings and unit tests\r\n\r\n* Update BraintreeCore/src/main/java/com/braintreepayments/api/BraintreeClient.kt\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Update changelog for appLinkReturnUri\r\n\r\n* Fix lint\r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Add useAppLinkReturn to PayPalRequest (#984)\r\n\r\n* Add useAppLinkReturn to PayPalRequest for Android App Link support\r\n\r\n* Update changelog\r\n\r\n* Update property name to appLinkEnabled\r\n\r\n* Update PayPal/src/main/java/com/braintreepayments/api/PayPalRequest.java\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Send app link URL to PayPal API (#986)\r\n\r\n* Add ability to launch PayPal flows with app links (#988)\r\n\r\n* Add ability to launch PayPal flows with app links\r\n\r\n* Add demo merchant site URL\r\n\r\n* Add intent filter for demo app link (#989)\r\n\r\n* Pass app link to browser switch (#999)\r\n\r\n* Pass app link uri to BrowserSwtichOptions.\r\n\r\n* update browser-switch dependency\r\n\r\n* Update CHANGELOG.md\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* Update PayPal/src/main/java/com/braintreepayments/api/PayPalClient.java\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n---------\r\n\r\nCo-authored-by: Sarah Koop \r\n\r\n* exclude tests from LargeClass detekt rule\r\n\r\n---------\r\n\r\nCo-authored-by: Tim Chow \r\nCo-authored-by: Sarah Koop \r\n\r\n* Release 4.47.0\r\n\r\n* Prepare for development\r\n\r\n* Resolve compile issues caused by merge conflicts\r\n\r\n* Fix lint issues and failing unit tests (WIP)\r\n\r\n* Fix remaining Venmo tests\r\n\r\n---------\r\n\r\nCo-authored-by: agedd <105314544+agedd@users.noreply.github.com>\r\nCo-authored-by: Jax DesMarais-Leder \r\nCo-authored-by: Max Hastings <128730898+MaxHastingsPP@users.noreply.github.com>\r\nCo-authored-by: Sarah Koop \r\nCo-authored-by: saperi \r\nCo-authored-by: saperi22 <104481964+saperi22@users.noreply.github.com>\r\nCo-authored-by: sshropshire <58225613+sshropshire@users.noreply.github.com>\r\nCo-authored-by: mhastings \r\nCo-authored-by: Justin Warmkessel \r\nCo-authored-by: scannillo <35243507+scannillo@users.noreply.github.com>\r\nCo-authored-by: warmkesselj <150195168+warmkesselj@users.noreply.github.com>\r\nCo-authored-by: Sammy Cannillo \r\nCo-authored-by: Victoria Park \r\nCo-authored-by: braintreeps \r\nCo-authored-by: Stephanie <127455800+stechiu@users.noreply.github.com>\r\nCo-authored-by: Rich Herrera ","shortMessageHtmlLink":"Merge Main into v5 (#1029)"}},{"before":"7f0dc2e62dfb1c73f94c38f4896820cb39a59b64","after":null,"ref":"refs/heads/certificate_pinning_remove_getter","pushedAt":"2024-06-13T18:34:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sshropshire","name":null,"path":"/sshropshire","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58225613?s=80&v=4"}},{"before":"ed61372835c58248b6593c6fc575be24631b05d5","after":"6bd00ebbe1483cc16403df27bbfe7f9a3a02c8c0","ref":"refs/heads/main","pushedAt":"2024-06-13T18:34:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sshropshire","name":null,"path":"/sshropshire","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58225613?s=80&v=4"},"commit":{"message":"Refactor TLSCertificatePinning `certInputStream` Accessor (#1036)\n\n* Refactor TLSCertificatePinning to initialize certs only once and move exception annotation to proper location.\r\n\r\n* Update CHANGELOG.\r\n\r\n* Create new ByteArrayInputStream using factory method so that both BraintreeHttpClient and BraintreeGraphQLClient can have their own certificate byte array input stream.","shortMessageHtmlLink":"Refactor TLSCertificatePinning certInputStream Accessor (#1036)"}},{"before":"db894839216373c1d71885ec09a581ddffc4a299","after":"6e0a4eeac18f09c560d56a6e3f864a2699e63843","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-12T16:52:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Fix name event","shortMessageHtmlLink":"Fix name event"}},{"before":"339aab9eeb4a6328bc55c335e66bce9dafc6e82e","after":"db894839216373c1d71885ec09a581ddffc4a299","ref":"refs/heads/network-request-latency","pushedAt":"2024-06-12T16:48:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"richherrera","name":"Rich Herrera","path":"/richherrera","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/149086692?s=80&v=4"},"commit":{"message":"Add test","shortMessageHtmlLink":"Add test"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEa-v1XgA","startCursor":null,"endCursor":null}},"title":"Activity · braintree/braintree_android"}