AdvancedSettingsEvents -> AdvancedSettingsEvent

This commit is contained in:
Benoit Marty
2026-08-25 10:07:35 +02:00
parent 87af3b85b3
commit e6be199d4a
7 changed files with 72 additions and 72 deletions
@@ -11,14 +11,14 @@ package io.element.android.features.preferences.impl.advanced
import io.element.android.libraries.matrix.api.media.MediaPreviewValue
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
sealed interface AdvancedSettingsEvents {
data class SetDeveloperModeEnabled(val enabled: Boolean) : AdvancedSettingsEvents
data class SetSharePresenceEnabled(val enabled: Boolean) : AdvancedSettingsEvents
data class SetCompressMedia(val compress: Boolean) : AdvancedSettingsEvents
data class SetCompressImages(val compress: Boolean) : AdvancedSettingsEvents
data class SetVideoUploadQuality(val videoPreset: VideoCompressionPreset) : AdvancedSettingsEvents
data class SetTheme(val theme: ThemeOption) : AdvancedSettingsEvents
data class SetTimelineMediaPreviewValue(val value: MediaPreviewValue) : AdvancedSettingsEvents
data class SetHideInviteAvatars(val value: Boolean) : AdvancedSettingsEvents
data class SetLiveLocationMinimumDistanceUpdate(val value: Int) : AdvancedSettingsEvents
sealed interface AdvancedSettingsEvent {
data class SetDeveloperModeEnabled(val enabled: Boolean) : AdvancedSettingsEvent
data class SetSharePresenceEnabled(val enabled: Boolean) : AdvancedSettingsEvent
data class SetCompressMedia(val compress: Boolean) : AdvancedSettingsEvent
data class SetCompressImages(val compress: Boolean) : AdvancedSettingsEvent
data class SetVideoUploadQuality(val videoPreset: VideoCompressionPreset) : AdvancedSettingsEvent
data class SetTheme(val theme: ThemeOption) : AdvancedSettingsEvent
data class SetTimelineMediaPreviewValue(val value: MediaPreviewValue) : AdvancedSettingsEvent
data class SetHideInviteAvatars(val value: Boolean) : AdvancedSettingsEvent
data class SetLiveLocationMinimumDistanceUpdate(val value: Int) : AdvancedSettingsEvent
}
@@ -100,18 +100,18 @@ class AdvancedSettingsPresenter(
}.collect()
}
fun handleEvent(event: AdvancedSettingsEvents) {
fun handleEvent(event: AdvancedSettingsEvent) {
when (event) {
is AdvancedSettingsEvents.SetDeveloperModeEnabled -> sessionCoroutineScope.launch {
is AdvancedSettingsEvent.SetDeveloperModeEnabled -> sessionCoroutineScope.launch {
appPreferencesStore.setDeveloperModeEnabled(event.enabled)
}
is AdvancedSettingsEvents.SetSharePresenceEnabled -> sessionCoroutineScope.launch {
is AdvancedSettingsEvent.SetSharePresenceEnabled -> sessionCoroutineScope.launch {
sessionPreferencesStore.setSharePresence(event.enabled)
}
is AdvancedSettingsEvents.SetCompressMedia -> sessionCoroutineScope.launch {
is AdvancedSettingsEvent.SetCompressMedia -> sessionCoroutineScope.launch {
sessionPreferencesStore.setOptimizeImages(event.compress)
}
is AdvancedSettingsEvents.SetTheme -> sessionCoroutineScope.launch {
is AdvancedSettingsEvent.SetTheme -> sessionCoroutineScope.launch {
when (event.theme) {
ThemeOption.System -> appPreferencesStore.setTheme(Theme.System.name)
ThemeOption.Dark -> appPreferencesStore.setTheme(Theme.Dark.name)
@@ -119,15 +119,15 @@ class AdvancedSettingsPresenter(
ThemeOption.Light -> appPreferencesStore.setTheme(Theme.Light.name)
}
}
is AdvancedSettingsEvents.SetHideInviteAvatars -> mediaPreviewConfigStateStore.setHideInviteAvatars(event.value)
is AdvancedSettingsEvents.SetTimelineMediaPreviewValue -> mediaPreviewConfigStateStore.setTimelineMediaPreviewValue(event.value)
is AdvancedSettingsEvents.SetLiveLocationMinimumDistanceUpdate -> sessionCoroutineScope.launch {
is AdvancedSettingsEvent.SetHideInviteAvatars -> mediaPreviewConfigStateStore.setHideInviteAvatars(event.value)
is AdvancedSettingsEvent.SetTimelineMediaPreviewValue -> mediaPreviewConfigStateStore.setTimelineMediaPreviewValue(event.value)
is AdvancedSettingsEvent.SetLiveLocationMinimumDistanceUpdate -> sessionCoroutineScope.launch {
appPreferencesStore.setLiveLocationMinimumDistanceInMetersUpdate(event.value)
}
is AdvancedSettingsEvents.SetCompressImages -> sessionCoroutineScope.launch {
is AdvancedSettingsEvent.SetCompressImages -> sessionCoroutineScope.launch {
sessionPreferencesStore.setOptimizeImages(event.compress)
}
is AdvancedSettingsEvents.SetVideoUploadQuality -> sessionCoroutineScope.launch {
is AdvancedSettingsEvent.SetVideoUploadQuality -> sessionCoroutineScope.launch {
sessionPreferencesStore.setVideoCompressionPreset(event.videoPreset)
}
}
@@ -24,7 +24,7 @@ data class AdvancedSettingsState(
val availableThemeOptions: ImmutableList<ThemeOption>,
val mediaPreviewConfigState: MediaPreviewConfigState,
val liveLocationMinimumDistanceUpdate: Int?,
val eventSink: (AdvancedSettingsEvents) -> Unit
val eventSink: (AdvancedSettingsEvent) -> Unit
)
sealed interface MediaOptimizationState {
@@ -44,7 +44,7 @@ fun aAdvancedSettingsState(
liveLocationMinimumDistanceUpdate: Int? = 50,
setTimelineMediaPreviewAction: AsyncAction<Unit> = AsyncAction.Uninitialized,
setHideInviteAvatarsAction: AsyncAction<Unit> = AsyncAction.Uninitialized,
eventSink: (AdvancedSettingsEvents) -> Unit = {},
eventSink: (AdvancedSettingsEvent) -> Unit = {},
) = AdvancedSettingsState(
isDeveloperModeEnabled = isDeveloperModeEnabled,
isSharePresenceEnabled = isSharePresenceEnabled,
@@ -89,7 +89,7 @@ fun AdvancedSettingsView(
selectedOption = state.theme,
options = state.availableThemeOptions,
onSelectOption = { themeOption ->
state.eventSink(AdvancedSettingsEvents.SetTheme(themeOption))
state.eventSink(AdvancedSettingsEvent.SetTheme(themeOption))
}
)
ListItem(
@@ -102,7 +102,7 @@ fun AdvancedSettingsView(
trailingContent = ListItemContent.Switch(
checked = state.isDeveloperModeEnabled,
),
onClick = { state.eventSink(AdvancedSettingsEvents.SetDeveloperModeEnabled(!state.isDeveloperModeEnabled)) }
onClick = { state.eventSink(AdvancedSettingsEvent.SetDeveloperModeEnabled(!state.isDeveloperModeEnabled)) }
)
ListItem(
content = {
@@ -114,7 +114,7 @@ fun AdvancedSettingsView(
trailingContent = ListItemContent.Switch(
checked = state.isSharePresenceEnabled,
),
onClick = { state.eventSink(AdvancedSettingsEvents.SetSharePresenceEnabled(!state.isSharePresenceEnabled)) }
onClick = { state.eventSink(AdvancedSettingsEvent.SetSharePresenceEnabled(!state.isSharePresenceEnabled)) }
)
val compressImages = state.mediaOptimizationState?.shouldCompressImages
@@ -140,7 +140,7 @@ fun AdvancedSettingsView(
Interaction.Name.MobileSettingsOptimizeMediaUploadsDisabled
}
)
state.eventSink(AdvancedSettingsEvents.SetCompressMedia(newValue))
state.eventSink(AdvancedSettingsEvent.SetCompressMedia(newValue))
}
)
}
@@ -164,7 +164,7 @@ fun AdvancedSettingsView(
Interaction.Name.MobileSettingsOptimizeMediaUploadsDisabled
}
)
state.eventSink(AdvancedSettingsEvents.SetCompressMedia(newValue))
state.eventSink(AdvancedSettingsEvent.SetCompressMedia(newValue))
}
)
@@ -193,7 +193,7 @@ fun AdvancedSettingsView(
VideoQualitySelectorDialog(
selectedPreset = state.mediaOptimizationState.videoPreset,
onSubmit = { preset ->
state.eventSink(AdvancedSettingsEvents.SetVideoUploadQuality(preset))
state.eventSink(AdvancedSettingsEvent.SetVideoUploadQuality(preset))
displaySelectorDialog = false
},
onDismiss = { displaySelectorDialog = false },
@@ -207,7 +207,7 @@ fun AdvancedSettingsView(
LiveLocationUpdatesSection(
value = state.liveLocationMinimumDistanceUpdate,
onSaveValue = { value ->
state.eventSink(AdvancedSettingsEvents.SetLiveLocationMinimumDistanceUpdate(value))
state.eventSink(AdvancedSettingsEvent.SetLiveLocationMinimumDistanceUpdate(value))
},
onOpenAppPermissionsClick = onOpenAppSettingsClick,
)
@@ -286,7 +286,7 @@ private fun ModerationAndSafety(
title = stringResource(R.string.screen_advanced_settings_hide_invite_avatars_toggle_title),
isChecked = state.mediaPreviewConfigState.hideInviteAvatars,
onCheckedChange = {
state.eventSink(AdvancedSettingsEvents.SetHideInviteAvatars(it))
state.eventSink(AdvancedSettingsEvent.SetHideInviteAvatars(it))
},
enabled = !state.mediaPreviewConfigState.setHideInviteAvatarsAction.isLoading()
)
@@ -307,7 +307,7 @@ private fun ModerationAndSafety(
compact = true
),
onClick = {
state.eventSink(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Off))
state.eventSink(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.Off))
},
enabled = !state.mediaPreviewConfigState.setTimelineMediaPreviewAction.isLoading()
)
@@ -318,7 +318,7 @@ private fun ModerationAndSafety(
compact = true
),
onClick = {
state.eventSink(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Private))
state.eventSink(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.Private))
},
enabled = !state.mediaPreviewConfigState.setTimelineMediaPreviewAction.isLoading()
)
@@ -329,7 +329,7 @@ private fun ModerationAndSafety(
compact = true
),
onClick = {
state.eventSink(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.On))
state.eventSink(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.On))
},
enabled = !state.mediaPreviewConfigState.setTimelineMediaPreviewAction.isLoading()
)
@@ -71,11 +71,11 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat(isDeveloperModeEnabled).isFalse()
eventSink(AdvancedSettingsEvents.SetDeveloperModeEnabled(true))
eventSink(AdvancedSettingsEvent.SetDeveloperModeEnabled(true))
}
with(awaitItem()) {
assertThat(isDeveloperModeEnabled).isTrue()
eventSink(AdvancedSettingsEvents.SetDeveloperModeEnabled(false))
eventSink(AdvancedSettingsEvent.SetDeveloperModeEnabled(false))
}
with(awaitItem()) {
assertThat(isDeveloperModeEnabled).isFalse()
@@ -94,11 +94,11 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat(isSharePresenceEnabled).isTrue()
eventSink(AdvancedSettingsEvents.SetSharePresenceEnabled(false))
eventSink(AdvancedSettingsEvent.SetSharePresenceEnabled(false))
}
with(awaitItem()) {
assertThat(isSharePresenceEnabled).isFalse()
eventSink(AdvancedSettingsEvents.SetSharePresenceEnabled(true))
eventSink(AdvancedSettingsEvent.SetSharePresenceEnabled(true))
}
with(awaitItem()) {
assertThat(isSharePresenceEnabled).isTrue()
@@ -117,11 +117,11 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.AllMedia).isEnabled).isTrue()
eventSink(AdvancedSettingsEvents.SetCompressMedia(false))
eventSink(AdvancedSettingsEvent.SetCompressMedia(false))
}
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.AllMedia).isEnabled).isFalse()
eventSink(AdvancedSettingsEvents.SetCompressMedia(true))
eventSink(AdvancedSettingsEvent.SetCompressMedia(true))
}
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.AllMedia).isEnabled).isTrue()
@@ -144,11 +144,11 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.Split).compressImages).isTrue()
eventSink(AdvancedSettingsEvents.SetCompressImages(false))
eventSink(AdvancedSettingsEvent.SetCompressImages(false))
}
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.Split).compressImages).isFalse()
eventSink(AdvancedSettingsEvents.SetCompressImages(true))
eventSink(AdvancedSettingsEvent.SetCompressImages(true))
}
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.Split).compressImages).isTrue()
@@ -171,11 +171,11 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.Split).videoPreset).isEqualTo(VideoCompressionPreset.STANDARD)
eventSink(AdvancedSettingsEvents.SetVideoUploadQuality(VideoCompressionPreset.LOW))
eventSink(AdvancedSettingsEvent.SetVideoUploadQuality(VideoCompressionPreset.LOW))
}
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.Split).videoPreset).isEqualTo(VideoCompressionPreset.LOW)
eventSink(AdvancedSettingsEvents.SetVideoUploadQuality(VideoCompressionPreset.HIGH))
eventSink(AdvancedSettingsEvent.SetVideoUploadQuality(VideoCompressionPreset.HIGH))
}
with(awaitItem()) {
assertThat((mediaOptimizationState as MediaOptimizationState.Split).videoPreset).isEqualTo(VideoCompressionPreset.HIGH)
@@ -194,15 +194,15 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat(theme).isEqualTo(ThemeOption.System)
eventSink(AdvancedSettingsEvents.SetTheme(ThemeOption.Dark))
eventSink(AdvancedSettingsEvent.SetTheme(ThemeOption.Dark))
}
with(awaitItem()) {
assertThat(theme).isEqualTo(ThemeOption.Dark)
eventSink(AdvancedSettingsEvents.SetTheme(ThemeOption.Light))
eventSink(AdvancedSettingsEvent.SetTheme(ThemeOption.Light))
}
with(awaitItem()) {
assertThat(theme).isEqualTo(ThemeOption.Light)
eventSink(AdvancedSettingsEvents.SetTheme(ThemeOption.System))
eventSink(AdvancedSettingsEvent.SetTheme(ThemeOption.System))
}
with(awaitItem()) {
assertThat(theme).isEqualTo(ThemeOption.System)
@@ -242,7 +242,7 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat(liveLocationMinimumDistanceUpdate).isEqualTo(10)
eventSink(AdvancedSettingsEvents.SetLiveLocationMinimumDistanceUpdate(42))
eventSink(AdvancedSettingsEvent.SetLiveLocationMinimumDistanceUpdate(42))
}
with(awaitItem()) {
assertThat(liveLocationMinimumDistanceUpdate).isEqualTo(42)
@@ -298,11 +298,11 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat(mediaPreviewConfigState.hideInviteAvatars).isFalse()
eventSink(AdvancedSettingsEvents.SetHideInviteAvatars(true))
eventSink(AdvancedSettingsEvent.SetHideInviteAvatars(true))
}
with(awaitItem()) {
assertThat(mediaPreviewConfigState.hideInviteAvatars).isTrue()
eventSink(AdvancedSettingsEvents.SetHideInviteAvatars(false))
eventSink(AdvancedSettingsEvent.SetHideInviteAvatars(false))
}
with(awaitItem()) {
assertThat(mediaPreviewConfigState.hideInviteAvatars).isFalse()
@@ -323,11 +323,11 @@ class AdvancedSettingsPresenterTest {
with(awaitItem()) {
assertThat(mediaPreviewConfigState.timelineMediaPreviewValue).isEqualTo(MediaPreviewValue.On)
eventSink(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Off))
eventSink(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.Off))
}
with(awaitItem()) {
assertThat(mediaPreviewConfigState.timelineMediaPreviewValue).isEqualTo(MediaPreviewValue.Off)
eventSink(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Private))
eventSink(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.Private))
}
with(awaitItem()) {
assertThat(mediaPreviewConfigState.timelineMediaPreviewValue).isEqualTo(MediaPreviewValue.Private)
@@ -39,7 +39,7 @@ import org.robolectric.annotation.Config
class AdvancedSettingsViewTest : RobolectricTest() {
@Test
fun `clicking on back invokes the expected callback`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>(expectEvents = false)
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>(expectEvents = false)
ensureCalledOnce {
setAdvancedSettingsView(
state = aAdvancedSettingsState(
@@ -53,7 +53,7 @@ class AdvancedSettingsViewTest : RobolectricTest() {
@Test
fun `clicking on other theme emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
@@ -61,7 +61,7 @@ class AdvancedSettingsViewTest : RobolectricTest() {
)
clickOn(CommonStrings.common_appearance)
clickOn(R.string.theme_dark)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetTheme(ThemeOption.Dark))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetTheme(ThemeOption.Dark))
}
@Test
@@ -91,31 +91,31 @@ class AdvancedSettingsViewTest : RobolectricTest() {
@Test
fun `clicking on View source emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
),
)
clickOn(CommonStrings.action_view_source)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetDeveloperModeEnabled(true))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetDeveloperModeEnabled(true))
}
@Test
fun `clicking on Share presence emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
),
)
clickOn(R.string.screen_advanced_settings_share_presence)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetSharePresenceEnabled(true))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetSharePresenceEnabled(true))
}
@Test
fun `clicking on media to enable compression emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
val analyticsService = FakeAnalyticsService()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
@@ -124,7 +124,7 @@ class AdvancedSettingsViewTest : RobolectricTest() {
analyticsService = analyticsService
)
clickOn(R.string.screen_advanced_settings_media_compression_description)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetCompressMedia(true))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetCompressMedia(true))
assertThat(analyticsService.capturedEvents).isEqualTo(
listOf(
Interaction(
@@ -136,7 +136,7 @@ class AdvancedSettingsViewTest : RobolectricTest() {
@Test
fun `clicking on media to disable compression emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
val analyticsService = FakeAnalyticsService()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
@@ -146,7 +146,7 @@ class AdvancedSettingsViewTest : RobolectricTest() {
analyticsService = analyticsService
)
clickOn(R.string.screen_advanced_settings_media_compression_description)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetCompressMedia(false))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetCompressMedia(false))
assertThat(analyticsService.capturedEvents).isEqualTo(
listOf(
Interaction(
@@ -159,7 +159,7 @@ class AdvancedSettingsViewTest : RobolectricTest() {
@Test
@Config(qualifiers = "h1080dp")
fun `clicking on hide invite avatars emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
@@ -167,13 +167,13 @@ class AdvancedSettingsViewTest : RobolectricTest() {
),
)
clickOn(R.string.screen_advanced_settings_hide_invite_avatars_toggle_title)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetHideInviteAvatars(true))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetHideInviteAvatars(true))
}
@Test
@Config(qualifiers = "h1080dp")
fun `clicking on timeline media preview always hide emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
@@ -181,13 +181,13 @@ class AdvancedSettingsViewTest : RobolectricTest() {
),
)
clickOn(R.string.screen_advanced_settings_show_media_timeline_always_hide)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Off))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.Off))
}
@Test
@Config(qualifiers = "h1080dp")
fun `clicking on timeline media preview private rooms emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
@@ -195,13 +195,13 @@ class AdvancedSettingsViewTest : RobolectricTest() {
),
)
clickOn(R.string.screen_advanced_settings_show_media_timeline_private_rooms)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.Private))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.Private))
}
@Test
@Config(qualifiers = "h1080dp")
fun `clicking on timeline media preview always show emits the expected event`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>()
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>()
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
@@ -209,13 +209,13 @@ class AdvancedSettingsViewTest : RobolectricTest() {
),
)
clickOn(R.string.screen_advanced_settings_show_media_timeline_always_show)
eventsRecorder.assertSingle(AdvancedSettingsEvents.SetTimelineMediaPreviewValue(MediaPreviewValue.On))
eventsRecorder.assertSingle(AdvancedSettingsEvent.SetTimelineMediaPreviewValue(MediaPreviewValue.On))
}
@Test
@Config(qualifiers = "h1080dp")
fun `hide invite avatars toggle is disabled when action is loading`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>(expectEvents = false)
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>(expectEvents = false)
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,
@@ -230,7 +230,7 @@ class AdvancedSettingsViewTest : RobolectricTest() {
@Test
@Config(qualifiers = "h1080dp")
fun `timeline media preview options are disabled when action is loading`() = runAndroidComposeUiTest {
val eventsRecorder = EventsRecorder<AdvancedSettingsEvents>(expectEvents = false)
val eventsRecorder = EventsRecorder<AdvancedSettingsEvent>(expectEvents = false)
setAdvancedSettingsView(
state = aAdvancedSettingsState(
eventSink = eventsRecorder,