RageshakePreferencesEvents -> RageshakePreferencesEvent

This commit is contained in:
Benoit Marty
2026-01-19 18:18:44 +01:00
parent dca227d3d7
commit d207efd169
7 changed files with 17 additions and 17 deletions

View File

@@ -8,7 +8,7 @@
package io.element.android.features.rageshake.api.preferences
sealed interface RageshakePreferencesEvents {
data class SetSensitivity(val sensitivity: Float) : RageshakePreferencesEvents
data class SetIsEnabled(val isEnabled: Boolean) : RageshakePreferencesEvents
sealed interface RageshakePreferencesEvent {
data class SetSensitivity(val sensitivity: Float) : RageshakePreferencesEvent
data class SetIsEnabled(val isEnabled: Boolean) : RageshakePreferencesEvent
}

View File

@@ -13,5 +13,5 @@ data class RageshakePreferencesState(
val isEnabled: Boolean,
val isSupported: Boolean,
val sensitivity: Float,
val eventSink: (RageshakePreferencesEvents) -> Unit,
val eventSink: (RageshakePreferencesEvent) -> Unit,
)

View File

@@ -23,7 +23,7 @@ fun aRageshakePreferencesState(
isEnabled: Boolean = false,
isSupported: Boolean = true,
sensitivity: Float = 0.3f,
eventSink: (RageshakePreferencesEvents) -> Unit = {}
eventSink: (RageshakePreferencesEvent) -> Unit = {}
) = RageshakePreferencesState(
isFeatureEnabled = isFeatureEnabled,
isEnabled = isEnabled,

View File

@@ -29,11 +29,11 @@ fun RageshakePreferencesView(
modifier: Modifier = Modifier,
) {
fun onSensitivityChanged(sensitivity: Float) {
state.eventSink(RageshakePreferencesEvents.SetSensitivity(sensitivity = sensitivity))
state.eventSink(RageshakePreferencesEvent.SetSensitivity(sensitivity = sensitivity))
}
fun onEnabledChanged(isEnabled: Boolean) {
state.eventSink(RageshakePreferencesEvents.SetIsEnabled(isEnabled = isEnabled))
state.eventSink(RageshakePreferencesEvent.SetIsEnabled(isEnabled = isEnabled))
}
Column(modifier = modifier) {

View File

@@ -19,7 +19,7 @@ import dev.zacsweers.metro.ContributesBinding
import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvent
import io.element.android.features.rageshake.api.detection.RageshakeDetectionPresenter
import io.element.android.features.rageshake.api.detection.RageshakeDetectionState
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvents
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvent
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesPresenter
import io.element.android.features.rageshake.api.screenshot.ImageResult
import io.element.android.features.rageshake.impl.rageshake.RageShake
@@ -51,7 +51,7 @@ class DefaultRageshakeDetectionPresenter(
fun handleEvent(event: RageshakeDetectionEvent) {
when (event) {
RageshakeDetectionEvent.Disable -> {
preferencesState.eventSink(RageshakePreferencesEvents.SetIsEnabled(false))
preferencesState.eventSink(RageshakePreferencesEvent.SetIsEnabled(false))
showDialog.value = false
}
RageshakeDetectionEvent.StartDetection -> isStarted.value = true

View File

@@ -19,7 +19,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.features.rageshake.api.RageshakeFeatureAvailability
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvents
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvent
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesPresenter
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesState
import io.element.android.features.rageshake.impl.rageshake.RageShake
@@ -48,10 +48,10 @@ class DefaultRageshakePreferencesPresenter(
rageshakeDataStore.sensitivity()
}.collectAsState(initial = 0f)
fun handleEvent(event: RageshakePreferencesEvents) {
fun handleEvent(event: RageshakePreferencesEvent) {
when (event) {
is RageshakePreferencesEvents.SetIsEnabled -> localCoroutineScope.setIsEnabled(event.isEnabled)
is RageshakePreferencesEvents.SetSensitivity -> localCoroutineScope.setSensitivity(event.sensitivity)
is RageshakePreferencesEvent.SetIsEnabled -> localCoroutineScope.setIsEnabled(event.isEnabled)
is RageshakePreferencesEvent.SetSensitivity -> localCoroutineScope.setSensitivity(event.sensitivity)
}
}

View File

@@ -12,7 +12,7 @@ import app.cash.molecule.RecompositionMode
import app.cash.molecule.moleculeFlow
import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvents
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvent
import io.element.android.features.rageshake.impl.rageshake.A_SENSITIVITY
import io.element.android.features.rageshake.impl.rageshake.FakeRageShake
import io.element.android.features.rageshake.impl.rageshake.FakeRageshakeDataStore
@@ -73,9 +73,9 @@ class RageshakePreferencesPresenterTest {
skipItems(1)
val initialState = awaitItem()
assertThat(initialState.isEnabled).isTrue()
initialState.eventSink.invoke(RageshakePreferencesEvents.SetIsEnabled(false))
initialState.eventSink.invoke(RageshakePreferencesEvent.SetIsEnabled(false))
assertThat(awaitItem().isEnabled).isFalse()
initialState.eventSink.invoke(RageshakePreferencesEvents.SetIsEnabled(true))
initialState.eventSink.invoke(RageshakePreferencesEvent.SetIsEnabled(true))
assertThat(awaitItem().isEnabled).isTrue()
}
}
@@ -93,7 +93,7 @@ class RageshakePreferencesPresenterTest {
skipItems(1)
val initialState = awaitItem()
assertThat(initialState.sensitivity).isEqualTo(A_SENSITIVITY)
initialState.eventSink.invoke(RageshakePreferencesEvents.SetSensitivity(A_SENSITIVITY + 1f))
initialState.eventSink.invoke(RageshakePreferencesEvent.SetSensitivity(A_SENSITIVITY + 1f))
assertThat(awaitItem().sensitivity).isEqualTo(A_SENSITIVITY + 1f)
}
}