aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/utils/XmppUri.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-05-05 20:56:55 +0200
committerChristian Schneppe <christian@pix-art.de>2018-05-05 20:56:55 +0200
commit6a4c366975dde87175b356084f2c258e782134e0 (patch)
tree0d29a8e5ce5554d509ff92ae41a0a3017be0a942 /src/main/java/de/pixart/messenger/utils/XmppUri.java
parent0446624c51942118e74fbba93d40d83a9856723d (diff)
encode and decode % and # in invite links
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/XmppUri.java')
-rw-r--r--src/main/java/de/pixart/messenger/utils/XmppUri.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/XmppUri.java b/src/main/java/de/pixart/messenger/utils/XmppUri.java
index 9ab3f1769..04b9f1d93 100644
--- a/src/main/java/de/pixart/messenger/utils/XmppUri.java
+++ b/src/main/java/de/pixart/messenger/utils/XmppUri.java
@@ -1,6 +1,7 @@
package de.pixart.messenger.utils;
import android.net.Uri;
+import android.util.Log;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
@@ -8,6 +9,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import de.pixart.messenger.Config;
import rocks.xmpp.addr.Jid;
public class XmppUri {
@@ -64,8 +66,9 @@ public class XmppUri {
if (segments.size() >= 2 && segments.get(1).contains("@")) {
// sample : https://conversations.im/i/foo@bar.com
try {
- jid = Jid.of(segments.get(1)).toString();
+ jid = Jid.of(lameUrlDecode(segments.get(1))).toString();
} catch (Exception e) {
+ Log.d(Config.LOGTAG, "parsing failed ", e);
jid = null;
}
} else if (segments.size() >= 3) {
@@ -261,4 +264,12 @@ public class XmppUri {
return type.toString() + ": " + fingerprint + (deviceId != 0 ? " " + String.valueOf(deviceId) : "");
}
}
+
+ public static String lameUrlDecode(String url) {
+ return url.replace("%23", "#").replace("%25", "%");
+ }
+
+ public static String lameUrlEncode(String url) {
+ return url.replace("%", "%25").replace("#", "%23");
+ }
}