Improve attachment name parsing

See https://github.com/FossifyOrg/Messages/issues/261
This commit is contained in:
Naveen Singh 2025-01-03 20:32:56 +05:30
parent 294571e116
commit 997f2f49e3
No known key found for this signature in database
GPG key ID: AF5D43C216778C0B

View file

@ -4,6 +4,15 @@ import android.util.Xml
import org.xmlpull.v1.XmlPullParser import org.xmlpull.v1.XmlPullParser
object AttachmentUtils { 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<String> { fun parseAttachmentNames(text: String): List<String> {
val parser = Xml.newPullParser() val parser = Xml.newPullParser()
@ -45,10 +54,11 @@ object AttachmentUtils {
continue continue
} }
if (parser.name == "ref") { if (parser.name in ELEMENT_TAGS) {
val value = parser.getAttributeValue(null, "src") names.add(parser.getAttributeValue(null, "src"))
names.add(value) skip(parser)
parser.nextTag() } else {
skip(parser)
} }
} }
} else { } else {