Skip to content

Android: show session and lifetime offload counts in Test Centre - #2652

Open
kavemang wants to merge 3 commits into
ryanbr:mainfrom
kavemang:agent/android-offload-row-readouts-2091
Open

kavemang wants to merge 3 commits into
ryanbr:mainfrom
kavemang:agent/android-offload-row-readouts-2091

Conversation

@kavemang

@kavemang kavemang commented Oct 3, 2026 •

Copy link
Copy Markdown

What this PR does

Android's Connection & Sync Test Centre panel shows offload results but omits the session and lifetime row counts it already computes. Show both beside the existing result so a wearer can distinguish progress on an ongoing offload from rows banked across reconnects.

Reuse ConnectionReadout.sessionRows and the preferences-backed TestCentre.cumulativeDrainedRows with the existing active-only log refresh and one-second connection clock. Localize the new labels and empty state in all nine Android resource locales. Apple already displays these counts; its registry now declares the same IDs, with a matching Swift assertion and a Kotlin expectation pinned to compiled Swift registry output. The governance snapshot removes the now-production-used session parser from the test-only caller set (65 → 64), without adding accepted debt.

This is the offload-count portion of #2091. Clock-verdict/RTC-warning work and last-frame liveness remain outstanding.

Type of change

  • Bug fix

How it was tested

  • Cold full Android Kotlin compile and JVM tests, with --max-workers=2 --no-build-cache --rerun-tasks: all 65 selected tests passed across TestCentreLiveReadoutsTest, ConnectionReadoutTest, TestCentreTest and TestModeRegistryParityTest. All 28 Gradle tasks executed.
  • Full Swift analytics suite: 2,114 tests passed. Parity repository acceptance rerun after registry alignment: all 50 tests passed.
  • New regressions exercise progress/completed/empty/fresh offloads, independent lifetime totals above 32-bit range, and a preferences-backed lifetime tally surviving reload while diagnostics are off.
  • Tools Python suite (including parity repository acceptance): all 338 tests passed after the derived snapshot refresh.
  • Source hygiene, diff-scoped i18n and whitespace checks passed. Changed Kotlin files have no compiler warnings; the build emits existing warnings elsewhere.
  • No on-device UI or strap test performed. BLE behavior, persistence rules and numerical formulas are unchanged.

The first upstream Android run built the APK and ran 6,620 tests, exposing one stale registry parity expectation (6 skipped). Both registry declarations and assertions are aligned in the follow-up; final-head upstream CI passed all 18 expected checks, confirmed twice at 489b8aabbe0ba5ad09e590c6ed21b304bcf3aba8. Android built the APK and executed its full unit-test task successfully; Swift analytics ran all 2,114 tests, including the registry assertion. Both Apple app SDK builds passed, and macOS StrandTests ran 2,269 tests (2 skipped, zero failures).

Checklist

  • Android full compile and selected unit tests pass
  • UI retains existing Palette/NoopType tokens and layout
  • No new BLE commands, schema changes, generated project artifacts or secrets
  • Follows docs/CONTRIBUTING.md

Related issues

Refs #2091

Retain offload session and lifetime count labels alongside the new main
translations in every Android locale. Verify merged registry and readout
coverage with guarded parity regeneration and both platform test suites.

Refs #2091
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant