Releases: Adyen/adyen-android
5.9.0
New
-
Simplified integration for Google Pay:
- The Component now includes the Google Pay button, and you no longer have to display the button with your own configuration.
- The Component now does the availability check on initialization.
- The deprecated
onActivityResult
is no longer needed.
See the migration guide to learn about the changes you have to make to your integration to support Google Pay on this version.
-
Drop-in now shows a toolbar on more intermediary screens to let shoppers navigate back easily.
Changed
- For native 3D Secure 2, when a shopper cancels the payment during the payment flow, the
onAdditionalDetails()
event is now triggered. What this means for your integration depends on whether you already make a/payments/details
call to handle 3D Secure 2 errors:- If yes, you do not need to make any changes to your integration. You can remove the
Cancelled3DS2Exception
handler. - If not, update your integration to make a
/payments/details
request to get the details of the canceled transaction.
- If yes, you do not need to make any changes to your integration. You can remove the
- Dependency versions:
Name Version Android Gradle Plugin 8.7.3 AndroidX Compose BoM 2024.12.01 AndroidX ConstraintLayout 2.2.0 AndroidX Lifecycle 2.8.7 AndroidX Lifecycle ViewModel Compose 2.8.7 KotlinX Coroutines Play Services 1.9.0
Deprecated
- The styles and strings for the Cash App Pay loading indicator. Use the new styles and strings instead.
Previous Now AdyenCheckout.CashAppPay.ProgressBar
AdyenCheckout.ProcessingPaymentView.ProgressBar
AdyenCheckout.CashAppPay.WaitingDescriptionTextView
AdyenCheckout.ProcessingPaymentView.WaitingDescriptionTextView
cash_app_pay_waiting_text
checkout_processing_payment
Repository Maintenance
- We are changing the default branch of our SDK repository from
develop
tomain
. If you are using our SDK repository and are working with thedevelop
branch, we recommend switching to themain
branch. Thedevelop
branch will be removed within the next few weeks.
5.8.0
New
- Payment method:
- Pay by Bank US. Payment method type: paybybank_AIS_DD.
Fixed
- For cards, the address lookup functionality no longer crashes if the shopper presses back when the postal code field is in focus.
- For Drop-in, fixed an issue where the error dialog showed loading state in some edge cases.
Changed
- Dependency versions:
Name Version Android Gradle Plugin 8.7.1 AndroidX Activity 1.9.3 AndroidX Annotation 1.9.1 AndroidX Autofill 1.3.0-beta01 AndroidX Compose Activity 1.9.3 AndroidX Compose BOM 2024.10.00 AndroidX Fragment 1.8.5 AndroidX Lifecycle 2.8.6 AndroidX Lifecycle ViewModel Compose 2.8.6
5.7.1
Fixed
- For the Address Lookup functionality:
- Address data is now correctly saved to
PaymentComponentData
. - Address fields that were edited manually no longer lose their state when starting Lookup mode.
- Address data is now correctly saved to
5.7.0
New
- You can now use Adyen Test Cards Android to autofill test payment method information, to test your integration more quickly.
- For Twint:
- You can now store payment details and pay with stored payment details.
Warning
For Twint Components integrations, you must now use TwintComponent
instead of InstantPaymentComponent
.
-
For French meal vouchers, the following payment method types are now available:
- Up. Payment method type: mealVoucher_FR_groupeup.
- Natixis. Payment method type: mealVoucher_FR_natixis.
- Sodexo. Payment method type: mealVoucher_FR_sodexo.
- Learn to configure French meal vouchers.
-
For API-only integrations with encrypted card details, you can now use the following classes to validate corresponding fields:
Class Description CardNumberValidator
Validates the card number field. CardExpiryDateValidator
Validates the expiry date field. CardSecurityCodeValidator
Validates the security code field. -
Support for the following locales:
Locale Values Catalan ca-ES Icelandic is-IS Bulgarian bg-BG Estonian et-EE Latvian lv-LV Lithuanian lt-lT
Fixed
- When parsing JSON objects with explicit null values, JSON deserialization no longer returns the coerced
null
string.
Improved
- For UPI Intent, if the shopper selects the Continue button without selecting an UPI option, an error message now shows.
- For Drop-in, in the navigation bar, the accessibility of the Back/Close button is improved.
Changed
- For Drop-in, headers of preselected stored payment screen and payment methods list screen are updated.
- When you set
analyticsConfiguration = AnalyticsConfiguration(AnalyticsLevel.NONE)
, only Drop-in/Components analytics are not sent to Adyen. - Dependency versions:
Name Version Adyen 3DS2 2.2.21 Cash App Pay 2.5.0 Android Gradle Plugin 8.5.1 AndroidX Fragment 1.8.3 AndroidX Activity 1.9.2 AndroidX Compose Activity 1.9.2 AndroidX Compose BOM 2024.06.00 AndroidX Lifecycle 2.8.3 AndroidX Lifecycle ViewModel Compose 2.8.3 AndroidX AppCompat 1.7.0
Deprecated
-
The style for payment method list headers. Use the new style instead.
Previous Now AdyenCheckout.TextAppearance.HeaderTitle
AdyenCheckout.TextAppearance.HeaderLabel
-
The
com.adyen.checkout.instant.ActionHandlingMethod
method. Use the new method instead.Previous Now com.adyen.checkout.instant.ActionHandlingMethod
com.adyen.checkout.components.core.ActionHandlingMethod
5.6.0
New
- For Google Pay on Advanced flow,
onSubmit
now returnsthreeDS2SdkVersion
in thepaymentMethod
object that you must pass in your/payments
request to correctly trigger the 3D Secure 2 flow.
Fixed
- On Android API versions 21 to 25, the
NoSuchMethodError
no longer occurs during the 3D Secure 2 challenge flow. - When using R8 to shrink your code,
CIRCULAR REFERENCE: com.android.tools.r8.utils.b: Missing class...
errors no longer occur.
Changed
- Dependency versions:
Name Version Adyen 3DS2 2.2.19 Kotlin 1.9.24 Android Gradle plugin 8.4.1 AndroidX Compose Compiler 1.5.14 Kotlin coroutines 1.8.1 AndroidX Fragment 1.7.1
4.13.6
Fixed
- On Android API versions 21 to 25, the
NoSuchMethodError
no longer occurs during the 3D Secure 2 challenge flow.
Changed
- Dependency versions:
Name Version Adyen 3DS2 2.2.19
5.5.0
New
- Support for the UPI Intent flow, where the shopper can choose a UPI app to pay through. They are redirected to and complete the payment on the selected app.
- The new iDEAL payment flow where the shopper is redirected to the iDEAL payment page to select their bank and authorize the payment.
Improved
-
Drop-in navigation:
- Added the top navigation bar.
- Disabled the dragging gesture that caused Drop-in to be dismissed.
- When the shopper navigates back from an additional action screen (for example Await), Drop-in is dismissed.
-
Autofill support for the following:
- For gift cards, the gift card number and PIN fields.
- For UPI Virtual Payments, the address field.
- For payment methods that use them, the address input fields.
Changed
- Dependency versions:
Name Version AndroidX Compose BoM 2024.05.00 AndroidX Lifecycle 2.8.2 Material Design 1.12.0
Deprecated
We recommend that you remove the following from your integration.
- For
IdealComponent
:isConfirmationRequired()
submit()
- For iDEAL configuration:
setViewType()
setHideIssuerLogos()
setSubmitButtonVisible()
5.4.0
New
- For external redirects, you can now customize the colors of the toolbar and navigation bar displayed in Custom Tabs.
- TWINT is now supported with a native flow, and you no longer need to redirect shoppers through the browser. To use the redirect flow, set the following configuration:
CheckoutConfiguration(
environment = environment,
clientKey = clientKey,
..
) {
// Optionally pass the payment method type to only configure it for the specific payment method.
instantPayment(PaymentMethodTypes.TWINT) {
setActionHandlingMethod(ActionHandlingMethod.PREFER_WEB)
}
}
Fixed
- Fixed some memory leaks.
- In case of a debug build, Drop-in no longer overrides the log level.
- For cards, when a shopper does not select an address, the address lookup function now displays a validation error.
- Actions no longer crash when your app uses obfuscation.
- When handling a 3D Secure 2 challenge using Checkout API v66 or earlier, Drop-in no longer throws an error.
- If the app process unexpectedly terminates when handling actions, the state is now restored and you can proceed with the payment flow.
- For
/sessions
, fixed an issue where thesetEnableRemovingStoredPaymentMethods
flag in the Drop-in configuration was ignored.
Changed
- The phone number input field in the payment form now shows ISO codes instead of flags.
- The UI elements that were previously labelled Country are now Country/Region.
- Dependency versions:
Name Version Adyen 3DS2 2.2.18 Android Gradle plugin 8.3.2 AndroidX Browser 1.8.0 AndroidX Compose Activity 1.9.0 AndroidX Compose BoM 2024.04.01 AndroidX Compose Compiler 1.5.12 AndroidX Lifecycle 2.7.0 Google Pay 19.3.0 Google Pay Compose Button 1.0.0 Kotlin 1.9.23 Kotlin coroutines 1.8.0
4.13.5
Changed
- Dependency versions:
Name Version Adyen 3DS2 2.2.17
5.3.1
Fixed
- For Drop-in and Components, when
?android:attr/textColor
is not defined in your own theme, the Card Component no longer crashes. - The
onAdditionalDetails
event is now triggered only once. Previously, the event was triggered multiple times in some edge cases. - The build output no longer contains warnings about multiple substitutions specified in non-positional format in string resources.
- For the Card Component, we fixed localization issues that occurred when using the Address Lookup functionality.
- Overriding some of the XML styles without specifying a parent style no longer causes a build error.
Removed
- You can no longer use functions like
CheckoutConfiguration.getCardConfiguration()
orCheckoutConfiguration.getDropInConfiguration()
to get configurations from theCheckoutConfiguration
object. When starting Drop-in or Components, pass the fullCheckoutConfiguration
object.
Changed
- Dependency versions:
Name Version Android Gradle plugin 8.3.1