Skip to content

Conversation

@kidinov
Copy link
Contributor

@kidinov kidinov commented Dec 3, 2025

WOOMOB-1647

Description

This PR migrates the cardreader library from callback-based Stripe Terminal SDK calls to suspend functions using the stripeterminal-ktx extension library.

Changes:

  • Convert TerminalWrapper methods to use suspend functions from stripeterminal-ktx
  • Update payment actions (CreatePaymentAction, ProcessPaymentIntentAction, CancelPaymentAction) to use suspend functions
  • Update ProcessRefundAction and InteracRefundManager to use suspend functions
  • Convert DiscoverReadersAction to use Flow-based discovery with distinctUntilChanged() operator
  • Update ConnectionManager connection/disconnection to use suspend functions
  • Update all affected unit tests for new method signatures

Test Steps

  1. Connect a Bluetooth card reader/TTP
  2. Process a payment
  3. Verify payment completes successfully
  4. Test reader disconnection
  5. Test Tap to Pay discovery and connection

Images/gif

N/A - no UI changes

  • I have considered if this change warrants release notes and have added them to RELEASE-NOTES.txt if necessary. Use the "[Internal]" label for non-user-facing changes.

@dangermattic
Copy link
Collaborator

dangermattic commented Dec 3, 2025

1 Warning
⚠️ This PR is larger than 300 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.

Generated by 🚫 Danger

@kidinov kidinov changed the title [WOOMOB-1647] Convert to Kotlin coroutines using stripeterminal-ktx [WOOMOB-1647] Card reader - convert to Kotlin coroutines using stripeterminal-ktx Dec 3, 2025
@kidinov kidinov added feature: mobile payments Related to mobile payments / card present payments / Woo Payments. type: technical debt Represents or solves tech debt of the project. dependencies Pull requests that update a dependency file labels Dec 3, 2025
@kidinov kidinov added this to the 23.9 milestone Dec 3, 2025
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Dec 3, 2025

📲 You can test the changes from this Pull Request in WooCommerce-Wear Android by scanning the QR code below to install the corresponding build.
App NameWooCommerce-Wear Android
Platform⌚️ Wear OS
FlavorJalapeno
Build TypeDebug
Commitd76dfc0
Direct Downloadwoocommerce-wear-prototype-build-pr15053-d76dfc0.apk

@kidinov kidinov requested a review from samiuelson December 3, 2025 08:22
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Dec 3, 2025

📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.

App NameWooCommerce Android
Platform📱 Mobile
FlavorJalapeno
Build TypeDebug
Commitd76dfc0
Direct Downloadwoocommerce-prototype-build-pr15053-d76dfc0.apk

@kidinov kidinov marked this pull request as ready for review December 3, 2025 08:29
Base automatically changed from woomob-1647-pr4-migrate-payments to woomob-1647-update-stripe-sdk-to-500 December 4, 2025 07:31
Updated tests to match actual ViewModel behavior where
ProcessingPayment keeps Checkout state with ReadyForPayment
reader status, while PaymentCapturing triggers PaymentInProgress
view state.
@samiuelson samiuelson self-assigned this Dec 4, 2025
Copy link
Contributor

@samiuelson samiuelson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, @kidinov, are you able to collect TTP payment on your physical device? I'm testing with wasabiRelease build variant and I'm getting the following error:

com.stripe.stripeterminal.external.models.TerminalException: Developer Options must not be enabled when using the production version of the Tap to Pay reader. Please use a simulated version of the reader by setting `TapToPayDiscoveryConfiguration.isSimulated` to true.

At the same time, on trunk it works fine:

trunk woomob-1647-pr5-kotlin-coroutines
Screen_recording_20251204_125832.mp4
Screen_recording_20251204_130331.mp4

EDIT: I'm not quite sure why this happens on the release build, maybe due to wasabi variant? Anyway, something has changed in the behavior compared to trunk and it's worth investigating.

Also, FYI, I don't have an Interac card, so I can't test the Interac payment and refund flow, which I think would be good to test.

@kidinov
Copy link
Contributor Author

kidinov commented Dec 5, 2025

@samiuelson 👋

Developer Options must not be enabled

Basically what it says - you need to disable developer options on your device

Anyway, something has changed in the behavior compared to trunk and it's worth investigating.

Those are the SDK changes; there's not much we can investigate here

Also, FYI, I don't have an Interac card, so I can't test the Interac payment and refund flow, which I think would be good to test.

