fix disappearing messages for sync messages
This commit is contained in:
parent
204fe789ed
commit
0b5d6ae4b0
|
@ -443,6 +443,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
|
|||
func markAllAsRead() {
|
||||
guard let lastSortID = viewItems.last?.interaction.sortId else { return }
|
||||
OWSReadReceiptManager.shared().markAsReadLocally(beforeSortId: lastSortID, thread: thread)
|
||||
SSKEnvironment.shared.disappearingMessagesJob.cleanupMessagesWhichFailedToStartExpiringFromNow()
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
|
||||
|
|
|
@ -49,6 +49,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
// and continue cleaning in the background.
|
||||
- (void)startIfNecessary;
|
||||
|
||||
- (void)cleanupMessagesWhichFailedToStartExpiringFromNow;
|
||||
- (void)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
|
||||
|
||||
@end
|
||||
|
|
|
@ -329,6 +329,17 @@ void AssertIsOnDisappearingMessagesQueue()
|
|||
|
||||
#pragma mark - Cleanup
|
||||
|
||||
- (void)cleanupMessagesWhichFailedToStartExpiringFromNow
|
||||
{
|
||||
[LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
|
||||
[self.disappearingMessagesFinder
|
||||
enumerateMessagesWhichFailedToStartExpiringWithBlock:^(TSMessage *_Nonnull message) {
|
||||
[self startAnyExpirationForMessage:message expirationStartedAt:[NSDate millisecondTimestamp] transaction:transaction];
|
||||
}
|
||||
transaction:transaction];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
|
||||
{
|
||||
[self.disappearingMessagesFinder
|
||||
|
|
|
@ -332,8 +332,6 @@ extension MessageReceiver {
|
|||
let thread = TSThread.fetch(uniqueId: threadID, transaction: transaction) {
|
||||
// Mark previous messages as read if there is a sync message
|
||||
OWSReadReceiptManager.shared().markAsReadLocally(beforeSortId: tsOutgoingMessage.sortId, thread: thread)
|
||||
// Start expiration for sync messages
|
||||
OWSDisappearingMessagesJob.shared().startAnyExpiration(for: tsOutgoingMessage, expirationStartedAt: NSDate.millisecondTimestamp(), transaction: transaction)
|
||||
}
|
||||
// Notify the user if needed
|
||||
guard (isMainAppAndActive || isBackgroundPoll), let tsIncomingMessage = TSMessage.fetch(uniqueId: tsMessageID, transaction: transaction) as? TSIncomingMessage,
|
||||
|
|
Loading…
Reference in New Issue