From 00ebeccb8192cadde8720d83f201d07ce0097061 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 20 Sep 2018 19:31:43 +0000 Subject: [PATCH] Updated seen on resuming unified inbox --- .../java/eu/faircode/email/ActivityView.java | 33 ++----------------- .../eu/faircode/email/FragmentMessages.java | 31 +++++++++++++++++ .../eu/faircode/email/ServiceSynchronize.java | 4 +-- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index b751339f04..01f93cacbe 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -87,8 +87,9 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB private static final int ATTACHMENT_BUFFER_SIZE = 8192; // bytes - static final int REQUEST_VIEW = 1; + static final int REQUEST_SERVICE = 1; static final int REQUEST_UNSEEN = 2; + static final int REQUEST_ERROR = 3; static final int REQUEST_ATTACHMENT = 1; @@ -456,37 +457,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB if ("notification".equals(action)) { intent.setAction(null); setIntent(intent); - newMessages = true; - - Bundle args = new Bundle(); - args.putLong("time", new Date().getTime()); - - new SimpleTask() { - @Override - protected Void onLoad(Context context, Bundle args) { - long time = args.getLong("time"); - - DB db = DB.getInstance(context); - try { - db.beginTransaction(); - - for (EntityAccount account : db.account().getAccounts(true)) - db.account().setAccountSeenUntil(account.id, time); - - db.setTransactionSuccessful(); - } finally { - db.endTransaction(); - } - - return null; - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(ActivityView.this, ex); - } - }.load(this, args); } } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 39a7904bd7..a62b618a38 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -511,6 +511,37 @@ public class FragmentMessages extends FragmentEx { public void onResume() { super.onResume(); grpSupport.setVisibility(Helper.isPro(getContext()) ? View.GONE : View.VISIBLE); + + if (viewType == AdapterMessage.ViewType.UNIFIED) { + Bundle args = new Bundle(); + args.putLong("time", new Date().getTime()); + + new SimpleTask() { + @Override + protected Void onLoad(Context context, Bundle args) { + long time = args.getLong("time"); + + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + for (EntityAccount account : db.account().getAccounts(true)) + db.account().setAccountSeenUntil(account.id, time); + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(getContext(), ex); + } + }.load(this, args); + } } @Override diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 35e5a0a0bf..70ab87b73e 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -315,7 +315,7 @@ public class ServiceSynchronize extends LifecycleService { Intent intent = new Intent(this, ActivityView.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pi = PendingIntent.getActivity( - this, ActivityView.REQUEST_VIEW, intent, PendingIntent.FLAG_UPDATE_CURRENT); + this, ActivityView.REQUEST_SERVICE, intent, PendingIntent.FLAG_UPDATE_CURRENT); // Build notification Notification.Builder builder; @@ -477,7 +477,7 @@ public class ServiceSynchronize extends LifecycleService { Intent intent = new Intent(this, ActivityView.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pi = PendingIntent.getActivity( - this, ActivityView.REQUEST_VIEW, intent, PendingIntent.FLAG_UPDATE_CURRENT); + this, ActivityView.REQUEST_ERROR, intent, PendingIntent.FLAG_UPDATE_CURRENT); // Build notification Notification.Builder builder;