better aproach on thread saftey
This commit is contained in:
parent
9f9c3d3c2f
commit
45bdadd915
|
@ -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,25 +56,26 @@ public class NotificationService {
|
|||
mList.add(message);
|
||||
notifications.put(conversationUuid, mList);
|
||||
}
|
||||
}
|
||||
Account account = message.getConversation().getAccount();
|
||||
updateNotification((!(this.mIsInForeground && this.mOpenConversation == null) || !isScreenOn)
|
||||
&& !account.inGracePeriod());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
synchronized (notifications) {
|
||||
notifications.clear();
|
||||
}
|
||||
updateNotification(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void clear(Conversation conversation) {
|
||||
synchronized (notifications) {
|
||||
notifications.remove(conversation.getUuid());
|
||||
}
|
||||
updateNotification(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateNotification(boolean notify) {
|
||||
NotificationManager notificationManager = (NotificationManager) mXmppConnectionService
|
||||
|
@ -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());
|
||||
|
|
Loading…
Reference in a new issue