diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index b7329e3aa6..ee544066f6 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -5536,6 +5536,10 @@ class Core { // Check if notification channel enabled if (message.notifying == 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && pro) { + // Disabling a channel for a sender or folder doesn't disable notifications + // because the (account) summary notification isn't disabled + // So, suppress notifications here + String mChannelId = message.getNotificationChannelId(); if (mChannelId != null && !channelIdDisabled.containsKey(mChannelId)) { NotificationChannel channel = nm.getNotificationChannel(mChannelId); @@ -5550,21 +5554,12 @@ class Core { channel != null && channel.getImportance() == NotificationManager.IMPORTANCE_NONE); } - String aChannelId = EntityAccount.getNotificationChannelId(message.account); - if (!channelIdDisabled.containsKey(aChannelId)) { - NotificationChannel channel = nm.getNotificationChannel(aChannelId); - channelIdDisabled.put(aChannelId, - channel != null && channel.getImportance() == NotificationManager.IMPORTANCE_NONE); - } - - if (Boolean.TRUE.equals(channelIdDisabled.get(aChannelId)) || - Boolean.TRUE.equals(channelIdDisabled.get(fChannelId)) || + if (Boolean.TRUE.equals(channelIdDisabled.get(fChannelId)) || (mChannelId != null && Boolean.TRUE.equals(channelIdDisabled.get(mChannelId)))) { db.message().setMessageUiIgnored(message.id, true); Log.i("Notify disabled=" + message.id + - " " + aChannelId + "=" + channelIdDisabled.get(aChannelId) + - " " + mChannelId + "=" + channelIdDisabled.get(fChannelId) + - " " + aChannelId + "=" + channelIdDisabled.get(mChannelId)); + " " + mChannelId + "=" + channelIdDisabled.get(mChannelId) + + " " + fChannelId + "=" + channelIdDisabled.get(fChannelId)); continue; } }