mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
AdvancedSettingsEvents -> AdvancedSettingsEvent
This commit is contained in:
+10
-10
@@ -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
|
||||
}
|
||||
+10
-10
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+11
-11
@@ -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()
|
||||
)
|
||||
|
||||
+18
-18
@@ -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)
|
||||
|
||||
+21
-21
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user