stripe-android
stripe-android copied to clipboard
[BUG] Android 35 edge-to-edge
Summary
All Activity exposed by the Stripe SDK aren't properly supporting edge-to-edge when the app targets Android 35, making their UI not aligned with the edge-to-edge experience (see the attached screenshot).
Code to reproduce
Any Android project having targetSdk and compileSdk set to 35 is enough to reproduce the issue. To simulate one of the cases, I requested the 3DS via the Stripe.handleNextActionForPayment function to open the PaymentAuthWebViewActivity.
Android version
Android 35 (when both targetSdk and compileSdk are set to 35)
Installation method
Gradle dependency
Dependency Versions
Kotlin: 1.9.24 stripe-android: 20.52.1 Android Gradle Plugin: 8.7.1 Gradle: 8.10.2
SDK classes
All the Activity of the Stripe SDK (e.g. com.stripe.android.view.PaymentAuthWebViewActivity)
Screenshots
Hi, thanks for the report. We're looking into this and will leave an update here when we have one.
The Play console now warns after submission of apps that include the Stripe SDK due to this issue.
Hi, what version of the sdk are you on? This issue should be fixed now
21.5.1
Any chance you can send a screenshot or copy of the warning? @razor-1
We're looking into this. Thanks for reporting
SDK version 21.4.1
got this warning in Google Play Console
Your app uses deprecated APIs or parameters for edge-to-edge
One or more of the APIs you use or parameters that you set for edge-to-edge and window display have been deprecated in Android 15. Your app uses the following deprecated APIs or parameters:
android.view.Window.getStatusBarColor
android.view.Window.setStatusBarColor
android.view.Window.setNavigationBarColor
Places for warnings
com.stripe.android.common.ui.ElementsBottomSheetLayoutKt$ElementsBottomSheetLayout$2$1.invokeSuspend
com.stripe.android.common.ui.ElementsBottomSheetLayoutKt$ElementsBottomSheetLayout$3$1.invokeSuspend
com.stripe.android.payments.core.authentication.threeds2.Stripe3ds2TransactionActivity.onCreate
com.stripe.android.stripe3ds2.views.ChallengeActivity.onCreate
com.stripe.android.view.PaymentAuthWebViewActivity.onCreate
@toluo-stripe Hello! I'm encountering a UI issue on Android 15 related to edge-to-edge behavior in the bank account flow.
Issue description:
When using Gesture Navigation, everything works as expected.
However, when switching to 3-button navigation, the system navigation bar overlaps the “Manually verify instead” button, making it hard or impossible to tap.
This seems to be a layout/inset issue introduced in Android 15 (API 35) when edge-to-edge is enabled by default for targetSdkVersion 35.
Environment:
- Platform: Android
- Device: Pixel 8a
- OS: Android 15 (API 35)
- Stripe SDK version:
21.18.0
Code used to invoke the screen:
private lateinit var launcher: CollectBankAccountLauncher
launcher.presentWithSetupIntent(
publishableKey = "TestKey",
clientSecret = clientSecret,
configuration = CollectBankAccountConfiguration.USBankAccount(
name = "Hello World",
email = "[email protected]"
)
)
Let me know if I can provide a video or layout trace. Thanks in advance!
Screenshots:
| Gesture Navigation | 3-button Navigation |
|---|---|
Hi, we are impacted by the edge-to-edge deprecations as well. Sharing the info below in case it helps. Thanks!
One or more of the APIs that you use or parameters that you set for edge-to-edge and window display have been deprecated in Android 15. Your app uses the following deprecated APIs or parameters:
android.view.Window.setStatusBarColor
These start in the following places:
com.stripe.android.payments.core.authentication.threeds2.Stripe3ds2TransactionActivity