ios: load chat from db synchronously to avoid occasional empty chats (#453)

This commit is contained in:
Evgeny Poberezkin
2022-03-19 17:20:27 +00:00
committed by GitHub
parent 490dc17571
commit f43c462907
4 changed files with 24 additions and 29 deletions
+2 -2
View File
@@ -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
}
@@ -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)")
}
}
}
+4 -3
View File
@@ -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;
@@ -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
}