From e8f94a489f640d47d3bfb59b4f5c4e6ec5d934e8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 26 Apr 2023 16:31:29 +0200 Subject: [PATCH] Add/remove friend list listener when created/destroyed while app is alive --- .../java/org/linphone/contact/ContactsManager.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/java/org/linphone/contact/ContactsManager.kt b/app/src/main/java/org/linphone/contact/ContactsManager.kt index 401f2c560..623cc1be9 100644 --- a/app/src/main/java/org/linphone/contact/ContactsManager.kt +++ b/app/src/main/java/org/linphone/contact/ContactsManager.kt @@ -92,6 +92,16 @@ class ContactsManager(private val context: Context) { } } + private val coreListener: CoreListenerStub = object : CoreListenerStub() { + override fun onFriendListCreated(core: Core, friendList: FriendList) { + friendList.addListener(friendListListener) + } + + override fun onFriendListRemoved(core: Core, friendList: FriendList) { + friendList.removeListener(friendListListener) + } + } + init { initSyncAccount() @@ -109,6 +119,7 @@ class ContactsManager(private val context: Context) { ) val core = coreContext.core + core.addListener(coreListener) for (list in core.friendsLists) { list.addListener(friendListListener) } @@ -236,6 +247,7 @@ class ContactsManager(private val context: Context) { fun destroy() { val core = coreContext.core for (list in core.friendsLists) list.removeListener(friendListListener) + core.removeListener(coreListener) } private fun initSyncAccount() {