diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-10-22 00:25:28 +0200 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-10-22 00:25:28 +0200 |
commit | 45bdadd915ed0e0135de16876f9842b3401f1ac4 (patch) | |
tree | 2bad072536a5aa90763bba2ce2d44be7b45f3522 /src | |
parent | 9f9c3d3c2f449c8200309bf34ee40c75c9e02c16 (diff) |
better aproach on thread saftey
Diffstat (limited to 'src')
-rw-r--r-- | src/eu/siacs/conversations/services/NotificationService.java | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/eu/siacs/conversations/services/NotificationService.java b/src/eu/siacs/conversations/services/NotificationService.java index 7a116ed4..00765deb 100644 --- a/src/eu/siacs/conversations/services/NotificationService.java +++ b/src/eu/siacs/conversations/services/NotificationService.java @@ -1,9 +1,7 @@ package eu.siacs.conversations.services; import java.util.ArrayList; -import java.util.Iterator; import java.util.LinkedHashMap; -import java.util.Map.Entry; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -58,24 +56,25 @@ public class NotificationService { mList.add(message); notifications.put(conversationUuid, mList); } + Account account = message.getConversation().getAccount(); + updateNotification((!(this.mIsInForeground && this.mOpenConversation == null) || !isScreenOn) + && !account.inGracePeriod()); } - Account account = message.getConversation().getAccount(); - updateNotification((!(this.mIsInForeground && this.mOpenConversation == null) || !isScreenOn) - && !account.inGracePeriod()); + } public void clear() { synchronized (notifications) { notifications.clear(); + updateNotification(false); } - updateNotification(false); } public void clear(Conversation conversation) { synchronized (notifications) { notifications.remove(conversation.getUuid()); + updateNotification(false); } - updateNotification(false); } private void updateNotification(boolean notify) { @@ -132,11 +131,7 @@ public class NotificationService { .getString(R.string.unread_conversations)); StringBuilder names = new StringBuilder(); Conversation conversation = null; - Iterator<Entry<String, ArrayList<Message>>> it = notifications - .entrySet().iterator(); - while (it.hasNext()) { - Entry<String, ArrayList<Message>> entry = it.next(); - ArrayList<Message> messages = entry.getValue(); + for (ArrayList<Message> messages : notifications.values()) { if (messages.size() > 0) { conversation = messages.get(0).getConversation(); String name = conversation.getName(); @@ -148,7 +143,6 @@ public class NotificationService { names.append(name); names.append(", "); } - it.remove(); } if (names.length() >= 2) { names.delete(names.length() - 2, names.length()); |