diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java index 16a6c0d8a..8d3dba214 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java @@ -553,44 +553,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct //-------- END -> Change the color in gray for accounts in DARK Theme only - /*if( status.getContent_translated() != null && status.getContent_translated().length() > 0){ - holder.status_content_translated.setMovementMethod(null); - SpannableString spannableStringTrans = Helper.clickableElements(context,status.getContent_translated(), status, - true, StatusListAdapter.this); - holder.status_content_translated.setText(spannableStringTrans, TextView.BufferType.SPANNABLE); - holder.status_content_translated.setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - holder.status_content_translated.setFocusableInTouchMode(true); - return false; - } - }); - holder.status_content_translated.setMovementMethod(LinkMovementMethod.getInstance()); - }*/ - - /*if( status.getContentSpan() != null){ - holder.status_content.setText(status.getContentSpan(), TextView.BufferType.SPANNABLE); - }else{ - content = content.replaceAll("

","

"); - content = content.replaceAll("

",""); - if( content.endsWith("

") ) - content = content.substring(0,content.length() -10); - holder.status_content.setMovementMethod(null); - final SpannableString spannableString = Helper.clickableElements(context,content, - status, true, StatusListAdapter.this); - holder.status_content.setText(spannableString, TextView.BufferType.SPANNABLE); - }*/ - - - holder.status_content.setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - holder.status_content.setFocusableInTouchMode(true); - return false; - } - }); - - holder.status_content.setMovementMethod(LinkMovementMethod.getInstance()); if( status.getReblog() == null) holder.status_favorite_count.setText(String.valueOf(status.getFavourites_count())); @@ -722,7 +684,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if( status.isTranslationShown() && status.getContentSpanTranslated() != null){ holder.status_content_translated.setText(status.getContentSpanTranslated(), TextView.BufferType.SPANNABLE); - holder.status_content_translated.setMovementMethod(LinkMovementMethod.getInstance()); holder.status_content.setVisibility(View.GONE); holder.status_content_translated_container.setVisibility(View.VISIBLE); }else { //Toot is not translated diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java index 7f4caaa45..7c6453da3 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java @@ -1122,171 +1122,8 @@ public class Helper { - /** - * Check if the status contents mentions & tags and fills the content with ClickableSpan - * Click on account => ShowAccountActivity - * Click on tag => HashTagActivity - * @param context Context - * @param fullContent String, should be the st - * @return TextView - */ - @SuppressWarnings("SameParameterValue") - /*public static SpannableString clickableElements(final Context context, String fullContent, final Status status, boolean useHTML, final OnRetrieveEmojiInterface listener) { - List mentions = status.getReblog() != null ? status.getReblog().getMentions() : status.getMentions(); - final List emojis = status.getReblog() != null ? status.getReblog().getEmojis() : status.getEmojis(); - final SpannableString spannableString; - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); - 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); - } - String instance = getLiveInstance(context); - SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); - boolean embedded_browser = sharedpreferences.getBoolean(Helper.SET_EMBEDDED_BROWSER, true); - if( embedded_browser){ - Matcher matcher; - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) - matcher = Patterns.WEB_URL.matcher(spannableString); - else - matcher = urlPattern.matcher(spannableString); - - while (matcher.find()){ - int matchStart = matcher.start(1); - int matchEnd = matcher.end(); - final String url = spannableString.toString().substring(matchStart, matchEnd); - spannableString.setSpan(new ClickableSpan() { - @Override - public void onClick(View textView) { - Intent intent = new Intent(context, WebviewActivity.class); - Bundle b = new Bundle(); - String finalUrl = url; - if( !url.startsWith("http://") && ! url.startsWith("https://")) - finalUrl = "http://" + url; - b.putString("url", finalUrl); - intent.putExtras(b); - context.startActivity(intent); - } - @Override - public void updateDrawState(TextPaint ds) { - super.updateDrawState(ds); - } - }, - matchStart, matchEnd, - Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - - } - } - - if( emojis != null && emojis.size() > 0 ) { - final int[] i = {0}; - for (final Emojis emoji : emojis) { - Glide.with(context) - .asBitmap() - .load(emoji.getUrl()) - .listener(new RequestListener() { - @Override - public boolean onResourceReady(Bitmap resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { - return false; - } - - @Override - public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { - i[0]++; - if( i[0] == (emojis.size())) - listener.onRetrieveEmoji(status, spannableString, false); - return false; - } - }) - .into(new SimpleTarget() { - @Override - public void onResourceReady(Bitmap resource, Transition transition) { - final String targetedEmoji = ":" + emoji.getShortcode() + ":"; - if (spannableString.toString().contains(targetedEmoji)) { - //emojis can be used several times so we have to loop - for (int startPosition = -1; (startPosition = spannableString.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) { - final int endPosition = startPosition + targetedEmoji.length(); - spannableString.setSpan( - new ImageSpan(context, - Bitmap.createScaledBitmap(resource, (int) Helper.convertDpToPixel(20, context), - (int) Helper.convertDpToPixel(20, context), false)), startPosition, - endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - } - } - i[0]++; - if( i[0] == (emojis.size())) - listener.onRetrieveEmoji(status, spannableString, false); - } - }); - - } - - - - } - - //Deals with mention to make them clickable - if( mentions != null && mentions.size() > 0 ) { - //Looping through accounts which are mentioned - for (final Mention mention : mentions) { - String targetedAccount = "@" + mention.getUsername(); - if (spannableString.toString().contains(targetedAccount)) { - - //Accounts can be mentioned several times so we have to loop - for(int startPosition = -1 ; (startPosition = spannableString.toString().indexOf(targetedAccount, startPosition + 1)) != -1 ; startPosition++){ - int endPosition = startPosition + targetedAccount.length(); - spannableString.setSpan(new ClickableSpan() { - @Override - public void onClick(View textView) { - Intent intent = new Intent(context, ShowAccountActivity.class); - Bundle b = new Bundle(); - b.putString("accountId", mention.getId()); - intent.putExtras(b); - context.startActivity(intent); - } - @Override - public void updateDrawState(TextPaint ds) { - super.updateDrawState(ds); - } - }, - startPosition, endPosition, - Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - } - } - - } - } - Matcher matcher = hashtagPattern.matcher(spannableString); - while (matcher.find()){ - int matchStart = matcher.start(1); - int matchEnd = matcher.end(); - final String tag = spannableString.toString().substring(matchStart, matchEnd); - spannableString.setSpan(new ClickableSpan() { - @Override - public void onClick(View textView) { - Intent intent = new Intent(context, HashTagActivity.class); - Bundle b = new Bundle(); - b.putString("tag", tag.substring(1)); - intent.putExtras(b); - context.startActivity(intent); - } - @Override - public void updateDrawState(TextPaint ds) { - super.updateDrawState(ds); - } - }, matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - } - - return spannableString; - }*/ - - - /** + /*** * Check if the account bio contents urls & tags and fills the content with ClickableSpan * Click on url => webview or external app * Click on tag => HashTagActivity