diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java index ebf21a47f..aa4a0d6ab 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java @@ -296,7 +296,7 @@ public class NotificationsListAdapter extends BaseAdapter implements OnPostActio } SpannableString spannableString = Helper.clickableElements(context, content, - status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), true); + status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), status.getEmojis(), true); Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/DroidSans-Regular.ttf"); holder.notification_status_content.setTypeface(tf); holder.notification_status_content.setText(spannableString, TextView.BufferType.SPANNABLE); 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 121d13c65..a0b11bad8 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 @@ -445,7 +445,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf 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.getReblog() != null?status.getReblog().getMentions():status.getMentions(), false); + status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), status.getEmojis(), false); holder.status_content_translated.setText(spannableStringTrans, TextView.BufferType.SPANNABLE); holder.status_content_translated.setOnLongClickListener(new View.OnLongClickListener() { @Override @@ -472,7 +472,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf content = content.substring(0,content.length() -10); holder.status_content.setMovementMethod(null); final SpannableString spannableString = Helper.clickableElements(context,content, - status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), true); + status.getReblog() != null?status.getReblog().getMentions():status.getMentions(), status.getEmojis(), true); holder.status_content.setText(spannableString, TextView.BufferType.SPANNABLE); holder.status_content.setOnLongClickListener(new View.OnLongClickListener() { @Override 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 888fd6856..37fc6a1b7 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 @@ -130,6 +130,7 @@ import fr.gouv.etalab.mastodon.activities.WebviewActivity; import fr.gouv.etalab.mastodon.asynctasks.RemoveAccountAsyncTask; import fr.gouv.etalab.mastodon.client.API; import fr.gouv.etalab.mastodon.client.Entities.Account; +import fr.gouv.etalab.mastodon.client.Entities.Emojis; import fr.gouv.etalab.mastodon.client.Entities.Mention; import fr.gouv.etalab.mastodon.client.Entities.Status; import fr.gouv.etalab.mastodon.client.PatchBaseImageDownloader; @@ -1133,8 +1134,21 @@ public class Helper { * @param mentions List * @return TextView */ - public static SpannableString clickableElements(final Context context, String fullContent, List mentions, boolean useHTML) { + public static SpannableString clickableElements(final Context context, String fullContent, List mentions, List emojis, boolean useHTML) { SpannableString spannableString; + + + //Deals with custom emojis to change them in image + if( emojis != null && emojis.size() > 0 ) { + //Looping through accounts which are mentioned + for (final Emojis emoji : emojis) { + String targetedEmoji = ":" + emoji + ":"; + if (fullContent.contains(targetedEmoji)) { + fullContent = fullContent.replace(targetedEmoji, ""); + } + + } + } if( useHTML) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) spannableString = new SpannableString(Html.fromHtml(fullContent, Html.FROM_HTML_MODE_LEGACY)); @@ -1210,6 +1224,7 @@ public class Helper { } } + Matcher matcher = hashtagPattern.matcher(spannableString); while (matcher.find()){ int matchStart = matcher.start(1);