From ce2e1b9eb9402b4c5be4c9fab97320cde6d3e546 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Fri, 22 Jul 2022 12:56:17 +0100 Subject: [PATCH] android: fix contact spinners race condition (#832) * android: fix contact spinners race condition * always update * remove log --- .../java/chat/simplex/app/model/SimpleXAPI.kt | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index d47dd178e..c62cf8ee0 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -147,23 +147,24 @@ open class ChatController(private val ctrl: ChatCtrl, val ntfManager: NtfManager try { if (chatModel.chatRunning.value == true) return val justStarted = apiStartChat() - apiSetFilesFolder(getAppFilesDirectory(appContext)) - chatModel.userAddress.value = apiGetUserAddress() - chatModel.userSMPServers.value = getUserSMPServers() - val chats = apiGetChats() if (justStarted) { - chatModel.chats.clear() - chatModel.chats.addAll(chats) - } else { + apiSetFilesFolder(getAppFilesDirectory(appContext)) + chatModel.userAddress.value = apiGetUserAddress() + chatModel.userSMPServers.value = getUserSMPServers() + val chats = apiGetChats() chatModel.updateChats(chats) + chatModel.currentUser.value = user + chatModel.userCreated.value = true + chatModel.onboardingStage.value = OnboardingStage.OnboardingComplete + chatModel.controller.appPrefs.chatLastStart.set(Clock.System.now()) + chatModel.chatRunning.value = true + startReceiver() + Log.d(TAG, "startChat: started") + } else { + val chats = apiGetChats() + chatModel.updateChats(chats) + Log.d(TAG, "startChat: running") } - chatModel.currentUser.value = user - chatModel.userCreated.value = true - chatModel.onboardingStage.value = OnboardingStage.OnboardingComplete - chatModel.controller.appPrefs.chatLastStart.set(Clock.System.now()) - chatModel.chatRunning.value = true - startReceiver() - Log.d(TAG, "chat started") } catch (e: Error) { Log.e(TAG, "failed starting chat $e") throw e