code review: extract startRecording code
This commit is contained in:
+11
-7
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user