Adds a fix to avoid to translate URLs and TAGs
This commit is contained in:
parent
907235878b
commit
1d17f808a9
|
@ -262,7 +262,7 @@ public class NotificationsListAdapter extends BaseAdapter implements OnPostActio
|
|||
}
|
||||
|
||||
SpannableString spannableString = Helper.clickableElements(context, status.getContent(),
|
||||
status.getReblog() != null?status.getReblog().getMentions():status.getMentions());
|
||||
status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), true);
|
||||
holder.notification_status_content.setText(spannableString, TextView.BufferType.SPANNABLE);
|
||||
holder.notification_status_content.setMovementMethod(null);
|
||||
holder.notification_status_content.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
|
|
@ -308,16 +308,22 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
|
|||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
String text = status.getContent();
|
||||
SpannableString spannableString;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||
spannableString = new SpannableString(Html.fromHtml(status.getContent(), Html.FROM_HTML_MODE_LEGACY));
|
||||
else
|
||||
//noinspection deprecation
|
||||
spannableString = new SpannableString(Html.fromHtml(status.getContent()));
|
||||
String text = spannableString.toString();
|
||||
if( !status.isTranslated() ){
|
||||
tagConversion = new HashMap<>();
|
||||
urlConversion = new HashMap<>();
|
||||
Matcher matcher;
|
||||
//Extracts urls
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT)
|
||||
matcher = Patterns.WEB_URL.matcher(text);
|
||||
matcher = Patterns.WEB_URL.matcher(spannableString.toString());
|
||||
else
|
||||
matcher = Helper.urlPattern.matcher(text);
|
||||
matcher = Helper.urlPattern.matcher(spannableString.toString());
|
||||
int i = 0;
|
||||
//replaces them by a kind of variable which shouldn't be translated ie: __u0__, __u1__, etc.
|
||||
while (matcher.find()){
|
||||
|
@ -504,7 +510,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
|
|||
|
||||
if( status.getContent_translated() != null && status.getContent_translated().length() > 0){
|
||||
SpannableString spannableStringTrans = Helper.clickableElements(context, status.getContent_translated(),
|
||||
status.getReblog() != null?status.getReblog().getMentions():status.getMentions());
|
||||
status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), false);
|
||||
holder.status_content_translated.setText(spannableStringTrans, TextView.BufferType.SPANNABLE);
|
||||
holder.status_content_translated.setOnLongClickListener(new View.OnLongClickListener() {
|
||||
@Override
|
||||
|
@ -527,7 +533,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf
|
|||
}
|
||||
|
||||
final SpannableString spannableString = Helper.clickableElements(context,content,
|
||||
status.getReblog() != null?status.getReblog().getMentions():status.getMentions());
|
||||
status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), true);
|
||||
holder.status_content.setText(spannableString, TextView.BufferType.SPANNABLE);
|
||||
holder.status_content.setOnLongClickListener(new View.OnLongClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -1066,14 +1066,18 @@ public class Helper {
|
|||
* @param mentions List<Mention>
|
||||
* @return TextView
|
||||
*/
|
||||
public static SpannableString clickableElements(final Context context, String fullContent, List<Mention> mentions) {
|
||||
public static SpannableString clickableElements(final Context context, String fullContent, List<Mention> mentions, boolean useHTML) {
|
||||
|
||||
SpannableString spannableString;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||
spannableString = new SpannableString(Html.fromHtml(fullContent, Html.FROM_HTML_MODE_LEGACY));
|
||||
else
|
||||
//noinspection deprecation
|
||||
spannableString = new SpannableString(Html.fromHtml(fullContent));
|
||||
if( useHTML) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||
spannableString = new SpannableString(Html.fromHtml(fullContent, Html.FROM_HTML_MODE_LEGACY));
|
||||
else
|
||||
//noinspection deprecation
|
||||
spannableString = new SpannableString(Html.fromHtml(fullContent));
|
||||
}else{
|
||||
spannableString = new SpannableString(fullContent);
|
||||
}
|
||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
boolean embedded_browser = sharedpreferences.getBoolean(Helper.SET_EMBEDDED_BROWSER, true);
|
||||
if( embedded_browser){
|
||||
|
@ -1082,6 +1086,7 @@ public class Helper {
|
|||
matcher = Patterns.WEB_URL.matcher(spannableString);
|
||||
else
|
||||
matcher = urlPattern.matcher(spannableString);
|
||||
|
||||
while (matcher.find()){
|
||||
int matchStart = matcher.start(1);
|
||||
int matchEnd = matcher.end();
|
||||
|
|
Loading…
Reference in New Issue