Change summary
src/main/java/eu/siacs/conversations/ui/util/MyLinkify.java | 5 +-
src/main/java/eu/siacs/conversations/utils/XmppUri.java | 13 +++++++
2 files changed, 16 insertions(+), 2 deletions(-)
Detailed changes
@@ -140,13 +140,14 @@ public class MyLinkify {
Uri uri = Uri.parse(urlspan.getURL());
if ("xmpp".equals(uri.getScheme())) {
try {
- Jid jid = new XmppUri(uri).getJid();
+ XmppUri xmppUri = new XmppUri(uri);
+ Jid jid = xmppUri.getJid();
ListItem item = account.getBookmark(jid);
if (item == null) item = roster.getContact(jid);
body.replace(
body.getSpanStart(urlspan),
body.getSpanEnd(urlspan),
- item.getDisplayName()
+ item.getDisplayName() + xmppUri.parameterString()
);
} catch (final IllegalArgumentException e) { /* bad JID */ }
}
@@ -232,6 +232,19 @@ public class XmppUri {
return this.parameters.get(key);
}
+ public String parameterString() {
+ final StringBuilder s = new StringBuilder();
+ for (Map.Entry<String, String> param : parameters.entrySet()) {
+ if (param.getValue() == null || param.getValue().isEmpty()) continue;
+
+ s.append(";");
+ s.append(param.getKey());
+ s.append("=");
+ s.append(param.getValue());
+ }
+ return s.toString();
+ }
+
public List<Fingerprint> getFingerprints() {
return this.fingerprints;
}