diff --git a/mobile/lib/utils/multipart_upload_util.dart b/mobile/lib/utils/multipart_upload_util.dart index fc4ac4860..29830fcef 100644 --- a/mobile/lib/utils/multipart_upload_util.dart +++ b/mobile/lib/utils/multipart_upload_util.dart @@ -135,7 +135,7 @@ Future completeMultipartUpload( ), ) .toList(), - }); + }).replaceAll('"', '').replaceAll('"', ''); try { await _dio.post( diff --git a/mobile/lib/utils/xml_parser_util.dart b/mobile/lib/utils/xml_parser_util.dart index 6942394cb..b4ea64b9c 100644 --- a/mobile/lib/utils/xml_parser_util.dart +++ b/mobile/lib/utils/xml_parser_util.dart @@ -41,95 +41,3 @@ void buildXml(XmlBuilder builder, dynamic node) { builder.text(node.toString()); } } - -// for removing the " from the xml string response. -// couldn't find better way to do this -XmlEntityMapping defaultMyEntityMapping = MyXmlDefaultEntityMapping.xml(); - -class MyXmlDefaultEntityMapping extends XmlDefaultEntityMapping { - MyXmlDefaultEntityMapping.xml() : this(xmlEntities); - MyXmlDefaultEntityMapping.html() : this(htmlEntities); - MyXmlDefaultEntityMapping.html5() : this(html5Entities); - MyXmlDefaultEntityMapping(super.entities); - - @override - String encodeText(String input) => - input.replaceAllMapped(_textPattern, _textReplace); - - @override - String encodeAttributeValue(String input, XmlAttributeType type) { - switch (type) { - case XmlAttributeType.SINGLE_QUOTE: - return input.replaceAllMapped( - _singeQuoteAttributePattern, - _singeQuoteAttributeReplace, - ); - case XmlAttributeType.DOUBLE_QUOTE: - return input.replaceAllMapped( - _doubleQuoteAttributePattern, - _doubleQuoteAttributeReplace, - ); - } - } -} - -final _textPattern = RegExp(r'[&<>' + _highlyDiscouragedCharClass + r']'); - -String _textReplace(Match match) { - final toEscape = match.group(0)!; - switch (toEscape) { - case '<': - return '<'; - case '&': - return '&'; - case '>': - return '>'; - default: - return _asNumericCharacterReferences(toEscape); - } -} - -final _singeQuoteAttributePattern = - RegExp(r"['&<>\n\r\t" + _highlyDiscouragedCharClass + r']'); - -String _singeQuoteAttributeReplace(Match match) { - final toEscape = match.group(0)!; - switch (toEscape) { - case "'": - return ''; - case '&': - return '&'; - case '<': - return '<'; - case '>': - return '>'; - default: - return _asNumericCharacterReferences(toEscape); - } -} - -final _doubleQuoteAttributePattern = - RegExp(r'["&<>\n\r\t' + _highlyDiscouragedCharClass + r']'); - -String _doubleQuoteAttributeReplace(Match match) { - final toEscape = match.group(0)!; - switch (toEscape) { - case '"': - return ''; - case '&': - return '&'; - case '<': - return '<'; - case '>': - return '>'; - default: - return _asNumericCharacterReferences(toEscape); - } -} - -const _highlyDiscouragedCharClass = - r'\u0001-\u0008\u000b\u000c\u000e-\u001f\u007f-\u0084\u0086-\u009f'; - -String _asNumericCharacterReferences(String toEscape) => toEscape.runes - .map((rune) => '&#x${rune.toRadixString(16).toUpperCase()};') - .join();