mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
LabsEvents -> LabsEvent
This commit is contained in:
+2
-2
@@ -10,6 +10,6 @@ package io.element.android.features.preferences.impl.labs
|
||||
|
||||
import io.element.android.libraries.featureflag.ui.model.FeatureUiModel
|
||||
|
||||
sealed interface LabsEvents {
|
||||
data class ToggleFeature(val feature: FeatureUiModel) : LabsEvents
|
||||
sealed interface LabsEvent {
|
||||
data class ToggleFeature(val feature: FeatureUiModel) : LabsEvent
|
||||
}
|
||||
+2
-2
@@ -54,9 +54,9 @@ class LabsPresenter(
|
||||
var isApplyingChanges by remember { mutableStateOf(false) }
|
||||
val featureUiModels = createUiModels(enabledFeatures)
|
||||
|
||||
fun handleEvent(event: LabsEvents) {
|
||||
fun handleEvent(event: LabsEvent) {
|
||||
when (event) {
|
||||
is LabsEvents.ToggleFeature -> coroutineScope.launch {
|
||||
is LabsEvent.ToggleFeature -> coroutineScope.launch {
|
||||
val featureIndex = enabledFeatures.indexOfFirst { it.feature.key == event.feature.key }.takeIf { it != -1 } ?: return@launch
|
||||
val enabledFeature = enabledFeatures[featureIndex]
|
||||
val feature = enabledFeature.feature
|
||||
|
||||
+1
-1
@@ -14,5 +14,5 @@ import kotlinx.collections.immutable.ImmutableList
|
||||
data class LabsState(
|
||||
val features: ImmutableList<FeatureUiModel>,
|
||||
val isApplyingChanges: Boolean,
|
||||
val eventSink: (LabsEvents) -> Unit,
|
||||
val eventSink: (LabsEvent) -> Unit,
|
||||
)
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ fun LabsView(
|
||||
supportingText = feature.description,
|
||||
value = feature.isEnabled,
|
||||
onChange = {
|
||||
state.eventSink(LabsEvents.ToggleFeature(feature))
|
||||
state.eventSink(LabsEvent.ToggleFeature(feature))
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
+3
-3
@@ -70,10 +70,10 @@ class LabsPresenterTest {
|
||||
val feature = initialItem.features.first()
|
||||
assertThat(feature.isEnabled).isFalse()
|
||||
// Toggle the feature, should be true now
|
||||
initialItem.eventSink(LabsEvents.ToggleFeature(feature))
|
||||
initialItem.eventSink(LabsEvent.ToggleFeature(feature))
|
||||
assertThat(awaitItem().features.first().isEnabled).isTrue()
|
||||
// Toggle the feature, should be false now
|
||||
initialItem.eventSink(LabsEvents.ToggleFeature(feature))
|
||||
initialItem.eventSink(LabsEvent.ToggleFeature(feature))
|
||||
assertThat(awaitItem().features.first().isEnabled).isFalse()
|
||||
}
|
||||
}
|
||||
@@ -99,7 +99,7 @@ class LabsPresenterTest {
|
||||
assertThat(feature.isEnabled).isFalse()
|
||||
assertThat(initialItem.isApplyingChanges).isFalse()
|
||||
// Toggle the feature
|
||||
initialItem.eventSink(LabsEvents.ToggleFeature(feature))
|
||||
initialItem.eventSink(LabsEvent.ToggleFeature(feature))
|
||||
assertThat(awaitItem().features.first().isEnabled).isTrue()
|
||||
// The clear cache use case should have been called
|
||||
assertThat(awaitItem().isApplyingChanges).isTrue()
|
||||
|
||||
Reference in New Issue
Block a user