Skip to content

Commit 37bf88d

Browse files
committed
change (member moderation) : clean up
1 parent 5eef211 commit 37bf88d

File tree

21 files changed

+15
-37
lines changed

21 files changed

+15
-37
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesEvents.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ package io.element.android.features.messages.impl
99

1010
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
1111
import io.element.android.features.messages.impl.timeline.model.TimelineItem
12-
import io.element.android.libraries.matrix.api.core.UserId
1312
import io.element.android.libraries.matrix.api.timeline.item.event.EventOrTransactionId
1413
import io.element.android.libraries.matrix.api.user.MatrixUser
1514

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
4444
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
4545
import io.element.android.libraries.matrix.api.core.RoomId
4646
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
47-
import io.element.android.libraries.matrix.api.room.RoomMember
4847
import io.element.android.libraries.textcomposer.model.MessageComposerMode
4948
import io.element.android.libraries.textcomposer.model.aTextEditorStateRich
5049
import kotlinx.collections.immutable.persistentListOf
@@ -154,7 +153,6 @@ fun aMessagesState(
154153
fun aRoomMemberModerationState(
155154
canKick: Boolean = false,
156155
canBan: Boolean = false,
157-
158156
) = object : RoomMemberModerationState {
159157
override val canKick: Boolean = canKick
160158
override val canBan: Boolean = canBan

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,11 @@ fun MessagesView(
209209
.consumeWindowInsets(padding),
210210
onContentClick = ::onContentClick,
211211
onMessageLongClick = ::onMessageLongClick,
212-
onUserDataClick = { hidingKeyboard {
212+
onUserDataClick = {
213+
hidingKeyboard {
213214
state.eventSink(MessagesEvents.OnUserClicked(it))
214-
} },
215+
}
216+
},
215217
onLinkClick = { link, customTab ->
216218
if (customTab) {
217219
onLinkClick(link.url, true)

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListView.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import io.element.android.libraries.designsystem.theme.components.CircularProgre
4848
import io.element.android.libraries.designsystem.theme.components.Scaffold
4949
import io.element.android.libraries.designsystem.theme.components.Text
5050
import io.element.android.libraries.designsystem.theme.components.TopAppBar
51-
import io.element.android.libraries.matrix.api.core.UserId
5251
import io.element.android.libraries.matrix.api.user.MatrixUser
5352
import io.element.android.libraries.ui.strings.CommonStrings
5453
import io.element.android.services.analytics.compose.LocalAnalyticsService

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/TimelineView.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ import io.element.android.libraries.designsystem.theme.components.FloatingAction
6969
import io.element.android.libraries.designsystem.theme.components.Icon
7070
import io.element.android.libraries.designsystem.utils.animateScrollToItemCenter
7171
import io.element.android.libraries.matrix.api.core.EventId
72-
import io.element.android.libraries.matrix.api.core.UserId
7372
import io.element.android.libraries.matrix.api.timeline.Timeline
7473
import io.element.android.libraries.matrix.api.user.MatrixUser
7574
import io.element.android.libraries.testtags.TestTags

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemEventRow.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ import io.element.android.libraries.matrix.api.core.EventId
8888
import io.element.android.libraries.matrix.api.core.UserId
8989
import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails
9090
import io.element.android.libraries.matrix.api.timeline.item.event.getAvatarUrl
91-
import io.element.android.libraries.matrix.api.timeline.item.event.getDisambiguatedDisplayName
9291
import io.element.android.libraries.matrix.api.timeline.item.event.getDisplayName
9392
import io.element.android.libraries.matrix.api.user.MatrixUser
9493
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemGroupedEventsRow.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import io.element.android.features.messages.impl.timeline.protection.aTimelinePr
3434
import io.element.android.libraries.designsystem.preview.ElementPreview
3535
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
3636
import io.element.android.libraries.matrix.api.core.EventId
37-
import io.element.android.libraries.matrix.api.core.UserId
3837
import io.element.android.libraries.matrix.api.user.MatrixUser
3938
import io.element.android.wysiwyg.link.Link
4039

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemRow.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import io.element.android.libraries.designsystem.text.toPx
4242
import io.element.android.libraries.designsystem.theme.LocalBuildMeta
4343
import io.element.android.libraries.designsystem.theme.highlightedMessageBackgroundColor
4444
import io.element.android.libraries.matrix.api.core.EventId
45-
import io.element.android.libraries.matrix.api.core.UserId
4645
import io.element.android.libraries.matrix.api.user.MatrixUser
4746
import io.element.android.libraries.ui.strings.CommonStrings
4847
import io.element.android.libraries.ui.utils.time.isTalkbackActive

features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ import io.element.android.tests.testutils.EnsureNeverCalledWithTwoParamsAndResul
6767
import io.element.android.tests.testutils.EventsRecorder
6868
import io.element.android.tests.testutils.clickOn
6969
import io.element.android.tests.testutils.ensureCalledOnce
70-
import io.element.android.tests.testutils.ensureCalledOnceWithParam
7170
import io.element.android.tests.testutils.pressBack
7271
import kotlinx.collections.immutable.persistentListOf
7372
import org.junit.Rule

features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListViewTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import io.element.android.features.messages.impl.actionlist.anActionListState
2121
import io.element.android.features.messages.impl.timeline.aTimelineItemList
2222
import io.element.android.features.messages.impl.timeline.model.TimelineItem
2323
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemFileContent
24-
import io.element.android.libraries.matrix.api.core.UserId
2524
import io.element.android.libraries.matrix.api.user.MatrixUser
2625
import io.element.android.tests.testutils.EnsureNeverCalled
2726
import io.element.android.tests.testutils.EnsureNeverCalledWithParam

features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/timeline/TimelineViewTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import io.element.android.features.messages.impl.timeline.protection.TimelinePro
2424
import io.element.android.features.messages.impl.timeline.protection.aTimelineProtectionState
2525
import io.element.android.libraries.matrix.api.core.EventId
2626
import io.element.android.libraries.matrix.api.core.UniqueId
27-
import io.element.android.libraries.matrix.api.core.UserId
2827
import io.element.android.libraries.matrix.api.timeline.Timeline
2928
import io.element.android.libraries.matrix.api.timeline.item.event.MessageShield
3029
import io.element.android.libraries.matrix.api.user.MatrixUser

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import io.element.android.libraries.matrix.api.room.RoomMembershipState
3333
import io.element.android.libraries.matrix.api.room.roomMembers
3434
import io.element.android.libraries.matrix.api.room.toMatrixUser
3535
import io.element.android.libraries.matrix.ui.room.canInviteAsState
36-
import io.element.android.libraries.matrix.ui.room.isDmAsState
3736
import io.element.android.libraries.matrix.ui.room.roomMemberIdentityStateChange
3837
import kotlinx.collections.immutable.ImmutableMap
3938
import kotlinx.collections.immutable.persistentMapOf
@@ -52,7 +51,6 @@ class RoomMemberListPresenter @Inject constructor(
5251
private val roomMembersModerationPresenter: Presenter<RoomMemberModerationState>,
5352
private val encryptionService: EncryptionService,
5453
) : Presenter<RoomMemberListState> {
55-
5654
@Composable
5755
override fun present(): RoomMemberListState {
5856
var roomMembers: AsyncData<RoomMembers> by remember { mutableStateOf(AsyncData.Loading()) }
@@ -65,7 +63,6 @@ class RoomMemberListPresenter @Inject constructor(
6563
val membersState by room.membersStateFlow.collectAsState()
6664
val syncUpdateFlow = room.syncUpdateFlow.collectAsState()
6765
val canInvite by room.canInviteAsState(syncUpdateFlow.value)
68-
val isDm = room.isDmAsState()
6966
val roomModerationState = roomMembersModerationPresenter.present()
7067

7168
val roomMemberIdentityStates by produceState(persistentMapOf<UserId, IdentityState>()) {

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import androidx.compose.ui.unit.dp
4545
import io.element.android.compound.theme.ElementTheme
4646
import io.element.android.compound.tokens.generated.CompoundIcons
4747
import io.element.android.features.roomdetails.impl.R
48-
import io.element.android.features.roommembermoderation.api.RoomMemberModerationState
4948
import io.element.android.libraries.architecture.AsyncData
5049
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
5150
import io.element.android.libraries.designsystem.components.button.BackButton

features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListPresenterTest.kt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import io.element.android.features.roommembermoderation.api.RoomMemberModeration
1515
import io.element.android.libraries.architecture.Presenter
1616
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
1717
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
18-
import io.element.android.libraries.matrix.api.core.UserId
1918
import io.element.android.libraries.matrix.api.room.BaseRoom
2019
import io.element.android.libraries.matrix.api.room.JoinedRoom
2120
import io.element.android.libraries.matrix.api.room.RoomMembersState
@@ -203,7 +202,7 @@ class RoomMemberListPresenterTest {
203202

204203
@Test
205204
fun `present - RoomMemberSelected will open the moderation options when target user is not banned`() = runTest {
206-
val roomMemberModerationPresenter= Presenter {
205+
val roomMemberModerationPresenter = Presenter {
207206
aRoomMemberModerationState(canBan = true, canKick = true)
208207
}
209208
val presenter = createPresenter(
@@ -224,15 +223,6 @@ class RoomMemberListPresenterTest {
224223
}
225224
}
226225

227-
private class FakeRoomMemberListNavigator : RoomMemberListNavigator {
228-
var openRoomMemberDetailsCallCount = 0
229-
private set
230-
231-
override fun openRoomMemberDetails(roomMemberId: UserId) {
232-
openRoomMemberDetailsCallCount++
233-
}
234-
}
235-
236226
@ExperimentalCoroutinesApi
237227
private fun TestScope.createDataSource(
238228
room: BaseRoom = FakeBaseRoom().apply {

features/roommembermoderation/impl/build.gradle.kts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ plugins {
1313

1414
android {
1515
namespace = "io.element.android.features.roommembermoderation.impl"
16+
testOptions {
17+
unitTests {
18+
isIncludeAndroidResources = true
19+
}
20+
}
1621
}
1722

1823
setupAnvil()
@@ -29,7 +34,6 @@ dependencies {
2934

3035
testImplementation(libs.test.junit)
3136
testImplementation(libs.coroutines.test)
32-
testImplementation(libs.coroutines.core)
3337
testImplementation(libs.molecule.runtime)
3438
testImplementation(libs.test.truth)
3539
testImplementation(libs.test.turbine)
@@ -38,5 +42,6 @@ dependencies {
3842
testImplementation(projects.services.analytics.test)
3943
testImplementation(libs.test.robolectric)
4044
testImplementation(libs.androidx.compose.ui.test.junit)
41-
45+
testReleaseImplementation(libs.androidx.compose.ui.test.manifest)
46+
testImplementation(projects.libraries.testtags)
4247
}

features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/InternalRoomMemberModerationEvents.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ package io.element.android.features.roommembermoderation.impl
99

1010
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvents
1111

12-
sealed interface InternalRoomMemberModerationEvents: RoomMemberModerationEvents {
12+
sealed interface InternalRoomMemberModerationEvents : RoomMemberModerationEvents {
1313
data class DoKickUser(val reason: String) : InternalRoomMemberModerationEvents
1414
data class DoBanUser(val reason: String) : InternalRoomMemberModerationEvents
1515
data object DoUnbanUser : InternalRoomMemberModerationEvents

features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/InternalRoomMemberModerationState.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,3 @@ data class InternalRoomMemberModerationState(
2626
) : RoomMemberModerationState {
2727
val canDisplayActions = actions.isNotEmpty()
2828
}
29-

features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationPresenter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ class RoomMemberModerationPresenter @Inject constructor(
4848
private val dispatchers: CoroutineDispatchers,
4949
private val analyticsService: AnalyticsService,
5050
) : Presenter<RoomMemberModerationState> {
51-
5251
@Composable
5352
override fun present(): RoomMemberModerationState {
5453
val coroutineScope = rememberCoroutineScope()
@@ -147,7 +146,8 @@ class RoomMemberModerationPresenter @Inject constructor(
147146
return buildList {
148147
add(ModerationActionState(action = ModerationAction.DisplayProfile, isEnabled = true))
149148
// Assume the member is a regular user when it's unknown
150-
val canModerateThisUser = (member?.powerLevel ?: 0) < currentUserMemberPowerLevel
149+
val targetMemberPowerLevel = member?.powerLevel ?: 0
150+
val canModerateThisUser = currentUserMemberPowerLevel > targetMemberPowerLevel
151151
// Assume the member is joined when it's unknown
152152
val membership = member?.membership ?: RoomMembershipState.JOIN
153153
if (canKick) {

features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,6 @@ internal fun RoomMemberModerationViewPreview(@PreviewParameter(InternalRoomMembe
327327
RoomMemberModerationView(
328328
state = state,
329329
onSelectAction = { _, _ ->
330-
331330
},
332331
)
333332
}

features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/di/RoomMemberModerationModule.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import io.element.android.features.roommembermoderation.api.RoomMemberModeration
1414
import io.element.android.features.roommembermoderation.impl.RoomMemberModerationPresenter
1515
import io.element.android.libraries.architecture.Presenter
1616
import io.element.android.libraries.di.RoomScope
17-
import io.element.android.libraries.di.SessionScope
1817

1918
@ContributesTo(RoomScope::class)
2019
@Module

features/roommembermoderation/impl/src/test/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationPresenterTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import org.junit.Rule
3535
import org.junit.Test
3636

3737
class RoomMemberModerationPresenterTest {
38-
3938
@get:Rule
4039
val warmUpRule = WarmUpRule()
4140

0 commit comments

Comments
 (0)