From 37e0c9dbc4744dbac804a8dc1ee379ca63a9c1fc Mon Sep 17 00:00:00 2001 From: stom79 Date: Thu, 15 Nov 2018 19:19:24 +0100 Subject: [PATCH] Some tries --- .../gouv/etalab/mastodon/client/Entities/Status.java | 12 +++++------- .../mastodon/drawers/NotificationsListAdapter.java | 2 ++ .../etalab/mastodon/drawers/StatusListAdapter.java | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java index 2da2a9fb2..b1f8ad805 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java @@ -36,7 +36,6 @@ import android.text.TextPaint; import android.text.style.ClickableSpan; import android.text.style.ImageSpan; import android.text.style.URLSpan; -import android.util.Log; import android.view.View; import com.bumptech.glide.Glide; @@ -513,11 +512,10 @@ public class Status implements Parcelable{ spannableStringTranslated = new SpannableString(Html.fromHtml(status.getContentTranslated())); status.setContentSpanTranslated(treatment(context, spannableStringTranslated, status)); - makeEmojisTranslation(context, listener, status); } - private static void makeEmojis(final Context context, final OnRetrieveEmojiInterface listener, Status status){ + public static void makeEmojis(final Context context, final OnRetrieveEmojiInterface listener, Status status){ if( ((Activity)context).isFinishing() ) return; @@ -607,6 +605,7 @@ public class Status implements Parcelable{ if( i[0] == (emojis.size())) { status.setContentSpan(contentSpan); status.setContentSpanCW(contentSpanCW); + status.setEmojiFound(true); listener.onRetrieveEmoji(status, false); } } @@ -617,7 +616,7 @@ public class Status implements Parcelable{ } - private static void makeEmojisTranslation(final Context context, final OnRetrieveEmojiInterface listener, Status status){ + public static void makeEmojisTranslation(final Context context, final OnRetrieveEmojiInterface listener, Status status){ if( ((Activity)context).isFinishing() ) return; @@ -677,6 +676,7 @@ public class Status implements Parcelable{ if( i[0] == (emojis.size())) { if( finalSpannableStringTranslated != null) status.setContentSpanTranslated(finalSpannableStringTranslated); + status.setEmojiTranslateFound(true); listener.onRetrieveEmoji(status, true); } } @@ -695,8 +695,6 @@ public class Status implements Parcelable{ spannableString.removeSpan(span); List mentions = status.getReblog() != null ? status.getReblog().getMentions() : status.getMentions(); - Log.v(Helper.TAG,"spannableString: " + spannableString); - SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK); @@ -786,7 +784,7 @@ public class Status implements Parcelable{ else //noinspection deprecation spannableStringT = new SpannableString(Html.fromHtml(spannableString.toString().replaceAll("^

","").replaceAll("

","

").replaceAll("

",""))); - Log.v(Helper.TAG,"spannableStringT: " + spannableStringT); + URLSpan[] spans = spannableStringT.getSpans(0, spannableStringT.length(), URLSpan.class); for (URLSpan span : spans) { spannableStringT.removeSpan(span); 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 381ba98d2..62096ace4 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 @@ -310,6 +310,8 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On holder.status_reply.setText(""); if( !status.isClickable()) Status.transform(context, status, NotificationsListAdapter.this); + if( !status.isEmojiFound()) + Status.makeEmojis(context, NotificationsListAdapter.this, status); holder.notification_status_content.setText(status.getContentSpan(), TextView.BufferType.SPANNABLE); holder.status_spoiler.setText(status.getContentSpanCW(), TextView.BufferType.SPANNABLE); holder.status_spoiler.setMovementMethod(LinkMovementMethod.getInstance()); 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 3c31801b7..812e6fcf3 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 @@ -639,7 +639,8 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.left_buttons.setLayoutParams(paramsB); if( !status.isClickable()) Status.transform(context, status, this); - + if( !status.isEmojiFound()) + Status.makeEmojis(context, this, status); holder.status_content.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { @@ -2261,7 +2262,8 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct status.setTranslated(true); status.setTranslationShown(true); status.setContentTranslated(translate.getTranslatedContent()); - status.transformTranslation(context, StatusListAdapter.this, status); + Status.transformTranslation(context, StatusListAdapter.this, status); + Status.makeEmojisTranslation(context, StatusListAdapter.this, status); notifyStatusChanged(status); }else { Toast.makeText(context, R.string.toast_error_translate, Toast.LENGTH_LONG).show();