prevent QR code parser from crashing fixed #839

This commit is contained in:
Daniel Gultsch 2015-01-05 15:08:13 +01:00
parent bdb335e6b0
commit 2679824770
1 changed files with 13 additions and 6 deletions

View File

@ -18,7 +18,11 @@ public class XmppUri {
try { try {
parse(Uri.parse(uri)); parse(Uri.parse(uri));
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
jid = null; try {
jid = Jid.fromString(uri).toBareJid().toString();
} catch (InvalidJidException e2) {
jid = null;
}
} }
} }
@ -42,6 +46,13 @@ public class XmppUri {
try { try {
jid = URLDecoder.decode(uri.getEncodedPath(), "UTF-8").split("/")[1]; jid = URLDecoder.decode(uri.getEncodedPath(), "UTF-8").split("/")[1];
} catch (final UnsupportedEncodingException ignored) { } catch (final UnsupportedEncodingException ignored) {
jid = null;
}
} else {
try {
jid = Jid.fromString(uri.toString()).toBareJid().toString();
} catch (final InvalidJidException ignored) {
jid = null;
} }
} }
} }
@ -62,7 +73,7 @@ public class XmppUri {
public Jid getJid() { public Jid getJid() {
try { try {
return Jid.fromString(this.jid); return this.jid == null ? null :Jid.fromString(this.jid);
} catch (InvalidJidException e) { } catch (InvalidJidException e) {
return null; return null;
} }
@ -71,8 +82,4 @@ public class XmppUri {
public String getFingerprint() { public String getFingerprint() {
return this.fingerprint; return this.fingerprint;
} }
public boolean isMuc() {
return this.muc;
}
} }