Merge pull request #135 from loki-project/crashes

Fix Most Common Crashes
pull/138/head
gmbnt 6 years ago committed by GitHub
commit 9e2fb1441f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -200,49 +200,9 @@ public class MessageFetcherJob: NSObject {
private func fetchUndeliveredMessages() -> Promise<Set<Promise<[SSKProtoEnvelope]>>> {
return LokiAPI.getMessages()
// Loki: Original code
// ========
// let request = OWSRequestFactory.getMessagesRequest()
// self.networkManager.makeRequest(
// request,
// success: { (_: URLSessionDataTask?, responseObject: Any?) -> Void in
// guard let (envelopes, more) = self.parseMessagesResponse(responseObject: responseObject) else {
// Logger.error("response object had unexpected content")
// return resolver.reject(OWSErrorMakeUnableToProcessServerResponseError())
// }
//
// resolver.fulfill((envelopes: envelopes, more: more))
// },
// failure: { (_: URLSessionDataTask?, error: Error?) in
// guard let error = error else {
// Logger.error("error was surpringly nil. sheesh rough day.")
// return resolver.reject(OWSErrorMakeUnableToProcessServerResponseError())
// }
//
// resolver.reject(error)
// })
// ========
}
private func acknowledgeDelivery(envelope: SSKProtoEnvelope) {
let request: TSRequest
if let serverGuid = envelope.serverGuid, serverGuid.count > 0 {
request = OWSRequestFactory.acknowledgeMessageDeliveryRequest(withServerGuid: serverGuid)
} else if let source = envelope.source, source.count > 0, envelope.timestamp > 0 {
request = OWSRequestFactory.acknowledgeMessageDeliveryRequest(withSource: source, timestamp: envelope.timestamp)
} else if envelope.type == .unidentifiedSender, envelope.timestamp > 0 {
request = OWSRequestFactory.acknowledgeMessageDeliveryRequest(withSource: envelope.source!, timestamp: envelope.timestamp)
} else {
owsFailDebug("Cannot ACK message which has neither source, nor server GUID and timestamp.")
return
}
self.networkManager.makeRequest(request,
success: { (_: URLSessionDataTask?, _: Any?) -> Void in
Logger.debug("acknowledged delivery for message at timestamp: \(envelope.timestamp)")
},
failure: { (_: URLSessionDataTask?, error: Error?) in
Logger.debug("acknowledging delivery for message at timestamp: \(envelope.timestamp) failed with error: \(String(describing: error))")
})
// Do nothing
}
}

@ -134,9 +134,12 @@ final class ConversationTitleView : UIView {
private func clearStatusIfNeededForMessageWithTimestamp(_ timestamp: NSNumber) {
var uncheckedTargetInteraction: TSInteraction? = nil
thread.enumerateInteractions { interaction in
guard interaction.timestamp == timestamp.uint64Value else { return }
uncheckedTargetInteraction = interaction
OWSPrimaryStorage.shared().dbReadConnection.read { transaction in
guard let interactionsByThread = transaction.ext(TSMessageDatabaseViewExtensionName) as? YapDatabaseViewTransaction else { return }
interactionsByThread.enumerateKeysAndObjects(inGroup: self.thread.uniqueId!) { _, _, object, _, _ in
guard let interaction = object as? TSInteraction, interaction.timestamp == timestamp.uint64Value else { return }
uncheckedTargetInteraction = interaction
}
}
guard let targetInteraction = uncheckedTargetInteraction, targetInteraction.interactionType() == .outgoingMessage else { return }
self.currentStatus = nil

Loading…
Cancel
Save