Add functions trackRecentlyVisitedRoom and getRecentlyVisitedRooms
This commit is contained in:
parent
5a08a4b5a3
commit
124426e44b
3 changed files with 27 additions and 0 deletions
|
|
@ -91,4 +91,7 @@ interface MatrixClient : Closeable {
|
||||||
fun roomMembershipObserver(): RoomMembershipObserver
|
fun roomMembershipObserver(): RoomMembershipObserver
|
||||||
|
|
||||||
fun isMe(userId: UserId?) = userId == sessionId
|
fun isMe(userId: UserId?) = userId == sessionId
|
||||||
|
|
||||||
|
suspend fun trackRecentlyVisitedRoom(roomId: RoomId): Result<Unit>
|
||||||
|
suspend fun getRecentlyVisitedRooms(): Result<List<RoomId>>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -438,6 +438,18 @@ class RustMatrixClient(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun trackRecentlyVisitedRoom(roomId: RoomId): Result<Unit> = withContext(sessionDispatcher) {
|
||||||
|
runCatching {
|
||||||
|
client.trackRecentlyVisitedRoom(roomId.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getRecentlyVisitedRooms(): Result<List<RoomId>> = withContext(sessionDispatcher) {
|
||||||
|
runCatching {
|
||||||
|
client.getRecentlyVisitedRooms().map(::RoomId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun syncService(): SyncService = rustSyncService
|
override fun syncService(): SyncService = rustSyncService
|
||||||
|
|
||||||
override fun sessionVerificationService(): SessionVerificationService = verificationService
|
override fun sessionVerificationService(): SessionVerificationService = verificationService
|
||||||
|
|
|
||||||
|
|
@ -255,4 +255,16 @@ class FakeMatrixClient(
|
||||||
fun givenRemoveAvatarResult(result: Result<Unit>) {
|
fun givenRemoveAvatarResult(result: Result<Unit>) {
|
||||||
removeAvatarResult = result
|
removeAvatarResult = result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val visitedRoomsId: MutableList<RoomId> = mutableListOf()
|
||||||
|
|
||||||
|
override suspend fun trackRecentlyVisitedRoom(roomId: RoomId): Result<Unit> {
|
||||||
|
visitedRoomsId.removeAll { it == roomId }
|
||||||
|
visitedRoomsId.add(0, roomId)
|
||||||
|
return Result.success(Unit)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getRecentlyVisitedRooms(): Result<List<RoomId>> {
|
||||||
|
return Result.success(visitedRoomsId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue