Fix emoji in notifications

This commit is contained in:
stom79 2018-09-08 15:34:25 +02:00
parent 45aea3f104
commit a148454fed
4 changed files with 20 additions and 11 deletions

View File

@ -1026,7 +1026,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
@Override @Override
public void onRetrieveEmojiAccount(Account account) { public void onRetrieveEmojiAccount(Account account) {
account_note.setText(account.getNoteSpan(), TextView.BufferType.SPANNABLE); account_note.setText(account.getNoteSpan(), TextView.BufferType.SPANNABLE);
account_dn.setText(account.getdisplayNameSpanSpan(), TextView.BufferType.SPANNABLE);; account_dn.setText(account.getdisplayNameSpan(), TextView.BufferType.SPANNABLE);;
if ( account.getFieldsSpan() != null && account.getFieldsSpan().size() > 0){ if ( account.getFieldsSpan() != null && account.getFieldsSpan().size() > 0){
HashMap<String, SpannableString> fieldsSpan = account.getFieldsSpan(); HashMap<String, SpannableString> fieldsSpan = account.getFieldsSpan();
Iterator it = fieldsSpan.entrySet().iterator(); Iterator it = fieldsSpan.entrySet().iterator();

View File

@ -30,6 +30,7 @@ import android.text.Spanned;
import android.text.TextPaint; import android.text.TextPaint;
import android.text.style.ClickableSpan; import android.text.style.ClickableSpan;
import android.text.style.ImageSpan; import android.text.style.ImageSpan;
import android.util.Log;
import android.view.View; import android.view.View;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
@ -209,11 +210,11 @@ public class Account implements Parcelable {
this.username = username; this.username = username;
} }
public SpannableString getdisplayNameSpanSpan() { public SpannableString getdisplayNameSpan() {
return displayNameSpan; return displayNameSpan;
} }
public void setdisplayNameSpanSpan(SpannableString displayNameSpan) { public void setdisplayNameSpan(SpannableString displayNameSpan) {
this.displayNameSpan = displayNameSpan; this.displayNameSpan = displayNameSpan;
} }
@ -535,8 +536,6 @@ public class Account implements Parcelable {
if( i[0] == (emojis.size())) { if( i[0] == (emojis.size())) {
if( noteSpan != null) if( noteSpan != null)
account.setNoteSpan(noteSpan); account.setNoteSpan(noteSpan);
if( displayNameSpan != null)
account.setdisplayNameSpanSpan(displayNameSpan);
account.setFieldsSpan(fieldsSpan); account.setFieldsSpan(fieldsSpan);
listener.onRetrieveEmojiAccount(account); listener.onRetrieveEmojiAccount(account);
} }

View File

@ -532,7 +532,7 @@ public class Status implements Parcelable{
if( status.getReblog() == null && status.getEmojis() == null) if( status.getReblog() == null && status.getEmojis() == null)
return; return;
final List<Emojis> emojis = status.getReblog() != null ? status.getReblog().getEmojis() : status.getEmojis(); final List<Emojis> emojis = status.getReblog() != null ? status.getReblog().getEmojis() : status.getEmojis();
final List<Emojis> emojisAccounts = status.getAccount().getEmojis(); final List<Emojis> emojisAccounts = status.getReblog() != null ?status.getReblog().getAccount().getEmojis():status.getAccount().getEmojis();
String displayName; String displayName;

View File

@ -34,6 +34,7 @@ import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.text.Html; import android.text.Html;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem; import android.view.MenuItem;
@ -66,6 +67,7 @@ import fr.gouv.etalab.mastodon.asynctasks.PostNotificationsAsyncTask;
import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask; import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask;
import fr.gouv.etalab.mastodon.client.API; import fr.gouv.etalab.mastodon.client.API;
import fr.gouv.etalab.mastodon.client.APIResponse; import fr.gouv.etalab.mastodon.client.APIResponse;
import fr.gouv.etalab.mastodon.client.Entities.Account;
import fr.gouv.etalab.mastodon.client.Entities.Attachment; import fr.gouv.etalab.mastodon.client.Entities.Attachment;
import fr.gouv.etalab.mastodon.client.Entities.Emojis; import fr.gouv.etalab.mastodon.client.Entities.Emojis;
import fr.gouv.etalab.mastodon.client.Entities.Error; import fr.gouv.etalab.mastodon.client.Entities.Error;
@ -73,6 +75,7 @@ import fr.gouv.etalab.mastodon.helper.CrossActions;
import fr.gouv.etalab.mastodon.helper.CustomTextView; import fr.gouv.etalab.mastodon.helper.CustomTextView;
import fr.gouv.etalab.mastodon.interfaces.OnPostActionInterface; import fr.gouv.etalab.mastodon.interfaces.OnPostActionInterface;
import fr.gouv.etalab.mastodon.interfaces.OnPostNotificationsActionInterface; import fr.gouv.etalab.mastodon.interfaces.OnPostNotificationsActionInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveEmojiAccountInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveEmojiInterface; import fr.gouv.etalab.mastodon.interfaces.OnRetrieveEmojiInterface;
import fr.gouv.etalab.mastodon.client.Entities.Notification; import fr.gouv.etalab.mastodon.client.Entities.Notification;
import fr.gouv.etalab.mastodon.client.Entities.Status; import fr.gouv.etalab.mastodon.client.Entities.Status;
@ -89,7 +92,7 @@ import static fr.gouv.etalab.mastodon.helper.Helper.getLiveInstance;
* Adapter for Status * Adapter for Status
*/ */
public class NotificationsListAdapter extends RecyclerView.Adapter implements OnPostActionInterface, OnPostNotificationsActionInterface, OnRetrieveEmojiInterface { public class NotificationsListAdapter extends RecyclerView.Adapter implements OnPostActionInterface, OnPostNotificationsActionInterface, OnRetrieveEmojiInterface, OnRetrieveEmojiAccountInterface {
private Context context; private Context context;
private List<Notification> notifications; private List<Notification> notifications;
@ -97,7 +100,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
private NotificationsListAdapter notificationsListAdapter; private NotificationsListAdapter notificationsListAdapter;
private int behaviorWithAttachments; private int behaviorWithAttachments;
private boolean isOnWifi; private boolean isOnWifi;
private NotificationsListAdapter.ViewHolder holder;
public NotificationsListAdapter(Context context, boolean isOnWifi, int behaviorWithAttachments, List<Notification> notifications){ public NotificationsListAdapter(Context context, boolean isOnWifi, int behaviorWithAttachments, List<Notification> notifications){
this.context = context; this.context = context;
@ -119,7 +122,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
@Override @Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) { public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
final NotificationsListAdapter.ViewHolder holder = (NotificationsListAdapter.ViewHolder) viewHolder; holder = (NotificationsListAdapter.ViewHolder) viewHolder;
final Notification notification = notifications.get(position); final Notification notification = notifications.get(position);
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
@ -221,8 +224,11 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
changeDrawableColor(context, R.drawable.ic_follow_notif_header,R.color.mastodonC4); changeDrawableColor(context, R.drawable.ic_follow_notif_header,R.color.mastodonC4);
} }
notification.getAccount().makeEmojisAccount(context, NotificationsListAdapter.this);
holder.notification_type.setText(typeString); if( notification.getAccount().getdisplayNameSpan() == null)
holder.notification_type.setText(typeString);
else
holder.notification_type.setText(notification.getAccount().getdisplayNameSpan(), TextView.BufferType.SPANNABLE);
if( imgH != null) { if( imgH != null) {
holder.notification_type.setCompoundDrawablePadding((int)Helper.convertDpToPixel(5, context)); holder.notification_type.setCompoundDrawablePadding((int)Helper.convertDpToPixel(5, context));
imgH.setBounds(0, 0, (int) (20 * iconSizePercent / 100 * scale + 0.5f), (int) (20 * iconSizePercent / 100 * scale + 0.5f)); imgH.setBounds(0, 0, (int) (20 * iconSizePercent / 100 * scale + 0.5f), (int) (20 * iconSizePercent / 100 * scale + 0.5f));
@ -1052,6 +1058,10 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
viewHolder.status_spoiler.setEnabled(true); viewHolder.status_spoiler.setEnabled(true);
} }
@Override
public void onRetrieveEmojiAccount(Account account) {
}
class ViewHolder extends RecyclerView.ViewHolder { class ViewHolder extends RecyclerView.ViewHolder {
FrameLayout card_status_container; FrameLayout card_status_container;