diff --git a/Signal/src/ViewControllers/MessagesViewController.m b/Signal/src/ViewControllers/MessagesViewController.m index a4ed0415f..ab8802159 100644 --- a/Signal/src/ViewControllers/MessagesViewController.m +++ b/Signal/src/ViewControllers/MessagesViewController.m @@ -747,6 +747,10 @@ typedef enum : NSUInteger { _composeOnOpen = keyboardOnViewAppearing; _callOnOpen = callOnViewAppearing; + // We need to create the "unread indicator" before we mark + // all messages as read. + [self ensureThreadOffersAndIndicators]; + [self markAllMessagesAsRead]; [self.uiDatabaseConnection beginLongLivedReadTransaction]; @@ -2752,9 +2756,8 @@ typedef enum : NSUInteger { OWSAssert([NSThread isMainThread]); if (self.hasClearedUnreadMessagesIndicator) { - // ensureThreadOffersAndIndicators is slightly - // expensive, so make sure we don't call it - // unneccesarily. + // ensureThreadOffersAndIndicators is somewhat expensive + // so we don't want to call it unnecessarily. return; } diff --git a/Signal/src/util/ThreadUtil.m b/Signal/src/util/ThreadUtil.m index bedb84a4b..fb0db3c7b 100644 --- a/Signal/src/util/ThreadUtil.m +++ b/Signal/src/util/ThreadUtil.m @@ -103,7 +103,7 @@ NS_ASSUME_NONNULL_BEGIN __block TSUnreadIndicatorInteraction *unreadIndicator = nil; __block TSIncomingMessage *firstIncomingMessage = nil; __block TSOutgoingMessage *firstOutgoingMessage = nil; - __block TSMessage *firstUnreadMessage = nil; + __block TSIncomingMessage *firstUnreadMessage = nil; __block long outgoingMessageCount = 0; [[transaction ext:TSMessageDatabaseViewExtensionName]