remove trailing ) in urls
This commit is contained in:
parent
3c932e9fa6
commit
fe90e70bb1
|
@ -98,33 +98,39 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
|
||||||
+ "\\;\\/\\?\\@\\&\\=\\#\\~\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])"
|
+ "\\;\\/\\?\\@\\&\\=\\#\\~\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])"
|
||||||
+ "|(?:\\%[a-fA-F0-9]{2}))+");
|
+ "|(?:\\%[a-fA-F0-9]{2}))+");
|
||||||
|
|
||||||
private static final Linkify.TransformFilter WEBURL_TRANSFORM_FILTER = new Linkify.TransformFilter() {
|
private static final Linkify.TransformFilter WEBURL_TRANSFORM_FILTER = (matcher, url) -> {
|
||||||
@Override
|
if (url == null) {
|
||||||
public String transformUrl(Matcher matcher, String url) {
|
return null;
|
||||||
if (url == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final String lcUrl = url.toLowerCase(Locale.US);
|
|
||||||
if (lcUrl.startsWith("http://") || lcUrl.startsWith("https://")) {
|
|
||||||
return url;
|
|
||||||
} else {
|
|
||||||
return "http://" + url;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
final String lcUrl = url.toLowerCase(Locale.US);
|
||||||
private static final Linkify.MatchFilter WEBURL_MATCH_FILTER = new Linkify.MatchFilter() {
|
if (lcUrl.startsWith("http://") || lcUrl.startsWith("https://")) {
|
||||||
@Override
|
return removeTrailingBracket(url);
|
||||||
public boolean acceptMatch(CharSequence cs, int start, int end) {
|
} else {
|
||||||
return start < 1 || (cs.charAt(start - 1) != '@' && cs.charAt(start - 1) != '.' && !cs.subSequence(Math.max(0, start - 3), start).equals("://"));
|
return "http://" + removeTrailingBracket(url);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final Linkify.MatchFilter XMPPURI_MATCH_FILTER = new Linkify.MatchFilter() {
|
private static String removeTrailingBracket(final String url) {
|
||||||
@Override
|
int numOpenBrackets = 0;
|
||||||
public boolean acceptMatch(CharSequence s, int start, int end) {
|
for(char c : url.toCharArray()) {
|
||||||
XmppUri uri = new XmppUri(s.subSequence(start, end).toString());
|
if (c=='(') {
|
||||||
return uri.isJidValid();
|
++numOpenBrackets;
|
||||||
|
} else if (c==')') {
|
||||||
|
--numOpenBrackets;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (numOpenBrackets != 0 && url.charAt(url.length() - 1) == ')') {
|
||||||
|
return url.substring(0,url.length() - 1);
|
||||||
|
} else {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final Linkify.MatchFilter WEBURL_MATCH_FILTER = (cs, start, end) -> start < 1 || (cs.charAt(start - 1) != '@' && cs.charAt(start - 1) != '.' && !cs.subSequence(Math.max(0, start - 3), start).equals("://"));
|
||||||
|
|
||||||
|
private static final Linkify.MatchFilter XMPPURI_MATCH_FILTER = (s, start, end) -> {
|
||||||
|
XmppUri uri = new XmppUri(s.subSequence(start, end).toString());
|
||||||
|
return uri.isJidValid();
|
||||||
};
|
};
|
||||||
|
|
||||||
private final XmppActivity activity;
|
private final XmppActivity activity;
|
||||||
|
|
Loading…
Reference in a new issue