Loading app/src/main/java/app/fedilab/android/helper/Helper.java +3 −3 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; Loading Loading @@ -352,9 +352,9 @@ public class Helper { public static int counter = 1; static { Map<PatternType, Pattern> aMap = new HashMap<>(); aMap.put(PatternType.MENTION, mentionPattern); LinkedHashMap<PatternType, Pattern> aMap = new LinkedHashMap<>(); aMap.put(PatternType.MENTION_LONG, mentionLongPattern); aMap.put(PatternType.MENTION, mentionPattern); aMap.put(PatternType.TAG, hashtagPattern); aMap.put(PatternType.GROUP, groupPattern); patternHashMap = Collections.unmodifiableMap(aMap); Loading app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +42 −2 Original line number Diff line number Diff line Loading @@ -105,7 +105,7 @@ public class SpannableHelper { } if (url != null && urlText != null && !url.equals(urlText) && !urlText.contains("<span")) { urlDetails.put(url, urlText); text = text.replaceAll(Pattern.quote(matcherALink.group()), Matcher.quoteReplacement(url)); // text = text.replaceAll(Pattern.quote(matcherALink.group()), Matcher.quoteReplacement(url)); } } if(convertHtml) { Loading Loading @@ -233,6 +233,9 @@ public class SpannableHelper { continue; } final String url = content.toString().substring(matchStart, matchEnd); if (!url.startsWith("http")) { continue; } String newURL = Helper.transformURL(context, url); //If URL has been transformed if (newURL.compareTo(url) != 0) { Loading Loading @@ -397,9 +400,46 @@ public class SpannableHelper { @Override public void onClick(@NonNull View textView) { textView.setTag(CLICKABLE_SPAN); Pattern link = Pattern.compile("https?://([\\da-z.-]+\\.[a-z.]{2,10})/(@[\\w._-]*[0-9]*)(/[0-9]+)?$"); Matcher matcherLink = link.matcher(url); if (matcherLink.find() && !url.contains("medium.com")) { if (matcherLink.group(3) != null && Objects.requireNonNull(matcherLink.group(3)).length() > 0) { //It's a toot CrossActionHelper.fetchRemoteStatus(context, currentAccount, url, new CrossActionHelper.Callback() { @Override public void federatedStatus(Status status) { Intent intent = new Intent(context, ContextActivity.class); intent.putExtra(Helper.ARG_STATUS, status); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } @Override public void federatedAccount(Account account) { } }); } else {//It's an account CrossActionHelper.fetchRemoteAccount(context, currentAccount, status.account, new CrossActionHelper.Callback() { @Override public void federatedStatus(Status status) { } @Override public void federatedAccount(Account account) { Intent intent = new Intent(context, ProfileActivity.class); Bundle b = new Bundle(); b.putSerializable(Helper.ARG_ACCOUNT, account); intent.putExtras(b); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } }); } } else { Helper.openBrowser(context, newURL); } } @Override public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); Loading Loading
app/src/main/java/app/fedilab/android/helper/Helper.java +3 −3 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; Loading Loading @@ -352,9 +352,9 @@ public class Helper { public static int counter = 1; static { Map<PatternType, Pattern> aMap = new HashMap<>(); aMap.put(PatternType.MENTION, mentionPattern); LinkedHashMap<PatternType, Pattern> aMap = new LinkedHashMap<>(); aMap.put(PatternType.MENTION_LONG, mentionLongPattern); aMap.put(PatternType.MENTION, mentionPattern); aMap.put(PatternType.TAG, hashtagPattern); aMap.put(PatternType.GROUP, groupPattern); patternHashMap = Collections.unmodifiableMap(aMap); Loading
app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +42 −2 Original line number Diff line number Diff line Loading @@ -105,7 +105,7 @@ public class SpannableHelper { } if (url != null && urlText != null && !url.equals(urlText) && !urlText.contains("<span")) { urlDetails.put(url, urlText); text = text.replaceAll(Pattern.quote(matcherALink.group()), Matcher.quoteReplacement(url)); // text = text.replaceAll(Pattern.quote(matcherALink.group()), Matcher.quoteReplacement(url)); } } if(convertHtml) { Loading Loading @@ -233,6 +233,9 @@ public class SpannableHelper { continue; } final String url = content.toString().substring(matchStart, matchEnd); if (!url.startsWith("http")) { continue; } String newURL = Helper.transformURL(context, url); //If URL has been transformed if (newURL.compareTo(url) != 0) { Loading Loading @@ -397,9 +400,46 @@ public class SpannableHelper { @Override public void onClick(@NonNull View textView) { textView.setTag(CLICKABLE_SPAN); Pattern link = Pattern.compile("https?://([\\da-z.-]+\\.[a-z.]{2,10})/(@[\\w._-]*[0-9]*)(/[0-9]+)?$"); Matcher matcherLink = link.matcher(url); if (matcherLink.find() && !url.contains("medium.com")) { if (matcherLink.group(3) != null && Objects.requireNonNull(matcherLink.group(3)).length() > 0) { //It's a toot CrossActionHelper.fetchRemoteStatus(context, currentAccount, url, new CrossActionHelper.Callback() { @Override public void federatedStatus(Status status) { Intent intent = new Intent(context, ContextActivity.class); intent.putExtra(Helper.ARG_STATUS, status); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } @Override public void federatedAccount(Account account) { } }); } else {//It's an account CrossActionHelper.fetchRemoteAccount(context, currentAccount, status.account, new CrossActionHelper.Callback() { @Override public void federatedStatus(Status status) { } @Override public void federatedAccount(Account account) { Intent intent = new Intent(context, ProfileActivity.class); Bundle b = new Bundle(); b.putSerializable(Helper.ARG_ACCOUNT, account); intent.putExtras(b); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } }); } } else { Helper.openBrowser(context, newURL); } } @Override public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); Loading