From 997f2f49e3e00faaac54837a4b1575c89a4dc732 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Fri, 3 Jan 2025 20:32:56 +0530 Subject: [PATCH] Improve attachment name parsing See https://github.com/FossifyOrg/Messages/issues/261 --- .../messages/helpers/AttachmentUtils.kt | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentUtils.kt b/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentUtils.kt index 351790a1..d8091f55 100644 --- a/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentUtils.kt +++ b/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentUtils.kt @@ -4,6 +4,15 @@ import android.util.Xml import org.xmlpull.v1.XmlPullParser object AttachmentUtils { + private const val ELEMENT_TAG_IMAGE: String = "img" + private const val ELEMENT_TAG_AUDIO: String = "audio" + private const val ELEMENT_TAG_VIDEO: String = "video" + private const val ELEMENT_TAG_VCARD: String = "vcard" + private const val ELEMENT_TAG_REF: String = "ref" + + private val ELEMENT_TAGS = arrayOf( + ELEMENT_TAG_IMAGE, ELEMENT_TAG_VIDEO, ELEMENT_TAG_AUDIO, ELEMENT_TAG_VCARD, ELEMENT_TAG_REF + ) fun parseAttachmentNames(text: String): List { val parser = Xml.newPullParser() @@ -45,10 +54,11 @@ object AttachmentUtils { continue } - if (parser.name == "ref") { - val value = parser.getAttributeValue(null, "src") - names.add(value) - parser.nextTag() + if (parser.name in ELEMENT_TAGS) { + names.add(parser.getAttributeValue(null, "src")) + skip(parser) + } else { + skip(parser) } } } else {