Remove MatrixAuthenticationService.loggedInStateFlow()
This commit is contained in:
parent
8e819d48ed
commit
d9755234dc
4 changed files with 3 additions and 19 deletions
|
|
@ -12,9 +12,9 @@ import com.bumble.appyx.core.state.SavedStateMap
|
||||||
import dev.zacsweers.metro.Inject
|
import dev.zacsweers.metro.Inject
|
||||||
import io.element.android.appnav.di.MatrixSessionCache
|
import io.element.android.appnav.di.MatrixSessionCache
|
||||||
import io.element.android.features.preferences.api.CacheService
|
import io.element.android.features.preferences.api.CacheService
|
||||||
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
|
|
||||||
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
|
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
|
||||||
import io.element.android.libraries.preferences.api.store.SessionPreferencesStoreFactory
|
import io.element.android.libraries.preferences.api.store.SessionPreferencesStoreFactory
|
||||||
|
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.combine
|
import kotlinx.coroutines.flow.combine
|
||||||
import kotlinx.coroutines.flow.flow
|
import kotlinx.coroutines.flow.flow
|
||||||
|
|
@ -28,7 +28,7 @@ private const val SAVE_INSTANCE_KEY = "io.element.android.x.RootNavStateFlowFact
|
||||||
*/
|
*/
|
||||||
@Inject
|
@Inject
|
||||||
class RootNavStateFlowFactory(
|
class RootNavStateFlowFactory(
|
||||||
private val authenticationService: MatrixAuthenticationService,
|
private val sessionStore: SessionStore,
|
||||||
private val cacheService: CacheService,
|
private val cacheService: CacheService,
|
||||||
private val matrixSessionCache: MatrixSessionCache,
|
private val matrixSessionCache: MatrixSessionCache,
|
||||||
private val imageLoaderHolder: ImageLoaderHolder,
|
private val imageLoaderHolder: ImageLoaderHolder,
|
||||||
|
|
@ -39,7 +39,7 @@ class RootNavStateFlowFactory(
|
||||||
fun create(savedStateMap: SavedStateMap?): Flow<RootNavState> {
|
fun create(savedStateMap: SavedStateMap?): Flow<RootNavState> {
|
||||||
return combine(
|
return combine(
|
||||||
cacheIndexFlow(savedStateMap),
|
cacheIndexFlow(savedStateMap),
|
||||||
authenticationService.loggedInStateFlow(),
|
sessionStore.loggedInStateFlow(),
|
||||||
) { cacheIndex, loggedInState ->
|
) { cacheIndex, loggedInState ->
|
||||||
RootNavState(
|
RootNavState(
|
||||||
cacheIndex = cacheIndex,
|
cacheIndex = cacheIndex,
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,9 @@ import io.element.android.libraries.matrix.api.auth.external.ExternalSession
|
||||||
import io.element.android.libraries.matrix.api.auth.qrlogin.MatrixQrCodeLoginData
|
import io.element.android.libraries.matrix.api.auth.qrlogin.MatrixQrCodeLoginData
|
||||||
import io.element.android.libraries.matrix.api.auth.qrlogin.QrCodeLoginStep
|
import io.element.android.libraries.matrix.api.auth.qrlogin.QrCodeLoginStep
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
import io.element.android.libraries.sessionstorage.api.LoggedInState
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
|
||||||
interface MatrixAuthenticationService {
|
interface MatrixAuthenticationService {
|
||||||
fun loggedInStateFlow(): Flow<LoggedInState>
|
|
||||||
suspend fun getLatestSessionId(): SessionId?
|
suspend fun getLatestSessionId(): SessionId?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -33,11 +33,9 @@ import io.element.android.libraries.matrix.impl.keys.PassphraseGenerator
|
||||||
import io.element.android.libraries.matrix.impl.mapper.toSessionData
|
import io.element.android.libraries.matrix.impl.mapper.toSessionData
|
||||||
import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
||||||
import io.element.android.libraries.matrix.impl.paths.SessionPathsFactory
|
import io.element.android.libraries.matrix.impl.paths.SessionPathsFactory
|
||||||
import io.element.android.libraries.sessionstorage.api.LoggedInState
|
|
||||||
import io.element.android.libraries.sessionstorage.api.LoginType
|
import io.element.android.libraries.sessionstorage.api.LoginType
|
||||||
import io.element.android.libraries.sessionstorage.api.SessionStore
|
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
|
@ -83,10 +81,6 @@ class RustMatrixAuthenticationService(
|
||||||
.also { sessionPaths = it }
|
.also { sessionPaths = it }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun loggedInStateFlow(): Flow<LoggedInState> {
|
|
||||||
return sessionStore.isLoggedIn()
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun getLatestSessionId(): SessionId? = withContext(coroutineDispatchers.io) {
|
override suspend fun getLatestSessionId(): SessionId? = withContext(coroutineDispatchers.io) {
|
||||||
sessionStore.getLatestSession()?.userId?.let { SessionId(it) }
|
sessionStore.getLatestSession()?.userId?.let { SessionId(it) }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,14 +19,11 @@ import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
import io.element.android.libraries.matrix.test.A_USER_ID
|
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.sessionstorage.api.LoggedInState
|
|
||||||
import io.element.android.tests.testutils.lambda.lambdaError
|
import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import io.element.android.tests.testutils.simulateLongTask
|
import io.element.android.tests.testutils.simulateLongTask
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.flowOf
|
|
||||||
|
|
||||||
val A_OIDC_DATA = OidcDetails(url = "a-url")
|
val A_OIDC_DATA = OidcDetails(url = "a-url")
|
||||||
|
|
||||||
|
|
@ -46,10 +43,6 @@ class FakeMatrixAuthenticationService(
|
||||||
|
|
||||||
var getLatestSessionIdLambda: (() -> SessionId?) = { null }
|
var getLatestSessionIdLambda: (() -> SessionId?) = { null }
|
||||||
|
|
||||||
override fun loggedInStateFlow(): Flow<LoggedInState> {
|
|
||||||
return flowOf(LoggedInState.NotLoggedIn)
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun getLatestSessionId(): SessionId? = getLatestSessionIdLambda()
|
override suspend fun getLatestSessionId(): SessionId? = getLatestSessionIdLambda()
|
||||||
|
|
||||||
override suspend fun restoreSession(sessionId: SessionId): Result<MatrixClient> {
|
override suspend fun restoreSession(sessionId: SessionId): Result<MatrixClient> {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue