summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-01-03 13:42:46 +0100
committerThomas <tschneider.ac@gmail.com>2023-01-03 13:42:46 +0100
commit1edd554fdea4e4a7b5b1d0667c0b9cf34baf6447 (patch)
tree19808745eb28572155f68a0e365693f0f2eba82c
parent580024e1b99026791459c7fe976033f2bf91715a (diff)
Fix issue #712 - Empty notifications
-rw-r--r--app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java45
1 files changed, 38 insertions, 7 deletions
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 4ae229416..441537763 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
@@ -47,6 +47,7 @@ import app.fedilab.android.client.entities.api.Notification;
import app.fedilab.android.client.entities.app.Timeline;
import app.fedilab.android.databinding.DrawerFollowBinding;
import app.fedilab.android.databinding.DrawerStatusFilteredBinding;
+import app.fedilab.android.databinding.DrawerStatusFilteredHideBinding;
import app.fedilab.android.databinding.DrawerStatusNotificationBinding;
import app.fedilab.android.databinding.NotificationsRelatedAccountsBinding;
import app.fedilab.android.helper.Helper;
@@ -70,6 +71,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
private final int TYPE_FILERED = 10;
private final int TYPE_ADMIN_SIGNUP = 11;
private final int TYPE_ADMIN_REPORT = 12;
+ private final int TYPE_HIDDEN = 13;
public FetchMoreCallBack fetchMoreCallBack;
private Context context;
private RecyclerView mRecyclerView;
@@ -144,17 +146,41 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
case "follow_request":
return TYPE_FOLLOW_REQUEST;
case "mention":
- return TYPE_MENTION;
+ if (notificationList.get(position).status != null) {
+ return TYPE_MENTION;
+ } else {
+ return TYPE_HIDDEN;
+ }
case "reblog":
- return TYPE_REBLOG;
+ if (notificationList.get(position).status != null) {
+ return TYPE_REBLOG;
+ } else {
+ return TYPE_HIDDEN;
+ }
case "update":
- return TYPE_UPDATE;
+ if (notificationList.get(position).status != null) {
+ return TYPE_UPDATE;
+ } else {
+ return TYPE_HIDDEN;
+ }
case "favourite":
- return TYPE_FAVOURITE;
+ if (notificationList.get(position).status != null) {
+ return TYPE_FAVOURITE;
+ } else {
+ return TYPE_HIDDEN;
+ }
case "poll":
- return TYPE_POLL;
+ if (notificationList.get(position).status != null) {
+ return TYPE_POLL;
+ } else {
+ return TYPE_HIDDEN;
+ }
case "status":
- return TYPE_STATUS;
+ if (notificationList.get(position).status != null) {
+ return TYPE_STATUS;
+ } else {
+ return TYPE_HIDDEN;
+ }
case "admin.sign_up":
return TYPE_ADMIN_SIGNUP;
case "admin.report":
@@ -167,7 +193,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
}
@Override
- public void onAttachedToRecyclerView(RecyclerView recyclerView) {
+ public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
mRecyclerView = recyclerView;
@@ -183,6 +209,9 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
} else if (viewType == TYPE_FILERED) {
DrawerStatusFilteredBinding itemBinding = DrawerStatusFilteredBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
return new StatusAdapter.StatusViewHolder(itemBinding);
+ } else if (viewType == TYPE_HIDDEN) {
+ DrawerStatusFilteredHideBinding itemBinding = DrawerStatusFilteredHideBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
+ return new StatusAdapter.StatusViewHolder(itemBinding);
} else {
DrawerStatusNotificationBinding itemBinding = DrawerStatusNotificationBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
return new StatusAdapter.StatusViewHolder(itemBinding);
@@ -284,6 +313,8 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
notification.filteredByApp = null;
notifyItemChanged(position);
});
+ } else if (getItemViewType(position) == TYPE_HIDDEN) {
+
} else {
StatusAdapter.StatusViewHolder holderStatus = (StatusAdapter.StatusViewHolder) viewHolder;
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);