From fdd304add13357aceb4b8adad3e684d41ead8a8e Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 27 Feb 2019 18:52:38 +0000 Subject: [PATCH] Notify new message in message view --- app/src/main/java/eu/faircode/email/ActivityView.java | 11 ++++++++++- app/src/main/java/eu/faircode/email/DaoMessage.java | 9 ++------- .../java/eu/faircode/email/ServiceSynchronize.java | 2 +- app/src/main/java/eu/faircode/email/ServiceUI.java | 3 --- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 424a3ca711..f9b0615a38 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -262,7 +262,9 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB getSupportFragmentManager().addOnBackStackChangedListener(this); - DB.getInstance(this).account().liveAccountsEx().observe(this, new Observer>() { + DB db = DB.getInstance(this); + + db.account().liveAccountsEx().observe(this, new Observer>() { private List last = new ArrayList<>(); @Override @@ -351,6 +353,13 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB } }); + db.message().liveUnseenNotify().observe(this, new Observer>() { + @Override + public void onChanged(List messages) { + Core.notify(ActivityView.this, messages); + } + }); + if (getSupportFragmentManager().getFragments().size() == 0 && !getIntent().hasExtra(Intent.EXTRA_PROCESS_TEXT)) init(); diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 343f04cb1c..00036a4070 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -207,7 +207,7 @@ public interface DaoMessage { " WHERE message.id = :id") LiveData liveMessage(long id); - String notify = "SELECT message.*" + + @Query("SELECT message.*" + ", account.name AS accountName, IFNULL(identity.color, account.color) AS accountColor, account.notify AS accountNotify" + ", folder.name AS folderName, folder.display AS folderDisplay, folder.type AS folderType" + ", identity.name AS identityName, identity.email AS identityEmail, identity.synchronize AS identitySynchronize" + @@ -227,14 +227,9 @@ public interface DaoMessage { " AND NOT message.ui_seen" + " AND NOT message.ui_hide" + " AND NOT message.ui_ignored" + - " ORDER BY message.received"; - - @Query(notify) + " ORDER BY message.received") LiveData> liveUnseenNotify(); - @Query(notify) - List getUnseenNotify(); - @Query("SELECT COUNT(message.id) FROM message" + " JOIN account ON account.id = message.account" + " JOIN folder ON folder.id = message.folder" + diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index f9a462be42..43d437e00d 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -126,7 +126,7 @@ public class ServiceSynchronize extends LifecycleService { db.message().liveUnseenNotify().observe(this, new Observer>() { @Override - public void onChanged(final List messages) { + public void onChanged(List messages) { Core.notify(ServiceSynchronize.this, messages); } }); diff --git a/app/src/main/java/eu/faircode/email/ServiceUI.java b/app/src/main/java/eu/faircode/email/ServiceUI.java index f0801ba400..e8e758f564 100644 --- a/app/src/main/java/eu/faircode/email/ServiceUI.java +++ b/app/src/main/java/eu/faircode/email/ServiceUI.java @@ -281,9 +281,6 @@ public class ServiceUI extends IntentService { // Synchronize messages Core.onSynchronizeMessages(this, account, folder, (IMAPFolder) ifolder, folder.getSyncArgs(), new Core.State()); - // Notify new messages - Core.notify(this, db.message().getUnseenNotify()); - } catch (Throwable ex) { Log.w(ex); Core.reportError(this, account, folder, ex);