From 1ed3328aac3bec1b7354bf71a7dd8836425053d8 Mon Sep 17 00:00:00 2001 From: Morgan Pretty Date: Thu, 17 Mar 2022 13:40:32 +1100 Subject: [PATCH] Updated how the HomeVC counts unread message request threads Updated the HomeVC to count the threads with unread messages using the TSMessageRequestGroup instead of using the UnreadDatabaseView Removed the OWSMessageUtils 'unreadMessageRequestCount' method --- Session/Home/HomeVC.swift | 13 +++++++++++- .../Messaging/OWSMessageUtils.h | 1 - .../Messaging/OWSMessageUtils.m | 21 ------------------- 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/Session/Home/HomeVC.swift b/Session/Home/HomeVC.swift index da9153682..ece1bb804 100644 --- a/Session/Home/HomeVC.swift +++ b/Session/Home/HomeVC.swift @@ -7,7 +7,18 @@ final class HomeVC : BaseVC, UITableViewDataSource, UITableViewDelegate, NewConv private var threadViewModelCache: [String:ThreadViewModel] = [:] // Thread ID to ThreadViewModel private var tableViewTopConstraint: NSLayoutConstraint! private var unreadMessageRequestCount: UInt { - OWSMessageUtils.sharedManager().unreadMessageRequestCount() + var count: UInt = 0 + + dbConnection.read { transaction in + let ext = transaction.ext(TSThreadDatabaseViewExtensionName) as! YapDatabaseViewTransaction + ext.enumerateRows(inGroup: TSMessageRequestGroup) { _, _, object, _, _, _ in + if ((object as? TSThread)?.unreadMessageCount(transaction: transaction) ?? 0) > 0 { + count += 1 + } + } + } + + return count } private var threadCount: UInt { diff --git a/SignalUtilitiesKit/Messaging/OWSMessageUtils.h b/SignalUtilitiesKit/Messaging/OWSMessageUtils.h index 3069360bf..ef693b8dc 100644 --- a/SignalUtilitiesKit/Messaging/OWSMessageUtils.h +++ b/SignalUtilitiesKit/Messaging/OWSMessageUtils.h @@ -16,7 +16,6 @@ NS_ASSUME_NONNULL_BEGIN + (instancetype)sharedManager; - (NSUInteger)unreadMessagesCount; -- (NSUInteger)unreadMessageRequestCount; - (NSUInteger)unreadMessagesCountExcept:(TSThread *)thread; - (void)updateApplicationBadgeCount; diff --git a/SignalUtilitiesKit/Messaging/OWSMessageUtils.m b/SignalUtilitiesKit/Messaging/OWSMessageUtils.m index cbc703c91..543971dbc 100644 --- a/SignalUtilitiesKit/Messaging/OWSMessageUtils.m +++ b/SignalUtilitiesKit/Messaging/OWSMessageUtils.m @@ -93,27 +93,6 @@ NS_ASSUME_NONNULL_BEGIN return count; } -- (NSUInteger)unreadMessageRequestCount { - __block NSUInteger count = 0; - - [LKStorage readWithBlock:^(YapDatabaseReadTransaction *transaction) { - YapDatabaseViewTransaction *unreadMessages = [transaction ext:TSUnreadDatabaseViewExtensionName]; - NSArray *allGroups = [unreadMessages allGroups]; - // FIXME: Confusingly, `allGroups` includes contact threads as well - for (NSString *groupID in allGroups) { - TSThread *thread = [TSThread fetchObjectWithUniqueID:groupID transaction:transaction]; - - // Only increase the count for message requests - if (![thread isMessageRequestUsingTransaction:transaction]) { continue; } - if ([unreadMessages numberOfItemsInGroup:groupID] > 0) { - count += 1; - } - } - }]; - - return count; -} - - (NSUInteger)unreadMessagesCountExcept:(TSThread *)thread { __block NSUInteger numberOfItems;