diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index fce3f35c8..d90088e84 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -499,8 +499,12 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C fun postOnCoreThread( @WorkerThread lambda: (core: Core) -> Unit ) { - coreThread.post { - lambda.invoke(core) + if (::coreThread.isInitialized) { + coreThread.post { + lambda.invoke(core) + } + } else { + Log.e("$TAG Core's thread not initialized yet!") } } @@ -509,9 +513,13 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C @WorkerThread lambda: (core: Core) -> Unit, delay: Long ) { - coreThread.postDelayed({ - lambda.invoke(core) - }, delay) + if (::coreThread.isInitialized) { + coreThread.postDelayed({ + lambda.invoke(core) + }, delay) + } else { + Log.e("$TAG Core's thread not initialized yet!") + } } @AnyThread diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/PermissionsFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/PermissionsFragment.kt index 73742369f..562ae8936 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/PermissionsFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/PermissionsFragment.kt @@ -148,12 +148,20 @@ class PermissionsFragment : GenericFragment() { if (core.accountList.isNotEmpty()) { coreContext.postOnMainThread { Log.w("$TAG At least one account was found, leaving assistant") - requireActivity().finish() + try { + requireActivity().finish() + } catch (ise: IllegalStateException) { + Log.e("$TAG Failed to finish activity: $ise") + } } } else { coreContext.postOnMainThread { Log.w("$TAG No account was found, going to landing fragment") - goToLoginFragment() + try { + goToLoginFragment() + } catch (ise: IllegalStateException) { + Log.e("$TAG Failed to navigate to login fragment: $ise") + } } } }