summaryrefslogtreecommitdiffstats
path: root/app/src/main
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2022-07-19 14:28:25 +0200
committerThomas <tschneider.ac@gmail.com>2022-07-19 14:28:25 +0200
commitcf1a1b3e53040e3ffef67052e85b35b3fda95f70 (patch)
tree029974da87c53eaa5cd197cfe7bd25547073f0f9 /app/src/main
parentf5bf2ad0b0ce6a8789523da5bd3dd00385f73f4c (diff)
Fix issue #234 - Reactions in notifications for Pleroma
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/app/fedilab/android/client/entities/api/Notification.java2
-rw-r--r--app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java13
-rw-r--r--app/src/main/res/drawable/ic_baseline_insert_emoticon_24.xml10
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>