From 18db93b632a6142d1177502dad6856150a949327 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 16 Oct 2018 10:26:35 +0000 Subject: [PATCH] Fixed redundant notifications --- .../eu/faircode/email/ServiceSynchronize.java | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 8541d970..e9ae36f7 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -153,36 +153,9 @@ public class ServiceSynchronize extends LifecycleService { // Removed because of Android VPN service // builder.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); cm.registerNetworkCallback(builder.build(), serviceManager); - } - - @Override - public void onDestroy() { - Log.i(Helper.TAG, "Service destroy"); - - ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); - cm.unregisterNetworkCallback(serviceManager); - - serviceManager.onLost(null); - - stopForeground(true); - - NotificationManager nm = getSystemService(NotificationManager.class); - nm.cancel(NOTIFICATION_SYNCHRONIZE); - - super.onDestroy(); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - String action = (intent == null ? null : intent.getAction()); - Log.i(Helper.TAG, "Service command intent=" + intent + " action=" + action); - super.onStartCommand(intent, flags, startId); - - startForeground(NOTIFICATION_SYNCHRONIZE, getNotificationService(0, 0, 0).build()); DB db = DB.getInstance(this); - db.account().liveStats().removeObservers(this); db.account().liveStats().observe(this, new Observer() { @Override public void onChanged(@Nullable TupleAccountStats stats) { @@ -192,7 +165,6 @@ public class ServiceSynchronize extends LifecycleService { } }); - db.message().liveUnseenUnified().removeObservers(this); db.message().liveUnseenUnified().observe(this, new Observer>() { private List notifying = new ArrayList<>(); @@ -230,6 +202,33 @@ public class ServiceSynchronize extends LifecycleService { notifying = all; } }); + } + + @Override + public void onDestroy() { + Log.i(Helper.TAG, "Service destroy"); + + ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + cm.unregisterNetworkCallback(serviceManager); + + serviceManager.onLost(null); + + stopForeground(true); + + NotificationManager nm = getSystemService(NotificationManager.class); + nm.cancel(NOTIFICATION_SYNCHRONIZE); + + super.onDestroy(); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + String action = (intent == null ? null : intent.getAction()); + Log.i(Helper.TAG, "Service command intent=" + intent + " action=" + action); + + startForeground(NOTIFICATION_SYNCHRONIZE, getNotificationService(0, 0, 0).build()); + + super.onStartCommand(intent, flags, startId); if (action != null) { if ("start".equals(action))