diff --git a/appnav/src/main/kotlin/io/element/android/appnav/di/MatrixSessionCache.kt b/appnav/src/main/kotlin/io/element/android/appnav/di/MatrixSessionCache.kt index 302a12d99b..0941c7c8cc 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/di/MatrixSessionCache.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/di/MatrixSessionCache.kt @@ -42,12 +42,7 @@ class MatrixSessionCache @Inject constructor( init { authenticationService.listenToNewMatrixClients { matrixClient -> - val syncOrchestrator = syncOrchestratorFactory.create(matrixClient) - sessionIdsToMatrixSession[matrixClient.sessionId] = InMemoryMatrixSession( - matrixClient = matrixClient, - syncOrchestrator = syncOrchestrator, - ) - syncOrchestrator.start() + onMatrixClient(matrixClient) } } @@ -105,17 +100,21 @@ class MatrixSessionCache @Inject constructor( Timber.d("Restore matrix session: $sessionId") return authenticationService.restoreSession(sessionId) .onSuccess { matrixClient -> - val syncOrchestrator = syncOrchestratorFactory.create(matrixClient) - sessionIdsToMatrixSession[matrixClient.sessionId] = InMemoryMatrixSession( - matrixClient = matrixClient, - syncOrchestrator = syncOrchestrator, - ) - syncOrchestrator.start() + onMatrixClient(matrixClient) } .onFailure { Timber.e(it, "Fail to restore session") } } + + private fun onMatrixClient(matrixClient: MatrixClient) { + val syncOrchestrator = syncOrchestratorFactory.create(matrixClient) + sessionIdsToMatrixSession[matrixClient.sessionId] = InMemoryMatrixSession( + matrixClient = matrixClient, + syncOrchestrator = syncOrchestrator, + ) + syncOrchestrator.start() + } } private data class InMemoryMatrixSession(