Conversation
* Added `ThreeDS2CustomizationMapperTests.swift` to verify iOS appearance configuration mapping, including colors, fonts, and corner radii. * Added `ThreeDS2CustomizationMapperTest.kt` to verify Android UI customization mapping via `CardComponentConfigurationDTO`. * Expanded `dto_mapping_test.dart` to cover `Adyen3DSTheme` to DTO mapping scenarios, including input decorations, button themes, and header customization.
Summary of ChangesHello @Robert-SD, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the Adyen Flutter plugin by introducing robust UI customization capabilities for 3DS2 challenge screens. Developers can now seamlessly integrate their application's branding into the 3DS2 flow using a new Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces UI customization for the 3DS2 challenge screens, a valuable feature for brand consistency. The implementation is well-structured, adding new models, mappers, and platform-specific logic for both Android and iOS. The inclusion of documentation and comprehensive tests is commendable. I've provided a few suggestions to improve code clarity, fix a potential UI bug in the theme mapping, and refactor some of the new logic for better maintainability.
lib/src/common/model/payment_method_configurations/three_ds2/adyen_3ds_theme.dart
Outdated
Show resolved
Hide resolved
android/src/main/kotlin/com/adyen/checkout/flutter/utils/ConfigurationMapper.kt
Outdated
Show resolved
Hide resolved
android/src/main/kotlin/com/adyen/checkout/flutter/utils/ConfigurationMapper.kt
Show resolved
Hide resolved
LCOV of commit
|
|
/gemini review |
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
LCOV of commit
|
|
/gemini review |
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
LCOV of commit
|
* Added `Adyen3DSSelectionItemTheme` to enable customization of selection items (e.g. switches, radio buttons) in 3DS2. * Updated `ThreeDS2UICustomizationDTO` definition and generated code to support the new customization options. * Implemented Android mapping in `ConfigurationMapper.kt` to apply `SelectionItemCustomization`. * Implemented iOS mapping in `ConfigurationMapper.swift` to apply switch tint color. * Added `ThreeDS2CustomizationMapperTests` for iOS and Android to verify the new mapping logic. * Updated the example app to include `selectionItemTheme` configuration.
|
/gemini review |
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces UI customization for the 3DS2 challenge screens via a new Adyen3DSTheme. The implementation spans across Dart, Android (Kotlin), and iOS (Swift), including new DTOs for platform communication, mappers, and extensive tests. The changes are well-structured and follow the project's conventions. I've found a few areas for improvement, mainly related to documentation, code comments, and formatting. The most critical issue is an incorrect code example in the new documentation, which could mislead users. Overall, this is a solid contribution that adds a valuable feature.
android/src/main/kotlin/com/adyen/checkout/flutter/utils/ConfigurationMapper.kt
Outdated
Show resolved
Hide resolved
lib/src/common/model/payment_method_configurations/three_ds2/adyen_3ds_theme.dart
Show resolved
Hide resolved
LCOV of commit
|
LCOV of commit
|
There was a problem hiding this comment.
Code Review
This pull request introduces comprehensive UI customization for 3DS2 challenge screens in the Adyen Flutter plugin. The changes involve adding new DTOs (Data Transfer Objects) for various UI elements (screen, buttons, labels, inputs, toolbar, selection items) to the generated platform API for both Android and iOS. The ThreeDS2ConfigurationDTO is updated to include an optional uiCustomization field. On the Android side, a new ConfigurationMapper is implemented to convert these DTOs into native Android SDK UiCustomization objects, and a new test file ThreeDS2CustomizationMapperTest.kt is added to verify this mapping. The build.gradle file is updated to include the mockk testing library. On the iOS side, new test files are added to the Xcode project. Documentation is significantly updated with a new 3DS_CUSTOMIZATION.md file detailing how to use Adyen3DSTheme for customization, including a fromThemeData() factory for Flutter-idiomatic styling, and notes on platform-specific behaviors. The CHANGELOG.md is updated to reflect this new feature. The example app's drop_in_screen.dart is modified to demonstrate passing ThemeData for 3DS2 customization. A review comment highlighted inaccuracies in a new Android test case, specifically that primary button assertions were using secondary button colors and OPEN_OOB_APP was incorrectly categorized as a primary button type, suggesting a correction to the test logic and expected values.
android/src/test/kotlin/com/adyen/checkout/flutter/ThreeDS2CustomizationMapperTest.kt
Show resolved
Hide resolved
… cancel button text customization
LCOV of commit
|
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a comprehensive UI customization feature for 3DS2 challenge screens. It adds a new Adyen3DSTheme in Flutter, which allows for idiomatic theming and is mapped to native UI customization objects on both Android and iOS. The implementation is well-structured, including new DTOs for platform communication, mappers, extensive unit tests for all platforms, and clear documentation. I've identified one minor inconsistency between the Android and iOS implementations regarding the styling of the Out-Of-Band (OOB) button, which I've detailed in a specific comment. Overall, this is an excellent and well-executed feature addition.
ios/adyen_checkout/Sources/adyen_checkout/utils/ConfigurationMapper.swift
Outdated
Show resolved
Hide resolved
…apper.swift Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
/gemini review |
LCOV of commit
|
There was a problem hiding this comment.
Code Review
This pull request introduces UI customization for 3DS2 challenge screens by adding Adyen3DSTheme. This new theme can be configured manually or created directly from Flutter's ThemeData for a consistent look and feel. The changes are extensive, touching Dart, Kotlin (Android), and Swift (iOS) to map theme configurations to the native Adyen SDKs. New DTOs are defined using Pigeon for platform communication, and the implementation includes mappers, comprehensive test suites for both platforms, and updates to the example app and documentation. The changes are well-structured and thoughtfully implemented. I've identified a couple of minor issues in the tests and the example app, for which I've provided suggestions.
android/src/test/kotlin/com/adyen/checkout/flutter/ThreeDS2CustomizationMapperTest.kt
Show resolved
Hide resolved
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces UI customization for the 3DS2 challenge screen by adding Adyen3DSTheme. The implementation is well-structured across Dart, Android (Kotlin), and iOS (Swift), with comprehensive unit tests ensuring the mapping from the new theme objects to native SDK configurations is correct. The addition of a fromThemeData factory is a great touch for easy integration with an app's existing theme. The documentation has also been updated accordingly. I've added one minor suggestion for code consistency.
ios/adyen_checkout/Sources/adyen_checkout/utils/ConfigurationMapper.swift
Outdated
Show resolved
Hide resolved
LCOV of commit
|
LCOV of commit
|
LCOV of commit
|
| } | ||
| } | ||
|
|
||
| /** Generated class from Pigeon that represents data sent in messages. */ |
There was a problem hiding this comment.
Generated code - no review required.
| } | ||
| } | ||
|
|
||
| /// Generated class from Pigeon that represents data sent in messages. |
There was a problem hiding this comment.
Generated code - no review required.
There was a problem hiding this comment.
Generated code - no review required.
android/src/test/kotlin/com/adyen/checkout/flutter/ThreeDS2CustomizationMapperTest.kt
Outdated
Show resolved
Hide resolved
- Remove `io.mockk` dependency from `android/build.gradle`. - Enable `returnDefaultValues` in `testOptions` to handle Android classes without mocking. - Remove static mocking of `Color` in `ThreeDS2CustomizationMapperTest`.
LCOV of commit
|
|


Added Adyen3DS2Theme to customize the 3DS screen