v0.10.4 - Stable Release
Stable build of CAMusic for Android.
Install
- Download camusic-0.10.4.apk below (Android 12 / API 31+).
- Allow install from unknown sources, then open it. Installs over 0.10.x (versionCode 49) — same signing key, so your servers, credentials and downloads survive.
Build system upgrade: AGP 9.3.1, Gradle 9.7, compileSdk 37
No user-facing change from the upgrade itself, but it brings Material 3
Expressive fully online across the app: spring-based motion physics on
every standard component (switches, sliders, chips, buttons,
navigation), the full emphasized typography set, and the complete
8-level shape scale. Previously only partially wired in by hand; these
now come from the platform.
Fixes
- Artist pages no longer visibly reflow after opening. Top tracks
and albums land in the same recomposition instead of the albums
showing first and the top-tracks shelf popping in a beat later. - An MA seek/skip glitch that could jump the timeline by up to 3
seconds — the position was re-anchored from a stale polled value on
the same tick a seek freeze released, on top of a target it was
already correctly snapped to. - Bluetooth headset buttons now resume whichever player is actually
paused. Hardware transport controls were routed through an MA-only
path, so resuming from a paused Navidrome session via a headset could
silently do nothing. - A TTS/announcement focus bug that could go silent for the rest of a
session. A single denied audio-focus request (racing another app's
momentary grab) used to permanently disable every later focus request
instead of just that one. - Onboarding could re-trap returning users on every launch via a
legacy fallback screen with no way out; removed. - The local ("This device") library failed to connect because it
was rejected for having no server URL, which doesn't apply to local
files. - The driving bar's dismiss (×) now actually dismisses it for the
current drive, and the overlay no longer draws over the app's own
foregrounded screen.
New: a wave-style seek bar
Settings → Appearance now offers a "Seek bar" style — Line or Wave. The
wave skin draws the played portion as a sine wave that wobbles while
playing and eases flat on pause.