f8c93e013d
android / Build + lint + test (push) Successful in 3m46s
SoapClient - minimal SOAP 1.1 envelope builder + POST via the shared app OkHttpClient. Sets the SOAPACTION + Content-Type headers UPnP expects, parses the action's Response element as a Map<String, String>, raises SoapFaultException on a <s:Fault> response with the UPnP errorCode + errorDescription extracted. AVTransportClient - thin wrapper over SoapClient pinned to the AVTransport:1 service. Three actions for v1: SetAVTransportURI / Play / Stop. Pause + Seek deferred until we have hardware in the loop to verify per-device quirks. Three MockWebServer-driven unit tests cover the SOAPACTION header shape, XML escaping of special chars in arg values, and the fault response -> SoapFaultException path. kxml2 on the test classpath (Task 4) makes XmlPullParserFactory resolve on the JVM.