EditDefaultNotificationSettingStateEvents -> EditDefaultNotificationSettingStateEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:12:06 +02:00
parent 8a02b50c98
commit 5d8ca663df
5 changed files with 13 additions and 13 deletions
@@ -76,12 +76,12 @@ class EditDefaultNotificationSettingPresenter(
displayMentionsOnlyDisclaimer = !notificationSettingsService.canHomeServerPushEncryptedEventsToDevice().getOrDefault(true)
}
fun handleEvent(event: EditDefaultNotificationSettingStateEvents) {
fun handleEvent(event: EditDefaultNotificationSettingStateEvent) {
when (event) {
is EditDefaultNotificationSettingStateEvents.SetNotificationMode -> {
is EditDefaultNotificationSettingStateEvent.SetNotificationMode -> {
localCoroutineScope.setDefaultNotificationMode(event.mode, changeNotificationSettingAction)
}
EditDefaultNotificationSettingStateEvents.ClearError -> changeNotificationSettingAction.value = AsyncAction.Uninitialized
EditDefaultNotificationSettingStateEvent.ClearError -> changeNotificationSettingAction.value = AsyncAction.Uninitialized
}
}
@@ -18,5 +18,5 @@ data class EditDefaultNotificationSettingState(
val roomsWithUserDefinedMode: ImmutableList<EditNotificationSettingRoomInfo>,
val changeNotificationSettingAction: AsyncAction<Unit>,
val displayMentionsOnlyDisclaimer: Boolean,
val eventSink: (EditDefaultNotificationSettingStateEvents) -> Unit,
val eventSink: (EditDefaultNotificationSettingStateEvent) -> Unit,
)
@@ -10,7 +10,7 @@ package io.element.android.features.preferences.impl.notifications.edit
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
sealed interface EditDefaultNotificationSettingStateEvents {
data class SetNotificationMode(val mode: RoomNotificationMode) : EditDefaultNotificationSettingStateEvents
data object ClearError : EditDefaultNotificationSettingStateEvents
sealed interface EditDefaultNotificationSettingStateEvent {
data class SetNotificationMode(val mode: RoomNotificationMode) : EditDefaultNotificationSettingStateEvent
data object ClearError : EditDefaultNotificationSettingStateEvent
}
@@ -70,7 +70,7 @@ fun EditDefaultNotificationSettingView(
mode = item,
isSelected = state.mode == item,
displayMentionsOnlyDisclaimer = state.displayMentionsOnlyDisclaimer,
onSelectOption = { state.eventSink(EditDefaultNotificationSettingStateEvents.SetNotificationMode(it)) }
onSelectOption = { state.eventSink(EditDefaultNotificationSettingStateEvent.SetNotificationMode(it)) }
)
}
}
@@ -116,7 +116,7 @@ fun EditDefaultNotificationSettingView(
AsyncActionView(
async = state.changeNotificationSettingAction,
errorMessage = { stringResource(R.string.screen_notification_settings_edit_failed_updating_default_mode) },
onErrorDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvents.ClearError) },
onErrorDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvent.ClearError) },
onSuccess = {},
)
}
@@ -10,7 +10,7 @@ package io.element.android.features.preferences.impl.notifications
import com.google.common.truth.Truth.assertThat
import io.element.android.features.preferences.impl.notifications.edit.EditDefaultNotificationSettingPresenter
import io.element.android.features.preferences.impl.notifications.edit.EditDefaultNotificationSettingStateEvents
import io.element.android.features.preferences.impl.notifications.edit.EditDefaultNotificationSettingStateEvent
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.test.AN_EXCEPTION
import io.element.android.libraries.matrix.test.A_ROOM_ID
@@ -150,7 +150,7 @@ class EditDefaultNotificationSettingsPresenterTest {
),
)
presenter.test {
awaitItem().eventSink(EditDefaultNotificationSettingStateEvents.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
awaitItem().eventSink(EditDefaultNotificationSettingStateEvent.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
val loadedState = consumeItemsUntilPredicate {
it.mode == RoomNotificationMode.ALL_MESSAGES
}.last()
@@ -166,12 +166,12 @@ class EditDefaultNotificationSettingsPresenterTest {
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService)
notificationSettingsService.givenSetDefaultNotificationModeError(AN_EXCEPTION)
presenter.test {
awaitItem().eventSink(EditDefaultNotificationSettingStateEvents.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
awaitItem().eventSink(EditDefaultNotificationSettingStateEvent.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
val errorState = consumeItemsUntilPredicate {
it.changeNotificationSettingAction.isFailure()
}.last()
assertThat(errorState.changeNotificationSettingAction.isFailure()).isTrue()
errorState.eventSink(EditDefaultNotificationSettingStateEvents.ClearError)
errorState.eventSink(EditDefaultNotificationSettingStateEvent.ClearError)
val clearErrorState = consumeItemsUntilPredicate {
it.changeNotificationSettingAction.isUninitialized()
}.last()