From 5f5885cb184736784cf52c53232fda12c3ca1f0b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 16 Nov 2023 22:31:04 +0100 Subject: [PATCH] Fixed race condition issue on avatarsMap + listener removed by mistake --- app/src/main/java/org/linphone/contacts/ContactsManager.kt | 6 +++--- .../org/linphone/ui/main/fragment/DrawerMenuFragment.kt | 4 +++- .../linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt | 4 ++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/linphone/contacts/ContactsManager.kt b/app/src/main/java/org/linphone/contacts/ContactsManager.kt index f5fd1ee3a..0e7e46618 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsManager.kt +++ b/app/src/main/java/org/linphone/contacts/ContactsManager.kt @@ -127,10 +127,10 @@ class ContactsManager @UiThread constructor(context: Context) { fun onNativeContactsLoaded() { nativeContactsLoaded = true - avatarsMap.values.forEach(ContactAvatarModel::destroy) - avatarsMap.clear() - coreContext.postOnCoreThread { + avatarsMap.values.forEach(ContactAvatarModel::destroy) + avatarsMap.clear() + notifyContactsListChanged() } } diff --git a/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt b/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt index 4001b07e8..6371478c3 100644 --- a/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/fragment/DrawerMenuFragment.kt @@ -116,7 +116,9 @@ class DrawerMenuFragment : GenericFragment() { viewModel.defaultAccountChangedEvent.observe(viewLifecycleOwner) { it.consume { identity -> - Log.w("$TAG Default account has changed, now is [$identity], closing side menu in 500ms") + Log.w( + "$TAG Default account has changed, now is [$identity], closing side menu in 500ms" + ) sharedViewModel.defaultAccountChangedEvent.value = Event(true) lifecycleScope.launch { diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt index 7147e986b..7d7ae12d6 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/AbstractTopBarViewModel.kt @@ -121,6 +121,10 @@ open class AbstractTopBarViewModel @UiThread constructor() : ViewModel() { init { searchBarVisible.value = false + coreContext.postOnCoreThread { core -> + core.addListener(coreListener) + } + update() }