aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/utils/XmppUri.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/eu/siacs/conversations/utils/XmppUri.java')
-rw-r--r--src/main/java/eu/siacs/conversations/utils/XmppUri.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/eu/siacs/conversations/utils/XmppUri.java b/src/main/java/eu/siacs/conversations/utils/XmppUri.java
index e16377cf..947a3366 100644
--- a/src/main/java/eu/siacs/conversations/utils/XmppUri.java
+++ b/src/main/java/eu/siacs/conversations/utils/XmppUri.java
@@ -17,6 +17,7 @@ public class XmppUri {
protected boolean muc;
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";
@@ -37,6 +38,15 @@ public class XmppUri {
parse(uri);
}
+ 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();
@@ -81,8 +91,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) {