Skip to content

Device: Show hardware, pending firmware, and bonded dates#543

Merged
d4rken merged 1 commit into
mainfrom
feat/device-info-bundle
Apr 24, 2026
Merged

Device: Show hardware, pending firmware, and bonded dates#543
d4rken merged 1 commit into
mainfrom
feat/device-info-bundle

Conversation

@d4rken

@d4rken d4rken commented Apr 24, 2026

Copy link
Copy Markdown
Member

What changed

The device info sheet (tap the info icon on the device settings card) now shows more information the app was already decoding but not displaying:

  • Hardware: AirPods hardware revision (e.g. 1.0.0)
  • Pending Firmware: only shown when a firmware update is staged for the next reboot
  • Left Bonded / Right Bonded: the dates each earbud was first bonded to any device — useful to spot a replaced bud (dates differ when one earbud has been swapped)

"Bonded" rather than "Paired" to avoid confusion with the current phone connection — in Bluetooth terminology, bonding is the persistent per-bud association.

Technical Context

  • Extracted the inline 80-line buildList<DeviceDetailItem> in DeviceSettingsScreen into a pure mapper (buildDeviceInfoDetailItems), unit-tested with 14 cases covering all branches — previously untestable because logic was mixed with stringResource calls inside a LazyColumn item
  • Date formatter is keyed on LocalConfiguration.current.locales[0] and ZoneId.systemDefault() via remember, so it follows the app-level locale rather than JVM default
  • Live-only: CachedDeviceState does not serialize the new fields, so they disappear when the device is out of range. Matches existing Manufacturer-row behavior (also blanked from cache). Extending the cache was deferred — firmwareVersionPending would risk showing a stale staged update after reboot
  • Firmware and Build moved from a two-column Paired row to independent Single rows — the new firmware strings (e.g. 81.2675000075000000.6814) are too long to pair cleanly with Build
  • Previews in DeviceInfoBottomSheet.kt now go through the same DeviceInfoDetailsContent composable as the production sheet (previously hand-copied InfoRow calls, which silently drifted)
  • No protocol-layer changes

@d4rken d4rken added enhancement Add a new feature of improve an existing feature device support labels Apr 24, 2026
@d4rken d4rken merged commit f053179 into main Apr 24, 2026
10 checks passed
@d4rken d4rken deleted the feat/device-info-bundle branch April 24, 2026 11:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

device support enhancement Add a new feature of improve an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant