Fix crash

This commit is contained in:
Niels Andriesse 2019-05-08 16:02:53 +10:00
parent 5a0f752de7
commit a8092cbfa3
2 changed files with 21 additions and 17 deletions

View File

@ -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] ||

View File

@ -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
}
}
}
}