Skip to content

[WOOMOB-2093] Show low battery warning in floating toolbar#15281

Merged
kidinov merged 6 commits intotrunkfrom
woomob-2093-woopos-low-battery-succeed-connect-hasnt-shown-any-warnings
Mar 10, 2026
Merged

[WOOMOB-2093] Show low battery warning in floating toolbar#15281
kidinov merged 6 commits intotrunkfrom
woomob-2093-woopos-low-battery-succeed-connect-hasnt-shown-any-warnings

Conversation

@kidinov
Copy link
Copy Markdown
Contributor

@kidinov kidinov commented Feb 2, 2026

Closes: WOOMOB-2093

Description

Display a battery warning icon in the floating toolbar when the connected card reader has low or critical battery. This provides a non-intrusive way to inform merchants that the reader needs charging without interrupting the payment flow.

  • Added BatteryState enum (NOMINAL, LOW, CRITICAL) to toolbar state
  • Combined readerStatus and batteryStatus flows in ViewModel to map battery state
  • Display orange battery alert icon for LOW battery
  • Display red empty battery icon for CRITICAL battery
  • No icon shown for NOMINAL battery

@joshheald @malinajirka 👋

I’m not sure about this change. I appreciate that it’s not intrusive and the change is minor code-wise. Also, I don’t like showing Toast/Snack bars during the connection flow - that usually feels like an afterthought and especially doesn't look good on tablets. On the other hand, this icon can be missed. iOS doesn't have anything, from what I can tell regarding notifying about battery levels.

Maybe displaying the battery level in % or with icons all the time to make it more clear where to look?

What are your thoughts?

Test Steps

  1. Connect a card reader with low battery
  2. Verify the orange battery icon appears next to "Reader connected" text in the floating toolbar
  3. Connect a card reader with critical battery
  4. Verify the red battery icon appears
  5. Connect a card reader with normal battery
  6. Verify no battery icon is shown

Images/gif

image image
  • 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.

@kidinov kidinov added this to the 24.1 milestone Feb 2, 2026
@wpmobilebot
Copy link
Copy Markdown
Collaborator

📲 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
Commit720dff2
Direct Downloadwoocommerce-wear-prototype-build-pr15281-720dff2.apk

@kidinov kidinov marked this pull request as ready for review February 2, 2026 15:53
@kidinov kidinov requested a review from malinajirka February 2, 2026 16:04
@wpmobilebot
Copy link
Copy Markdown
Collaborator

📲 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
Commit720dff2
Direct Downloadwoocommerce-prototype-build-pr15281-720dff2.apk

@codecov-commenter
Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 35.93750% with 41 lines in your changes missing coverage. Please review.
✅ Project coverage is 38.26%. Comparing base (e15851d) to head (720dff2).

Files with missing lines Patch % Lines
...i/woopos/home/toolbar/WooPosHomeFloatingToolbar.kt 0.00% 40 Missing ⚠️
...home/toolbar/WooPosHomeFloatingToolbarViewModel.kt 94.44% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@                                Coverage Diff                                 @@
##             woomob-1854-woopos-card-reader-connection-ui   #15281      +/-   ##
==================================================================================
- Coverage                                           38.27%   38.26%   -0.01%     
- Complexity                                          10650    10655       +5     
==================================================================================
  Files                                                2207     2207              
  Lines                                              126923   126977      +54     
  Branches                                            17668    17681      +13     
==================================================================================
+ Hits                                                48580    48593      +13     
- Misses                                              73383    73423      +40     
- Partials                                             4960     4961       +1     

☔ 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.

@kidinov kidinov added the status: do not merge Dependent on another PR, ready for review but not ready for merge. label Feb 2, 2026
@malinajirka
Copy link
Copy Markdown
Contributor

I’m not sure about this change. I appreciate that it’s not intrusive and the change is minor code-wise. Also, I don’t like showing Toast/Snack bars during the connection flow - that usually feels like an afterthought and especially doesn't look good on tablets. On the other hand, this icon can be missed. iOS doesn't have anything, from what I can tell regarding notifying about battery levels.

I kind of like it to be honest. I think displaying something that is there all the time (%) is more likely to be missed. Users who will use the POS regularly will likely notice anything that is unusual -> so they'll imo notice the red battery.

Copy link
Copy Markdown
Contributor

