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:
parent
5235707de5
commit
a005d4d922
1 changed files with 21 additions and 0 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue