diff --git a/vector/src/main/java/im/vector/riotx/VectorApplication.kt b/vector/src/main/java/im/vector/riotx/VectorApplication.kt index ab7c3e1bf7..d49c7a4c7b 100644 --- a/vector/src/main/java/im/vector/riotx/VectorApplication.kt +++ b/vector/src/main/java/im/vector/riotx/VectorApplication.kt @@ -137,8 +137,12 @@ class VectorApplication : if (authenticationService.hasAuthenticatedSessions() && !activeSessionHolder.hasActiveSession()) { val lastAuthenticatedSession = authenticationService.getLastAuthenticatedSession()!! activeSessionHolder.setActiveSession(lastAuthenticatedSession) - lastAuthenticatedSession.configureAndStart(applicationContext, pushRuleTriggerListener, sessionListener) - lastAuthenticatedSession.callSignalingService().addCallListener(webRtcPeerConnectionManager) + lastAuthenticatedSession.configureAndStart( + applicationContext, + pushRuleTriggerListener, + webRtcPeerConnectionManager, + sessionListener + ) } ProcessLifecycleOwner.get().lifecycle.addObserver(object : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) diff --git a/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt b/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt index 29b169ffd4..788ab01c4d 100644 --- a/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt +++ b/vector/src/main/java/im/vector/riotx/core/extensions/Session.kt @@ -24,12 +24,14 @@ import im.vector.matrix.android.api.session.Session import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState import im.vector.matrix.android.api.session.sync.FilterService import im.vector.riotx.core.services.VectorSyncService +import im.vector.riotx.features.call.WebRtcPeerConnectionManager import im.vector.riotx.features.notifications.PushRuleTriggerListener import im.vector.riotx.features.session.SessionListener import timber.log.Timber fun Session.configureAndStart(context: Context, pushRuleTriggerListener: PushRuleTriggerListener, + webRtcPeerConnectionManager: WebRtcPeerConnectionManager, sessionListener: SessionListener) { open() addListener(sessionListener) @@ -38,6 +40,7 @@ fun Session.configureAndStart(context: Context, startSyncing(context) refreshPushers() pushRuleTriggerListener.startWithSession(this) + callSignalingService().addCallListener(webRtcPeerConnectionManager) } fun Session.startSyncing(context: Context) { diff --git a/vector/src/main/java/im/vector/riotx/features/login/LoginViewModel.kt b/vector/src/main/java/im/vector/riotx/features/login/LoginViewModel.kt index 7edc674b11..f85d91d9c5 100644 --- a/vector/src/main/java/im/vector/riotx/features/login/LoginViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/login/LoginViewModel.kt @@ -667,8 +667,11 @@ class LoginViewModel @AssistedInject constructor( private fun onSessionCreated(session: Session) { activeSessionHolder.setActiveSession(session) - session.configureAndStart(applicationContext, pushRuleTriggerListener, sessionListener) - session.callSignalingService().addCallListener(webRtcPeerConnectionManager) + session.configureAndStart( + applicationContext, + pushRuleTriggerListener, + webRtcPeerConnectionManager, + sessionListener) setState { copy( asyncLoginAction = Success(Unit)