Skip to content

[WOOMOB-1854] Woo POS card reader connection UI + Stripe SDK Update for CFT#15507

Draft
kidinov wants to merge 23 commits intotrunkfrom
woomob-1854-woopos-card-reader-connection-ui-v2
Draft

[WOOMOB-1854] Woo POS card reader connection UI + Stripe SDK Update for CFT#15507
kidinov wants to merge 23 commits intotrunkfrom
woomob-1854-woopos-card-reader-connection-ui-v2

Conversation

@kidinov
Copy link
Contributor

@kidinov kidinov commented Mar 10, 2026

Summary

This PR re-applies changes from the accidentally merged and reverted woomob-1854 branch.

The original PR was merged to trunk by mistake (along with woomob-2093) and was reverted in #15506. This PR re-creates the original woomob-1854 changes so it can go through proper review.

Target branch: revert/woomob-1854-and-2093 (the revert PR that removed both woomob-1854 and woomob-2093 from trunk)

Changes

  • Stripe SDK 5.0 upgrade for CFT support
  • New card reader connection UI with dedicated connection dialog and controller
  • WooPosCardReaderConnectionController handles the full connection lifecycle
  • Reconnecting status support added to CardReaderStatus
  • WooPosCardReaderOnboardingActivity replaces WooPosCardReaderActivity
  • Updated payment flow to use the new single-call Stripe API (removes CollectPaymentAction, ProcessPaymentAction, adds ProcessPaymentIntentAction)

Test plan

  • Card reader connection dialog appears when tapping the reader status in toolbar
  • Reader connects successfully and status updates in toolbar
  • Reconnecting state shown when reader tries to reconnect
  • Payment flow works end-to-end with card reader

@kidinov kidinov requested a review from a team as a code owner March 10, 2026 15:00
@kidinov kidinov requested review from samiuelson and removed request for a team March 10, 2026 15:00
Add BatteryState enum with NOMINAL, LOW, and CRITICAL states.
Update Connected status to include battery state information.
@dangermattic
Copy link
Collaborator

dangermattic commented Mar 10, 2026

1 Warning
⚠️ This PR is larger than 300 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.
1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

kidinov added 9 commits March 10, 2026 16:03
Combine readerStatus and batteryStatus flows to map battery state.
Map CardReaderBatteryStatus to UI BatteryState:
- CRITICAL/LOW battery status -> CRITICAL/LOW state
- NOMINAL/UNKNOWN -> NOMINAL state
- Warning event -> LOW state

Add unit tests for all battery state mapping scenarios.
Add Material Design battery icons:
- ic_woo_pos_battery_low: battery_alert icon for low battery
- ic_woo_pos_battery_critical: battery_0_bar icon for critical battery

Add accessibility strings for screen readers.
Display battery warning icon next to connection status dot when
battery is LOW (orange) or CRITICAL (red). No icon shown for
NOMINAL battery state.

Add Compose previews for LOW and CRITICAL battery states.
Use proper Material Symbols paths with 960x960 viewport.
Position battery warning icon after "Reader connected" text.
Increase icon size from 16dp to 20dp for better visibility.
@kidinov kidinov removed the request for review from samiuelson March 10, 2026 15:05
@kidinov kidinov added the status: do not merge Dependent on another PR, ready for review but not ready for merge. label Mar 10, 2026
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Mar 10, 2026

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	2026-03-12 08:29:34.474915338 +0000
+++ ./build/reports/diff_manifest/WooCommerce/vanillaRelease/head_manifest.txt	2026-03-12 08:30:00.135049528 +0000
@@ -219,7 +219,7 @@
             android:theme="@style/Theme.WooPos"
             android:windowSoftInputMode="adjustResize" />
         <activity
-            android:name="com.woocommerce.android.ui.woopos.cardreader.WooPosCardReaderActivity"
+            android:name="com.woocommerce.android.ui.woopos.cardreader.WooPosCardReaderOnboardingActivity"
             android:theme="@style/Theme.WooPos.Transparent"
             android:windowSoftInputMode="adjustResize" />
         <activity
@@ -405,6 +405,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" />
 
         <service
             android:name="androidx.credentials.playservices.CredentialProviderMetadataHolder"

Go to https://buildkite.com/automattic/woocommerce-android/builds/36487/canvas?sid=019ce124-ab2c-435b-9a17-3d457faf2cde, 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
com.stripe:stripeterminal-ktx:5.1.1

- Removed Dependencies
app.cash.sqldelight:android-driver:2.0.2
app.cash.sqldelight:runtime:2.0.2
app.cash.sqldelight:runtime-jvm:2.0.2

! Upgraded Dependencies
com.stripe:stripeterminal-core:5.1.1, (changed from 4.7.5)
com.stripe:stripeterminal-external:5.1.1, (changed from 4.7.5)
com.stripe:stripeterminal-internal-common:5.1.1, (changed from 4.7.5)
com.stripe:stripeterminal-taptopay:5.1.1, (changed from 4.7.5)
tree
 \--- project :libs:cardreader
