code review: extract startRecording code

This commit is contained in:
davotoula
2025-12-15 19:33:08 +01:00
parent 09f66359ad
commit a370112bc5
@@ -66,15 +66,20 @@ fun RecordAudioBox(
}
}
// Start recording once permission is granted AND user wants to record
LaunchedEffect(recordPermissionState.status.isGranted, wantsToRecord) {
if (recordPermissionState.status.isGranted && wantsToRecord && mediaRecorder.value == null) {
fun startRecording() {
if (mediaRecorder.value == null) {
elapsedSeconds = 0
mediaRecorder.value = VoiceMessageRecorder()
mediaRecorder.value?.start(context, scope)
}
}
LaunchedEffect(recordPermissionState.status.isGranted, wantsToRecord) {
if (recordPermissionState.status.isGranted && wantsToRecord) {
startRecording()
}
}
// Track elapsed time while recording
LaunchedEffect(mediaRecorder.value) {
// Capture the current recorder state to avoid repeated reads of volatile state
@@ -97,10 +102,9 @@ fun RecordAudioBox(
wantsToRecord = true
if (!recordPermissionState.status.isGranted) {
recordPermissionState.launchPermissionRequest()
} else if (mediaRecorder.value == null) {
elapsedSeconds = 0
mediaRecorder.value = VoiceMessageRecorder()
mediaRecorder.value?.start(context, scope)
} else {
// Start immediately for responsive UX when permission already granted
startRecording()
}
},
onRelease = {