It will be CFT published after the feature branch is ready

@kidinov kidinov requested a review from samiuelson December 5, 2025 01:40
@kidinov kidinov requested a review from a team as a code owner December 5, 2025 01:49
@wpmobilebot
Copy link
Collaborator

Project manifest changes for WooCommerce

The following changes in the WooCommerce's merged AndroidManifest.xml file were detected (build variant: vanillaRelease):

--- ./build/reports/diff_manifest/WooCommerce/vanillaRelease/base_manifest.txt	2025-12-05 01:53:45.086604956 +0000
+++ ./build/reports/diff_manifest/WooCommerce/vanillaRelease/head_manifest.txt	2025-12-05 01:53:53.536600236 +0000
@@ -404,6 +404,11 @@
             android:authorities="com.woocommerce.android.stripetaptopay"
             android:exported="false"
             android:process=":stripetaptopay" />
+        <provider
+            android:name="com.stripe.cots.lpmuiplatform.PaymentMethodSpecsContentProvider"
+            android:authorities="com.woocommerce.android.lpmuiplatform.paymentmethodspecsprovider"
+            android:exported="false"
+            android:permission="com.stripe.updater.permission.PAYMENT_METHOD_SPECS_PROVIDER" />
 
         <activity
             android:name="zendesk.support.request.RequestActivity"

Go to https://buildkite.com/automattic/woocommerce-android/builds/34245/canvas?sid=019aec33-5f7b-4efc-bf92-496cd7500f2c, click on the Artifacts tab and audit the files.

@wpmobilebot
Copy link
Collaborator

Project dependencies changes

list
+ New Dependencies
androidx.gridlayout:gridlayout:1.1.0

! Upgraded Dependencies
com.stripe:stripeterminal-core:5.1.0, (changed from 5.0.0)
com.stripe:stripeterminal-external:5.1.0, (changed from 5.0.0)
com.stripe:stripeterminal-internal-common:5.1.0, (changed from 5.0.0)
com.stripe:stripeterminal-ktx:5.1.0, (changed from 5.0.0)
com.stripe:stripeterminal-taptopay:5.1.0, (changed from 5.0.0)
tree
 \--- project :libs:cardreader
