From 0b48b579946448b2de677678be34bb75305f11e8 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Fri, 23 Nov 2018 14:10:16 +0100 Subject: =?UTF-8?q?do=20not=20update=20foreground=20notification=20on=20er?= =?UTF-8?q?ror=20if=20it=20wasn=E2=80=99t=20enabled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messenger/services/NotificationService.java | 23 +++++++++++----------- .../messenger/services/XmppConnectionService.java | 4 ++++ 2 files changed, 15 insertions(+), 12 deletions(-) (limited to 'src/main') diff --git a/src/main/java/de/pixart/messenger/services/NotificationService.java b/src/main/java/de/pixart/messenger/services/NotificationService.java index f93fa7fd4..ca6c8bc42 100644 --- a/src/main/java/de/pixart/messenger/services/NotificationService.java +++ b/src/main/java/de/pixart/messenger/services/NotificationService.java @@ -238,7 +238,7 @@ public class NotificationService { } } - public void pushFromDirectReply(final Message message) { + void pushFromDirectReply(final Message message) { synchronized (notifications) { pushToStack(message); updateNotification(false); @@ -264,8 +264,7 @@ public class NotificationService { private List getBacklogConversations(Account account) { final List conversations = new ArrayList<>(); - for (Iterator> it = mBacklogMessageCounter.entrySet().iterator(); it.hasNext(); ) { - Map.Entry entry = it.next(); + for (Map.Entry entry : mBacklogMessageCounter.entrySet()) { if (entry.getKey().getAccount() == account) { conversations.add(entry.getKey().getUuid()); } @@ -286,7 +285,7 @@ public class NotificationService { return count; } - public void finishBacklog(boolean notify) { + void finishBacklog(boolean notify) { finishBacklog(notify, null); } @@ -385,7 +384,7 @@ public class NotificationService { updateNotification(notify, null, false); } - public void updateNotification(final boolean notify, final List conversations) { + private void updateNotification(final boolean notify, final List conversations) { updateNotification(notify, conversations, false); } @@ -924,7 +923,7 @@ public class NotificationService { return PendingIntent.getActivity(mXmppConnectionService, 0, new Intent(mXmppConnectionService, ConversationsActivity.class), 0); } - public void updateErrorNotification() { + void updateErrorNotification() { if (Config.SUPPRESS_ERROR_NOTIFICATION) { cancel(ERROR_NOTIFICATION_ID); return; @@ -936,7 +935,7 @@ public class NotificationService { errors.add(account); } } - if (Compatibility.keepForegroundService(mXmppConnectionService)) { + if (mXmppConnectionService.foregroundNotificationNeedsUpdatingWhenErrorStateChanges()) { notify(FOREGROUND_NOTIFICATION_ID, createForegroundNotification()); } final Notification.Builder mBuilder = new Notification.Builder(mXmppConnectionService); @@ -979,7 +978,7 @@ public class NotificationService { notify(ERROR_NOTIFICATION_ID, mBuilder.build()); } - public void updateFileAddingNotification(int current, Message message) { + void updateFileAddingNotification(int current, Message message) { Notification.Builder mBuilder = new Notification.Builder(mXmppConnectionService); mBuilder.setContentTitle(mXmppConnectionService.getString(R.string.transcoding_video)); mBuilder.setProgress(100, current, false); @@ -993,11 +992,11 @@ public class NotificationService { notify(FOREGROUND_NOTIFICATION_ID, notification); } - public void dismissForcedForegroundNotification() { + void dismissForcedForegroundNotification() { cancel(FOREGROUND_NOTIFICATION_ID); } - public Notification exportLogsNotification() { + Notification exportLogsNotification() { Notification.Builder mBuilder = new Notification.Builder(mXmppConnectionService); mBuilder.setContentTitle(mXmppConnectionService.getString(R.string.app_name)); mBuilder.setContentText(mXmppConnectionService.getString(R.string.notification_export_logs_title)); @@ -1010,11 +1009,11 @@ public class NotificationService { return mBuilder.build(); } - public void exportLogsServiceNotification(Notification notification) { + void exportLogsServiceNotification(Notification notification) { notify(FOREGROUND_NOTIFICATION_ID, notification); } - public Notification AppUpdateNotification(PendingIntent intent, String version, String filesize) { + Notification AppUpdateNotification(PendingIntent intent, String version, String filesize) { Notification.Builder mBuilder = new Notification.Builder(mXmppConnectionService); mBuilder.setContentTitle(mXmppConnectionService.getString(R.string.app_name)); mBuilder.setContentText(mXmppConnectionService.getString(R.string.notification_export_logs_title)); diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index d3c7279c2..f8140504e 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -1255,6 +1255,10 @@ public class XmppConnectionService extends Service { Log.d(Config.LOGTAG, "ForegroundService: " + (status ? "on" : "off")); } + public boolean foregroundNotificationNeedsUpdatingWhenErrorStateChanges() { + return !mForceForegroundService.get() && Compatibility.keepForegroundService(this) && hasEnabledAccounts(); + } + @Override public void onTaskRemoved(final Intent rootIntent) { super.onTaskRemoved(rootIntent); -- cgit v1.2.3