From aa6011a1963d0c663692619d02522fc2e8449560 Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Wed, 8 Feb 2023 16:21:55 +0300 Subject: [PATCH] android: prevent race when changing active user (#1913) --- .../app/src/main/java/chat/simplex/app/SimplexApp.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt b/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt index ed7a0ae166..1d2f301091 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/SimplexApp.kt @@ -101,8 +101,12 @@ class SimplexApp: Application(), LifecycleEventObserver { isAppOnForeground = true if (chatModel.chatRunning.value == true) { kotlin.runCatching { + val currentUserId = chatModel.currentUser.value?.userId val chats = chatController.apiGetChats() - chatModel.updateChats(chats) + /** Active user can be changed in background while [ChatController.apiGetChats] is executing */ + if (chatModel.currentUser.value?.userId == currentUserId) { + chatModel.updateChats(chats) + } }.onFailure { Log.e(TAG, it.stackTraceToString()) } } }