From e50abcbcead3cd51c2685ba16e9474d0a62f861a Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 28 May 2019 16:55:03 +0200 Subject: [PATCH] Group channels by account --- app/src/main/java/eu/faircode/email/ApplicationEx.java | 8 ++++++-- app/src/main/java/eu/faircode/email/EntityAccount.java | 6 ++++++ app/src/main/java/eu/faircode/email/TupleFolderEx.java | 8 +++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java index 622e613550..fcef9a787c 100644 --- a/app/src/main/java/eu/faircode/email/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -382,8 +382,12 @@ public class ApplicationEx extends Application { jchannel.getString("name"), jchannel.getInt("importance")); - if (jchannel.has("group") && !jchannel.isNull("group")) - channel.setGroup(jchannel.getString("group")); + if (jchannel.has("group") && !jchannel.isNull("group")) { + String groupName = jchannel.getString("group"); + NotificationChannelGroup group = new NotificationChannelGroup(groupName, groupName); + nm.createNotificationChannelGroup(group); + channel.setGroup(groupName); + } if (jchannel.has("description") && !jchannel.isNull("description")) channel.setDescription(jchannel.getString("description")); diff --git a/app/src/main/java/eu/faircode/email/EntityAccount.java b/app/src/main/java/eu/faircode/email/EntityAccount.java index 18f4e4482b..1f60958da2 100644 --- a/app/src/main/java/eu/faircode/email/EntityAccount.java +++ b/app/src/main/java/eu/faircode/email/EntityAccount.java @@ -21,6 +21,7 @@ package eu.faircode.email; import android.app.Notification; import android.app.NotificationChannel; +import android.app.NotificationChannelGroup; import android.app.NotificationManager; import android.content.Context; @@ -106,9 +107,14 @@ public class EntityAccount extends EntityOrder implements Serializable { void createNotificationChannel(Context context) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + + NotificationChannelGroup group = new NotificationChannelGroup(name, name); + nm.createNotificationChannelGroup(group); + NotificationChannel channel = new NotificationChannel( getNotificationChannelId(id), name, NotificationManager.IMPORTANCE_HIGH); + channel.setGroup(name); channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE); nm.createNotificationChannel(channel); } diff --git a/app/src/main/java/eu/faircode/email/TupleFolderEx.java b/app/src/main/java/eu/faircode/email/TupleFolderEx.java index 8e79797f29..8b45b927a1 100644 --- a/app/src/main/java/eu/faircode/email/TupleFolderEx.java +++ b/app/src/main/java/eu/faircode/email/TupleFolderEx.java @@ -21,6 +21,7 @@ package eu.faircode.email; import android.app.Notification; import android.app.NotificationChannel; +import android.app.NotificationChannelGroup; import android.app.NotificationManager; import android.content.Context; @@ -68,9 +69,14 @@ public class TupleFolderEx extends EntityFolder implements Serializable { void createNotificationChannel(Context context) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + + NotificationChannelGroup group = new NotificationChannelGroup(accountName, accountName); + nm.createNotificationChannelGroup(group); + NotificationChannel channel = new NotificationChannel( - getNotificationChannelId(id), accountName + "/" + getDisplayName(context), + getNotificationChannelId(id), getDisplayName(context), NotificationManager.IMPORTANCE_HIGH); + channel.setGroup(accountName); channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE); nm.createNotificationChannel(channel); }