-     +--- com.stripe:stripeterminal-core:4.7.5
-     |    +--- androidx.annotation:annotation:1.9.1 (*)
-     |    +--- com.stripe:stripeterminal-external:4.7.5
-     |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
-     |    |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
-     |    |    +--- androidx.annotation:annotation:1.9.1 (*)
-     |    |    \--- com.squareup.moshi:moshi:1.15.2 (*)
-     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
-     |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
-     |    \--- com.stripe:stripeterminal-internal-common:4.7.5
-     |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
-     |         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
-     |         +--- androidx.annotation:annotation:1.9.1 (*)
-     |         +--- androidx.core:core-ktx:1.13.1 -> 1.17.0 (*)
-     |         +--- com.google.dagger:dagger:2.53 -> 2.58 (*)
-     |         +--- org.jetbrains.kotlin:kotlin-reflect:1.9.25
-     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
-     |         +--- 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.3.10 (*)
-     |         |    +--- 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.3.10 (*)
-     |         +--- 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.3.10 (*)
-     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
-     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
-     |         |         +--- 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.3.10 (*)
-     |         |         +--- 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.3.10 (*)
-     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
-     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
-     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
-     |         |         \--- 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.3.10 (*)
-     |         +--- 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.3.10 (*)
-     |         +--- 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.3.10 (*)
-     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
-     |         +--- 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.3.10 (*)
-     |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.3 (*)
-     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
-     |         +--- 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.3.2 (*)
-     |         |         +--- 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.3.10 (*)
-     |         +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
-     |         +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.3.2 (*)
-     |         +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.3.2 (*)
-     |         +--- com.squareup.tape2:tape:2.0.0-beta1
-     |         +--- app.cash.sqldelight:android-driver:2.0.2
-     |         |    +--- androidx.sqlite:sqlite-framework:2.4.0 -> 2.6.2 (*)
-     |         |    +--- app.cash.sqldelight:runtime:2.0.2
-     |         |    |    \--- app.cash.sqldelight:runtime-jvm:2.0.2
-     |         |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.3.10 (*)
-     |         |    +--- androidx.sqlite:sqlite:2.4.0 -> 2.6.2 (*)
-     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.3.10 (*)
-     |         +--- androidx.security:security-crypto:1.1.0-alpha03 -> 1.1.0 (*)
-     |         +--- androidx.lifecycle:lifecycle-process:2.8.7 -> 2.10.0 (*)
-     |         +--- 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.3.10 (*)
-     |         |    +--- 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:4.7.5 (*)
+     +--- com.stripe:stripeterminal-core:5.1.1
+     |    +--- androidx.annotation:annotation:1.9.1 (*)
+     |    +--- com.stripe:stripeterminal-external:5.1.1
+     |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
+     |    |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
+     |    |    +--- androidx.annotation:annotation:1.9.1 (*)
+     |    |    \--- com.squareup.moshi:moshi:1.15.2 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
+     |    \--- com.stripe:stripeterminal-internal-common:5.1.1
+     |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
+     |         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
+     |         +--- androidx.annotation:annotation:1.9.1 (*)
+     |         +--- androidx.core:core-ktx:1.13.1 -> 1.17.0 (*)
+     |         +--- com.google.dagger:dagger:2.53 -> 2.58 (*)
+     |         +--- org.jetbrains.kotlin:kotlin-reflect:1.9.25
+     |         |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
+     |         +--- 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.3.10 (*)
+     |         |    +--- 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.3.10 (*)
+     |         +--- 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.3.10 (*)
+     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
+     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
+     |         |         +--- 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.3.10 (*)
+     |         |         +--- 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.3.10 (*)
+     |         |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
+     |         |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
+     |         |         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
+     |         |         \--- 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.3.10 (*)
+     |         +--- 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.3.10 (*)
+     |         +--- 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.3.10 (*)
+     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
+     |         +--- 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.3.10 (*)
+     |         |         +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1 -> 1.7.3 (*)
+     |         |         \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.3.10 (*)
+     |         +--- 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.3.2 (*)
+     |         |         +--- 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.3.10 (*)
+     |         +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
+     |         +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.3.2 (*)
+     |         +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.3.2 (*)
+     |         +--- 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.10.0 (*)
+     |         +--- 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.3.10 (*)
+     |         |    +--- 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.1 (*)
+     |         +--- androidx.sqlite:sqlite:2.4.0 -> 2.6.2 (*)
+     |         \--- androidx.sqlite:sqlite-framework:2.4.0 -> 2.6.2 (*)
+     +--- com.stripe:stripeterminal-ktx:5.1.1
+     |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
+     |    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
+     |    +--- androidx.annotation:annotation:1.9.1 (*)
+     |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
+     |    \--- com.stripe:stripeterminal-core:5.1.1 (*)
-     \--- com.stripe:stripeterminal-taptopay:4.7.5
-          +--- androidx.databinding:viewbinding:8.8.2 -> 8.13.2 (*)
-          +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
-          +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
-          +--- 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.7 -> 1.8.9 (*)
-          +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 -> 2.10.0 (*)
-          +--- androidx.lifecycle:lifecycle-process:2.8.7 -> 2.10.0 (*)
-          +--- 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.9.0 (*)
-          |    \--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*)
-          +--- com.google.android.material:material:1.12.0 -> 1.13.0 (*)
-          +--- com.google.dagger:dagger:2.53 -> 2.58 (*)
-          +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
-          +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.3.2 (*)
-          +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.3.2 (*)
-          +--- 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:4.7.5 (*)
-          +--- com.stripe:stripeterminal-internal-common:4.7.5 (*)
-          +--- 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.3.10 (*)
+     \--- com.stripe:stripeterminal-taptopay:5.1.1
+          +--- androidx.databinding:viewbinding:8.8.2 -> 8.13.2 (*)
+          +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.3.10 (*)
+          +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.3.10 (*)
+          +--- 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.10.0 (*)
+          +--- androidx.lifecycle:lifecycle-process:2.8.7 -> 2.10.0 (*)
+          +--- 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.9.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.58 (*)
+          +--- com.google.code.gson:gson:2.12.1 -> 2.13.2 (*)
+          +--- com.squareup.okhttp3:okhttp:4.12.0 -> 5.3.2 (*)
+          +--- com.squareup.okhttp3:okhttp-tls:4.12.0 -> 5.3.2 (*)
+          +--- 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.1 (*)
+          +--- com.stripe:stripeterminal-internal-common:5.1.1 (*)
+          +--- 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.3.10 (*)

