Svartifoss 2.0
Svartifoss 2.0
The app is renamed Svartifoss (formerly Music Center for Wear / Lyra Player). This is the largest release since 1.10: a full Wear OS modernization (system MediaSession integration, Jetpack Compose UI, Tiles and a watch-face complication), several new assignable actions, and a redesigned phone app.
Install the phone APK on your phone and the wear APK on your watch (see the README for sideloading instructions — Wear Installer makes the watch side easier).
Rebrand
- App renamed to Svartifoss; package IDs renamed
com.matejdro.wearmusiccenter→com.svartifoss.snfell(mobile + wear) andcom.matejdro.common→com.svartifoss.snfell.common. - Wear
minSdkraised 25 → 26 (required by the Tiles APIs below); target SDK bumped 30 → 34.
System integration (wear)
- New watch-side MediaSession proxy: mirrors the phone's now-playing state (title/artist/art/position/playback + remote volume) and forwards transport controls back to the phone. Playback now appears in and is controllable from the system Media Controls app and other Wear OS media surfaces.
- The Wear OS recents/app-switcher card now shows the currently playing track name instead of just the app name.
- Media Tile: glanceable ProtoLayout tile with track/artist and prev/play-pause/next controls.
- Queue-preview Tile: shows the next queued track, tap to skip.
- Watch-face complication: current album art / title-artist, tap to open the app.
New actions (assignable to any button/gesture)
- Play/Pause toggle, Stop, Restart track, Mute toggle, Repeat-one (direct on/off), Like/Favorite, Shuffle, Repeat.
- Search: opens voice/keyboard input on the watch and resolves the query against the playing app's media library, with a replay/delete-able search history.
- Playlist shortcuts: name + deep-link shortcuts managed on the phone (optional shuffle flag), reachable as a watch list or bound to a button.
- Play liked songs / Play liked songs, shuffled (YouTube Music).
Wear UI overhaul
- Full-screen Jetpack Compose queue and menu screens, replacing the legacy
WearableDrawerLayoutdrawer. - Configurable mini-buttons row and a quick-actions panel, both assignable through the button/action pipeline, with per-item styling (curve, background, color).
- Swipe gestures generalized: up/down/left can each be assigned any action.
- Long-press the center screen to open the queue directly.
- New screen theme options (default/minimal/compact/cinema), album-art style (cover/blur/black-and-white/blur+bw/hidden) with blur radius and dim strength, ambient opacity, rotary dead-zone and volume/seek overlay timeout.
- Configurable title text behavior: Automatic (shrink, then wrap, then scroll), always Scroll, always Wrap to two lines, or Shrink-to-fit only.
- Independent artist text and progress bar accent colors: each can be neutral (static theme color), album-derived (optionally desaturated), or a fixed custom color.
- Rotary-crown seek: turning the crown scrubs the timeline instead of changing volume (optional).
- Portuguese (Brazil) localization.
Mobile UI
- New "Lyra" settings/color-picker/player redesign with a single source of truth for the live accent color.
- New Guide tab with a Wear OS usage walkthrough; new left navigation drawer with app/author info.
- Built-in icon picker for custom action icons.
- Fresh installs now seed the button configs, action list and watch-behavior settings from a bundled default configuration instead of a generic auto-detected guess.
Bug fixes
- Shuffle button no longer shows as active for apps that never set their shuffle mode.
- Repeat button now correctly detects "repeat one" on apps (e.g. Retro Music) that report it as
REPEAT_MODE_GROUP. - Album art now loads on apps (e.g. Retro Music) that provide it as a
content://URI instead of a raw bitmap. - Like/favorite button now reliably reflects state on the watch after toggling.
- Legacy drawer queue could still appear on some apps instead of the new queue screen — fixed.
- Watch round-screen clipping in light mode (now-playing clock circle cut off at the bezel) — fixed.
- Queue screen no longer stutters while scrolling (removed a per-row offscreen render pass; animations pause during active scrolling).
- Watch-face complication cover no longer flashes back to a placeholder icon when a refresh lands before the album art finishes transferring.
- Equalizer icon now uses consistent bar geometry across the notification, ambient indicator and queue screen.
- Saved button configs could silently fail to load in release builds — a proguard rule protecting reflection-based action deserialization still referenced the pre-rename package, so R8 stripped it. Fixed.
Full changelog: CHANGELOG.md