Skip to content

Commit 2e5450c

Browse files
committed
Remove dependencies to other presenters to RoomMembersModerationPresenter.
Move canDisplayModerationActions from presenter API to the state it emits.
1 parent 0a7de7c commit 2e5450c

File tree

9 files changed

+243
-257
lines changed

9 files changed

+243
-257
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Copyright 2024 New Vector Ltd.
3+
*
4+
* SPDX-License-Identifier: AGPL-3.0-only
5+
* Please see LICENSE in the repository root for full details.
6+
*/
7+
8+
package io.element.android.features.roomdetails.impl.di
9+
10+
import com.squareup.anvil.annotations.ContributesTo
11+
import dagger.Binds
12+
import dagger.Module
13+
import io.element.android.features.roomdetails.impl.members.moderation.RoomMembersModerationPresenter
14+
import io.element.android.features.roomdetails.impl.members.moderation.RoomMembersModerationState
15+
import io.element.android.libraries.architecture.Presenter
16+
import io.element.android.libraries.di.RoomScope
17+
18+
@Module
19+
@ContributesTo(RoomScope::class)
20+
interface RoomDetailsModule {
21+
@Binds
22+
fun bindRoomMembersModerationPresenter(presenter: RoomMembersModerationPresenter): Presenter<RoomMembersModerationState>
23+
}

features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListPresenter.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import dagger.assisted.Assisted
2121
import dagger.assisted.AssistedFactory
2222
import dagger.assisted.AssistedInject
2323
import io.element.android.features.roomdetails.impl.members.moderation.RoomMembersModerationEvents
24-
import io.element.android.features.roomdetails.impl.members.moderation.RoomMembersModerationPresenter
24+
import io.element.android.features.roomdetails.impl.members.moderation.RoomMembersModerationState
2525
import io.element.android.libraries.architecture.AsyncData
2626
import io.element.android.libraries.architecture.Presenter
2727
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
@@ -40,7 +40,7 @@ class RoomMemberListPresenter @AssistedInject constructor(
4040
private val room: MatrixRoom,
4141
private val roomMemberListDataSource: RoomMemberListDataSource,
4242
private val coroutineDispatchers: CoroutineDispatchers,
43-
private val roomMembersModerationPresenter: RoomMembersModerationPresenter,
43+
private val roomMembersModerationPresenter: Presenter<RoomMembersModerationState>,
4444
@Assisted private val navigator: RoomMemberListNavigator,
4545
) : Presenter<RoomMemberListState> {
4646
@AssistedFactory
@@ -136,7 +136,7 @@ class RoomMemberListPresenter @AssistedInject constructor(
136136
is RoomMemberListEvents.OnSearchActiveChanged -> isSearchActive = event.active
137137
is RoomMemberListEvents.UpdateSearchQuery -> searchQuery = event.query
138138
is RoomMemberListEvents.RoomMemberSelected -> coroutineScope.launch {
139-
if (roomMembersModerationPresenter.canDisplayModerationActions()) {
139+
if (roomModerationState.canDisplayModerationActions) {
140140
roomModerationState.eventSink(RoomMembersModerationEvents.SelectRoomMember(event.roomMember))
141141
} else {
142142
navigator.openRoomMemberDetails(event.roomMember.userId)

features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/DefaultRoomMembersModerationPresenter.kt

Lines changed: 0 additions & 174 deletions
This file was deleted.

0 commit comments

Comments
 (0)