From cc38e3936be9d90124746491ba4c492325d35ad9 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 394195db6..ecd29b9ba 100644 --- a/app/src/main/java/org/linphone/contact/ContactsManager.kt +++ b/app/src/main/java/org/linphone/contact/ContactsManager.kt @@ -91,6 +91,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() @@ -99,6 +109,7 @@ class ContactsManager(private val context: Context) { groupBitmap = BitmapFactory.decodeResource(context.resources, R.drawable.voip_multiple_contacts_avatar_alt) val core = coreContext.core + core.addListener(coreListener) for (list in core.friendsLists) { list.addListener(friendListListener) } @@ -224,6 +235,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() {