Skip to content

Commit

Permalink
Add functions trackRecentlyVisitedRoom and getRecentlyVisitedRooms
Browse files Browse the repository at this point in the history
  • Loading branch information
bmarty committed Apr 8, 2024
1 parent b6ceb8c commit 6492042
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,7 @@ interface MatrixClient : Closeable {
fun roomMembershipObserver(): RoomMembershipObserver

fun isMe(userId: UserId?) = userId == sessionId

suspend fun trackRecentlyVisitedRoom(roomId: RoomId): Result<Unit>
suspend fun getRecentlyVisitedRooms(): Result<List<RoomId>>
}
Original file line number Diff line number Diff line change
Expand Up @@ -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 sessionVerificationService(): SessionVerificationService = verificationService
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -255,4 +255,16 @@ class FakeMatrixClient(
fun givenRemoveAvatarResult(result: Result<Unit>) {
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)
}
}

0 comments on commit 6492042

Please sign in to comment.