mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
EditDefaultNotificationSettingStateEvents -> EditDefaultNotificationSettingStateEvent
This commit is contained in:
+3
-3
@@ -76,12 +76,12 @@ class EditDefaultNotificationSettingPresenter(
|
|||||||
displayMentionsOnlyDisclaimer = !notificationSettingsService.canHomeServerPushEncryptedEventsToDevice().getOrDefault(true)
|
displayMentionsOnlyDisclaimer = !notificationSettingsService.canHomeServerPushEncryptedEventsToDevice().getOrDefault(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun handleEvent(event: EditDefaultNotificationSettingStateEvents) {
|
fun handleEvent(event: EditDefaultNotificationSettingStateEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
is EditDefaultNotificationSettingStateEvents.SetNotificationMode -> {
|
is EditDefaultNotificationSettingStateEvent.SetNotificationMode -> {
|
||||||
localCoroutineScope.setDefaultNotificationMode(event.mode, changeNotificationSettingAction)
|
localCoroutineScope.setDefaultNotificationMode(event.mode, changeNotificationSettingAction)
|
||||||
}
|
}
|
||||||
EditDefaultNotificationSettingStateEvents.ClearError -> changeNotificationSettingAction.value = AsyncAction.Uninitialized
|
EditDefaultNotificationSettingStateEvent.ClearError -> changeNotificationSettingAction.value = AsyncAction.Uninitialized
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -18,5 +18,5 @@ data class EditDefaultNotificationSettingState(
|
|||||||
val roomsWithUserDefinedMode: ImmutableList<EditNotificationSettingRoomInfo>,
|
val roomsWithUserDefinedMode: ImmutableList<EditNotificationSettingRoomInfo>,
|
||||||
val changeNotificationSettingAction: AsyncAction<Unit>,
|
val changeNotificationSettingAction: AsyncAction<Unit>,
|
||||||
val displayMentionsOnlyDisclaimer: Boolean,
|
val displayMentionsOnlyDisclaimer: Boolean,
|
||||||
val eventSink: (EditDefaultNotificationSettingStateEvents) -> Unit,
|
val eventSink: (EditDefaultNotificationSettingStateEvent) -> Unit,
|
||||||
)
|
)
|
||||||
|
|||||||
+3
-3
@@ -10,7 +10,7 @@ package io.element.android.features.preferences.impl.notifications.edit
|
|||||||
|
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
|
|
||||||
sealed interface EditDefaultNotificationSettingStateEvents {
|
sealed interface EditDefaultNotificationSettingStateEvent {
|
||||||
data class SetNotificationMode(val mode: RoomNotificationMode) : EditDefaultNotificationSettingStateEvents
|
data class SetNotificationMode(val mode: RoomNotificationMode) : EditDefaultNotificationSettingStateEvent
|
||||||
data object ClearError : EditDefaultNotificationSettingStateEvents
|
data object ClearError : EditDefaultNotificationSettingStateEvent
|
||||||
}
|
}
|
||||||
+2
-2
@@ -70,7 +70,7 @@ fun EditDefaultNotificationSettingView(
|
|||||||
mode = item,
|
mode = item,
|
||||||
isSelected = state.mode == item,
|
isSelected = state.mode == item,
|
||||||
displayMentionsOnlyDisclaimer = state.displayMentionsOnlyDisclaimer,
|
displayMentionsOnlyDisclaimer = state.displayMentionsOnlyDisclaimer,
|
||||||
onSelectOption = { state.eventSink(EditDefaultNotificationSettingStateEvents.SetNotificationMode(it)) }
|
onSelectOption = { state.eventSink(EditDefaultNotificationSettingStateEvent.SetNotificationMode(it)) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -116,7 +116,7 @@ fun EditDefaultNotificationSettingView(
|
|||||||
AsyncActionView(
|
AsyncActionView(
|
||||||
async = state.changeNotificationSettingAction,
|
async = state.changeNotificationSettingAction,
|
||||||
errorMessage = { stringResource(R.string.screen_notification_settings_edit_failed_updating_default_mode) },
|
errorMessage = { stringResource(R.string.screen_notification_settings_edit_failed_updating_default_mode) },
|
||||||
onErrorDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvents.ClearError) },
|
onErrorDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvent.ClearError) },
|
||||||
onSuccess = {},
|
onSuccess = {},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -10,7 +10,7 @@ package io.element.android.features.preferences.impl.notifications
|
|||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
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.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.api.room.RoomNotificationMode
|
||||||
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
@@ -150,7 +150,7 @@ class EditDefaultNotificationSettingsPresenterTest {
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
awaitItem().eventSink(EditDefaultNotificationSettingStateEvents.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
|
awaitItem().eventSink(EditDefaultNotificationSettingStateEvent.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
|
||||||
val loadedState = consumeItemsUntilPredicate {
|
val loadedState = consumeItemsUntilPredicate {
|
||||||
it.mode == RoomNotificationMode.ALL_MESSAGES
|
it.mode == RoomNotificationMode.ALL_MESSAGES
|
||||||
}.last()
|
}.last()
|
||||||
@@ -166,12 +166,12 @@ class EditDefaultNotificationSettingsPresenterTest {
|
|||||||
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService)
|
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService)
|
||||||
notificationSettingsService.givenSetDefaultNotificationModeError(AN_EXCEPTION)
|
notificationSettingsService.givenSetDefaultNotificationModeError(AN_EXCEPTION)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
awaitItem().eventSink(EditDefaultNotificationSettingStateEvents.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
|
awaitItem().eventSink(EditDefaultNotificationSettingStateEvent.SetNotificationMode(RoomNotificationMode.ALL_MESSAGES))
|
||||||
val errorState = consumeItemsUntilPredicate {
|
val errorState = consumeItemsUntilPredicate {
|
||||||
it.changeNotificationSettingAction.isFailure()
|
it.changeNotificationSettingAction.isFailure()
|
||||||
}.last()
|
}.last()
|
||||||
assertThat(errorState.changeNotificationSettingAction.isFailure()).isTrue()
|
assertThat(errorState.changeNotificationSettingAction.isFailure()).isTrue()
|
||||||
errorState.eventSink(EditDefaultNotificationSettingStateEvents.ClearError)
|
errorState.eventSink(EditDefaultNotificationSettingStateEvent.ClearError)
|
||||||
val clearErrorState = consumeItemsUntilPredicate {
|
val clearErrorState = consumeItemsUntilPredicate {
|
||||||
it.changeNotificationSettingAction.isUninitialized()
|
it.changeNotificationSettingAction.isUninitialized()
|
||||||
}.last()
|
}.last()
|
||||||
|
|||||||
Reference in New Issue
Block a user