From f43c462907736b9f92549368338b83af51876c42 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Sat, 19 Mar 2022 17:20:27 +0000 Subject: [PATCH] ios: load chat from db synchronously to avoid occasional empty chats (#453) --- apps/ios/Shared/Model/SimpleXAPI.swift | 4 ++-- .../Views/ChatList/ChatListNavLink.swift | 18 ++++++-------- apps/ios/SimpleX.xcodeproj/project.pbxproj | 7 +++--- .../xcshareddata/swiftpm/Package.resolved | 24 +++++++++---------- 4 files changed, 24 insertions(+), 29 deletions(-) diff --git a/apps/ios/Shared/Model/SimpleXAPI.swift b/apps/ios/Shared/Model/SimpleXAPI.swift index c7111a3541..60678b2fef 100644 --- a/apps/ios/Shared/Model/SimpleXAPI.swift +++ b/apps/ios/Shared/Model/SimpleXAPI.swift @@ -359,8 +359,8 @@ func apiGetChats() throws -> [Chat] { throw r } -func apiGetChat(type: ChatType, id: Int64) async throws -> Chat { - let r = await chatSendCmd(.apiGetChat(type: type, id: id)) +func apiGetChat(type: ChatType, id: Int64) throws -> Chat { + let r = chatSendCmdSync(.apiGetChat(type: type, id: id)) if case let .apiChat(chat) = r { return Chat.init(chat) } throw r } diff --git a/apps/ios/Shared/Views/ChatList/ChatListNavLink.swift b/apps/ios/Shared/Views/ChatList/ChatListNavLink.swift index e5f2ed3718..d2ec6c11e2 100644 --- a/apps/ios/Shared/Views/ChatList/ChatListNavLink.swift +++ b/apps/ios/Shared/Views/ChatList/ChatListNavLink.swift @@ -27,17 +27,13 @@ struct ChatListNavLink: View { private func chatView() -> some View { ChatView(chat: chat) .onAppear { - Task { - do { - let cInfo = chat.chatInfo - let chat = try await apiGetChat(type: cInfo.chatType, id: cInfo.apiId) - DispatchQueue.main.async { - chatModel.updateChatInfo(chat.chatInfo) - chatModel.chatItems = chat.chatItems - } - } catch { - logger.error("ChatListNavLink.chatView apiGetChatItems error: \(error.localizedDescription)") - } + do { + let cInfo = chat.chatInfo + let chat = try apiGetChat(type: cInfo.chatType, id: cInfo.apiId) + chatModel.updateChatInfo(chat.chatInfo) + chatModel.chatItems = chat.chatItems + } catch { + logger.error("ChatListNavLink.chatView apiGetChatItems error: \(error.localizedDescription)") } } } diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index c1a27a3222..0012039e51 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -521,7 +521,7 @@ attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1320; - LastUpgradeCheck = 1320; + LastUpgradeCheck = 1330; ORGANIZATIONNAME = "SimpleX Chat"; TargetAttributes = { 5CA059C9279559F40002BEB4 = { @@ -851,7 +851,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 28; + CURRENT_PROJECT_VERSION = 29; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -891,7 +891,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 28; + CURRENT_PROJECT_VERSION = 29; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -969,6 +969,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements; + CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; diff --git a/apps/ios/SimpleX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/apps/ios/SimpleX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 9d4b1de373..3f1d1790ff 100644 --- a/apps/ios/SimpleX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/apps/ios/SimpleX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,16 +1,14 @@ { - "object": { - "pins": [ - { - "package": "CodeScanner", - "repositoryURL": "https://github.com/twostraws/CodeScanner", - "state": { - "branch": null, - "revision": "c27a66149b7483fe42e2ec6aad61d5c3fffe522d", - "version": "2.1.1" - } + "pins" : [ + { + "identity" : "codescanner", + "kind" : "remoteSourceControl", + "location" : "https://github.com/twostraws/CodeScanner", + "state" : { + "revision" : "c27a66149b7483fe42e2ec6aad61d5c3fffe522d", + "version" : "2.1.1" } - ] - }, - "version": 1 + } + ], + "version" : 2 }