CrashDetectionEvents -> CrashDetectionEvent

This commit is contained in:
Benoit Marty
2026-01-19 18:19:20 +01:00
parent d207efd169
commit 534b4d16c3
6 changed files with 14 additions and 14 deletions

View File

@@ -15,7 +15,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import io.element.android.features.rageshake.api.crash.CrashDetectionEvents import io.element.android.features.rageshake.api.crash.CrashDetectionEvent
import io.element.android.features.rageshake.api.crash.CrashDetectionView import io.element.android.features.rageshake.api.crash.CrashDetectionView
import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvent import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvent
import io.element.android.features.rageshake.api.detection.RageshakeDetectionView import io.element.android.features.rageshake.api.detection.RageshakeDetectionView
@@ -39,7 +39,7 @@ fun RootView(
children() children()
fun onOpenBugReport() { fun onOpenBugReport() {
state.crashDetectionState.eventSink(CrashDetectionEvents.ResetAppHasCrashed) state.crashDetectionState.eventSink(CrashDetectionEvent.ResetAppHasCrashed)
state.rageshakeDetectionState.eventSink(RageshakeDetectionEvent.Dismiss) state.rageshakeDetectionState.eventSink(RageshakeDetectionEvent.Dismiss)
onOpenBugReport.invoke() onOpenBugReport.invoke()
} }

View File

@@ -8,7 +8,7 @@
package io.element.android.features.rageshake.api.crash package io.element.android.features.rageshake.api.crash
sealed interface CrashDetectionEvents { sealed interface CrashDetectionEvent {
data object ResetAllCrashData : CrashDetectionEvents data object ResetAllCrashData : CrashDetectionEvent
data object ResetAppHasCrashed : CrashDetectionEvents data object ResetAppHasCrashed : CrashDetectionEvent
} }

View File

@@ -11,5 +11,5 @@ package io.element.android.features.rageshake.api.crash
data class CrashDetectionState( data class CrashDetectionState(
val appName: String, val appName: String,
val crashDetected: Boolean, val crashDetected: Boolean,
val eventSink: (CrashDetectionEvents) -> Unit val eventSink: (CrashDetectionEvent) -> Unit
) )

View File

@@ -22,7 +22,7 @@ fun CrashDetectionView(
onOpenBugReport: () -> Unit = { }, onOpenBugReport: () -> Unit = { },
) { ) {
fun onPopupDismissed() { fun onPopupDismissed() {
state.eventSink(CrashDetectionEvents.ResetAllCrashData) state.eventSink(CrashDetectionEvent.ResetAllCrashData)
} }
if (state.crashDetected) { if (state.crashDetected) {

View File

@@ -18,7 +18,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import io.element.android.features.rageshake.api.RageshakeFeatureAvailability import io.element.android.features.rageshake.api.RageshakeFeatureAvailability
import io.element.android.features.rageshake.api.crash.CrashDetectionEvents import io.element.android.features.rageshake.api.crash.CrashDetectionEvent
import io.element.android.features.rageshake.api.crash.CrashDetectionPresenter import io.element.android.features.rageshake.api.crash.CrashDetectionPresenter
import io.element.android.features.rageshake.api.crash.CrashDetectionState import io.element.android.features.rageshake.api.crash.CrashDetectionState
import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.core.meta.BuildMeta
@@ -48,10 +48,10 @@ class DefaultCrashDetectionPresenter(
} }
}.collectAsState(false) }.collectAsState(false)
fun handleEvent(event: CrashDetectionEvents) { fun handleEvent(event: CrashDetectionEvent) {
when (event) { when (event) {
CrashDetectionEvents.ResetAllCrashData -> localCoroutineScope.resetAll() CrashDetectionEvent.ResetAllCrashData -> localCoroutineScope.resetAll()
CrashDetectionEvents.ResetAppHasCrashed -> localCoroutineScope.resetAppHasCrashed() CrashDetectionEvent.ResetAppHasCrashed -> localCoroutineScope.resetAppHasCrashed()
} }
} }

View File

@@ -12,7 +12,7 @@ import app.cash.molecule.RecompositionMode
import app.cash.molecule.moleculeFlow import app.cash.molecule.moleculeFlow
import app.cash.turbine.test import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import io.element.android.features.rageshake.api.crash.CrashDetectionEvents import io.element.android.features.rageshake.api.crash.CrashDetectionEvent
import io.element.android.features.rageshake.impl.crash.A_CRASH_DATA import io.element.android.features.rageshake.impl.crash.A_CRASH_DATA
import io.element.android.features.rageshake.impl.crash.DefaultCrashDetectionPresenter import io.element.android.features.rageshake.impl.crash.DefaultCrashDetectionPresenter
import io.element.android.features.rageshake.impl.crash.FakeCrashDataStore import io.element.android.features.rageshake.impl.crash.FakeCrashDataStore
@@ -80,7 +80,7 @@ class CrashDetectionPresenterTest {
skipItems(1) skipItems(1)
val initialState = awaitItem() val initialState = awaitItem()
assertThat(initialState.crashDetected).isTrue() assertThat(initialState.crashDetected).isTrue()
initialState.eventSink.invoke(CrashDetectionEvents.ResetAppHasCrashed) initialState.eventSink.invoke(CrashDetectionEvent.ResetAppHasCrashed)
assertThat(awaitItem().crashDetected).isFalse() assertThat(awaitItem().crashDetected).isFalse()
} }
} }
@@ -96,7 +96,7 @@ class CrashDetectionPresenterTest {
skipItems(1) skipItems(1)
val initialState = awaitItem() val initialState = awaitItem()
assertThat(initialState.crashDetected).isTrue() assertThat(initialState.crashDetected).isTrue()
initialState.eventSink.invoke(CrashDetectionEvents.ResetAllCrashData) initialState.eventSink.invoke(CrashDetectionEvent.ResetAllCrashData)
assertThat(awaitItem().crashDetected).isFalse() assertThat(awaitItem().crashDetected).isFalse()
} }
} }