From 38c9291db48a96cdaabdc8c5b0b3e97f896578ee Mon Sep 17 00:00:00 2001 From: Tretzi Date: Thu, 9 Apr 2026 20:40:46 -0500 Subject: [PATCH] Remove end-session confirmation dialog --- .../java/com/mindmachine/mvp/MainActivity.kt | 52 ++----------------- .../mvp/session/ActiveSessionUi.kt | 7 --- .../mindmachine/mvp/ActiveSessionUiTest.kt | 12 ----- 3 files changed, 3 insertions(+), 68 deletions(-) diff --git a/app/src/main/java/com/mindmachine/mvp/MainActivity.kt b/app/src/main/java/com/mindmachine/mvp/MainActivity.kt index f8ff7be..1a63c47 100644 --- a/app/src/main/java/com/mindmachine/mvp/MainActivity.kt +++ b/app/src/main/java/com/mindmachine/mvp/MainActivity.kt @@ -104,7 +104,6 @@ import com.mindmachine.mvp.session.flashIntervalMsToSeconds import com.mindmachine.mvp.session.flashIntervalSecondsToMs import com.mindmachine.mvp.session.formatDuration import com.mindmachine.mvp.session.sessionProgressFraction -import com.mindmachine.mvp.session.shouldRequireStopConfirmation import com.mindmachine.mvp.session.shouldShowActiveControlsByDefault import com.mindmachine.mvp.session.shouldUseImmersiveFullscreen import kotlinx.coroutines.delay @@ -114,11 +113,6 @@ import java.util.Locale private const val SESSION_ENTRY_HOME = "home" private const val SESSION_ENTRY_SETUP = "setup" -private enum class StopConfirmationAction { - BACK, - STOP_BUTTON, -} - private val MindMachineColors = darkColorScheme( primary = Color(0xFF8AB4FF), onPrimary = Color(0xFF001B3D), @@ -489,14 +483,8 @@ fun ActiveSessionScreen(vm: MainViewModel, onFinish: () -> Unit, onBackToEntry: val ui by vm.ui.collectAsStateWithLifecycle() if (ui.runtimeState == RuntimeState.COMPLETED) onFinish() - var stopConfirmationAction by remember { mutableStateOf(null) } - BackHandler { - if (shouldRequireStopConfirmation(ui.runtimeState)) { - stopConfirmationAction = StopConfirmationAction.BACK - } else { - onBackToEntry() - } + onBackToEntry() } val isVisualMode = true @@ -647,12 +635,8 @@ fun ActiveSessionScreen(vm: MainViewModel, onFinish: () -> Unit, onBackToEntry: } OutlinedButton( onClick = { - if (shouldRequireStopConfirmation(ui.runtimeState)) { - stopConfirmationAction = StopConfirmationAction.STOP_BUTTON - } else { - vm.stop() - onFinish() - } + vm.stop() + onFinish() }, modifier = Modifier.fillMaxWidth() ) { Text("Stop") } @@ -667,36 +651,6 @@ fun ActiveSessionScreen(vm: MainViewModel, onFinish: () -> Unit, onBackToEntry: } } } - - if (stopConfirmationAction != null) { - AlertDialog( - onDismissRequest = { stopConfirmationAction = null }, - title = { Text("End session?") }, - text = { Text("Your current session will stop and return to the previous screen.") }, - confirmButton = { - TextButton( - onClick = { - when (stopConfirmationAction) { - StopConfirmationAction.BACK -> onBackToEntry() - StopConfirmationAction.STOP_BUTTON -> { - vm.stop() - onFinish() - } - null -> Unit - } - stopConfirmationAction = null - } - ) { - Text("End session", color = Color(0xFFFF5252)) - } - }, - dismissButton = { - TextButton(onClick = { stopConfirmationAction = null }) { - Text("Keep running") - } - } - ) - } } @Composable diff --git a/app/src/main/java/com/mindmachine/mvp/session/ActiveSessionUi.kt b/app/src/main/java/com/mindmachine/mvp/session/ActiveSessionUi.kt index c035300..a39e9a1 100644 --- a/app/src/main/java/com/mindmachine/mvp/session/ActiveSessionUi.kt +++ b/app/src/main/java/com/mindmachine/mvp/session/ActiveSessionUi.kt @@ -11,10 +11,3 @@ fun sessionProgressFraction(durationSec: Int, remainingSec: Int): Float { val elapsed = (total - remainingSec).coerceIn(0, total) return elapsed.toFloat() / total.toFloat() } - -fun shouldRequireStopConfirmation(runtimeState: RuntimeState): Boolean { - return runtimeState == RuntimeState.COUNTDOWN || - runtimeState == RuntimeState.RUNNING || - runtimeState == RuntimeState.PAUSED || - runtimeState == RuntimeState.INTERRUPTED -} diff --git a/app/src/test/java/com/mindmachine/mvp/ActiveSessionUiTest.kt b/app/src/test/java/com/mindmachine/mvp/ActiveSessionUiTest.kt index 8f1f33e..561cc48 100644 --- a/app/src/test/java/com/mindmachine/mvp/ActiveSessionUiTest.kt +++ b/app/src/test/java/com/mindmachine/mvp/ActiveSessionUiTest.kt @@ -2,7 +2,6 @@ package com.mindmachine.mvp import com.mindmachine.mvp.domain.RuntimeState import com.mindmachine.mvp.session.sessionProgressFraction -import com.mindmachine.mvp.session.shouldRequireStopConfirmation import com.mindmachine.mvp.session.shouldRevealSystemBarsOnTap import com.mindmachine.mvp.session.shouldShowActiveControlsByDefault import com.mindmachine.mvp.session.shouldUseImmersiveFullscreen @@ -55,15 +54,4 @@ class ActiveSessionUiTest { assertTrue(sessionProgressFraction(durationSec = 600, remainingSec = -10) == 1f) } - @Test - fun stop_confirmation_is_required_only_while_session_is_active_or_paused() { - assertTrue(shouldRequireStopConfirmation(RuntimeState.COUNTDOWN)) - assertTrue(shouldRequireStopConfirmation(RuntimeState.RUNNING)) - assertTrue(shouldRequireStopConfirmation(RuntimeState.PAUSED)) - assertTrue(shouldRequireStopConfirmation(RuntimeState.INTERRUPTED)) - - assertFalse(shouldRequireStopConfirmation(RuntimeState.IDLE)) - assertFalse(shouldRequireStopConfirmation(RuntimeState.COMPLETED)) - assertFalse(shouldRequireStopConfirmation(RuntimeState.STOPPED)) - } }