|
|
|
@ -123,9 +123,11 @@ public class NotificationsAdapter extends RecyclerView.Adapter { |
|
|
|
|
StatusNotificationViewHolder holder = (StatusNotificationViewHolder) viewHolder; |
|
|
|
|
holder.setMessage(type, concreteNotificaton.getAccount().getDisplayName(), |
|
|
|
|
concreteNotificaton.getStatusViewData()); |
|
|
|
|
holder.setupButtons(notificationActionListener, concreteNotificaton.getAccount().id); |
|
|
|
|
holder.setupButtons(notificationActionListener, |
|
|
|
|
concreteNotificaton.getAccount().id, |
|
|
|
|
concreteNotificaton.getId()); |
|
|
|
|
holder.setAvatars(concreteNotificaton.getStatusViewData().getAvatar(), |
|
|
|
|
concreteNotificaton.getAccount().avatar); |
|
|
|
|
concreteNotificaton.getId()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case FOLLOW: { |
|
|
|
@ -211,6 +213,8 @@ public class NotificationsAdapter extends RecyclerView.Adapter { |
|
|
|
|
|
|
|
|
|
public interface NotificationActionListener { |
|
|
|
|
void onViewAccount(String id); |
|
|
|
|
|
|
|
|
|
void onViewStatusForNotificationId(String notificationId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static class FollowViewHolder extends RecyclerView.ViewHolder { |
|
|
|
@ -258,13 +262,19 @@ public class NotificationsAdapter extends RecyclerView.Adapter { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static class StatusNotificationViewHolder extends RecyclerView.ViewHolder { |
|
|
|
|
private TextView message; |
|
|
|
|
private ImageView icon; |
|
|
|
|
private TextView statusContent; |
|
|
|
|
private ViewGroup container; |
|
|
|
|
private ImageView statusAvatar; |
|
|
|
|
private ImageView notificationAvatar; |
|
|
|
|
private static class StatusNotificationViewHolder extends RecyclerView.ViewHolder |
|
|
|
|
implements View.OnClickListener { |
|
|
|
|
private final TextView message; |
|
|
|
|
private final ImageView icon; |
|
|
|
|
private final TextView statusContent; |
|
|
|
|
private final ViewGroup container; |
|
|
|
|
private final ImageView statusAvatar; |
|
|
|
|
private final ImageView notificationAvatar; |
|
|
|
|
private final ViewGroup topBar; |
|
|
|
|
|
|
|
|
|
private String accountId; |
|
|
|
|
private String notificationId; |
|
|
|
|
private NotificationActionListener listener; |
|
|
|
|
|
|
|
|
|
StatusNotificationViewHolder(View itemView) { |
|
|
|
|
super(itemView); |
|
|
|
@ -274,9 +284,14 @@ public class NotificationsAdapter extends RecyclerView.Adapter { |
|
|
|
|
container = itemView.findViewById(R.id.notification_container); |
|
|
|
|
statusAvatar = itemView.findViewById(R.id.notification_status_avatar); |
|
|
|
|
notificationAvatar = itemView.findViewById(R.id.notification_notification_avatar); |
|
|
|
|
topBar = itemView.findViewById(R.id.notification_top_bar); |
|
|
|
|
|
|
|
|
|
int darkerFilter = Color.rgb(123, 123, 123); |
|
|
|
|
statusAvatar.setColorFilter(darkerFilter, PorterDuff.Mode.MULTIPLY); |
|
|
|
|
notificationAvatar.setColorFilter(darkerFilter, PorterDuff.Mode.MULTIPLY); |
|
|
|
|
|
|
|
|
|
container.setOnClickListener(this); |
|
|
|
|
topBar.setOnClickListener(this); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void setMessage(Notification.Type type, String displayName, |
|
|
|
@ -308,13 +323,11 @@ public class NotificationsAdapter extends RecyclerView.Adapter { |
|
|
|
|
statusContent.setText(status.getContent()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void setupButtons(final NotificationActionListener listener, final String accountId) { |
|
|
|
|
container.setOnClickListener(new View.OnClickListener() { |
|
|
|
|
@Override |
|
|
|
|
public void onClick(View v) { |
|
|
|
|
listener.onViewAccount(accountId); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
void setupButtons(final NotificationActionListener listener, final String accountId, |
|
|
|
|
final String notificationId) { |
|
|
|
|
this.listener = listener; |
|
|
|
|
this.accountId = accountId; |
|
|
|
|
this.notificationId = notificationId; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void setAvatars(@Nullable String statusAvatarUrl, @Nullable String notificationAvatarUrl) { |
|
|
|
@ -341,5 +354,18 @@ public class NotificationsAdapter extends RecyclerView.Adapter { |
|
|
|
|
.into(notificationAvatar); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onClick(View v) { |
|
|
|
|
if (listener == null) return; |
|
|
|
|
switch (v.getId()) { |
|
|
|
|
case R.id.notification_container: |
|
|
|
|
listener.onViewStatusForNotificationId(notificationId); |
|
|
|
|
break; |
|
|
|
|
case R.id.notification_top_bar: |
|
|
|
|
listener.onViewAccount(accountId); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|