From 005d03a7c20e6d6646bad5dacb20d15061d9bb5a Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Sat, 26 Nov 2022 13:37:10 -0500 Subject: [PATCH] Fix notificaiton icon color on Android 12/13 --- .../java/io/heckel/ntfy/msg/NotificationService.kt | 4 +++- .../java/io/heckel/ntfy/service/SubscriberService.kt | 9 ++++++--- app/src/main/res/drawable/ic_notification.xml | 10 +++++----- app/src/main/res/drawable/ic_notification_instant.xml | 8 ++++---- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/io/heckel/ntfy/msg/NotificationService.kt b/app/src/main/java/io/heckel/ntfy/msg/NotificationService.kt index a35ff8d..1b45588 100644 --- a/app/src/main/java/io/heckel/ntfy/msg/NotificationService.kt +++ b/app/src/main/java/io/heckel/ntfy/msg/NotificationService.kt @@ -65,10 +65,12 @@ class NotificationService(val context: Context) { val channelId = toChannelId(notification.priority) val builder = NotificationCompat.Builder(context, channelId) .setSmallIcon(R.drawable.ic_notification) - .setColor(ContextCompat.getColor(context, Colors.notificationIcon)) .setContentTitle(title) .setOnlyAlertOnce(true) // Do not vibrate or play sound if already showing (updates!) .setAutoCancel(true) // Cancel when notification is clicked + if (!isDarkThemeOn(context)) { + builder.setColor(ContextCompat.getColor(context, Colors.notificationIcon)) + } setStyleAndText(builder, subscription, notification) // Preview picture or big text style setClickAction(builder, subscription, notification) maybeSetSound(builder, update) diff --git a/app/src/main/java/io/heckel/ntfy/service/SubscriberService.kt b/app/src/main/java/io/heckel/ntfy/service/SubscriberService.kt index 634dfe3..afb88f0 100644 --- a/app/src/main/java/io/heckel/ntfy/service/SubscriberService.kt +++ b/app/src/main/java/io/heckel/ntfy/service/SubscriberService.kt @@ -21,6 +21,7 @@ import io.heckel.ntfy.msg.ApiService import io.heckel.ntfy.msg.NotificationDispatcher import io.heckel.ntfy.ui.Colors import io.heckel.ntfy.ui.MainActivity +import io.heckel.ntfy.util.isDarkThemeOn import io.heckel.ntfy.util.topicUrl import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -289,16 +290,18 @@ class SubscriberService : Service() { val pendingIntent: PendingIntent = Intent(this, MainActivity::class.java).let { notificationIntent -> PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE) } - return NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID) + val builder = NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID) .setSmallIcon(R.drawable.ic_notification_instant) - .setColor(ContextCompat.getColor(this, Colors.notificationIcon)) .setContentTitle(title) .setContentText(text) .setContentIntent(pendingIntent) .setSound(null) .setShowWhen(false) // Don't show date/time .setGroup(NOTIFICATION_GROUP_ID) // Do not group with other notifications - .build() + if (!isDarkThemeOn(this)) { + builder.setColor(ContextCompat.getColor(this, Colors.notificationIcon)) + } + return builder.build() } override fun onBind(intent: Intent): IBinder? { diff --git a/app/src/main/res/drawable/ic_notification.xml b/app/src/main/res/drawable/ic_notification.xml index 23a49ce..d02140a 100644 --- a/app/src/main/res/drawable/ic_notification.xml +++ b/app/src/main/res/drawable/ic_notification.xml @@ -6,26 +6,26 @@ diff --git a/app/src/main/res/drawable/ic_notification_instant.xml b/app/src/main/res/drawable/ic_notification_instant.xml index 36f84fe..94d50e8 100644 --- a/app/src/main/res/drawable/ic_notification_instant.xml +++ b/app/src/main/res/drawable/ic_notification_instant.xml @@ -6,21 +6,21 @@