fixing more notification f-ups

This commit is contained in:
Daniel Gultsch 2014-04-04 13:01:07 +02:00
parent db4559efdf
commit caf214c212
1 changed files with 16 additions and 5 deletions

View File

@ -187,15 +187,11 @@ public class UIHelper {
if ((currentCon != null) &&(currentCon.getMode() == Conversation.MODE_MULTI)&&(!alwaysNotify)) { if ((currentCon != null) &&(currentCon.getMode() == Conversation.MODE_MULTI)&&(!alwaysNotify)) {
String nick = currentCon.getMucOptions().getNick(); String nick = currentCon.getMucOptions().getNick();
notify = currentCon.getLatestMessage().getBody().contains(nick); notify = currentCon.getLatestMessage().getBody().contains(nick);
/*if (!notify) {
//mNotificationManager.cancel(2342);
return;
}*/
} }
List<Conversation> unread = new ArrayList<Conversation>(); List<Conversation> unread = new ArrayList<Conversation>();
for (Conversation conversation : conversations) { for (Conversation conversation : conversations) {
if (!conversation.isRead()) { if ((!conversation.isRead())&&((wasHighlighted(conversation)||(alwaysNotify)))) {
unread.add(conversation); unread.add(conversation);
} }
} }
@ -289,6 +285,21 @@ public class UIHelper {
} }
} }
private static boolean wasHighlighted(Conversation conversation) {
List<Message> messages = conversation.getMessages();
String nick = conversation.getMucOptions().getNick();
for(int i = messages.size() - 1; i >= 0; --i) {
if (messages.get(i).isRead()) {
break;
} else {
if (messages.get(i).getBody().contains(nick)) {
return true;
}
}
}
return false;
}
public static void prepareContactBadge(final Activity activity, public static void prepareContactBadge(final Activity activity,
QuickContactBadge badge, final Contact contact) { QuickContactBadge badge, final Contact contact) {
if (contact.getSystemAccount() != null) { if (contact.getSystemAccount() != null) {