aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-10-22 00:25:28 +0200
committeriNPUTmice <daniel@gultsch.de>2014-10-22 00:25:28 +0200
commit45bdadd915ed0e0135de16876f9842b3401f1ac4 (patch)
tree2bad072536a5aa90763bba2ce2d44be7b45f3522
parent9f9c3d3c2f449c8200309bf34ee40c75c9e02c16 (diff)
better aproach on thread saftey
-rw-r--r--src/eu/siacs/conversations/services/NotificationService.java20
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());