JRiver Remote 2.4.0
Highlights
- HTTPS connections to JRiver MC. Connect over SSL with a per-host
trust prompt for self-signed certificates — no more plaintext-only
links. - Queue management. Swipe to remove a single track from the playing
now queue, or use the new "Clear" button to empty it in one tap. - Diagnostics & log export. A new section in Server Manager lets you
share or save the current session's app log — useful when reporting
bugs. On macOS the log can also be opened directly in TextEdit. - Smarter orientation handling. Phones lock to portrait, tablets
keep all orientations, and foldables re-evaluate every time the
display size changes. - Layout polish. Bottom tab bar, library tabs, and several scrollable
screens lay out correctly on Android 15/16 edge-to-edge devices
(including Samsung S25 / One UI 8).
What's new
Server connections
- Add SSL (HTTPS) toggle to the manual setup form, with an SSL port
field (defaults to 52200, JRiver's standard). - Persist
useSsl/sslPortper saved server; auto-resume in SSL mode
on next launch. - Access-key resolution now reads
<httpsport>from the JRiver lookup
response so the right port is used automatically. - Self-signed certificates are accepted for the JRiver host the user
connected to with the SSL toggle on. Trust is scoped to that host —
any other HTTPS endpoint the app talks to (e.g. the JRiver lookup
service) keeps stock TLS validation.
Playing-now queue
- New Clear button in the queue header (asks for confirmation
before removing all tracks). - Swipe-left to remove a single track from the queue.
- Both work for local, offline, and remote zones.
- Local-zone deletes now skip the active track gracefully instead of
triggering a reload.
Diagnostics
- App now writes every log line to a per-session file (truncated on each
start) — open Server Manager → "Export Logs" to share it. - macOS adds Save Log As… (system save panel) and Open in
TextEdit. - Flutter framework errors include the diagnostics tree in the log, so
layout issues are easier to triage post-mortem.
Layout & device support
- Phones (shortest side < 600dp) are now locked to portrait at startup;
tablets and desktop keep all orientations. - Foldables re-evaluate the lock when crossing the 600dp threshold
(folding/unfolding), so portrait-only kicks in only on the cover
display. - Bottom tab bar uses dynamic safe-area insets — no more wasted black
band at the bottom of the screen on Android 15/16 with edge-to-edge
enforcement. - Library tab pills truncate long labels (e.g. "Downloads") with an
ellipsis on narrow screens instead of wrapping to two lines.
Fixes
- Tapping a queue tile now starts playback (previously the tap handler
was returning the closure instead of invoking it). - No more "McwsClient is not registered" crash on logout — the player
no longer tries to send a remote stop command after the session scope
is torn down. PlayerInterruptedExceptionfrom just_audio (a cancelled
setAudioSourcescall) is now logged atinfoinstead of bubbling up
as an "Uncaught platform error".- Several album-related comparisons (artist / album / album-artist) are
now case-insensitive, fixing duplicate-album detection across servers
with mixed-case metadata. - Multi-disc albums are reliably grouped using an auto-derived album
artist when the file metadata is inconsistent.
Under the hood
- Connection repository no longer maintains its own session-scope
tracker — uses the existing GetIt scope mechanism. - New
JRiverHttpOverridesinstalls once at startup and lets the
connection layer add hosts to its trust set as sessions resolve. FileLogObserverintegrates with Talker; per-line synchronous writes
guarantee the log file is on disk for instant export.- Saved-server schema bumped to v7 (adds
useSsl,sslPortcolumns,
with an additive migration).
Compatibility
- Android: minimum unchanged. Tested on Android 14 / 15 / 16
(Samsung S25 with One UI 8 and Galaxy S24 with One UI 6). - iOS / iPadOS: unchanged.
- macOS: requires the rebuilt bundle for the new
com.apple.security.files.user-selected.read-writeentitlement
(used by the "Save Log As…" panel). A clean re-run of the app is
needed once after upgrading.
Known limitations
- SSL trust is permissive per-host; certificate fingerprint pinning is
a future enhancement.
Migration notes for developers
- If you have a saved JRR debug build below 2.4.0, the database will
auto-migrate to schema v7 on first launch (addsuseSsl/sslPort
tosaved_servers). No action required. - Any test fixture constructing
SavedServerdirectly must now include
useSslandsslPortfields.