From c0bbe77788d3961c2f57715f1e5903cd908f479c Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Sat, 25 Mar 2023 15:25:52 +0000 Subject: [PATCH] android: fix deleting active and hidden user profile, fix incorrect log --- .../main/java/chat/simplex/app/model/SimpleXAPI.kt | 11 ++++++++--- .../app/views/usersettings/UserProfilesView.kt | 2 +- 2 files changed, 9 insertions(+), 4 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 b0d659bd4f..bcd2cf4152 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 @@ -266,9 +266,13 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a } private fun currentUserId(funcName: String): Long { - val error = "$funcName: no current user" - Log.e(TAG, error) - return chatModel.currentUser.value?.userId ?: throw Exception(error) + val userId = chatModel.currentUser.value?.userId + if (userId == null) { + val error = "$funcName: no current user" + Log.e(TAG, error) + throw Exception(error) + } + return userId } suspend fun startChat(user: User) { @@ -314,6 +318,7 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a suspend fun changeActiveUser_(toUserId: Long, viewPwd: String?) { val currentUser = apiSetActiveUser(toUserId, viewPwd) chatModel.currentUser.value = currentUser + Log.e(TAG, "currentUser ${currentUser?.userId}") val users = listUsers() chatModel.users.clear() chatModel.users.addAll(users) diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfilesView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfilesView.kt index e6db50de41..54885ac735 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfilesView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/usersettings/UserProfilesView.kt @@ -267,7 +267,7 @@ private fun removeUser(m: ChatModel, user: User, users: List, delSMPQueues val newActive = users.firstOrNull { u -> !u.activeUser && !u.hidden } if (newActive != null) { m.controller.changeActiveUser_(newActive.userId, null) - deleteUser(user) + deleteUser(user.copy(activeUser = false)) } } else { deleteUser(user)