diff --git a/CHANGELOG.md b/CHANGELOG.md index 35f7ba0563..6caa09103c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * Venmo * Add `setIsFinalAmount()` to `VenmoRequest` +* ThreeDSecure + * Call cleanup method to resolve `Cardinal.getInstance` memory leak ## 4.41.0 (2024-01-18) diff --git a/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java b/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java index 794d9144d4..b5ff21b9d9 100644 --- a/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java +++ b/ThreeDSecure/src/main/java/com/braintreepayments/api/CardinalClient.java @@ -58,6 +58,8 @@ void continueLookup(ThreeDSecureResult threeDSecureResult, CardinalChallengeObse } catch (RuntimeException e) { throw new BraintreeException("Cardinal SDK cca_continue Error.", e); } + + Cardinal.getInstance().cleanup(); } private void configureCardinal(Context context, Configuration configuration, ThreeDSecureRequest request) throws BraintreeException { diff --git a/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt b/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt index f849bc3676..99d8f01c10 100644 --- a/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt +++ b/ThreeDSecure/src/test/java/com/braintreepayments/api/CardinalClientUnitTest.kt @@ -243,6 +243,8 @@ class CardinalClientUnitTest { cardinalChallengeObserver ) } + + verify { cardinalInstance.cleanup() } } @Test