Fixed resetting notification count

pull/156/head
M66B 6 years ago
parent 8324b893a4
commit 1b409ad7ab

@ -112,6 +112,8 @@ import me.leolin.shortcutbadger.ShortcutBadger;
import static android.os.Process.THREAD_PRIORITY_BACKGROUND; import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
class Core { class Core {
private static int lastUnseen = -1;
private static final int MAX_NOTIFICATION_COUNT = 10; // per group private static final int MAX_NOTIFICATION_COUNT = 10; // per group
private static final int SYNC_BATCH_SIZE = 20; private static final int SYNC_BATCH_SIZE = 20;
private static final int DOWNLOAD_BATCH_SIZE = 20; private static final int DOWNLOAD_BATCH_SIZE = 20;
@ -1706,6 +1708,16 @@ class Core {
db.message().setMessageSize(message.id, size); db.message().setMessageSize(message.id, size);
} }
static void notifyReset(Context context) {
lastUnseen = -1;
Widget.update(context, -1);
try {
ShortcutBadger.removeCount(context);
} catch (Throwable ex) {
Log.e(ex);
}
}
static void notifyMessages(Context context, Map<String, List<Long>> groupNotifying, List<TupleMessageEx> messages) { static void notifyMessages(Context context, Map<String, List<Long>> groupNotifying, List<TupleMessageEx> messages) {
Log.i("Notify messages=" + messages.size()); Log.i("Notify messages=" + messages.size());
@ -1715,10 +1727,8 @@ class Core {
boolean badge = prefs.getBoolean("badge", true); boolean badge = prefs.getBoolean("badge", true);
// Update widget/badge count // Update widget/badge count
int lastUnseen = 0; if (lastUnseen < 0 || messages.size() != lastUnseen) {
for (String group : groupNotifying.keySet()) lastUnseen = messages.size();
lastUnseen += groupNotifying.get(group).size();
if (messages.size() != lastUnseen) {
Widget.update(context, messages.size()); Widget.update(context, messages.size());
try { try {
ShortcutBadger.applyCount(context, badge ? messages.size() : 0); ShortcutBadger.applyCount(context, badge ? messages.size() : 0);

@ -84,8 +84,6 @@ import javax.mail.event.MessageCountEvent;
import javax.mail.event.StoreEvent; import javax.mail.event.StoreEvent;
import javax.mail.event.StoreListener; import javax.mail.event.StoreListener;
import me.leolin.shortcutbadger.ShortcutBadger;
import static android.os.Process.THREAD_PRIORITY_BACKGROUND; import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
public class ServiceSynchronize extends LifecycleService { public class ServiceSynchronize extends LifecycleService {
@ -168,12 +166,7 @@ public class ServiceSynchronize extends LifecycleService {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
cm.unregisterNetworkCallback(networkCallback); cm.unregisterNetworkCallback(networkCallback);
Widget.update(this, -1); Core.notifyReset(this);
try {
ShortcutBadger.applyCount(this, 0);
} catch (Throwable ex) {
Log.e(ex);
}
WorkerCleanup.cancel(this); WorkerCleanup.cancel(this);

Loading…
Cancel
Save