Skip to content

Add transport-agnostic Wear OS sync interface (issue #276) - #279

Merged
mapitman merged 1 commit into
mainfrom
issue-276-wear-sync-client
Sep 2, 2026
Merged

mapitman merged 1 commit into
mainfrom
issue-276-wear-sync-client

Conversation

@mapitman

@mapitman mapitman commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

Step 2 of #276 (see #278 for step 1). Adds the WearSyncClient interface, its SyncQueueItem/PositionUpdate DTOs, and QueueSyncMapper to :core — a transport-agnostic seam over the Wear OS Data Layer API that the queue-push and position-sync logic (steps 3-4) will compile against. FakeWearSyncClient lets that logic be unit tested without a real DataClient, which needs Play Services and isn't practical under Robolectric.

Still no working Wear OS functionality on its own — no :wear module, no real Play Services-backed implementation, no watch UI. This is groundwork for the remaining steps toward #276.

Test plan

  • ./gradlew assembleDebug testDebugUnitTest lintDebug passes
  • Installed and launched the debug build on an emulator, confirmed the app opens normally with no crash

Step 2 of Wear OS phase 1: the WearSyncClient interface, its
SyncQueueItem/PositionUpdate DTOs, and QueueSyncMapper give the queue-
push and position-sync logic a real Kotlin API to compile against
before the Play Services-backed implementation exists. FakeWearSyncClient
keeps that logic unit-testable without touching the real Data Layer
API, which needs Play Services and isn't practical under Robolectric.

Still no working Wear OS functionality -- no :wear module, no real
DataClient-backed implementation, no watch UI. This just gives the
next steps something to build against.
@mapitman
mapitman merged commit efe7b13 into main Sep 2, 2026
1 check passed
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