Makes MatrixClient Closeable outside of logout function.
This commit is contained in:
parent
3a8ff32f0e
commit
cfefe89b3e
3 changed files with 7 additions and 4 deletions
|
|
@ -22,8 +22,9 @@ import io.element.android.libraries.matrix.api.media.MediaResolver
|
||||||
import io.element.android.libraries.matrix.api.room.MatrixRoom
|
import io.element.android.libraries.matrix.api.room.MatrixRoom
|
||||||
import io.element.android.libraries.matrix.api.room.RoomSummaryDataSource
|
import io.element.android.libraries.matrix.api.room.RoomSummaryDataSource
|
||||||
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
|
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
|
||||||
|
import java.io.Closeable
|
||||||
|
|
||||||
interface MatrixClient {
|
interface MatrixClient : Closeable {
|
||||||
val sessionId: SessionId
|
val sessionId: SessionId
|
||||||
val roomSummaryDataSource: RoomSummaryDataSource
|
val roomSummaryDataSource: RoomSummaryDataSource
|
||||||
fun getRoom(roomId: RoomId): MatrixRoom?
|
fun getRoom(roomId: RoomId): MatrixRoom?
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,7 @@ class RustMatrixClient constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun close() {
|
override fun close() {
|
||||||
slidingSyncUpdateJob?.cancel()
|
slidingSyncUpdateJob?.cancel()
|
||||||
stopSync()
|
stopSync()
|
||||||
slidingSync.setObserver(null)
|
slidingSync.setObserver(null)
|
||||||
|
|
@ -179,10 +179,10 @@ class RustMatrixClient constructor(
|
||||||
visibleRoomsSlidingSyncList.destroy()
|
visibleRoomsSlidingSyncList.destroy()
|
||||||
slidingSync.destroy()
|
slidingSync.destroy()
|
||||||
verificationService.destroy()
|
verificationService.destroy()
|
||||||
|
client.destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun logout() = withContext(dispatchers.io) {
|
override suspend fun logout() = withContext(dispatchers.io) {
|
||||||
close()
|
|
||||||
try {
|
try {
|
||||||
client.logout()
|
client.logout()
|
||||||
} catch (failure: Throwable) {
|
} catch (failure: Throwable) {
|
||||||
|
|
@ -190,7 +190,7 @@ class RustMatrixClient constructor(
|
||||||
}
|
}
|
||||||
baseDirectory.deleteSessionDirectory(userID = client.userId())
|
baseDirectory.deleteSessionDirectory(userID = client.userId())
|
||||||
sessionStore.removeSession(client.userId())
|
sessionStore.removeSession(client.userId())
|
||||||
client.destroy()
|
close()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun loadUserDisplayName(): Result<String> = withContext(dispatchers.io) {
|
override suspend fun loadUserDisplayName(): Result<String> = withContext(dispatchers.io) {
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,8 @@ class FakeMatrixClient(
|
||||||
logoutFailure?.let { throw it }
|
logoutFailure?.let { throw it }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun close() = Unit
|
||||||
|
|
||||||
override suspend fun loadUserDisplayName(): Result<String> {
|
override suspend fun loadUserDisplayName(): Result<String> {
|
||||||
return userDisplayName
|
return userDisplayName
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue