diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java index fc2ceed670422b0724dacbeb439d59734dedb3b7..6b95e0e8af6ace289a5ea61a131a8110c5308854 100644 --- a/src/main/java/eu/siacs/conversations/entities/Account.java +++ b/src/main/java/eu/siacs/conversations/entities/Account.java @@ -2,6 +2,7 @@ package eu.siacs.conversations.entities; import android.content.ContentValues; import android.database.Cursor; +import android.net.Uri; import android.os.SystemClock; import android.util.Log; @@ -690,7 +691,7 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable public String getShareableUri() { List fingerprints = this.getFingerprints(); - String uri = "xmpp:" + this.getJid().asBareJid().toEscapedString(); + String uri = "xmpp:" + Uri.encode(getJid().asBareJid().toEscapedString(), "@/"); if (fingerprints.size() > 0) { return XmppUri.getFingerprintUri(uri, fingerprints, ';'); } else { diff --git a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java index 4d5eba0f706139164a5f47d32faa1e0f95e5717c..88bed0123f187fd38d0ebfc861b6ff1dbee60c1d 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.text.Editable; import android.text.SpannableStringBuilder; @@ -386,7 +387,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers if (http) { return "https://conversations.im/j/" + XmppUri.lameUrlEncode(mConversation.getJid().asBareJid().toEscapedString()); } else { - return "xmpp:" + mConversation.getJid().asBareJid() + "?join"; + return "xmpp:" + Uri.encode(mConversation.getJid().asBareJid().toEscapedString(), "@/") + "?join"; } } else { return null; diff --git a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java index 9866dc9418d16e5de12d7e298cd6a62919710431..ba0e4a1795cb5d80f1770c6bbbf6c0ae1882d0da 100644 --- a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java @@ -203,7 +203,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp if (http) { return "https://conversations.im/i/" + XmppUri.lameUrlEncode(contact.getJid().asBareJid().toEscapedString()); } else { - return "xmpp:" + contact.getJid().asBareJid().toEscapedString(); + return "xmpp:" + Uri.encode(contact.getJid().asBareJid().toEscapedString(), "@/"); } }