Added gemini link activation for account metadata
This commit is contained in:
parent
582b36bc80
commit
e4dc18ff6b
|
@ -828,6 +828,37 @@ public class Account implements Parcelable {
|
||||||
}
|
}
|
||||||
}, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
}, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||||
}
|
}
|
||||||
|
matcher = Pattern.compile("gemini://([\\d\\w.-]*)(:\\d+)?(/\\S*)?").matcher(fieldSpan);
|
||||||
|
while (matcher.find()) {
|
||||||
|
URLSpan[] urls = fieldSpan.getSpans(0, fieldSpan.length(), URLSpan.class);
|
||||||
|
for (URLSpan span : urls)
|
||||||
|
fieldSpan.removeSpan(span);
|
||||||
|
int matchStart = matcher.start(0);
|
||||||
|
int matchEnd = matcher.end();
|
||||||
|
final String url = fieldSpan.toString().substring(matchStart, matchEnd);
|
||||||
|
if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
|
||||||
|
fieldSpan.setSpan(new ClickableSpan() {
|
||||||
|
@Override
|
||||||
|
public void onClick(@NonNull View textView) {
|
||||||
|
try {
|
||||||
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
||||||
|
context.startActivity(intent);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Toasty.error(context, context.getString(R.string.toast_no_apps), Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateDrawState(@NonNull TextPaint ds) {
|
||||||
|
super.updateDrawState(ds);
|
||||||
|
ds.setUnderlineText(false);
|
||||||
|
ds.setColor(link_color);
|
||||||
|
}
|
||||||
|
}, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||||
|
fieldsSpan.put(keySpan, fieldSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
if (accountsMentionUnknown.size() > 0) {
|
if (accountsMentionUnknown.size() > 0) {
|
||||||
for (Account accountMention : accountsMentionUnknown) {
|
for (Account accountMention : accountsMentionUnknown) {
|
||||||
String targetedAccount = "@" + accountMention.getAcct();
|
String targetedAccount = "@" + accountMention.getAcct();
|
||||||
|
|
Loading…
Reference in New Issue