From ff6d722e44d12919441a79ad2f3f117631ccd747 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Sat, 18 Nov 2023 16:03:19 +0100 Subject: [PATCH] Attempt to fix random dead lock when app starts --- .../java/org/linphone/contacts/ContactsManager.kt | 15 ++++++--------- .../main/java/org/linphone/core/CoreContext.kt | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/linphone/contacts/ContactsManager.kt b/app/src/main/java/org/linphone/contacts/ContactsManager.kt index 1c45e9513..818feb683 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsManager.kt +++ b/app/src/main/java/org/linphone/contacts/ContactsManager.kt @@ -21,7 +21,6 @@ package org.linphone.contacts import android.Manifest import android.content.ContentUris -import android.content.Context import android.content.pm.PackageManager import android.database.Cursor import android.graphics.Bitmap @@ -52,7 +51,7 @@ import org.linphone.utils.ImageUtils import org.linphone.utils.LinphoneUtils import org.linphone.utils.PhoneNumberUtils -class ContactsManager @UiThread constructor(context: Context) { +class ContactsManager @UiThread constructor() { companion object { private const val TAG = "[Contacts Manager]" } @@ -125,16 +124,14 @@ class ContactsManager @UiThread constructor(context: Context) { } } - @UiThread + @WorkerThread fun onNativeContactsLoaded() { nativeContactsLoaded = true - coreContext.postOnCoreThread { - avatarsMap.values.forEach(ContactAvatarModel::destroy) - avatarsMap.clear() + avatarsMap.values.forEach(ContactAvatarModel::destroy) + avatarsMap.clear() - notifyContactsListChanged() - } + notifyContactsListChanged() } @WorkerThread @@ -181,7 +178,7 @@ class ContactsManager @UiThread constructor(context: Context) { } } else { Log.i( - "$TAG Friend wasn't found using SIP URI [$sipUri] and username [$username] isn't a phone number, looking in native address book directly" + "$TAG Friend wasn't found using SIP URI [$sipUri] and username [$username] isn't a phone number, looking in native address book directly" ) findNativeContact(sipUri, false) } diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 4f018075e..333066cf3 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -53,7 +53,7 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C val emojiCompat: EmojiCompat - val contactsManager = ContactsManager(context) + val contactsManager = ContactsManager() val notificationsManager = NotificationsManager(context)