InternalRoomMemberModerationEvents -> InternalRoomMemberModerationEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:19:06 +02:00
parent 17213ac93e
commit 4981a04519
5 changed files with 27 additions and 27 deletions
@@ -10,9 +10,9 @@ package io.element.android.features.roommembermoderation.impl
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvent import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvent
sealed interface InternalRoomMemberModerationEvents : RoomMemberModerationEvent { sealed interface InternalRoomMemberModerationEvent : RoomMemberModerationEvent {
data class DoKickUser(val reason: String) : InternalRoomMemberModerationEvents data class DoKickUser(val reason: String) : InternalRoomMemberModerationEvent
data class DoBanUser(val reason: String) : InternalRoomMemberModerationEvents data class DoBanUser(val reason: String) : InternalRoomMemberModerationEvent
data class DoUnbanUser(val reason: String) : InternalRoomMemberModerationEvents data class DoUnbanUser(val reason: String) : InternalRoomMemberModerationEvent
data object Reset : InternalRoomMemberModerationEvents data object Reset : InternalRoomMemberModerationEvent
} }
@@ -110,25 +110,25 @@ class RoomMemberModerationPresenter(
} }
} }
} }
is InternalRoomMemberModerationEvents.DoKickUser -> { is InternalRoomMemberModerationEvent.DoKickUser -> {
selectedUser?.let { selectedUser?.let {
coroutineScope.kickUser(it.userId, event.reason, kickUserAsyncAction) coroutineScope.kickUser(it.userId, event.reason, kickUserAsyncAction)
} }
selectedUser = null selectedUser = null
} }
is InternalRoomMemberModerationEvents.DoBanUser -> { is InternalRoomMemberModerationEvent.DoBanUser -> {
selectedUser?.let { selectedUser?.let {
coroutineScope.banUser(it.userId, event.reason, banUserAsyncAction) coroutineScope.banUser(it.userId, event.reason, banUserAsyncAction)
} }
selectedUser = null selectedUser = null
} }
is InternalRoomMemberModerationEvents.DoUnbanUser -> { is InternalRoomMemberModerationEvent.DoUnbanUser -> {
selectedUser?.let { selectedUser?.let {
coroutineScope.unbanUser(it.userId, event.reason, unbanUserAsyncAction) coroutineScope.unbanUser(it.userId, event.reason, unbanUserAsyncAction)
} }
selectedUser = null selectedUser = null
} }
is InternalRoomMemberModerationEvents.Reset -> { is InternalRoomMemberModerationEvent.Reset -> {
selectedUser = null selectedUser = null
moderationActions.value = persistentListOf() moderationActions.value = persistentListOf()
kickUserAsyncAction.value = AsyncAction.Uninitialized kickUserAsyncAction.value = AsyncAction.Uninitialized
@@ -77,7 +77,7 @@ fun RoomMemberModerationView(
actions = state.actions, actions = state.actions,
onSelectAction = onSelectAction, onSelectAction = onSelectAction,
onAvatarClick = onAvatarClick, onAvatarClick = onAvatarClick,
onDismiss = { state.eventSink(InternalRoomMemberModerationEvents.Reset) }, onDismiss = { state.eventSink(InternalRoomMemberModerationEvent.Reset) },
) )
} }
RoomMemberAsyncActions(state = state) RoomMemberAsyncActions(state = state)
@@ -102,9 +102,9 @@ private fun RoomMemberAsyncActions(
destructiveSubmit = true, destructiveSubmit = true,
minLines = 2, minLines = 2,
onSubmit = { reason -> onSubmit = { reason ->
state.eventSink(InternalRoomMemberModerationEvents.DoKickUser(reason = reason)) state.eventSink(InternalRoomMemberModerationEvent.DoKickUser(reason = reason))
}, },
onDismissRequest = { state.eventSink(InternalRoomMemberModerationEvents.Reset) }, onDismissRequest = { state.eventSink(InternalRoomMemberModerationEvent.Reset) },
placeholder = stringResource(id = CommonStrings.common_reason), placeholder = stringResource(id = CommonStrings.common_reason),
content = stringResource(R.string.screen_bottom_sheet_manage_room_member_kick_member_confirmation_description), content = stringResource(R.string.screen_bottom_sheet_manage_room_member_kick_member_confirmation_description),
value = "", value = "",
@@ -142,9 +142,9 @@ private fun RoomMemberAsyncActions(
destructiveSubmit = true, destructiveSubmit = true,
minLines = 2, minLines = 2,
onSubmit = { reason -> onSubmit = { reason ->
state.eventSink(InternalRoomMemberModerationEvents.DoBanUser(reason = reason)) state.eventSink(InternalRoomMemberModerationEvent.DoBanUser(reason = reason))
}, },
onDismissRequest = { state.eventSink(InternalRoomMemberModerationEvents.Reset) }, onDismissRequest = { state.eventSink(InternalRoomMemberModerationEvent.Reset) },
placeholder = stringResource(id = CommonStrings.common_reason), placeholder = stringResource(id = CommonStrings.common_reason),
content = stringResource(R.string.screen_bottom_sheet_manage_room_member_ban_member_confirmation_description), content = stringResource(R.string.screen_bottom_sheet_manage_room_member_ban_member_confirmation_description),
value = "", value = "",
@@ -185,9 +185,9 @@ private fun RoomMemberAsyncActions(
asyncIndicatorState.enqueue { asyncIndicatorState.enqueue {
AsyncIndicator.Loading(text = stringResource(R.string.screen_bottom_sheet_manage_room_member_unbanning_user, userDisplayName)) AsyncIndicator.Loading(text = stringResource(R.string.screen_bottom_sheet_manage_room_member_unbanning_user, userDisplayName))
} }
state.eventSink(InternalRoomMemberModerationEvents.DoUnbanUser(reason = reason)) state.eventSink(InternalRoomMemberModerationEvent.DoUnbanUser(reason = reason))
}, },
onDismissRequest = { state.eventSink(InternalRoomMemberModerationEvents.Reset) }, onDismissRequest = { state.eventSink(InternalRoomMemberModerationEvent.Reset) },
placeholder = stringResource(id = CommonStrings.common_reason), placeholder = stringResource(id = CommonStrings.common_reason),
content = stringResource(R.string.screen_bottom_sheet_manage_room_member_unban_member_confirmation_description), content = stringResource(R.string.screen_bottom_sheet_manage_room_member_unban_member_confirmation_description),
value = "", value = "",
@@ -241,7 +241,7 @@ class RoomMemberModerationPresenterTest {
) )
) )
skipItems(2) skipItems(2)
initialState.eventSink(InternalRoomMemberModerationEvents.DoKickUser("Reason")) initialState.eventSink(InternalRoomMemberModerationEvent.DoKickUser("Reason"))
skipItems(1) skipItems(1)
val loadingState = awaitState() val loadingState = awaitState()
assertThat(loadingState.kickUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java) assertThat(loadingState.kickUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java)
@@ -271,7 +271,7 @@ class RoomMemberModerationPresenterTest {
) )
) )
skipItems(2) skipItems(2)
initialState.eventSink(InternalRoomMemberModerationEvents.DoBanUser("Reason")) initialState.eventSink(InternalRoomMemberModerationEvent.DoBanUser("Reason"))
skipItems(1) skipItems(1)
val loadingState = awaitState() val loadingState = awaitState()
assertThat(loadingState.banUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java) assertThat(loadingState.banUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java)
@@ -301,7 +301,7 @@ class RoomMemberModerationPresenterTest {
) )
) )
skipItems(2) skipItems(2)
initialState.eventSink(InternalRoomMemberModerationEvents.DoUnbanUser("Reason")) initialState.eventSink(InternalRoomMemberModerationEvent.DoUnbanUser("Reason"))
skipItems(1) skipItems(1)
val loadingState = awaitState() val loadingState = awaitState()
assertThat(loadingState.unbanUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java) assertThat(loadingState.unbanUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java)
@@ -326,7 +326,7 @@ class RoomMemberModerationPresenterTest {
) )
) )
skipItems(2) skipItems(2)
initialState.eventSink(InternalRoomMemberModerationEvents.DoKickUser("Reason")) initialState.eventSink(InternalRoomMemberModerationEvent.DoKickUser("Reason"))
skipItems(1) skipItems(1)
val loadingState = awaitState() val loadingState = awaitState()
assertThat(loadingState.kickUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java) assertThat(loadingState.kickUserAsyncAction).isInstanceOf(AsyncAction.Loading::class.java)
@@ -343,7 +343,7 @@ class RoomMemberModerationPresenterTest {
RoomMemberModerationEvent.ProcessAction(targetUser = targetUser, action = ModerationAction.BanUser) RoomMemberModerationEvent.ProcessAction(targetUser = targetUser, action = ModerationAction.BanUser)
) )
skipItems(2) skipItems(2)
initialState.eventSink(InternalRoomMemberModerationEvents.Reset) initialState.eventSink(InternalRoomMemberModerationEvent.Reset)
skipItems(1) skipItems(1)
val resetState = awaitState() val resetState = awaitState()
assertThat(resetState.selectedUser).isNull() assertThat(resetState.selectedUser).isNull()
@@ -126,7 +126,7 @@ class RoomMemberModerationViewTest : RobolectricTest() {
), ),
) )
pressTag(TestTags.dialogPositive.value) pressTag(TestTags.dialogPositive.value)
eventsRecorder.assertSingle(InternalRoomMemberModerationEvents.DoKickUser(reason = "")) eventsRecorder.assertSingle(InternalRoomMemberModerationEvent.DoKickUser(reason = ""))
} }
@Test @Test
@@ -140,7 +140,7 @@ class RoomMemberModerationViewTest : RobolectricTest() {
), ),
) )
pressTag(TestTags.dialogNegative.value) pressTag(TestTags.dialogNegative.value)
eventsRecorder.assertSingle(InternalRoomMemberModerationEvents.Reset) eventsRecorder.assertSingle(InternalRoomMemberModerationEvent.Reset)
} }
@Test @Test
@@ -154,7 +154,7 @@ class RoomMemberModerationViewTest : RobolectricTest() {
), ),
) )
pressTag(TestTags.dialogPositive.value) pressTag(TestTags.dialogPositive.value)
eventsRecorder.assertSingle(InternalRoomMemberModerationEvents.DoBanUser(reason = "")) eventsRecorder.assertSingle(InternalRoomMemberModerationEvent.DoBanUser(reason = ""))
} }
@Test @Test
@@ -168,7 +168,7 @@ class RoomMemberModerationViewTest : RobolectricTest() {
), ),
) )
pressTag(TestTags.dialogNegative.value) pressTag(TestTags.dialogNegative.value)
eventsRecorder.assertSingle(InternalRoomMemberModerationEvents.Reset) eventsRecorder.assertSingle(InternalRoomMemberModerationEvent.Reset)
} }
@Test @Test
@@ -182,7 +182,7 @@ class RoomMemberModerationViewTest : RobolectricTest() {
), ),
) )
pressTag(TestTags.dialogPositive.value) pressTag(TestTags.dialogPositive.value)
eventsRecorder.assertSingle(InternalRoomMemberModerationEvents.DoUnbanUser("")) eventsRecorder.assertSingle(InternalRoomMemberModerationEvent.DoUnbanUser(""))
} }
@Test @Test
@@ -196,7 +196,7 @@ class RoomMemberModerationViewTest : RobolectricTest() {
), ),
) )
pressTag(TestTags.dialogNegative.value) pressTag(TestTags.dialogNegative.value)
eventsRecorder.assertSingle(InternalRoomMemberModerationEvents.Reset) eventsRecorder.assertSingle(InternalRoomMemberModerationEvent.Reset)
} }
@Test @Test