diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2014-03-08 05:59:31 +0100 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2014-03-08 05:59:31 +0100 |
commit | 9a5a429888409fb4e52432e86f8dca49d4e97cdb (patch) | |
tree | 85ffd05c59b6e7582a39e58c803c6349f8acba37 /src/eu/siacs/conversations/services | |
parent | 02883a7ac43cf5014d0a938e18960d8888795ddb (diff) |
step two towards nicer notifications. mark read if carbon arrives
Diffstat (limited to 'src/eu/siacs/conversations/services')
-rw-r--r-- | src/eu/siacs/conversations/services/XmppConnectionService.java | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index f2fc9c908..6495b4ab8 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -101,33 +101,37 @@ public class XmppConnectionService extends Service { public void onMessagePacketReceived(Account account, MessagePacket packet) { Message message = null; - boolean notify = false; + boolean notify = true; if ((packet.getType() == MessagePacket.TYPE_CHAT)) { String pgpBody = MessageParser.getPgpBody(packet); if (pgpBody != null) { message = MessageParser.parsePgpChat(pgpBody, packet, account, service); - notify = false; + message.markUnread(); } else if (packet.hasChild("body") && (packet.getBody().startsWith("?OTR"))) { message = MessageParser.parseOtrChat(packet, account, service); - notify = true; + message.markUnread(); } else if (packet.hasChild("body")) { message = MessageParser.parsePlainTextChat(packet, account, service); - notify = true; + message.markUnread(); } else if (packet.hasChild("received") || (packet.hasChild("sent"))) { message = MessageParser.parseCarbonMessage(packet, account, service); + message.getConversation().markRead(); + notify = false; } } else if (packet.getType() == MessagePacket.TYPE_GROUPCHAT) { message = MessageParser .parseGroupchat(packet, account, service); if (message != null) { - notify = (message.getStatus() == Message.STATUS_RECIEVED); + if (message.getStatus() == Message.STATUS_RECIEVED) { + message.markUnread(); + } } } else if (packet.getType() == MessagePacket.TYPE_ERROR) { message = MessageParser.parseError(packet, account, service); @@ -149,9 +153,6 @@ public class XmppConnectionService extends Service { Log.d(LOGTAG, "error trying to parse date" + e.getMessage()); } } - if (notify) { - message.markUnread(); - } Conversation conversation = message.getConversation(); conversation.getMessages().add(message); if (packet.getType() != MessagePacket.TYPE_ERROR) { @@ -160,12 +161,10 @@ public class XmppConnectionService extends Service { if (convChangedListener != null) { convChangedListener.onConversationListChanged(); } else { - if (notify) { NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(2342, UIHelper - .getUnreadMessageNotification( - getApplicationContext(),getConversations())); - } + .getNotification( + getApplicationContext(),getConversations(),notify)); } } }; |