Home: add Discard with confirm to in-progress recording card

- RecordingStatusCard: Pause/Resume + Finish + Discard (red)
- Discard shows confirm dialog ('Delete current recording?')
  then discards temp via ACTION_DELETE; Cancel keeps recording
This commit is contained in:
avi 2026-09-15 10:41:17 -05:00
commit a005d4d922

View file

@ -167,6 +167,7 @@ fun HomeScreen(
onPause = vm::pause, onPause = vm::pause,
onResume = vm::resume, onResume = vm::resume,
onStop = vm::stop, onStop = vm::stop,
onDiscard = vm::discard,
) )
} }
if (recordings.isNotEmpty()) { if (recordings.isNotEmpty()) {
@ -213,7 +214,9 @@ private fun RecordingStatusCard(
onPause: () -> Unit, onPause: () -> Unit,
onResume: () -> Unit, onResume: () -> Unit,
onStop: () -> Unit, onStop: () -> Unit,
onDiscard: () -> Unit,
) { ) {
var confirmDiscard by remember { mutableStateOf(false) }
Card(Modifier.fillMaxWidth()) { Card(Modifier.fillMaxWidth()) {
Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) {
Text( Text(
@ -226,9 +229,27 @@ private fun RecordingStatusCard(
Text(if (state.phase == com.shonar.recording.RecordingSnapshot.Phase.PAUSED) "Resume" else "Pause") Text(if (state.phase == com.shonar.recording.RecordingSnapshot.Phase.PAUSED) "Resume" else "Pause")
} }
TextButton(onClick = onStop) { Text("Finish") } TextButton(onClick = onStop) { Text("Finish") }
TextButton(onClick = { confirmDiscard = true }) {
Text("Discard", color = MaterialTheme.colorScheme.error)
} }
} }
} }
}
if (confirmDiscard) {
AlertDialog(
onDismissRequest = { confirmDiscard = false },
title = { Text("Delete current recording?") },
text = { Text("This throws away the in-progress take. It can't be undone.") },
confirmButton = {
TextButton(
onClick = { confirmDiscard = false; onDiscard() },
) { Text("Delete", color = MaterialTheme.colorScheme.error) }
},
dismissButton = {
TextButton(onClick = { confirmDiscard = false }) { Text("Cancel") }
},
)
}
} }
@Composable @Composable