aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/utils
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2016-12-03 13:37:26 +0100
committerDaniel Gultsch <daniel@gultsch.de>2016-12-03 13:37:26 +0100
commit56991bbaebba8e23ec60da6d3cf344fdec9f6473 (patch)
treeffe7aeb7b8b3843d22fa8f8fecc21fe6355b98e9 /src/main/java/eu/siacs/conversations/utils
parent6e289b873865b01aa59afa497581b3217700be7f (diff)
add omemo fingerprints to web links as well
Diffstat (limited to 'src/main/java/eu/siacs/conversations/utils')
-rw-r--r--src/main/java/eu/siacs/conversations/utils/XmppUri.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/eu/siacs/conversations/utils/XmppUri.java b/src/main/java/eu/siacs/conversations/utils/XmppUri.java
index 947a3366..8ab5a262 100644
--- a/src/main/java/eu/siacs/conversations/utils/XmppUri.java
+++ b/src/main/java/eu/siacs/conversations/utils/XmppUri.java
@@ -64,6 +64,7 @@ public class XmppUri {
jid = segments.get(1) + "@" + segments.get(2);
}
muc = segments.size() > 1 && "j".equalsIgnoreCase(segments.get(0));
+ fingerprints = parseFingerprints(uri.getQuery(),'&');
} else if ("xmpp".equalsIgnoreCase(scheme)) {
// sample: xmpp:foo@bar.com
muc = isMuc(uri.getQuery());
@@ -166,6 +167,26 @@ public class XmppUri {
OTR
}
+ public static String getFingerprintUri(String base, List<XmppUri.Fingerprint> fingerprints, char seperator) {
+ StringBuilder builder = new StringBuilder(base);
+ builder.append('?');
+ for(int i = 0; i < fingerprints.size(); ++i) {
+ XmppUri.FingerprintType type = fingerprints.get(i).type;
+ if (type == XmppUri.FingerprintType.OMEMO) {
+ builder.append(XmppUri.OMEMO_URI_PARAM);
+ builder.append(fingerprints.get(i).deviceId);
+ } else if (type == XmppUri.FingerprintType.OTR) {
+ builder.append(XmppUri.OTR_URI_PARAM);
+ }
+ builder.append('=');
+ builder.append(fingerprints.get(i).fingerprint);
+ if (i != fingerprints.size() -1) {
+ builder.append(seperator);
+ }
+ }
+ return builder.toString();
+ }
+
public static class Fingerprint {
public final FingerprintType type;
public final String fingerprint;