mark missed calls as unread (bold) in overview. fixes #3687

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/entities/Conversation.java           | 9 
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java | 3 
2 files changed, 8 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Conversation.java 🔗

@@ -196,13 +196,14 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
     public void findUnreadMessages(OnMessageFound onMessageFound) {
         final ArrayList<Message> results = new ArrayList<>();
         synchronized (this.messages) {
-            for (Message message : this.messages) {
-                if (!message.isRead()) {
-                    results.add(message);
+            for (final Message message : this.messages) {
+                if (message.isRead() || message.getType() == Message.TYPE_RTP_SESSION) {
+                    continue;
                 }
+                results.add(message);
             }
         }
-        for (Message result : results) {
+        for (final Message result : results) {
             onMessageFound.onMessageFound(result);
         }
     }

src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java 🔗

@@ -564,9 +564,11 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
         Log.d(Config.LOGTAG, id.account.getJid().asBareJid() + ": timeout reached for ringing");
         switch (this.state) {
             case PROPOSED:
+                message.markUnread();
                 rejectCallFromProposed();
                 break;
             case SESSION_INITIALIZED:
+                message.markUnread();
                 rejectCallFromSessionInitiate();
                 break;
         }
@@ -616,6 +618,7 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web
                     this.message.setServerMsgId(serverMsgId);
                 }
                 this.message.setTime(timestamp);
+                this.message.markUnread();
                 writeLogMessageMissed();
                 finish();
             } else {