@@ -46,13 +46,13 @@ import io.element.android.libraries.architecture.waitForChildAttached
46
46
import io.element.android.libraries.core.uri.ensureProtocol
47
47
import io.element.android.libraries.deeplink.api.DeeplinkData
48
48
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
49
- import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
50
49
import io.element.android.libraries.matrix.api.core.SessionId
51
50
import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias
52
51
import io.element.android.libraries.matrix.api.permalink.PermalinkData
53
52
import io.element.android.libraries.oidc.api.OidcAction
54
53
import io.element.android.libraries.oidc.api.OidcActionFlow
55
54
import io.element.android.libraries.sessionstorage.api.LoggedInState
55
+ import io.element.android.libraries.sessionstorage.api.SessionStore
56
56
import kotlinx.coroutines.flow.distinctUntilChanged
57
57
import kotlinx.coroutines.flow.launchIn
58
58
import kotlinx.coroutines.flow.onEach
@@ -64,7 +64,7 @@ import timber.log.Timber
64
64
class RootFlowNode (
65
65
@Assisted val buildContext : BuildContext ,
66
66
@Assisted plugins : List <Plugin >,
67
- private val authenticationService : MatrixAuthenticationService ,
67
+ private val sessionStore : SessionStore ,
68
68
private val accountProviderAccessControl : AccountProviderAccessControl ,
69
69
private val navStateFlowFactory : RootNavStateFlowFactory ,
70
70
private val matrixSessionCache : MatrixSessionCache ,
@@ -152,7 +152,7 @@ class RootFlowNode(
152
152
onSuccess : (SessionId ) -> Unit ,
153
153
onFailure : () -> Unit
154
154
) {
155
- val latestSessionId = authenticationService .getLatestSessionId()
155
+ val latestSessionId = sessionStore .getLatestSessionId()
156
156
if (latestSessionId == null ) {
157
157
onFailure()
158
158
return
@@ -268,7 +268,7 @@ class RootFlowNode(
268
268
269
269
private suspend fun onLoginLink (params : LoginParams ) {
270
270
// Is there a session already?
271
- val latestSessionId = authenticationService .getLatestSessionId()
271
+ val latestSessionId = sessionStore .getLatestSessionId()
272
272
if (latestSessionId == null ) {
273
273
// No session, open login
274
274
if (accountProviderAccessControl.isAllowedToConnectToAccountProvider(params.accountProvider.ensureProtocol())) {
@@ -285,7 +285,7 @@ class RootFlowNode(
285
285
286
286
private suspend fun onIncomingShare (intent : Intent ) {
287
287
// Is there a session already?
288
- val latestSessionId = authenticationService .getLatestSessionId()
288
+ val latestSessionId = sessionStore .getLatestSessionId()
289
289
if (latestSessionId == null ) {
290
290
// No session, open login
291
291
switchToNotLoggedInFlow(null )
@@ -342,3 +342,5 @@ class RootFlowNode(
342
342
.attachSession()
343
343
}
344
344
}
345
+
346
+ private suspend fun SessionStore.getLatestSessionId () = getLatestSession()?.userId?.let (::SessionId )
0 commit comments