From b56a9beb1d12b60ed6a6b7ed5b43525fdd8a0b93 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Fri, 26 Feb 2021 13:05:16 +0000 Subject: [PATCH] Include legacy messages when recalculating group count. --- .../briar/messaging/MessagingManagerImpl.java | 31 ++++++++----------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java index 6cf238249..78e075933 100644 --- a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingManagerImpl.java @@ -550,27 +550,22 @@ class MessagingManagerImpl implements MessagingManager, IncomingMessageHook, private void recalculateGroupCount(Transaction txn, GroupId g) throws DbException { - BdfDictionary query = BdfDictionary.of( - new BdfEntry(MSG_KEY_MSG_TYPE, PRIVATE_MESSAGE)); - Map results; try { - results = - clientHelper.getMessageMetadataAsDictionary(txn, g, query); + Map metadata = + clientHelper.getMessageMetadataAsDictionary(txn, g); + int msgCount = 0; + int unreadCount = 0; + for (Entry entry : metadata.entrySet()) { + BdfDictionary meta = entry.getValue(); + Long messageType = meta.getOptionalLong(MSG_KEY_MSG_TYPE); + if (messageType == null || messageType == PRIVATE_MESSAGE) { + msgCount++; + if (!meta.getBoolean(MSG_KEY_READ)) unreadCount++; + } + } + messageTracker.resetGroupCount(txn, g, msgCount, unreadCount); } catch (FormatException e) { throw new DbException(e); } - int msgCount = results.size(); - int unreadCount = 0; - for (Entry entry : results.entrySet()) { - BdfDictionary meta = entry.getValue(); - boolean read; - try { - read = meta.getBoolean(MSG_KEY_READ); - } catch (FormatException e) { - throw new DbException(e); - } - if (!read) unreadCount++; - } - messageTracker.resetGroupCount(txn, g, msgCount, unreadCount); } }