android: fix deleting active and hidden user profile, fix incorrect log

This commit is contained in:
Evgeny Poberezkin
2023-03-25 15:25:52 +00:00
parent 9f8cbe140d
commit c0bbe77788
2 changed files with 9 additions and 4 deletions

View File

@@ -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)

View File

@@ -267,7 +267,7 @@ private fun removeUser(m: ChatModel, user: User, users: List<User>, 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)