Trying not to start Core in Application, only Config
This commit is contained in:
parent
cec6d307d0
commit
72eb711d98
6 changed files with 20 additions and 12 deletions
|
@ -41,9 +41,8 @@ class LinphoneApplication : Application(), ImageLoaderFactory {
|
||||||
@SuppressLint("StaticFieldLeak")
|
@SuppressLint("StaticFieldLeak")
|
||||||
lateinit var coreContext: CoreContext
|
lateinit var coreContext: CoreContext
|
||||||
|
|
||||||
fun ensureCoreExists(context: Context, pushReceived: Boolean = false) {
|
private fun createConfig(context: Context) {
|
||||||
if (::coreContext.isInitialized && !coreContext.stopped) {
|
if (::corePreferences.isInitialized) {
|
||||||
Log.d("[Application] Skipping Core creation (push received? $pushReceived)")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,8 +69,17 @@ class LinphoneApplication : Application(), ImageLoaderFactory {
|
||||||
Factory.instance().loggingService.setLogLevel(LogLevel.Message)
|
Factory.instance().loggingService.setLogLevel(LogLevel.Message)
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i("[Application] Core context created ${if (pushReceived) "from push" else ""}")
|
Log.i("[Application] Core config & preferences created")
|
||||||
coreContext = CoreContext(context, config)
|
}
|
||||||
|
|
||||||
|
fun ensureCoreExists(context: Context, pushReceived: Boolean = false) {
|
||||||
|
if (::coreContext.isInitialized && !coreContext.stopped) {
|
||||||
|
Log.d("[Application] Skipping Core creation (push received? $pushReceived)")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.i("[Application] Core context is being created ${if (pushReceived) "from push" else ""}")
|
||||||
|
coreContext = CoreContext(context, corePreferences.config)
|
||||||
coreContext.start()
|
coreContext.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +88,7 @@ class LinphoneApplication : Application(), ImageLoaderFactory {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
val appName = getString(R.string.app_name)
|
val appName = getString(R.string.app_name)
|
||||||
android.util.Log.i("[$appName]", "Application is being created")
|
android.util.Log.i("[$appName]", "Application is being created")
|
||||||
ensureCoreExists(applicationContext)
|
createConfig(applicationContext)
|
||||||
Log.i("[Application] Created")
|
Log.i("[Application] Created")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ import androidx.window.layout.WindowInfoTracker
|
||||||
import androidx.window.layout.WindowLayoutInfo
|
import androidx.window.layout.WindowLayoutInfo
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.collect
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
import org.linphone.LinphoneApplication.Companion.corePreferences
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
|
@ -54,6 +53,7 @@ abstract class GenericActivity : AppCompatActivity() {
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
Log.i("[Generic Activity] Ensuring Core exists")
|
||||||
ensureCoreExists(applicationContext)
|
ensureCoreExists(applicationContext)
|
||||||
|
|
||||||
lifecycleScope.launch(Dispatchers.Main) {
|
lifecycleScope.launch(Dispatchers.Main) {
|
||||||
|
|
|
@ -28,7 +28,6 @@ import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import org.linphone.core.tools.Log
|
|
||||||
|
|
||||||
// Below classes are required to be able to create our DummySyncService...
|
// Below classes are required to be able to create our DummySyncService...
|
||||||
internal class DummyAuthenticator(context: Context) : AbstractAccountAuthenticator(context) {
|
internal class DummyAuthenticator(context: Context) : AbstractAccountAuthenticator(context) {
|
||||||
|
@ -89,7 +88,6 @@ class DummyAuthenticationService : Service() {
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
authenticator = DummyAuthenticator(this)
|
authenticator = DummyAuthenticator(this)
|
||||||
Log.i("[Dummy Auth Service] Authenticator created")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBind(intent: Intent): IBinder {
|
override fun onBind(intent: Intent): IBinder {
|
||||||
|
|
|
@ -24,7 +24,6 @@ import android.app.Service
|
||||||
import android.content.*
|
import android.content.*
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import org.linphone.core.tools.Log
|
|
||||||
|
|
||||||
// Below classes are required to be able to use our own contact MIME type entry...
|
// Below classes are required to be able to use our own contact MIME type entry...
|
||||||
class DummySyncAdapter(context: Context, autoInit: Boolean) : AbstractThreadedSyncAdapter(context, autoInit) {
|
class DummySyncAdapter(context: Context, autoInit: Boolean) : AbstractThreadedSyncAdapter(context, autoInit) {
|
||||||
|
@ -45,10 +44,8 @@ class DummySyncService : Service() {
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
synchronized(syncAdapterLock) {
|
synchronized(syncAdapterLock) {
|
||||||
Log.i("[Dummy Sync Adapter] Sync Service created")
|
|
||||||
if (syncAdapter == null) {
|
if (syncAdapter == null) {
|
||||||
syncAdapter = DummySyncAdapter(applicationContext, true)
|
syncAdapter = DummySyncAdapter(applicationContext, true)
|
||||||
Log.i("[Dummy Sync Adapter] Sync Adapter created")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ package org.linphone.core
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||||
import org.linphone.LinphoneApplication.Companion.corePreferences
|
import org.linphone.LinphoneApplication.Companion.corePreferences
|
||||||
|
import org.linphone.LinphoneApplication.Companion.ensureCoreExists
|
||||||
import org.linphone.core.tools.Log
|
import org.linphone.core.tools.Log
|
||||||
import org.linphone.core.tools.service.CoreService
|
import org.linphone.core.tools.service.CoreService
|
||||||
|
|
||||||
|
@ -29,6 +30,9 @@ class CoreService : CoreService() {
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
|
|
||||||
|
Log.i("[Service] Ensuring Core exists")
|
||||||
|
ensureCoreExists(applicationContext)
|
||||||
|
|
||||||
coreContext.notificationsManager.service = this
|
coreContext.notificationsManager.service = this
|
||||||
Log.i("[Service] Created")
|
Log.i("[Service] Created")
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.linphone.core.tools.Log
|
||||||
class NotificationBroadcastReceiver : BroadcastReceiver() {
|
class NotificationBroadcastReceiver : BroadcastReceiver() {
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
val notificationId = intent.getIntExtra(NotificationsManager.INTENT_NOTIF_ID, 0)
|
val notificationId = intent.getIntExtra(NotificationsManager.INTENT_NOTIF_ID, 0)
|
||||||
|
Log.i("[Notification Broadcast Receiver] Got notification broadcast for ID [$notificationId]")
|
||||||
|
|
||||||
if (intent.action == NotificationsManager.INTENT_REPLY_NOTIF_ACTION || intent.action == NotificationsManager.INTENT_MARK_AS_READ_ACTION) {
|
if (intent.action == NotificationsManager.INTENT_REPLY_NOTIF_ACTION || intent.action == NotificationsManager.INTENT_MARK_AS_READ_ACTION) {
|
||||||
handleChatIntent(context, intent, notificationId)
|
handleChatIntent(context, intent, notificationId)
|
||||||
|
|
Loading…
Reference in a new issue