spotube/composeApp
thumb2086 73bac7b04c feat(library): add local playlist cross-device sync via Jam
- LocalPlaylistRepository: Add sync via Jam (MQTT) mechanism
  - SyncState sealed class (Idle, Syncing, Success, Error)
  - PlaylistChange sealed class (Created, Updated, Deleted, TrackAdded, etc.)
  - broadcastPlaylistChange() sends changes via Jam MQTT
  - observeJamSync() listens for remote changes
  - applyRemoteChange() applies remote changes locally
  - syncNow() triggers full sync broadcast

- LocalPlaylistViewModel: Add syncNow() and syncState to UI
- LibraryPlaylistsScreen: Add sync button and status indicator in Local Playlists header
- String resources: syncing, synced, sync error, sync now

Uses existing Jam MQTT infrastructure for cross-device sync.
Only Host can broadcast changes; Guests receive and apply.
2026-10-31 11:59:52 +08:00
..
graalvm feat(graalvm): enable GraalVM native image support and update packaging configurations 2026-10-17 17:01:40 +06:00
icons feat: enhance Android build configuration with stable/nightly flavors and update launcher icons 2026-10-16 21:34:44 +06:00
src feat(library): add local playlist cross-device sync via Jam 2026-10-31 11:59:52 +08:00
build.gradle.kts fix(build): add headless mode for Linux and update CI to prepare dependencies 2026-10-29 15:01:43 +06:00
Cargo.lock feat(jam-session): integrate MQTT broker configuration and enhance jam session settings 2026-09-11 19:35:54 +06:00
Cargo.toml feat(graalvm): enable GraalVM native image support and update packaging configurations 2026-10-17 17:01:40 +06:00
proguard-rules.pro feat: migration to Compose Multiplatform 2026-06-30 17:00:13 +06:00