diff options
author | Thomas <tschneider.ac@gmail.com> | 2022-07-19 14:28:25 +0200 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2022-07-19 14:28:25 +0200 |
commit | cf1a1b3e53040e3ffef67052e85b35b3fda95f70 (patch) | |
tree | 029974da87c53eaa5cd197cfe7bd25547073f0f9 /app/src/main | |
parent | f5bf2ad0b0ce6a8789523da5bd3dd00385f73f4c (diff) |
Fix issue #234 - Reactions in notifications for Pleroma
Diffstat (limited to 'app/src/main')
3 files changed, 24 insertions, 1 deletions
diff --git a/app/src/main/java/app/fedilab/android/client/entities/api/Notification.java b/app/src/main/java/app/fedilab/android/client/entities/api/Notification.java index 6d9072d1c..851c32264 100644 --- a/app/src/main/java/app/fedilab/android/client/entities/api/Notification.java +++ b/app/src/main/java/app/fedilab/android/client/entities/api/Notification.java @@ -29,6 +29,8 @@ public class Notification { public String type; @SerializedName("created_at") public Date created_at; + @SerializedName("emoji") + public String emoji; @SerializedName("account") public Account account; @SerializedName("status") diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java index 194e94b4f..dc354fd58 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java @@ -60,6 +60,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH private final int TYPE_POLL = 5; private final int TYPE_STATUS = 6; private final int NOTIFICATION_FETCH_MORE = 7; + private final int TYPE_REACTION = 8; public FetchMoreCallBack fetchMoreCallBack; private Context context; @@ -96,6 +97,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH return TYPE_POLL; case "status": return TYPE_STATUS; + case "pleroma:emoji_reaction": + return TYPE_REACTION; } return super.getItemViewType(position); } @@ -197,6 +200,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_star_24); } else if (getItemViewType(position) == TYPE_REBLOG) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_repeat_24); + } else if (getItemViewType(position) == TYPE_REACTION) { + holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_insert_emoticon_24); } else if (getItemViewType(position) == TYPE_POLL) { holderStatus.bindingNotification.status.typeOfNotification.setImageResource(R.drawable.ic_baseline_poll_24); } @@ -205,13 +210,19 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH statusManagement(context, statusesVM, searchVM, holderStatus, this, null, notificationList, notification.status, Timeline.TimeLineEnum.NOTIFICATION, false, true); holderStatus.bindingNotification.status.dateShort.setText(Helper.dateDiff(context, notification.created_at)); holderStatus.bindingNotification.containerTransparent.setAlpha(.3f); - if (getItemViewType(position) == TYPE_MENTION || getItemViewType(position) == TYPE_STATUS) { + if (getItemViewType(position) == TYPE_MENTION || getItemViewType(position) == TYPE_STATUS || getItemViewType(position) == TYPE_REACTION) { holderStatus.bindingNotification.status.actionButtons.setVisibility(View.VISIBLE); String title = ""; if (getItemViewType(position) == TYPE_MENTION) { title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_mention)); } else if (getItemViewType(position) == TYPE_STATUS) { title = String.format(Locale.getDefault(), "%s %s", notification.account.display_name, context.getString(R.string.notif_status)); + } else if (getItemViewType(position) == TYPE_REACTION) { + if (notification.emoji == null) { + notification.emoji = ""; + } + title = String.format(Locale.getDefault(), "%s reacted with %s", notification.account.username, notification.emoji); + MastodonHelper.loadPPMastodon(holderStatus.bindingNotification.status.avatar, notification.account); } notification.account.display_name = title; holderStatus.bindingNotification.status.displayName.setText( diff --git a/app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml b/app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml new file mode 100644 index 000000000..51f988778 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:tint="#FFFFFF" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="@android:color/white" + android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM15.5,11c0.83,0 1.5,-0.67 1.5,-1.5S16.33,8 15.5,8 14,8.67 14,9.5s0.67,1.5 1.5,1.5zM8.5,11c0.83,0 1.5,-0.67 1.5,-1.5S9.33,8 8.5,8 7,8.67 7,9.5 7.67,11 8.5,11zM12,17.5c2.33,0 4.31,-1.46 5.11,-3.5L6.89,14c0.8,2.04 2.78,3.5 5.11,3.5z" /> +</vector> |