From 101f8d46e91c2ba8dfaf3a3473a2c6a1e1628776 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Fri, 15 Dec 2023 22:14:48 +0100 Subject: [PATCH] fix: Fix sheets coming and leaving --- .../molecules/MicrophoneSelection.kt | 25 +++++++++++++------ .../molecules/QuickMaxDurationSelector.kt | 1 - .../organisms/StartRecording.kt | 1 - 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/MicrophoneSelection.kt b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/MicrophoneSelection.kt index 9250e07..2c45de8 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/MicrophoneSelection.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/MicrophoneSelection.kt @@ -24,6 +24,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -41,6 +42,7 @@ import app.myzel394.alibi.ui.components.atoms.MessageBox import app.myzel394.alibi.ui.components.atoms.MessageType import app.myzel394.alibi.ui.models.AudioRecorderModel import app.myzel394.alibi.ui.utils.MicrophoneInfo +import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -73,11 +75,17 @@ fun MicrophoneSelection( visibleMicrophones } + val scope = rememberCoroutineScope() + fun hideSheet() { + scope.launch { + sheetState.hide() + showSelection = false + } + } + if (showSelection) { ModalBottomSheet( - onDismissRequest = { - showSelection = false - }, + onDismissRequest = ::hideSheet, sheetState = sheetState, ) { Column( @@ -114,7 +122,7 @@ fun MicrophoneSelection( selectedAsFallback = isTryingToReconnect, onSelect = { audioRecorder.changeMicrophone(null) - showSelection = false + hideSheet() } ) } @@ -128,7 +136,7 @@ fun MicrophoneSelection( disabled = isTryingToReconnect && microphone == audioRecorder.selectedMicrophone, onSelect = { audioRecorder.changeMicrophone(microphone) - showSelection = false + hideSheet() } ) } @@ -165,7 +173,7 @@ fun MicrophoneSelection( selected = audioRecorder.selectedMicrophone == microphone, onSelect = { audioRecorder.changeMicrophone(microphone) - showSelection = false + hideSheet() } ) } @@ -181,7 +189,10 @@ fun MicrophoneSelection( if (shownMicrophones.isNotEmpty() || (settings.audioRecorderSettings.showAllMicrophones && hiddenMicrophones.isNotEmpty())) { Button( onClick = { - showSelection = true + scope.launch { + showSelection = true + sheetState.show() + } }, colors = ButtonDefaults.textButtonColors(), ) { diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/QuickMaxDurationSelector.kt b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/QuickMaxDurationSelector.kt index 7330ec1..148170b 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/QuickMaxDurationSelector.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/molecules/QuickMaxDurationSelector.kt @@ -34,7 +34,6 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable fun QuickMaxDurationSelector( - settings: AppSettings, onDismiss: () -> Unit, ) { val scope = rememberCoroutineScope() diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/StartRecording.kt b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/StartRecording.kt index c2a9d62..f71dfe9 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/StartRecording.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/StartRecording.kt @@ -156,7 +156,6 @@ fun StartRecording( if (showQuickMaxDurationSelector) { QuickMaxDurationSelector( - settings = appSettings, onDismiss = { showQuickMaxDurationSelector = false },