diff --git a/android/app/src/main/java/com/fabledsword/minstrel/player/output/upnp/AVTransportClient.kt b/android/app/src/main/java/com/fabledsword/minstrel/player/output/upnp/AVTransportClient.kt index 8033323f..61e2a2ad 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/player/output/upnp/AVTransportClient.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/player/output/upnp/AVTransportClient.kt @@ -204,13 +204,18 @@ class AVTransportClient( } private fun buildDidlLite(uri: String, mime: String, title: String): String { + // Sonos firmware accepts boolean-style restricted ("true"/"false") only + // and rejects "1"/"0" silently; if it can't parse our DIDL it regenerates + // its own with generic class object.item, no title, and the URL query + // string as the displayed name (logcat 2026-06-04 confirmed). Match the + // SoCo convention which the firmware definitely accepts. val safeTitle = title.ifBlank { "Minstrel" } return buildString { append("") - append("") + append("") append("").append(xmlEscape(safeTitle)).append("") append("object.item.audioItem.musicTrack") append("