deal with namespace attributes. fixes #2495

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/xml/XmlReader.java | 12 ++++++++--
1 file changed, 9 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/xml/XmlReader.java 🔗

@@ -65,11 +65,17 @@ public class XmlReader {
 				wakeLock.acquire();
 				if (parser.getEventType() == XmlPullParser.START_TAG) {
 					Tag tag = Tag.start(parser.getName());
+					final String xmlns = parser.getNamespace();
 					for (int i = 0; i < parser.getAttributeCount(); ++i) {
-						tag.setAttribute(parser.getAttributeName(i),
-								parser.getAttributeValue(i));
+						final String prefix = parser.getAttributePrefix(i);
+						String name;
+						if (prefix != null && !prefix.isEmpty() && !prefix.equals(xmlns)) {
+							name = prefix+":"+parser.getAttributeName(i);
+						} else {
+							name = parser.getAttributeName(i);
+						}
+						tag.setAttribute(name,parser.getAttributeValue(i));
 					}
-					String xmlns = parser.getNamespace();
 					if (xmlns != null) {
 						tag.setAttribute("xmlns", xmlns);
 					}