From 486a1d451bd61475ec7474b94d46f20202efc187 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 10 Jan 2024 15:56:30 +0100 Subject: [PATCH] Attempt fixing blank notifications --- .../HabiticaLocalNotification.kt | 4 ++++ .../notifications/PushNotificationManager.kt | 24 +++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt index 91cb2c279..74ec4507d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaLocalNotification.kt @@ -50,6 +50,10 @@ abstract class HabiticaLocalNotification( notificationBuilder = notificationBuilder.setContentText(message) } + if (this.title == null && this.message == null) { + return + } + val notificationId = getNotificationID(data) this.setNotificationActions(notificationId, data) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt index 64a9f7c8d..0cf0426df 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.kt @@ -134,11 +134,6 @@ class PushNotificationManager( fun displayNotification(remoteMessage: RemoteMessage, context: Context, pushNotificationManager: PushNotificationManager? = null) { val remoteMessageIdentifier = remoteMessage.data["identifier"] - val notificationFactory = HabiticaLocalNotificationFactory() - val notification = notificationFactory.build( - remoteMessageIdentifier, - context - ) if (pushNotificationManager?.userIsSubscribedToNotificationType(remoteMessageIdentifier) != false) { if (remoteMessage.data.containsKey("sendAnalytics")) { val additionalData = HashMap() @@ -150,8 +145,23 @@ class PushNotificationManager( additionalData ) } - notification.setExtras(remoteMessage.data) - notification.notifyLocally(remoteMessage.data["title"], remoteMessage.data["body"], remoteMessage.data) + val notification = remoteMessage.notification + if (notification != null) { + val notificationManager = NotificationManagerCompat.from(context) + notificationManager.notify(notification.channelId, notification) + } else { + val notificationFactory = HabiticaLocalNotificationFactory() + val localNotification = notificationFactory.build( + remoteMessageIdentifier, + context + ) + localNotification.setExtras(remoteMessage.data) + localNotification.notifyLocally( + remoteMessage.data["title"], + remoteMessage.data["body"], + remoteMessage.data + ) + } } } }