add omemo fingerprints to web links as well
This commit is contained in:
		
							parent
							
								
									6e289b8738
								
							
						
					
					
						commit
						56991bbaeb
					
				| @ -610,23 +610,17 @@ public class Account extends AbstractEntity { | ||||
| 		List<XmppUri.Fingerprint> fingerprints = this.getFingerprints(); | ||||
| 		String uri = "xmpp:"+this.getJid().toBareJid().toString(); | ||||
| 		if (fingerprints.size() > 0) { | ||||
| 			StringBuilder builder = new StringBuilder(uri); | ||||
| 			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(';'); | ||||
| 				} | ||||
| 			} | ||||
| 			return builder.toString(); | ||||
| 			return XmppUri.getFingerprintUri(uri,fingerprints,';'); | ||||
| 		} else { | ||||
| 			return uri; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public String getShareableLink() { | ||||
| 		List<XmppUri.Fingerprint> fingerprints = this.getFingerprints(); | ||||
| 		String uri = "https://conversations.im/i/"+this.getJid().toBareJid().toString(); | ||||
| 		if (fingerprints.size() > 0) { | ||||
| 			return XmppUri.getFingerprintUri(uri,fingerprints,'&'); | ||||
| 		} else { | ||||
| 			return uri; | ||||
| 		} | ||||
|  | ||||
| @ -756,7 +756,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat | ||||
| 		intent.setType("text/plain"); | ||||
| 		String text; | ||||
| 		if (http) { | ||||
| 			text = "https://conversations.im/i/"+mAccount.getJid().toBareJid().toString(); | ||||
| 			text = mAccount.getShareableLink(); | ||||
| 		} else { | ||||
| 			text = mAccount.getShareableUri(); | ||||
| 		} | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch