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