fix(android): SOAP/UPnP parsers enable processNamespaces -- correct name extraction
android / Build + lint + test (push) Successful in 4m4s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 20:58:59 -04:00
parent 5c99341b34
commit 487d1bd430
3 changed files with 3 additions and 0 deletions
@@ -45,6 +45,7 @@ data class DeviceDescription(
*/ */
fun parse(xml: String, base: HttpUrl): DeviceDescription? { fun parse(xml: String, base: HttpUrl): DeviceDescription? {
val parser = XmlPullParserFactory.newInstance().newPullParser().apply { val parser = XmlPullParserFactory.newInstance().newPullParser().apply {
setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true)
setInput(xml.reader()) setInput(xml.reader())
} }
val acc = ParseState() val acc = ParseState()
@@ -75,6 +75,7 @@ class SoapClient(
private fun parseResponseArgs(body: String, action: String): Map<String, String> { private fun parseResponseArgs(body: String, action: String): Map<String, String> {
val parser = XmlPullParserFactory.newInstance().newPullParser().apply { val parser = XmlPullParserFactory.newInstance().newPullParser().apply {
setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true)
setInput(body.reader()) setInput(body.reader())
} }
val responseTag = "${action}Response" val responseTag = "${action}Response"
@@ -41,6 +41,7 @@ object SonosTopology {
private fun parseStrict(xml: String): List<SonosZoneGroup> { private fun parseStrict(xml: String): List<SonosZoneGroup> {
val parser = XmlPullParserFactory.newInstance().newPullParser().apply { val parser = XmlPullParserFactory.newInstance().newPullParser().apply {
setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true)
setInput(xml.reader()) setInput(xml.reader())
} }
val groups = mutableListOf<SonosZoneGroup>() val groups = mutableListOf<SonosZoneGroup>()