stripe-android icon indicating copy to clipboard operation
stripe-android copied to clipboard

[BUG] Android 35 edge-to-edge

Open mzanino opened this issue 1 year ago • 9 comments
trafficstars

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

mzanino avatar Nov 13 '24 16:11 mzanino

Hi, thanks for the report. We're looking into this and will leave an update here when we have one.

toluo-stripe avatar Nov 22 '24 18:11 toluo-stripe

The Play console now warns after submission of apps that include the Stripe SDK due to this issue.

razor-1 avatar Feb 25 '25 21:02 razor-1

Hi, what version of the sdk are you on? This issue should be fixed now

toluo-stripe avatar Feb 25 '25 21:02 toluo-stripe

21.5.1

razor-1 avatar Feb 25 '25 21:02 razor-1

Any chance you can send a screenshot or copy of the warning? @razor-1

toluo-stripe avatar Feb 25 '25 21:02 toluo-stripe

Image

razor-1 avatar Feb 25 '25 21:02 razor-1

We're looking into this. Thanks for reporting

toluo-stripe avatar Feb 26 '25 22:02 toluo-stripe

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


YuryPashkov avatar Apr 07 '25 15:04 YuryPashkov

@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
gesture 3buttons

myroniak avatar Jun 17 '25 16:06 myroniak

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

narko avatar Jul 25 '25 10:07 narko