diff options
author | Christian Schneppe <christian@pix-art.de> | 2016-12-18 21:43:27 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2016-12-18 21:43:27 +0100 |
commit | ba4184b633b33d03bd40ea7ea7495567f95c8a46 (patch) | |
tree | 2185d19ad17728f2a6f95c039a473fa76e8e8393 /src/main/java/de/pixart/messenger/utils/XmppUri.java | |
parent | 09b3ffd482251ce7ef2031f445d81879e22cfa93 (diff) |
add omemo fingerprints to web links as well
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/XmppUri.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/XmppUri.java b/src/main/java/de/pixart/messenger/utils/XmppUri.java index b8b9233fd..1de4f59f7 100644 --- a/src/main/java/de/pixart/messenger/utils/XmppUri.java +++ b/src/main/java/de/pixart/messenger/utils/XmppUri.java @@ -69,6 +69,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()); @@ -172,6 +173,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; |