diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java index 1461717d3..1dfb62ac0 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java @@ -127,6 +127,12 @@ public class Notification implements Parcelable { else typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_follow)); break; + case "follow_request": + if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0) + typeString = String.format("%s %s", Helper.shortnameToUnicode(notification.getAccount().getDisplay_name(), true), context.getString(R.string.notif_follow_request)); + else + typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_follow_request)); + break; } SpannableString displayNameSpan = new SpannableString(typeString); SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); diff --git a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java index c503fe85d..2dd8a788e 100644 --- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java @@ -307,6 +307,16 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On holder.main_container_trans.setVisibility(View.VISIBLE); holder.status_more.setVisibility(View.GONE); break; + case "follow_request": + holder.status_action_container.setVisibility(View.GONE); + holder.status_date.setVisibility(View.GONE); + if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0) + typeString = String.format("%s %s", Helper.shortnameToUnicode(notification.getAccount().getDisplay_name(), true), context.getString(R.string.notif_follow_request)); + else + typeString = String.format("@%s %s", notification.getAccount().getUsername(), context.getString(R.string.notif_follow_request)); + imgH = ContextCompat.getDrawable(context, R.drawable.ic_follow_notif_header); + holder.main_container_trans.setVisibility(View.GONE); + break; case "follow": holder.status_action_container.setVisibility(View.GONE); holder.status_date.setVisibility(View.GONE); diff --git a/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java b/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java index 674706075..09b710a60 100644 --- a/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java +++ b/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java @@ -224,6 +224,20 @@ public class NotificationsSyncJob extends Job { } } break; + case "follow_request": + notifType = Helper.NotifType.FOLLLOW; + if (notif_follow) { + newFollows++; + if (notificationUrl == null) { + notificationUrl = notification.getAccount().getAvatar(); + if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0) + title = String.format("%s %s", Helper.shortnameToUnicode(notification.getAccount().getDisplay_name(), true), getContext().getString(R.string.notif_follow_request)); + else + title = String.format("@%s %s", notification.getAccount().getAcct(), getContext().getString(R.string.notif_follow_request)); + targeted_account = notification.getAccount().getId(); + } + } + break; case "follow": notifType = Helper.NotifType.FOLLLOW; if (notif_follow) { diff --git a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java index 3479a3c06..556f85178 100644 --- a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java +++ b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java @@ -369,6 +369,18 @@ public class LiveNotificationDelayedService extends Service { canSendBroadCast = false; } break; + case "follow_request": + notifType = Helper.NotifType.FOLLLOW; + if (notif_follow) { + if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0) + message = String.format("%s %s", Helper.shortnameToUnicode(notification.getAccount().getDisplay_name(), true), getString(R.string.notif_follow_request)); + else + message = String.format("@%s %s", notification.getAccount().getAcct(), getString(R.string.notif_follow_request)); + targeted_account = notification.getAccount().getId(); + } else { + canSendBroadCast = false; + } + break; case "follow": notifType = Helper.NotifType.FOLLLOW; if (notif_follow) { diff --git a/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java b/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java index 841f47aff..111369673 100644 --- a/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java +++ b/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java @@ -414,6 +414,18 @@ public class LiveNotificationService extends Service implements NetworkStateRece canSendBroadCast = false; } break; + case "follow_request": + notifType = Helper.NotifType.FOLLLOW; + if (notif_follow) { + if (notification.getAccount().getDisplay_name() != null && notification.getAccount().getDisplay_name().length() > 0) + message = String.format("%s %s", Helper.shortnameToUnicode(notification.getAccount().getDisplay_name(), true), getString(R.string.notif_follow_request)); + else + message = String.format("@%s %s", notification.getAccount().getAcct(), getString(R.string.notif_follow_request)); + targeted_account = notification.getAccount().getId(); + } else { + canSendBroadCast = false; + } + break; case "follow": notifType = Helper.NotifType.FOLLLOW; if (notif_follow) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7a410e605..bf357578c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -236,6 +236,7 @@ boosted your status favourited your status followed you + asked to follow you and another notification and %d other notifications