diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/XmppUri.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/XmppUri.java b/src/main/java/de/pixart/messenger/utils/XmppUri.java index 10fa0324b..b8b9233fd 100644 --- a/src/main/java/de/pixart/messenger/utils/XmppUri.java +++ b/src/main/java/de/pixart/messenger/utils/XmppUri.java @@ -18,6 +18,7 @@ public class XmppUri { protected String fingerprint; protected List<Fingerprint> fingerprints = new ArrayList<>(); private String body; + protected boolean safeSource = true; public static final String OMEMO_URI_PARAM = "omemo-sid-"; public static final String OTR_URI_PARAM = "otr-fingerprint"; @@ -42,6 +43,15 @@ public class XmppUri { return "xmpp".equalsIgnoreCase(scheme); } + public XmppUri(Uri uri, boolean safeSource) { + this.safeSource = safeSource; + parse(uri); + } + + public boolean isSafeSource() { + return safeSource; + } + protected void parse(Uri uri) { String scheme = uri.getScheme(); String host = uri.getHost(); @@ -86,8 +96,12 @@ public class XmppUri { } protected List<Fingerprint> parseFingerprints(String query) { + return parseFingerprints(query, ';'); + } + + protected List<Fingerprint> parseFingerprints(String query, char seperator) { List<Fingerprint> fingerprints = new ArrayList<>(); - String[] pairs = query == null ? new String[0] : query.split(";"); + String[] pairs = query == null ? new String[0] : query.split(String.valueOf(seperator)); for (String pair : pairs) { String[] parts = pair.split("=", 2); if (parts.length == 2) { |