From 07ccacf60c23ea71fcb030a2c2ecf8ac8e7f6987 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 26 May 2021 11:35:03 -0300 Subject: [PATCH] Small fixes. --- Signal/src/Calls/CallService.swift | 18 +++++++++++++----- .../src/Messages/Stickers/StickerManager.swift | 9 ++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Signal/src/Calls/CallService.swift b/Signal/src/Calls/CallService.swift index 43e43ffef3..e281917f8d 100644 --- a/Signal/src/Calls/CallService.swift +++ b/Signal/src/Calls/CallService.swift @@ -556,10 +556,12 @@ public final class CallService: NSObject { // MARK: - private func updateGroupMembersForCurrentCallIfNecessary() { - guard let call = currentCall, call.isGroupCall, - let groupThread = call.thread as? TSGroupThread, - let memberInfo = groupMemberInfo(for: groupThread) else { return } - call.groupCall.updateGroupMembers(members: memberInfo) + DispatchQueue.main.async { + guard let call = self.currentCall, call.isGroupCall, + let groupThread = call.thread as? TSGroupThread, + let memberInfo = self.groupMemberInfo(for: groupThread) else { return } + call.groupCall.updateGroupMembers(members: memberInfo) + } } private func groupMemberInfo(for thread: TSGroupThread) -> [GroupMemberInfo]? { @@ -701,6 +703,7 @@ extension CallService { @objc @available(swift, obsoleted: 1.0) func peekCallAndUpdateThread(_ thread: TSGroupThread) { + AssertIsOnMainThread() self.peekCallAndUpdateThread(thread) } @@ -716,9 +719,14 @@ extension CallService { Logger.info("Ignoring peek request for the current call") return } - firstly(on: .global()) { + firstly(on: .main) { () -> [GroupMemberInfo]? in guard let memberInfo = self.groupMemberInfo(for: thread) else { owsFailDebug("Failed to fetch group member info to peek \(thread.uniqueId)") + return nil + } + return memberInfo + }.map(on: .global()) { (memberInfo: [GroupMemberInfo]?) in + guard let memberInfo = memberInfo else { return } diff --git a/SignalServiceKit/src/Messages/Stickers/StickerManager.swift b/SignalServiceKit/src/Messages/Stickers/StickerManager.swift index 9627979a23..430bbd24d0 100644 --- a/SignalServiceKit/src/Messages/Stickers/StickerManager.swift +++ b/SignalServiceKit/src/Messages/Stickers/StickerManager.swift @@ -699,7 +699,14 @@ public class StickerManager: NSObject { try OWSFileSystem.deleteFileIfExists(url: stickerDataUrl) try FileManager.default.copyItem(at: stickerTemporaryUrl, to: stickerDataUrl) } catch let error as NSError { - owsFailDebug("File write failed: \(error)") + if error.domain == NSCocoaErrorDomain, + error.code == 516, + OWSFileSystem.fileOrFolderExists(url: stickerDataUrl) { + // Races can occur. + Logger.warn("File already exists: \(error)") + } else { + owsFailDebug("File write failed: \(error)") + } return false }