Group channels by account

This commit is contained in:
M66B 2019-05-28 16:55:03 +02:00
parent c596293b61
commit e50abcbcea
3 changed files with 19 additions and 3 deletions

View File

@ -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"));

View File

@ -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);
}

View File

@ -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);
}