From 1f86a4d2c42e3e30a8d8db54f7669b6dffaa4450 Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Fri, 9 Jan 2026 17:19:35 +0100 Subject: [PATCH] Remove previously used id filtering from `RoomSyncSubscriber` (#5985) This is done in the SDK, doing it in the client was a source of issues. --- .../matrix/impl/room/RoomSyncSubscriber.kt | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomSyncSubscriber.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomSyncSubscriber.kt index 724e3f62f0..bf31c2edf3 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomSyncSubscriber.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RoomSyncSubscriber.kt @@ -21,18 +21,14 @@ class RoomSyncSubscriber( private val roomListService: RoomListService, private val dispatchers: CoroutineDispatchers, ) { - private val subscribedRoomIds = mutableSetOf() private val mutex = Mutex() suspend fun subscribe(roomId: RoomId) { mutex.withLock { withContext(dispatchers.io) { try { - if (!isSubscribedTo(roomId)) { - Timber.d("Subscribing to room $roomId}") - roomListService.subscribeToRooms(listOf(roomId.value)) - } - subscribedRoomIds.add(roomId) + Timber.d("Subscribing to room $roomId}") + roomListService.subscribeToRooms(listOf(roomId.value)) } catch (exception: Exception) { Timber.e(exception, "Failed to subscribe to room $roomId") } @@ -43,12 +39,8 @@ class RoomSyncSubscriber( suspend fun batchSubscribe(roomIds: List) = mutex.withLock { withContext(dispatchers.io) { try { - val roomIdsToSubscribeTo = roomIds.filterNot { isSubscribedTo(it) } - if (roomIdsToSubscribeTo.isNotEmpty()) { - Timber.d("Subscribing to rooms: $roomIds") - roomListService.subscribeToRooms(roomIdsToSubscribeTo.map { it.value }) - subscribedRoomIds.addAll(roomIds) - } + Timber.d("Subscribing to rooms: $roomIds") + roomListService.subscribeToRooms(roomIds.map { it.value }) } catch (cancellationException: CancellationException) { throw cancellationException } catch (exception: Exception) { @@ -56,8 +48,4 @@ class RoomSyncSubscriber( } } } - - fun isSubscribedTo(roomId: RoomId): Boolean { - return subscribedRoomIds.contains(roomId) - } }