diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index a8fa2b3eb..4ff3476d1 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -55,6 +55,10 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C lateinit var core: Core + fun isCoreAvailable(): Boolean { + return ::core.isInitialized + } + val contactsManager = ContactsManager() val notificationsManager = NotificationsManager(context) diff --git a/app/src/main/java/org/linphone/core/CoreFileTransferService.kt b/app/src/main/java/org/linphone/core/CoreFileTransferService.kt index 94807270d..c9f30a917 100644 --- a/app/src/main/java/org/linphone/core/CoreFileTransferService.kt +++ b/app/src/main/java/org/linphone/core/CoreFileTransferService.kt @@ -44,6 +44,8 @@ class CoreFileTransferService : FileTransferService() { var builder = NotificationCompat.Builder(this, SERVICE_NOTIFICATION_CHANNEL_ID) + var listenerAdded = false + private val coreListener = object : CoreListenerStub() { @WorkerThread override fun onRemainingNumberOfFileTransferChanged( @@ -57,12 +59,19 @@ class CoreFileTransferService : FileTransferService() { override fun onCreate() { super.onCreate() - coreContext.core.addListener(coreListener) + if (!listenerAdded && coreContext.isCoreAvailable()) { + coreContext.core.addListener(coreListener) + listenerAdded = true + } Log.i("$TAG Created") } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { Log.i("$TAG onStartCommand") + if (!listenerAdded && coreContext.isCoreAvailable()) { + coreContext.core.addListener(coreListener) + listenerAdded = true + } return super.onStartCommand(intent, flags, startId) } @@ -74,6 +83,7 @@ class CoreFileTransferService : FileTransferService() { override fun onDestroy() { Log.i("$TAG onDestroy") coreContext.core.removeListener(coreListener) + listenerAdded = false super.onDestroy() } diff --git a/app/src/main/java/org/linphone/telecom/TelecomManager.kt b/app/src/main/java/org/linphone/telecom/TelecomManager.kt index e302720bc..2b04dae99 100644 --- a/app/src/main/java/org/linphone/telecom/TelecomManager.kt +++ b/app/src/main/java/org/linphone/telecom/TelecomManager.kt @@ -164,7 +164,7 @@ class TelecomManager @WorkerThread constructor(context: Context) { Log.i("$TAG Call added to Telecom's CallsManager") } } catch (e: Exception) { - Log.e("$TAG Failed to add call to Telecom's CallsManager!") + Log.e("$TAG Failed to add call to Telecom's CallsManager: $e") } } }