[Element Call] Keep MatrixClient alive while the call is working (#1695)

* Element Call: keep MatrixClient alive to get event updates
This commit is contained in:
Jorge Martin Espinosa
2023-10-31 16:58:33 +01:00
committed by GitHub
parent 3bbaf8e5e7
commit 355ee95964
8 changed files with 125 additions and 16 deletions
@@ -25,4 +25,11 @@ interface MatrixClientProvider {
* Most of the time you want to use injected constructor instead of retrieving a MatrixClient with this provider.
*/
suspend fun getOrRestore(sessionId: SessionId): Result<MatrixClient>
/**
* Can be used to retrieve an existing [MatrixClient] with the given [SessionId].
* @param sessionId the [SessionId] of the [MatrixClient] to retrieve.
* @return the [MatrixClient] if it exists.
*/
fun getOrNull(sessionId: SessionId): MatrixClient?
}
@@ -24,4 +24,6 @@ class FakeMatrixClientProvider(
private val getClient: (SessionId) -> Result<MatrixClient> = { Result.success(FakeMatrixClient()) }
) : MatrixClientProvider {
override suspend fun getOrRestore(sessionId: SessionId): Result<MatrixClient> = getClient(sessionId)
override fun getOrNull(sessionId: SessionId): MatrixClient? = getClient(sessionId).getOrNull()
}