From d0c20db2c64fa7d7ee0993e74eab91d7afe0a42d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 27 Aug 2021 15:05:00 +0200 Subject: [PATCH] Fixed leak of AccountSettingsViewModel causing linphone_core_find_auth_info(): returning auth info log increase after each register --- .../main/sidemenu/viewmodels/SideMenuViewModel.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt b/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt index 605303bbf..a66149532 100644 --- a/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/sidemenu/viewmodels/SideMenuViewModel.kt @@ -50,7 +50,8 @@ class SideMenuViewModel : ViewModel() { state: RegistrationState, message: String ) { - if (coreContext.core.accountList.size != accounts.value?.size) { + // +1 is for the default account, otherwise this will trigger every time + if (coreContext.core.accountList.size != accounts.value.orEmpty().size + 1) { // Only refresh the list if an account has been added or removed updateAccountsList() } @@ -73,8 +74,9 @@ class SideMenuViewModel : ViewModel() { fun updateAccountsList() { defaultAccountFound.value = false // Do not assume a default account will still be found - + defaultAccountViewModel.value?.destroy() accounts.value.orEmpty().forEach(AccountSettingsViewModel::destroy) + val list = arrayListOf() if (coreContext.core.accountList.isNotEmpty()) { val defaultAccount = coreContext.core.defaultAccount