RageshakePreferencesEvents -> RageshakePreferencesEvent
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -13,5 +13,5 @@ data class RageshakePreferencesState(
|
||||
val isEnabled: Boolean,
|
||||
val isSupported: Boolean,
|
||||
val sensitivity: Float,
|
||||
val eventSink: (RageshakePreferencesEvents) -> Unit,
|
||||
val eventSink: (RageshakePreferencesEvent) -> Unit,
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user