From 9ffe36a09150c4f965dbcea86153b07b98b0c2ce Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Tue, 28 Apr 2020 16:15:00 +1000 Subject: [PATCH] Fix crashes --- .../Sync Messages/SyncMessagesProtocol.swift | 18 ++++++++++++++---- .../src/Messages/OWSFailedMessagesJob.m | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift index ba40872f8..87e34a3fa 100644 --- a/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift @@ -177,11 +177,21 @@ public final class SyncMessagesProtocol : NSObject { thread.save(with: transaction) // This takes into account multi device messageSender.send(autoGeneratedFRMessage, success: { - autoGeneratedFRMessage.remove(with: transaction) - thread.isForceHidden = false + DispatchQueue.main.async { + storage.dbReadWriteConnection.readWrite { transaction in + autoGeneratedFRMessage.remove(with: transaction) + thread.isForceHidden = false + thread.save(with: transaction) + } + } }, failure: { error in - autoGeneratedFRMessage.remove(with: transaction) - thread.isForceHidden = false + DispatchQueue.main.async { + storage.dbReadWriteConnection.readWrite { transaction in + autoGeneratedFRMessage.remove(with: transaction) + thread.isForceHidden = false + thread.save(with: transaction) + } + } }) case .requestReceived: thread.saveFriendRequestStatus(.friends, with: transaction) diff --git a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m index 5b5713765..f4cdb066b 100644 --- a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m +++ b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m @@ -50,6 +50,7 @@ static NSString *const OWSFailedMessagesJobMessageStateIndex = @"index_outoing_m [[transaction ext:OWSFailedMessagesJobMessageStateIndex] enumerateKeysMatchingQuery:query usingBlock:^void(NSString *collection, NSString *key, BOOL *stop) { + if (key == nil) { return; } [messageIds addObject:key]; }];