@malinajirka malinajirka left a comment

Choose a reason for hiding this comment

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

Thanks @kidinov!

One thing I noticed is that battery low is emitted when battery is below 50% => if that's true, then disregard my previous comment. I expected it to be shown only rarely, when batter is below 20% or so and critical below 10% or so. Since it's shown below 50%, I think users will get use to it and will likely miss the critical batter warning. I'd suggest displaying the battery icon only for the critical warning => 20% should still last for roughly 150 card transactions.

_state.value = _state.value.copy(
cardReaderStatus = mapCardReaderStatusToUiState(it)
)
combine(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

❓ I'm wondering if combine is the appropriate operator here. Battery status is dependent on reader status => battery is always unknown unless a reader is connected. Have you considered using flatMapLatest here? Something like:

  cardReaderFacade.readerStatus.flatMapLatest { readerStatus ->
      when (readerStatus) {
          is Connected -> cardReaderFacade.batteryStatus.map {
              WooPosCardReaderStatus.Connected(batteryState = mapBatteryState(it))
          }
          is NotConnected, Connecting -> flowOf(WooPosCardReaderStatus.NotConnected)
          Reconnecting -> flowOf(WooPosCardReaderStatus.Reconnecting)
      }
  }

@wpmobilebot wpmobilebot modified the milestones: 24.1, 24.2 Feb 6, 2026
@wpmobilebot
Copy link
Copy Markdown
Collaborator

Version 24.1 has now entered code-freeze, so the milestone of this PR has been updated to 24.2.

@dangermattic
Copy link
Copy Markdown
Collaborator

1 Error
🚫 This PR is tagged with status: do not merge label(s).

Generated by 🚫 Danger

@malinajirka malinajirka requested review from malinajirka and removed request for malinajirka February 17, 2026 13:20
@wpmobilebot wpmobilebot modified the milestones: 24.2, 24.3 Feb 27, 2026
@wpmobilebot
Copy link
Copy Markdown
Collaborator

Version 24.2 has now entered code-freeze, so the milestone of this PR has been updated to 24.3.

@wpmobilebot wpmobilebot modified the milestones: 24.3, 24.4 Mar 6, 2026
@wpmobilebot
Copy link
Copy Markdown
Collaborator

Version 24.3 has now entered code-freeze, so the milestone of this PR has been updated to 24.4.

@kidinov kidinov changed the base branch from woomob-1854-woopos-card-reader-connection-ui to trunk March 10, 2026 12:41
@kidinov kidinov requested a review from a team as a code owner March 10, 2026 12:41
@kidinov kidinov requested review from irfano and removed request for a team March 10, 2026 12:41
@kidinov kidinov force-pushed the woomob-2093-woopos-low-battery-succeed-connect-hasnt-shown-any-warnings branch from 720dff2 to 0fd6b96 Compare March 10, 2026 12:45
kidinov added 2 commits March 10, 2026 14:52
Add BatteryState enum with NOMINAL, LOW, and CRITICAL states.
Update Connected status to include battery state information.
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.
kidinov added 4 commits March 10, 2026 14:53
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 force-pushed the woomob-2093-woopos-low-battery-succeed-connect-hasnt-shown-any-warnings branch from 99a7e29 to 99b6bf4 Compare March 10, 2026 13:54
@kidinov kidinov changed the base branch from trunk to woomob-1854-woopos-card-reader-connection-ui March 10, 2026 13:54
@wpmobilebot
Copy link
Copy Markdown
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	2026-03-10 14:03:00.980157593 +0000
+++ ./build/reports/diff_manifest/WooCommerce/vanillaRelease/head_manifest.txt	2026-03-10 14:03:31.260307131 +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/36421/canvas?sid=019cd807-3457-49c2-8e49-fd2c5d6e5a4a, click on the Artifacts tab and audit the files.

@wpmobilebot
Copy link
Copy Markdown
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 (*)

Base automatically changed from woomob-1854-woopos-card-reader-connection-ui to trunk March 10, 2026 14:21
@kidinov kidinov merged commit 99b6bf4 into trunk Mar 10, 2026
9 of 17 checks passed
@kidinov kidinov deleted the woomob-2093-woopos-low-battery-succeed-connect-hasnt-shown-any-warnings branch March 10, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature: POS 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