1.12 — Wear OS modernization, MediaSession, Compose queue
Pre-release
Pre-release
What's new
Wear OS modernization (Phase 0 + 1)
- Watch-side MediaSession proxy (
WatchMediaSession) — the watch app now appears in the system Media Controls app and all Wear OS media surfaces, with fully working transport controls (play/pause, skip, seek, remote volume) - Current track name now shown on the Recents screen under the app name
- New skip next / skip previous command channel from watch to phone
- targetSdk bumped 30 → 34 (Android 14 compliant):
android:exportedon all intent-filtered components,mediaPlaybackforeground service type,POST_NOTIFICATIONSruntime request
Performance
- Reduced button latency: phone node-id is now cached on connect instead of being resolved with a
getConnectedNodes()round-trip on every button press
Playback queue redesign (wear)
- Queue screen fully rewritten in Jetpack Compose (
QueueActivity+QueueScreen) - Dark glass pills layout with the active track highlighted in the album's lightened accent colour
- Animated three-bar equalizer indicator next to the playing track
- Long titles scroll with marquee inside the pill
- Curved clock along the top bezel (Wear OS style); fades out when scrolling down
- Thin curved scroll indicator on the right bezel — fixed thumb size (no erratic resize with the rotary crown), auto-hides after 1.2 s
- Swipe-to-dismiss closes only the queue and reveals the player underneath; system window animation suppressed to prevent a double-close visual flash
- Google Sans typeface throughout, matching the rest of the watch UI
- Artist name on the now-playing screen and quick-actions panel uses a HSL-lightened version of the album accent (dark colours become a readable pastel)
Bug fixes
- Shuffle button always appeared active: apps that never set shuffle mode report
SHUFFLE_MODE_INVALID (-1)which is not equal toSHUFFLE_MODE_NONE (0), causing the button to light up on every app. Fixed by checking for explicitly-ON states only (ALL/GROUP) - Repeat button skipped "repeat one" on some apps (e.g. Retro Music):
REPEAT_MODE_GROUPwas falling through to theelse → NONEbranch inRepeatAction, bypassing repeat-one. Fixed - Album art not showing on Retro Music and other apps: many apps on Android 10+ provide art as a
content://URI rather than a rawBitmap. Added URI fallback viaContentResolver(ALBUM_ART_URI/ART_URI/DISPLAY_ICON_URI) - Like / favourite button not reflecting state on watch after toggling: some apps don't immediately re-publish their playback state after handling a custom like action. A forced state re-read is now scheduled 500 ms after every like action