From 1e992c6741fc820896ee3ca7663d2e2f5e30f3c9 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 6 Nov 2018 17:00:07 +0000 Subject: [PATCH] Notification account color --- app/src/main/java/eu/faircode/email/DaoMessage.java | 11 +++++++++-- .../java/eu/faircode/email/ServiceSynchronize.java | 11 +++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 885992d148..eff599650d 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -177,7 +177,14 @@ public interface DaoMessage { " WHERE message.id = :id") LiveData liveMessage(long id); - @Query("SELECT message.* FROM message" + + @Query("SELECT message.*" + + ", account.name AS accountName, account.color AS accountColor" + + ", folder.name AS folderName, folder.display AS folderDisplay, folder.type AS folderType" + + ", 1 AS count" + + ", 1 AS unseen" + + ", 0 AS unflagged" + + ", 0 AS attachments" + + " FROM message" + " JOIN account ON account.id = message.account" + " JOIN folder ON folder.id = message.folder" + " WHERE account.`synchronize`" + @@ -188,7 +195,7 @@ public interface DaoMessage { " AND NOT message.ui_found" + " AND NOT message.ui_ignored" + " ORDER BY message.received") - LiveData> liveUnseenUnified(); + LiveData> liveUnseenUnified(); @Query("SELECT COUNT(message.id) FROM message" + " JOIN account ON account.id = message.account" + diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index c1a4fd23e3..6f6b8fc994 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -169,11 +169,11 @@ public class ServiceSynchronize extends LifecycleService { } }); - db.message().liveUnseenUnified().observe(this, new Observer>() { + db.message().liveUnseenUnified().observe(this, new Observer>() { private List notifying = new ArrayList<>(); @Override - public void onChanged(List messages) { + public void onChanged(List messages) { NotificationManager nm = getSystemService(NotificationManager.class); List notifications = getNotificationUnseen(messages); @@ -353,7 +353,7 @@ public class ServiceSynchronize extends LifecycleService { return builder; } - private List getNotificationUnseen(List messages) { + private List getNotificationUnseen(List messages) { // https://developer.android.com/training/notify-user/group List notifications = new ArrayList<>(); @@ -443,7 +443,7 @@ public class ServiceSynchronize extends LifecycleService { Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); - for (EntityMessage message : messages) { + for (TupleMessageEx message : messages) { Bundle args = new Bundle(); args.putLong("id", message.id); @@ -538,6 +538,9 @@ public class ServiceSynchronize extends LifecycleService { mbuilder.addPerson(message.avatar); } + if (message.accountColor != null) + mbuilder.setColor(message.accountColor); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) mbuilder.setGroupAlertBehavior(Notification.GROUP_ALERT_CHILDREN);