diff --git a/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java b/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java index c6c549020c..283c7558c7 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java +++ b/mastodon/src/main/java/org/joinmastodon/android/PushNotificationReceiver.java @@ -148,9 +148,9 @@ public void onError(ErrorResponse error){ } } - public void notifyUnifiedPush(Context context, String accountID, org.joinmastodon.android.model.Notification notification) { + public void notifyUnifiedPush(Context context, AccountSession account, org.joinmastodon.android.model.Notification notification) { // push notifications are only created from the official push notification, so we create a fake from by transforming the notification - PushNotificationReceiver.this.notify(context, PushNotification.fromNotification(context, notification), accountID, notification); + PushNotificationReceiver.this.notify(context, PushNotification.fromNotification(context, account, notification), account.getID(), notification); } private void notify(Context context, PushNotification pn, String accountID, org.joinmastodon.android.model.Notification notification){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java b/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java index 2fc060c0f0..4760fd1112 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java +++ b/mastodon/src/main/java/org/joinmastodon/android/UnifiedPushNotificationReceiver.java @@ -72,7 +72,7 @@ public void onSuccess(PaginatedResponse> result){ result.items .stream() .findFirst() - .ifPresent(value->MastodonAPIController.runInBackground(()->new PushNotificationReceiver().notifyUnifiedPush(context, instance, value))); + .ifPresent(value->MastodonAPIController.runInBackground(()->new PushNotificationReceiver().notifyUnifiedPush(context, account, value))); } @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/model/PushNotification.java b/mastodon/src/main/java/org/joinmastodon/android/model/PushNotification.java index 1e7ce594e3..e483d16523 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/model/PushNotification.java +++ b/mastodon/src/main/java/org/joinmastodon/android/model/PushNotification.java @@ -6,6 +6,7 @@ import org.joinmastodon.android.R; import org.joinmastodon.android.api.RequiredField; +import org.joinmastodon.android.api.session.AccountSession; import org.joinmastodon.android.ui.utils.UiUtils; import androidx.annotation.StringRes; @@ -23,7 +24,7 @@ public class PushNotification extends BaseModel{ @RequiredField public String body; - public static PushNotification fromNotification(Context context, Notification notification){ + public static PushNotification fromNotification(Context context, AccountSession account, Notification notification){ PushNotification pushNotification = new PushNotification(); pushNotification.notificationType = switch(notification.type) { case FOLLOW -> PushNotification.Type.FOLLOW; @@ -52,8 +53,12 @@ public static PushNotification fromNotification(Context context, Notification no }); pushNotification.title = UiUtils.generateFormattedString(notificationTitle, notification.account.displayName).toString(); - pushNotification.icon = notification.status.account.avatarStatic; - pushNotification.body = notification.status.getStrippedText(); + if (notification.status != null) { + pushNotification.icon = notification.status.account.avatarStatic; + pushNotification.body = notification.status.getStrippedText(); + } else { + pushNotification.icon = account.getDefaultAvatarUrl(); + } return pushNotification; }