From a8092cbfa329b8a91be499e64828f1ea66db50f1 Mon Sep 17 00:00:00 2001 From: Niels Andriesse <andriesseniels@gmail.com> Date: Wed, 8 May 2019 16:02:53 +1000 Subject: [PATCH] Fix crash --- .../ConversationView/ConversationViewModel.m | 5 ++- SignalServiceKit/src/Loki/LokiAPI.swift | 33 ++++++++++--------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewModel.m b/Signal/src/ViewControllers/ConversationView/ConversationViewModel.m index 18ce348f3..8ebec14da 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewModel.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewModel.m @@ -628,7 +628,10 @@ static const int kYapDatabaseRangeMaxLength = 25000; for (TSOutgoingMessage *unsavedOutgoingMessage in self.unsavedOutgoingMessages) { // unsavedOutgoingMessages should only exist for a short period (usually 30-50ms) before // they are saved and moved into the `persistedViewItems` - OWSAssertDebug(unsavedOutgoingMessage.timestamp >= ([NSDate ows_millisecondTimeStamp] - 1 * kSecondInMs)); + // Loki: Original code + // ======== +// OWSAssertDebug(unsavedOutgoingMessage.timestamp >= ([NSDate ows_millisecondTimeStamp] - 1 * kSecondInMs)); + // ======== BOOL isFound = ([diff.addedItemIds containsObject:unsavedOutgoingMessage.uniqueId] || [diff.removedItemIds containsObject:unsavedOutgoingMessage.uniqueId] || diff --git a/SignalServiceKit/src/Loki/LokiAPI.swift b/SignalServiceKit/src/Loki/LokiAPI.swift index 6497f88c7..7e782cede 100644 --- a/SignalServiceKit/src/Loki/LokiAPI.swift +++ b/SignalServiceKit/src/Loki/LokiAPI.swift @@ -1,19 +1,5 @@ import PromiseKit -// Helper function for objc apis -private extension Promise where T == Any { - func recoverNetworkError(on queue: DispatchQueue) -> Promise<T> { - return self.recover(on: queue) { error -> Promise<T> in - switch error { - case NetworkManagerError.taskError(_, let underlyingError): - throw underlyingError - default: - throw error - } - } - } -} - @objc public final class LokiAPI : NSObject { private static let version = "v1" @@ -81,8 +67,7 @@ private extension Promise where T == Any { // MARK: Obj-C API @objc public static func objc_getMessages() -> AnyPromise { - let promise = getMessages() - .recoverNetworkError(on: DispatchQueue.global()) + let promise = getMessages().recoverNetworkError(on: DispatchQueue.global()) let anyPromise = AnyPromise(promise) anyPromise.retainUntilComplete() return anyPromise @@ -97,3 +82,19 @@ private extension Promise where T == Any { return anyPromise } } + +// MARK: - Convenience + +private extension Promise where T == Any { + + func recoverNetworkError(on queue: DispatchQueue) -> Promise<T> { + return self.recover(on: queue) { error -> Promise<T> in + switch error { + case NetworkManagerError.taskError(_, let underlyingError): + throw underlyingError + default: + throw error + } + } + } +}