-     +--- com.stripe:stripeterminal-core:5.0.0
-     |    +--- androidx.annotation:annotation:1.9.1 (*)
-     |    +--- com.stripe:stripeterminal-external:5.0.0
-     |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
-     |    |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
-     |    |    +--- androidx.annotation:annotation:1.9.1 (*)
-     |    |    \--- com.squareup.moshi:moshi:1.15.2 (*)
-     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
-     |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
-     |    \--- com.stripe:stripeterminal-internal-common:5.0.0
-     |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
-     |         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
-     |         +--- androidx.annotation:annotation:1.9.1 (*)
-     |         +--- androidx.core:core-ktx:1.13.1 -> 1.17.0 (*)
-     |         +--- com.google.dagger:dagger:2.53 -> 2.57.2 (*)
-     |         +--- org.jetbrains.kotlin:kotlin-reflect:1.9.25
-     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
-     |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
-     |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
-     |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-rx3:1.8.1 -> 1.10.2
-     |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
-     |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
-     |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.10.2
-     |         |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
-     |         |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
-     |         |    |    +--- org.reactivestreams:reactive-streams:1.0.3 -> 1.0.4
-     |         |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.2.21 (*)
-     |         |    +--- io.reactivex.rxjava3:rxjava:3.0.2 -> 3.1.10
-     |         |    |    \--- org.reactivestreams:reactive-streams:1.0.4
-     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.2.21 (*)
-     |         +--- com.squareup.moshi:moshi:1.15.2 (*)
-     |         +--- com.squareup.moshi:moshi-adapters:1.15.2
-     |         |    +--- com.squareup.moshi:moshi:1.15.2 (*)
-     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.24 (*)
-     |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3 -> 1.7.3 (*)
-     |         +--- io.ktor:ktor-client-core:2.3.13
-     |         |    \--- io.ktor:ktor-client-core-jvm:2.3.13
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2
-     |         |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
-     |         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
-     |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         +--- io.ktor:ktor-http:2.3.13
-     |         |         |    \--- io.ktor:ktor-http-jvm:2.3.13
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- io.ktor:ktor-utils:2.3.13
-     |         |         |         |    \--- io.ktor:ktor-utils-jvm:2.3.13
-     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         +--- io.ktor:ktor-io:2.3.13
-     |         |         |         |         |    \--- io.ktor:ktor-io-jvm:2.3.13
-     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         +--- io.ktor:ktor-events:2.3.13
-     |         |         |    \--- io.ktor:ktor-events-jvm:2.3.13
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
-     |         |         |         +--- io.ktor:ktor-utils:2.3.13 (*)
-     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         +--- io.ktor:ktor-websocket-serialization:2.3.13
-     |         |         |    \--- io.ktor:ktor-websocket-serialization-jvm:2.3.13
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
-     |         |         |         +--- io.ktor:ktor-serialization:2.3.13
-     |         |         |         |    \--- io.ktor:ktor-serialization-jvm:2.3.13
-     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
-     |         |         |         |         +--- io.ktor:ktor-websockets:2.3.13
-     |         |         |         |         |    \--- io.ktor:ktor-websockets-jvm:2.3.13
-     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
-     |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.7.1 -> 1.10.2
-     |         |              +--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
-     |         |              +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
-     |         |              +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
-     |         |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.2.21 (*)
-     |         +--- io.ktor:ktor-client-content-negotiation:2.3.13
-     |         |    \--- io.ktor:ktor-client-content-negotiation-jvm:2.3.13
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
-     |         |         +--- io.ktor:ktor-serialization:2.3.13 (*)
-     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         +--- io.ktor:ktor-client-serialization:2.3.13
-     |         |    \--- io.ktor:ktor-client-serialization-jvm:2.3.13
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.3 (*)
-     |         |         +--- io.ktor:ktor-client-json:2.3.13
-     |         |         |    \--- io.ktor:ktor-client-json-jvm:2.3.13
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
-     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         +--- io.ktor:ktor-serialization-kotlinx-json:2.3.13
-     |         |    \--- io.ktor:ktor-serialization-kotlinx-json-jvm:2.3.13
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         +--- io.ktor:ktor-http:2.3.13 (*)
-     |         |         +--- io.ktor:ktor-serialization-kotlinx:2.3.13
-     |         |         |    \--- io.ktor:ktor-serialization-kotlinx-jvm:2.3.13
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
-     |         |         |         +--- io.ktor:ktor-serialization:2.3.13 (*)
-     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1 -> 1.7.3 (*)
-     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.3 (*)
-     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         +--- io.ktor:ktor-client-okhttp:2.3.13
-     |         |    \--- io.ktor:ktor-client-okhttp-jvm:2.3.13
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
-     |         |         +--- org.slf4j:slf4j-api:1.7.36
-     |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
-     |         |         +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.2.3 (*)
-     |         |         +--- com.squareup.okio:okio:3.7.0 -> 3.16.4 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
-     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
-     |         +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
-     |         +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.2.3 (*)
-     |         +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.2.3 (*)
-     |         +--- com.squareup.tape2:tape:2.0.0-beta1
-     |         +--- androidx.security:security-crypto:1.1.0-alpha03 -> 1.1.0 (*)
-     |         +--- androidx.lifecycle:lifecycle-process:2.8.7 -> 2.9.4 (*)
-     |         +--- androidx.room:room-runtime:2.6.1 -> 2.8.4 (*)
-     |         +--- androidx.room:room-ktx:2.6.1 -> 2.8.4 (*)
-     |         +--- com.scottyab:rootbeer-lib:0.1.1
-     |         +--- org.kamranzafar:jtar:2.3
-     |         +--- com.squareup.wire:wire-moshi-adapter:4.9.11
-     |         |    +--- com.squareup.wire:wire-runtime:4.9.11
-     |         |    |    \--- com.squareup.wire:wire-runtime-jvm:4.9.11
-     |         |    |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 -> 1.9.24 (*)
-     |         |    |         +--- com.squareup.okio:okio:3.7.0 -> 3.16.4 (*)
-     |         |    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 -> 2.2.21 (*)
-     |         |    +--- com.squareup.moshi:moshi:1.15.0 -> 1.15.2 (*)
-     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 -> 1.9.24 (*)
-     |         +--- com.squareup.wire:wire-runtime:4.9.11 (*)
-     |         +--- com.stripe:stripeterminal-external:5.0.0 (*)
-     |         +--- androidx.sqlite:sqlite:2.4.0 -> 2.6.2 (*)
-     |         \--- androidx.sqlite:sqlite-framework:2.4.0 -> 2.6.2 (*)
+     +--- com.stripe:stripeterminal-core:5.1.0
+     |    +--- androidx.annotation:annotation:1.9.1 (*)
+     |    +--- com.stripe:stripeterminal-external:5.1.0
+     |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
+     |    |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
+     |    |    +--- androidx.annotation:annotation:1.9.1 (*)
+     |    |    \--- com.squareup.moshi:moshi:1.15.2 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
+     |    \--- com.stripe:stripeterminal-internal-common:5.1.0
+     |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
+     |         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
+     |         +--- androidx.annotation:annotation:1.9.1 (*)
+     |         +--- androidx.core:core-ktx:1.13.1 -> 1.17.0 (*)
+     |         +--- com.google.dagger:dagger:2.53 -> 2.57.2 (*)
+     |         +--- org.jetbrains.kotlin:kotlin-reflect:1.9.25
+     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
+     |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
+     |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
+     |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-rx3:1.8.1 -> 1.10.2
+     |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
+     |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
+     |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.10.2
+     |         |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
+     |         |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
+     |         |    |    +--- org.reactivestreams:reactive-streams:1.0.3 -> 1.0.4
+     |         |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.2.21 (*)
+     |         |    +--- io.reactivex.rxjava3:rxjava:3.0.2 -> 3.1.10
+     |         |    |    \--- org.reactivestreams:reactive-streams:1.0.4
+     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.2.21 (*)
+     |         +--- com.squareup.moshi:moshi:1.15.2 (*)
+     |         +--- com.squareup.moshi:moshi-adapters:1.15.2
+     |         |    +--- com.squareup.moshi:moshi:1.15.2 (*)
+     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.24 (*)
+     |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3 -> 1.7.3 (*)
+     |         +--- io.ktor:ktor-client-core:2.3.13
+     |         |    \--- io.ktor:ktor-client-core-jvm:2.3.13
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2
+     |         |         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
+     |         |         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
+     |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         +--- io.ktor:ktor-http:2.3.13
+     |         |         |    \--- io.ktor:ktor-http-jvm:2.3.13
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- io.ktor:ktor-utils:2.3.13
+     |         |         |         |    \--- io.ktor:ktor-utils-jvm:2.3.13
+     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         +--- io.ktor:ktor-io:2.3.13
+     |         |         |         |         |    \--- io.ktor:ktor-io-jvm:2.3.13
+     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         +--- io.ktor:ktor-events:2.3.13
+     |         |         |    \--- io.ktor:ktor-events-jvm:2.3.13
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
+     |         |         |         +--- io.ktor:ktor-utils:2.3.13 (*)
+     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         +--- io.ktor:ktor-websocket-serialization:2.3.13
+     |         |         |    \--- io.ktor:ktor-websocket-serialization-jvm:2.3.13
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
+     |         |         |         +--- io.ktor:ktor-serialization:2.3.13
+     |         |         |         |    \--- io.ktor:ktor-serialization-jvm:2.3.13
+     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
+     |         |         |         |         +--- io.ktor:ktor-websockets:2.3.13
+     |         |         |         |         |    \--- io.ktor:ktor-websockets-jvm:2.3.13
+     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
+     |         |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         \--- org.jetbrains.kotlinx:kotlinx-coroutines-slf4j:1.7.1 -> 1.10.2
+     |         |              +--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
+     |         |              +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
+     |         |              +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
+     |         |              \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.2.21 (*)
+     |         +--- io.ktor:ktor-client-content-negotiation:2.3.13
+     |         |    \--- io.ktor:ktor-client-content-negotiation-jvm:2.3.13
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
+     |         |         +--- io.ktor:ktor-serialization:2.3.13 (*)
+     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         +--- io.ktor:ktor-client-serialization:2.3.13
+     |         |    \--- io.ktor:ktor-client-serialization-jvm:2.3.13
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.3 (*)
+     |         |         +--- io.ktor:ktor-client-json:2.3.13
+     |         |         |    \--- io.ktor:ktor-client-json-jvm:2.3.13
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
+     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         +--- io.ktor:ktor-serialization-kotlinx-json:2.3.13
+     |         |    \--- io.ktor:ktor-serialization-kotlinx-json-jvm:2.3.13
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         +--- io.ktor:ktor-http:2.3.13 (*)
+     |         |         +--- io.ktor:ktor-serialization-kotlinx:2.3.13
+     |         |         |    \--- io.ktor:ktor-serialization-kotlinx-jvm:2.3.13
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         |         +--- io.ktor:ktor-http:2.3.13 (*)
+     |         |         |         +--- io.ktor:ktor-serialization:2.3.13 (*)
+     |         |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1 -> 1.7.3 (*)
+     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.3 (*)
+     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         +--- io.ktor:ktor-client-okhttp:2.3.13
+     |         |    \--- io.ktor:ktor-client-okhttp-jvm:2.3.13
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 1.9.24 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1 -> 1.10.2 (*)
+     |         |         +--- org.slf4j:slf4j-api:1.7.36
+     |         |         +--- io.ktor:ktor-client-core:2.3.13 (*)
+     |         |         +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.2.3 (*)
+     |         |         +--- com.squareup.okio:okio:3.7.0 -> 3.16.4 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1 -> 1.10.2 (*)
+     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.2.21 (*)
+     |         +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
+     |         +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.2.3 (*)
+     |         +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.2.3 (*)
+     |         +--- com.squareup.tape2:tape:2.0.0-beta1
+     |         +--- androidx.security:security-crypto:1.1.0-alpha03 -> 1.1.0 (*)
+     |         +--- androidx.lifecycle:lifecycle-process:2.8.7 -> 2.9.4 (*)
+     |         +--- androidx.room:room-runtime:2.6.1 -> 2.8.4 (*)
+     |         +--- androidx.room:room-ktx:2.6.1 -> 2.8.4 (*)
+     |         +--- com.scottyab:rootbeer-lib:0.1.1
+     |         +--- org.kamranzafar:jtar:2.3
+     |         +--- com.squareup.wire:wire-moshi-adapter:4.9.11
+     |         |    +--- com.squareup.wire:wire-runtime:4.9.11
+     |         |    |    \--- com.squareup.wire:wire-runtime-jvm:4.9.11
+     |         |    |         +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 -> 1.9.24 (*)
+     |         |    |         +--- com.squareup.okio:okio:3.7.0 -> 3.16.4 (*)
+     |         |    |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10 -> 2.2.21 (*)
+     |         |    +--- com.squareup.moshi:moshi:1.15.0 -> 1.15.2 (*)
+     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10 -> 1.9.24 (*)
+     |         +--- com.squareup.wire:wire-runtime:4.9.11 (*)
+     |         +--- com.stripe:stripeterminal-external:5.1.0 (*)
+     |         +--- androidx.sqlite:sqlite:2.4.0 -> 2.6.2 (*)
+     |         \--- androidx.sqlite:sqlite-framework:2.4.0 -> 2.6.2 (*)
-     +--- com.stripe:stripeterminal-ktx:5.0.0
-     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
-     |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
-     |    +--- androidx.annotation:annotation:1.9.1 (*)
-     |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
-     |    \--- com.stripe:stripeterminal-core:5.0.0 (*)
+     +--- com.stripe:stripeterminal-ktx:5.1.0
+     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
+     |    +--- androidx.annotation:annotation:1.9.1 (*)
+     |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
+     |    \--- com.stripe:stripeterminal-core:5.1.0 (*)
-     \--- com.stripe:stripeterminal-taptopay:5.0.0
-          +--- androidx.databinding:viewbinding:8.8.2 -> 8.13.1 (*)
-          +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
-          +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
-          +--- androidx.annotation:annotation:1.9.1 (*)
-          +--- androidx.constraintlayout:constraintlayout:2.1.4 -> 2.2.1 (*)
-          +--- androidx.core:core-ktx:1.13.1 -> 1.17.0 (*)
-          +--- androidx.fragment:fragment-ktx:1.8.9 (*)
-          +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 -> 2.9.4 (*)
-          +--- androidx.lifecycle:lifecycle-process:2.8.7 -> 2.9.4 (*)
-          +--- com.scottyab:rootbeer-lib:0.1.1
-          +--- com.google.android.play:integrity:1.1.0
-          |    +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
-          |    \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*)
-          +--- com.google.android.material:material:1.13.0 (*)
-          +--- com.google.dagger:dagger:2.53 -> 2.57.2 (*)
-          +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
-          +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.2.3 (*)
-          +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.2.3 (*)
-          +--- io.reactivex.rxjava3:rxjava:3.1.10 (*)
-          +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
-          +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
-          +--- com.squareup.wire:wire-moshi-adapter:4.9.11 (*)
-          +--- com.stripe:stripeterminal-external:5.0.0 (*)
-          +--- com.stripe:stripeterminal-internal-common:5.0.0 (*)
-          +--- com.fasterxml.jackson.core:jackson-databind:2.16.1
-          |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.1
-          |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.1
-          |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.1 (c)
-          |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.1 (c)
-          |    |         \--- com.fasterxml.jackson.core:jackson-databind:2.16.1 (c)
-          |    +--- com.fasterxml.jackson.core:jackson-core:2.16.1
-          |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.1 (*)
-          |    \--- com.fasterxml.jackson:jackson-bom:2.16.1 (*)
-          \--- dev.zacsweers.redacted:redacted-compiler-plugin-annotations:1.8.1
-               \--- dev.zacsweers.redacted:redacted-compiler-plugin-annotations-jvm:1.8.1
-                    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.2.21 (*)
+     \--- com.stripe:stripeterminal-taptopay:5.1.0
+          +--- androidx.databinding:viewbinding:8.8.2 -> 8.13.1 (*)
+          +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.2.21 (*)
+          +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.2.21 (*)
+          +--- androidx.annotation:annotation:1.9.1 (*)
+          +--- androidx.appcompat:appcompat:1.7.1 (*)
+          +--- androidx.constraintlayout:constraintlayout:2.2.1 (*)
+          +--- androidx.core:core-ktx:1.13.1 -> 1.17.0 (*)
+          +--- androidx.fragment:fragment-ktx:1.8.9 (*)
+          +--- androidx.gridlayout:gridlayout:1.1.0
+          |    +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
+          |    +--- androidx.core:core:1.3.0 -> 1.17.0 (*)
+          |    \--- org.jspecify:jspecify:1.0.0
+          +--- androidx.recyclerview:recyclerview:1.4.0 (*)
+          +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 -> 2.9.4 (*)
+          +--- androidx.lifecycle:lifecycle-process:2.8.7 -> 2.9.4 (*)
+          +--- com.scottyab:rootbeer-lib:0.1.1
+          +--- com.google.android.play:integrity:1.1.0
+          |    +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+          |    \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*)
+          +--- com.google.android.material:material:1.13.0 (*)
+          +--- com.google.dagger:dagger:2.53 -> 2.57.2 (*)
+          +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
+          +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.2.3 (*)
+          +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.2.3 (*)
+          +--- io.reactivex.rxjava3:rxjava:3.1.10 (*)
+          +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
+          +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
+          +--- com.squareup.wire:wire-moshi-adapter:4.9.11 (*)
+          +--- com.stripe:stripeterminal-external:5.1.0 (*)
+          +--- com.stripe:stripeterminal-internal-common:5.1.0 (*)
+          +--- com.fasterxml.jackson.core:jackson-databind:2.16.1
+          |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.1
+          |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.1
+          |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.1 (c)
+          |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.1 (c)
+          |    |         \--- com.fasterxml.jackson.core:jackson-databind:2.16.1 (c)
+          |    +--- com.fasterxml.jackson.core:jackson-core:2.16.1
+          |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.1 (*)
+          |    \--- com.fasterxml.jackson:jackson-bom:2.16.1 (*)
+          \--- dev.zacsweers.redacted:redacted-compiler-plugin-annotations:1.8.1
+               \--- dev.zacsweers.redacted:redacted-compiler-plugin-annotations-jvm:1.8.1
+                    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.2.21 (*)

@samiuelson
Copy link
Contributor

Basically what it says - you need to disable developer options on your device

Those are the SDK changes; there's not much we can investigate here

👋 @kidinov
In order to test TTP, we need to run a release build. However, the "Developer options" setting is visible only in a debug build. This makes it impossible to test TTP without manipulating the code. I think it would be good to automatically disable Stripe developer options (or override Terminal.simulatorConfiguration) in case of a release build, so that TTP works out of the box. Wdyt?

@kidinov
Copy link
Contributor Author

kidinov commented Dec 5, 2025

@samiuelson 👋

The developer options of the phone / Android / operating system, and not the app.

@samiuelson
Copy link
Contributor

@samiuelson 👋

The developer options of the phone / Android / operating system, and not the app.

Got it. Let me test again!

Copy link
Contributor

@samiuelson samiuelson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@kidinov kidinov merged commit d9e1729 into woomob-1647-update-stripe-sdk-to-500 Dec 8, 2025
18 checks passed
@kidinov kidinov deleted the woomob-1647-pr5-kotlin-coroutines branch December 8, 2025 04:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file feature: mobile payments Related to mobile payments / card present payments / Woo Payments. type: technical debt Represents or solves tech debt of the project.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants