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() {
|
func markAllAsRead() {
|
||||||
guard let lastSortID = viewItems.last?.interaction.sortId else { return }
|
guard let lastSortID = viewItems.last?.interaction.sortId else { return }
|
||||||
OWSReadReceiptManager.shared().markAsReadLocally(beforeSortId: lastSortID, thread: thread)
|
OWSReadReceiptManager.shared().markAsReadLocally(beforeSortId: lastSortID, thread: thread)
|
||||||
|
SSKEnvironment.shared.disappearingMessagesJob.cleanupMessagesWhichFailedToStartExpiringFromNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
|
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
|
||||||
|
|
|
@ -49,6 +49,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
// and continue cleaning in the background.
|
// and continue cleaning in the background.
|
||||||
- (void)startIfNecessary;
|
- (void)startIfNecessary;
|
||||||
|
|
||||||
|
- (void)cleanupMessagesWhichFailedToStartExpiringFromNow;
|
||||||
- (void)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
|
- (void)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -329,6 +329,17 @@ void AssertIsOnDisappearingMessagesQueue()
|
||||||
|
|
||||||
#pragma mark - Cleanup
|
#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
|
- (void)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
|
||||||
{
|
{
|
||||||
[self.disappearingMessagesFinder
|
[self.disappearingMessagesFinder
|
||||||
|
|
|
@ -332,8 +332,6 @@ extension MessageReceiver {
|
||||||
let thread = TSThread.fetch(uniqueId: threadID, transaction: transaction) {
|
let thread = TSThread.fetch(uniqueId: threadID, transaction: transaction) {
|
||||||
// Mark previous messages as read if there is a sync message
|
// Mark previous messages as read if there is a sync message
|
||||||
OWSReadReceiptManager.shared().markAsReadLocally(beforeSortId: tsOutgoingMessage.sortId, thread: thread)
|
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
|
// Notify the user if needed
|
||||||
guard (isMainAppAndActive || isBackgroundPoll), let tsIncomingMessage = TSMessage.fetch(uniqueId: tsMessageID, transaction: transaction) as? TSIncomingMessage,
|
guard (isMainAppAndActive || isBackgroundPoll), let tsIncomingMessage = TSMessage.fetch(uniqueId: tsMessageID, transaction: transaction) as? TSIncomingMessage,
|
||||||
|
|
Loading…
Reference in New Issue