diff --git a/features/invitelist/impl/src/test/kotlin/io/element/android/features/invitelist/impl/InviteListPresenterTests.kt b/features/invitelist/impl/src/test/kotlin/io/element/android/features/invitelist/impl/InviteListPresenterTests.kt index cf4f1058e5..cbfcbc3003 100644 --- a/features/invitelist/impl/src/test/kotlin/io/element/android/features/invitelist/impl/InviteListPresenterTests.kt +++ b/features/invitelist/impl/src/test/kotlin/io/element/android/features/invitelist/impl/InviteListPresenterTests.kt @@ -35,8 +35,8 @@ import io.element.android.libraries.matrix.test.A_ROOM_NAME import io.element.android.libraries.matrix.test.A_USER_ID import io.element.android.libraries.matrix.test.A_USER_NAME import io.element.android.libraries.matrix.test.FakeMatrixClient -import io.element.android.libraries.matrix.test.room.FakeRoomSummaryDataSource import io.element.android.libraries.matrix.test.room.FakeMatrixRoom +import io.element.android.libraries.matrix.test.room.FakeRoomSummaryDataSource import kotlinx.coroutines.test.runTest import org.junit.Test @@ -44,10 +44,10 @@ class InviteListPresenterTests { @Test fun `present - starts empty, adds invites when received`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource() + val roomSummaryDataSource = FakeRoomSummaryDataSource() val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), FakeSeenInvitesStore(), ) @@ -57,7 +57,7 @@ class InviteListPresenterTests { val initialState = awaitItem() Truth.assertThat(initialState.inviteList).isEmpty() - invitesDataSource.postRoomSummary(listOf(aRoomSummary())) + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummary())) val withInviteState = awaitItem() Truth.assertThat(withInviteState.inviteList.size).isEqualTo(1) @@ -68,10 +68,10 @@ class InviteListPresenterTests { @Test fun `present - uses user ID and avatar for direct invites`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withDirectChatInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withDirectChatInvitation() val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), FakeSeenInvitesStore(), ) @@ -96,10 +96,10 @@ class InviteListPresenterTests { @Test fun `present - includes sender details for room invites`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), FakeSeenInvitesStore(), ) @@ -122,10 +122,10 @@ class InviteListPresenterTests { @Test fun `present - shows confirm dialog for declining direct chat invites`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withDirectChatInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withDirectChatInvitation() val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), FakeSeenInvitesStore(), ) @@ -146,10 +146,10 @@ class InviteListPresenterTests { @Test fun `present - shows confirm dialog for declining room invites`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), FakeSeenInvitesStore(), ) @@ -170,10 +170,10 @@ class InviteListPresenterTests { @Test fun `present - hides confirm dialog when cancelling`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), FakeSeenInvitesStore(), ) @@ -194,9 +194,9 @@ class InviteListPresenterTests { @Test fun `present - declines invite after confirming`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val client = FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ) val room = FakeMatrixRoom() val presenter = InviteListPresenter(client, FakeSeenInvitesStore()) @@ -220,9 +220,9 @@ class InviteListPresenterTests { @Test fun `present - declines invite after confirming and sets state on error`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val client = FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ) val room = FakeMatrixRoom() val presenter = InviteListPresenter(client, FakeSeenInvitesStore()) @@ -251,9 +251,9 @@ class InviteListPresenterTests { @Test fun `present - dismisses declining error state`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val client = FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ) val room = FakeMatrixRoom() val presenter = InviteListPresenter(client, FakeSeenInvitesStore()) @@ -283,9 +283,9 @@ class InviteListPresenterTests { @Test fun `present - accepts invites and sets state on success`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val client = FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ) val room = FakeMatrixRoom() val presenter = InviteListPresenter(client, FakeSeenInvitesStore()) @@ -306,9 +306,9 @@ class InviteListPresenterTests { @Test fun `present - accepts invites and sets state on error`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val client = FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ) val room = FakeMatrixRoom() val presenter = InviteListPresenter(client, FakeSeenInvitesStore()) @@ -331,9 +331,9 @@ class InviteListPresenterTests { @Test fun `present - dismisses accepting error state`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource().withRoomInvitation() + val roomSummaryDataSource = FakeRoomSummaryDataSource().withRoomInvitation() val client = FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ) val room = FakeMatrixRoom() val presenter = InviteListPresenter(client, FakeSeenInvitesStore()) @@ -358,11 +358,11 @@ class InviteListPresenterTests { @Test fun `present - stores seen invites when received`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource() + val roomSummaryDataSource = FakeRoomSummaryDataSource() val store = FakeSeenInvitesStore() val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), store, ) @@ -372,19 +372,19 @@ class InviteListPresenterTests { awaitItem() // When one invite is received, that ID is saved - invitesDataSource.postRoomSummary(listOf(aRoomSummary())) + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummary())) awaitItem() Truth.assertThat(store.getProvidedRoomIds()).isEqualTo(setOf(A_ROOM_ID)) // When a second is added, both are saved - invitesDataSource.postRoomSummary(listOf(aRoomSummary(), aRoomSummary(A_ROOM_ID_2))) + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummary(), aRoomSummary(A_ROOM_ID_2))) awaitItem() Truth.assertThat(store.getProvidedRoomIds()).isEqualTo(setOf(A_ROOM_ID, A_ROOM_ID_2)) // When they're both dismissed, an empty set is saved - invitesDataSource.postRoomSummary(listOf()) + roomSummaryDataSource.postInviteRooms(listOf()) awaitItem() Truth.assertThat(store.getProvidedRoomIds()).isEmpty() @@ -393,12 +393,12 @@ class InviteListPresenterTests { @Test fun `present - marks invite as new if they're unseen`() = runTest { - val invitesDataSource = FakeRoomSummaryDataSource() + val roomSummaryDataSource = FakeRoomSummaryDataSource() val store = FakeSeenInvitesStore() store.publishRoomIds(setOf(A_ROOM_ID)) val presenter = InviteListPresenter( FakeMatrixClient( - invitesDataSource = invitesDataSource, + roomSummaryDataSource = roomSummaryDataSource, ), store, ) @@ -407,7 +407,7 @@ class InviteListPresenterTests { }.test { awaitItem() - invitesDataSource.postRoomSummary(listOf(aRoomSummary(), aRoomSummary(A_ROOM_ID_2))) + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummary(), aRoomSummary(A_ROOM_ID_2))) skipItems(1) val withInviteState = awaitItem() @@ -420,7 +420,7 @@ class InviteListPresenterTests { } private suspend fun FakeRoomSummaryDataSource.withRoomInvitation(): FakeRoomSummaryDataSource { - postRoomSummary( + postInviteRooms( listOf( RoomSummary.Filled( RoomSummaryDetails( @@ -449,7 +449,7 @@ class InviteListPresenterTests { } private suspend fun FakeRoomSummaryDataSource.withDirectChatInvitation(): FakeRoomSummaryDataSource { - postRoomSummary( + postInviteRooms( listOf( RoomSummary.Filled( RoomSummaryDetails( diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/forward/ForwardMessagesPresenterTests.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/forward/ForwardMessagesPresenterTests.kt index b4efaca864..82526e100d 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/forward/ForwardMessagesPresenterTests.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/forward/ForwardMessagesPresenterTests.kt @@ -78,7 +78,7 @@ class ForwardMessagesPresenterTests { @Test fun `present - update query`() = runTest { val roomSummaryDataSource = FakeRoomSummaryDataSource().apply { - postRoomSummary(listOf(RoomSummary.Filled(aRoomSummaryDetail()))) + postAllRooms(listOf(RoomSummary.Filled(aRoomSummaryDetail()))) } val client = FakeMatrixClient(roomSummaryDataSource = roomSummaryDataSource) val presenter = aPresenter(client = client) diff --git a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/DefaultInviteStateDataSourceTest.kt b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/DefaultInviteStateDataSourceTest.kt index 389aee1e92..1f3f0105da 100644 --- a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/DefaultInviteStateDataSourceTest.kt +++ b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/DefaultInviteStateDataSourceTest.kt @@ -34,8 +34,8 @@ internal class DefaultInviteStateDataSourceTest { @Test fun `emits NoInvites state if invites list is empty`() = runTest { - val matrixDataSource = FakeRoomSummaryDataSource() - val client = FakeMatrixClient(invitesDataSource = matrixDataSource) + val roomSummaryDataSource = FakeRoomSummaryDataSource() + val client = FakeMatrixClient(roomSummaryDataSource = roomSummaryDataSource) val seenStore = FakeSeenInvitesStore() val dataSource = DefaultInviteStateDataSource(client, seenStore, testCoroutineDispatchers()) @@ -48,9 +48,9 @@ internal class DefaultInviteStateDataSourceTest { @Test fun `emits NewInvites state if unseen invite exists`() = runTest { - val matrixDataSource = FakeRoomSummaryDataSource() - matrixDataSource.postRoomSummary(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID))) - val client = FakeMatrixClient(invitesDataSource = matrixDataSource) + val roomSummaryDataSource = FakeRoomSummaryDataSource() + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID))) + val client = FakeMatrixClient(roomSummaryDataSource = roomSummaryDataSource) val seenStore = FakeSeenInvitesStore() val dataSource = DefaultInviteStateDataSource(client, seenStore, testCoroutineDispatchers()) @@ -64,9 +64,9 @@ internal class DefaultInviteStateDataSourceTest { @Test fun `emits NewInvites state if multiple invites exist and at least one is unseen`() = runTest { - val matrixDataSource = FakeRoomSummaryDataSource() - matrixDataSource.postRoomSummary(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID), aRoomSummaryFilled(roomId = A_ROOM_ID_2))) - val client = FakeMatrixClient(invitesDataSource = matrixDataSource) + val roomSummaryDataSource = FakeRoomSummaryDataSource() + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID), aRoomSummaryFilled(roomId = A_ROOM_ID_2))) + val client = FakeMatrixClient(roomSummaryDataSource = roomSummaryDataSource) val seenStore = FakeSeenInvitesStore() seenStore.publishRoomIds(setOf(A_ROOM_ID)) val dataSource = DefaultInviteStateDataSource(client, seenStore, testCoroutineDispatchers(useUnconfinedTestDispatcher = true)) @@ -81,9 +81,9 @@ internal class DefaultInviteStateDataSourceTest { @Test fun `emits SeenInvites state if invite exists in seen store`() = runTest { - val matrixDataSource = FakeRoomSummaryDataSource() - matrixDataSource.postRoomSummary(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID))) - val client = FakeMatrixClient(invitesDataSource = matrixDataSource) + val roomSummaryDataSource = FakeRoomSummaryDataSource() + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID))) + val client = FakeMatrixClient(roomSummaryDataSource = roomSummaryDataSource) val seenStore = FakeSeenInvitesStore() seenStore.publishRoomIds(setOf(A_ROOM_ID)) val dataSource = DefaultInviteStateDataSource(client, seenStore, testCoroutineDispatchers(useUnconfinedTestDispatcher = true)) @@ -99,8 +99,8 @@ internal class DefaultInviteStateDataSourceTest { @Test fun `emits new state in response to upstream events`() = runTest { - val matrixDataSource = FakeRoomSummaryDataSource() - val client = FakeMatrixClient(invitesDataSource = matrixDataSource) + val roomSummaryDataSource = FakeRoomSummaryDataSource() + val client = FakeMatrixClient(roomSummaryDataSource = roomSummaryDataSource) val seenStore = FakeSeenInvitesStore() val dataSource = DefaultInviteStateDataSource(client, seenStore, testCoroutineDispatchers()) @@ -111,7 +111,7 @@ internal class DefaultInviteStateDataSourceTest { Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites) // When a single invite is received, state should be NewInvites - matrixDataSource.postRoomSummary(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID))) + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID))) skipItems(1) Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites) @@ -121,12 +121,12 @@ internal class DefaultInviteStateDataSourceTest { Truth.assertThat(awaitItem()).isEqualTo(InvitesState.SeenInvites) // Another new invite resets it to NewInvites - matrixDataSource.postRoomSummary(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID), aRoomSummaryFilled(roomId = A_ROOM_ID_2))) + roomSummaryDataSource.postInviteRooms(listOf(aRoomSummaryFilled(roomId = A_ROOM_ID), aRoomSummaryFilled(roomId = A_ROOM_ID_2))) skipItems(1) Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NewInvites) // All of the invites going away reverts to NoInvites - matrixDataSource.postRoomSummary(emptyList()) + roomSummaryDataSource.postInviteRooms(emptyList()) skipItems(1) Truth.assertThat(awaitItem()).isEqualTo(InvitesState.NoInvites) } diff --git a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt index 37623b4f28..c18b52f1d5 100644 --- a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt +++ b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTests.kt @@ -146,7 +146,7 @@ class RoomListPresenterTests { // Room list is loaded with 16 placeholders Truth.assertThat(withUserState.roomList.size).isEqualTo(16) Truth.assertThat(withUserState.roomList.all { it.isPlaceholder }).isTrue() - roomSummaryDataSource.postRoomSummary(listOf(aRoomSummaryFilled())) + roomSummaryDataSource.postAllRooms(listOf(aRoomSummaryFilled())) skipItems(1) val withRoomState = awaitItem() Truth.assertThat(withRoomState.roomList.size).isEqualTo(1) @@ -173,7 +173,7 @@ class RoomListPresenterTests { moleculeFlow(RecompositionClock.Immediate) { presenter.present() }.test { - roomSummaryDataSource.postRoomSummary(listOf(aRoomSummaryFilled())) + roomSummaryDataSource.postAllRooms(listOf(aRoomSummaryFilled())) skipItems(3) val loadedState = awaitItem() // Test filtering with result @@ -211,7 +211,7 @@ class RoomListPresenterTests { moleculeFlow(RecompositionClock.Immediate) { presenter.present() }.test { - roomSummaryDataSource.postRoomSummary(listOf(aRoomSummaryFilled())) + roomSummaryDataSource.postAllRooms(listOf(aRoomSummaryFilled())) skipItems(3) val loadedState = awaitItem() // check initial value diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomSummaryDataSource.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomSummaryDataSource.kt index 45e399e2d5..a1bd5daf8c 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomSummaryDataSource.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomSummaryDataSource.kt @@ -112,7 +112,7 @@ private fun RoomListLoadingState.toRoomSummaryDataSourceLoadingState(): RoomSumm } } -fun RoomList.observeEntriesWithProcessor(processor: RoomSummaryListProcessor): Flow { +private fun RoomList.observeEntriesWithProcessor(processor: RoomSummaryListProcessor): Flow { return entriesFlow { roomListEntries -> processor.postEntries(roomListEntries) }.onEach { update -> diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt index 6fab4cb053..bf1ac3544d 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeMatrixRoom.kt @@ -134,6 +134,10 @@ class FakeMatrixRoom( return matrixTimeline } + override fun open(): Result { + return Result.success(Unit) + } + override suspend fun userDisplayName(userId: UserId): Result = simulateLongTask { userDisplayNameResult } diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeRoomSummaryDataSource.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeRoomSummaryDataSource.kt index a407c0954f..87169aa498 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeRoomSummaryDataSource.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/FakeRoomSummaryDataSource.kt @@ -23,14 +23,32 @@ import kotlinx.coroutines.flow.StateFlow class FakeRoomSummaryDataSource : RoomSummaryDataSource { - private val roomSummariesFlow = MutableStateFlow>(emptyList()) + private val allRoomSummariesFlow = MutableStateFlow>(emptyList()) + private val inviteRoomSummariesFlow = MutableStateFlow>(emptyList()) + private val allRoomsLoadingStateFlow = MutableStateFlow(RoomSummaryDataSource.LoadingState.NotLoaded) - suspend fun postRoomSummary(roomSummaries: List) { - roomSummariesFlow.emit(roomSummaries) + suspend fun postAllRooms(roomSummaries: List) { + allRoomSummariesFlow.emit(roomSummaries) + } + + suspend fun postInviteRooms(roomSummaries: List) { + inviteRoomSummariesFlow.emit(roomSummaries) + } + + suspend fun postLoadingState(loadingState: RoomSummaryDataSource.LoadingState) { + allRoomsLoadingStateFlow.emit(loadingState) + } + + override fun allRoomsLoadingState(): StateFlow { + return allRoomsLoadingStateFlow } override fun allRooms(): StateFlow> { - return roomSummariesFlow + return allRoomSummariesFlow + } + + override fun inviteRooms(): StateFlow> { + return inviteRoomSummariesFlow } var latestSlidingSyncRange: IntRange? = null diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeMatrixTimeline.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeMatrixTimeline.kt index 5adc8b8404..f26905f5b1 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeMatrixTimeline.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/timeline/FakeMatrixTimeline.kt @@ -31,7 +31,6 @@ class FakeMatrixTimeline( private val paginationState: MutableStateFlow = MutableStateFlow(initialPaginationState) private val timelineItems: MutableStateFlow> = MutableStateFlow(initialTimelineItems) - var isInitialized = false fun updatePaginationState(update: (MatrixTimeline.PaginationState.() -> MatrixTimeline.PaginationState)) { paginationState.value = update(paginationState.value) @@ -63,13 +62,6 @@ class FakeMatrixTimeline( return Result.success(Unit) } - override fun initialize() { - isInitialized = true - } - - override fun dispose() { - isInitialized = false - } override suspend fun fetchDetailsForEvent(eventId: EventId): Result { return Result.success(Unit) diff --git a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt index 5d8e0bfd1c..9c4235ac2e 100644 --- a/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt +++ b/samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt @@ -69,7 +69,7 @@ class RoomListScreen( stateContentFormatter = StateContentFormatter(stringProvider), ), sessionVerificationService = sessionVerificationService, - networkMonitor = NetworkMonitorImpl(context), + networkMonitor = NetworkMonitorImpl(context, Singleton.appScope), snackbarDispatcher = SnackbarDispatcher(), inviteStateDataSource = DefaultInviteStateDataSource(matrixClient, DefaultSeenInvitesStore(context), coroutineDispatchers), leaveRoomPresenter = LeaveRoomPresenterImpl(matrixClient, RoomMembershipObserver(), coroutineDispatchers) @@ -81,13 +81,11 @@ class RoomListScreen( Singleton.appScope.launch { withContext(coroutineDispatchers.io) { matrixClient.getRoom(roomId)!!.use { room -> + room.open() val timeline = room.timeline() - timeline.apply { // TODO This doesn't work reliably as initialize is asynchronous, and the timeline can't be used until it's finished - initialize() paginateBackwards(20, 50) - dispose() } } } @@ -108,10 +106,10 @@ class RoomListScreen( DisposableEffect(Unit) { Timber.w("Start sync!") - matrixClient.startSync() + matrixClient.syncService().startSync() onDispose { Timber.w("Stop sync!") - matrixClient.stopSync() + matrixClient.syncService().stopSync() } } }