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
pull/588/head
Morgan Pretty 3 years ago
parent d3e9fff893
commit 1ed3328aac

@ -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 {

@ -16,7 +16,6 @@ NS_ASSUME_NONNULL_BEGIN
+ (instancetype)sharedManager;
- (NSUInteger)unreadMessagesCount;
- (NSUInteger)unreadMessageRequestCount;
- (NSUInteger)unreadMessagesCountExcept:(TSThread *)thread;
- (void)updateApplicationBadgeCount;

@ -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<NSString *> *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;

Loading…
Cancel
Save