diff --git a/SignalMessaging/contacts/OWSContactsManager.m b/SignalMessaging/contacts/OWSContactsManager.m index b1dba3516..f0c80d672 100644 --- a/SignalMessaging/contacts/OWSContactsManager.m +++ b/SignalMessaging/contacts/OWSContactsManager.m @@ -84,8 +84,7 @@ NSString *const OWSContactsManagerKeyNextFullIntersectionDate = @"OWSContactsMan [AppReadiness runNowOrWhenAppWillBecomeReady:^{ [self setup]; - }]; - [AppReadiness runNowOrWhenAppDidBecomeReady:^{ + [self startObserving]; }]; @@ -409,10 +408,12 @@ NSString *const OWSContactsManagerKeyNextFullIntersectionDate = @"OWSContactsMan { OWSAssertIsOnMainThread(); - NSString *recipientId = notification.userInfo[kNSNotificationKey_ProfileRecipientId]; - OWSAssertDebug(recipientId.length > 0); + [AppReadiness runNowOrWhenAppDidBecomeReady:^{ + NSString *recipientId = notification.userInfo[kNSNotificationKey_ProfileRecipientId]; + OWSAssertDebug(recipientId.length > 0); - [self.avatarCache removeAllImagesForKey:recipientId]; + [self.avatarCache removeAllImagesForKey:recipientId]; + }]; } - (void)updateWithContacts:(NSArray *)contacts diff --git a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m index 54cd702c8..1ac05f937 100644 --- a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m +++ b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m @@ -270,7 +270,9 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo // Start processing. [AppReadiness runNowOrWhenAppDidBecomeReady:^{ - [self drainQueue]; + if (CurrentAppContext().isMainApp) { + [self drainQueue]; + } }]; return self; diff --git a/SignalServiceKit/src/Messages/OWSMessageReceiver.m b/SignalServiceKit/src/Messages/OWSMessageReceiver.m index 606f46fc7..4b484414d 100644 --- a/SignalServiceKit/src/Messages/OWSMessageReceiver.m +++ b/SignalServiceKit/src/Messages/OWSMessageReceiver.m @@ -249,7 +249,9 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin _isDrainingQueue = NO; [AppReadiness runNowOrWhenAppDidBecomeReady:^{ - [self drainQueue]; + if (CurrentAppContext().isMainApp) { + [self drainQueue]; + } }]; return self; diff --git a/SignalServiceKit/src/Network/MessageSenderJobQueue.swift b/SignalServiceKit/src/Network/MessageSenderJobQueue.swift index 62d8aa500..3fc626876 100644 --- a/SignalServiceKit/src/Network/MessageSenderJobQueue.swift +++ b/SignalServiceKit/src/Network/MessageSenderJobQueue.swift @@ -65,6 +65,8 @@ public class MessageSenderJobQueue: NSObject, JobQueue { } private func add(message: TSOutgoingMessage, removeMessageAfterSending: Bool, transaction: YapDatabaseReadWriteTransaction) { + assert(AppReadiness.isAppReady()) + let jobRecord: SSKMessageSenderJobRecord do { jobRecord = try SSKMessageSenderJobRecord(message: message, removeMessageAfterSending: false, label: self.jobRecordLabel) diff --git a/SignalServiceKit/src/Util/JobQueue.swift b/SignalServiceKit/src/Util/JobQueue.swift index f773bccfd..12851fdef 100644 --- a/SignalServiceKit/src/Util/JobQueue.swift +++ b/SignalServiceKit/src/Util/JobQueue.swift @@ -106,6 +106,7 @@ public extension JobQueue { func add(jobRecord: JobRecordType, transaction: YapDatabaseReadWriteTransaction) { assert(jobRecord.status == .ready) + jobRecord.save(with: transaction) transaction.addCompletionQueue(.global()) {