@kidinov kidinov marked this pull request as draft March 10, 2026 15:09
Base automatically changed from revert/woomob-1854-and-2093 to trunk March 11, 2026 08:12
kidinov added 8 commits March 11, 2026 09:18
… connection

Add OnboardingError state to WooPosCardReaderConnectionState and
render it in the connection dialog using the existing ErrorContent
composable with a configurable retry button label.
Map simple card reader onboarding error states to dialog errors.
Complex states (plugin install, COD toggle, payment provider selection)
return FullScreenRequired to keep using the full-screen activity.
Use WooPosOnboardingErrorMapper in the controller to show simple
onboarding errors inline in the dialog instead of launching the
full-screen activity. Handle OnboardingError in ViewModel back press.
…oomob-2093-woopos-low-battery-succeed-connect-hasnt-shown-any-warnings-v2
kidinov and others added 3 commits March 12, 2026 09:20
…tery-succeed-connect-hasnt-shown-any-warnings-v2

[WOOMOB-2093] Show low battery warning in floating toolbar
…oomob-2002-woo-pos-move-pending-requirements-warning-from-full-screen
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Mar 12, 2026

App Icon📲 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
Build Number734
Version24.3-rc-3
Application IDcom.woocommerce.android.prealpha
Commitedf0485
Installation URL6ocsvocspgeco
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 11.23315% with 1778 lines in your changes missing coverage. Please review.
✅ Project coverage is 39.03%. Comparing base (6a9b729) to head (f764ab3).
⚠️ Report is 57 commits behind head on trunk.

Files with missing lines Patch % Lines
...der/connection/WooPosCardReaderConnectionDialog.kt 0.00% 778 Missing ⚠️
...connection/WooPosCardReaderConnectionController.kt 0.31% 318 Missing ⚠️
...oopos/common/composeui/designsystem/WooPosIcons.kt 0.00% 289 Missing ⚠️
...mon/composeui/component/WooPosLoadingIndicators.kt 0.00% 76 Missing ⚠️
...ader/connection/WooPosCardReaderConnectionState.kt 2.73% 71 Missing ⚠️
...i/woopos/home/toolbar/WooPosHomeFloatingToolbar.kt 0.00% 47 Missing ⚠️
.../connection/WooPosCardReaderConnectionViewModel.kt 60.52% 14 Missing and 16 partials ⚠️
...ion/WooPosCardReaderConnectionControllerFactory.kt 0.00% 25 Missing ⚠️
...internal/connection/BluetoothReaderListenerImpl.kt 0.00% 16 Missing ⚠️
.../internal/connection/TapToPayReaderListenerImpl.kt 0.00% 16 Missing ⚠️
... and 25 more
Additional details and impacted files
@@             Coverage Diff              @@
##              trunk   #15507      +/-   ##
============================================
- Coverage     39.55%   39.03%   -0.53%     
- Complexity    11240    11247       +7     
============================================
  Files          2252     2255       +3     
  Lines        129696   131318    +1622     
  Branches      18172    18465     +293     
============================================
- Hits          51303    51258      -45     
- Misses        73157    74807    +1650     
- Partials       5236     5253      +17     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…ending-requirements-warning-from-full-screen

[WOOMOB-2002] Show simple onboarding errors in POS card reader connection dialog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: do not merge Dependent on another PR, ready for review but not ready for merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants