From cfea5a91434964aabeced4efcfb27ed6dc30ab07 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Sat, 23 Mar 2024 14:01:53 +0100 Subject: [PATCH] feat: Only show processing dialog after some time Signed-off-by: Myzel394 <50424412+Myzel394@users.noreply.github.com> --- .../RecorderScreen/organisms/RecorderEventsHandler.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt index 1737023..462233b 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/RecorderScreen/organisms/RecorderEventsHandler.kt @@ -33,6 +33,8 @@ import app.myzel394.alibi.ui.utils.rememberFileSaverDialog import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking +import java.util.Timer +import kotlin.concurrent.schedule import kotlin.concurrent.thread typealias RecorderModel = BaseRecorderModel< @@ -140,10 +142,13 @@ fun RecorderEventsHandler( recorder: RecorderModel, cleanupOldFiles: Boolean = false ): CompletableDeferred { - isProcessing = true - val completer = CompletableDeferred() + // If processing takes this short, don't show the processing dialog + val timer = Timer().schedule(250L) { + isProcessing = true + } + thread { runBlocking { try { @@ -231,6 +236,7 @@ fun RecorderEventsHandler( if (recorder.isCurrentlyActivelyRecording) { recorder.recorderService?.unlockFiles(cleanupOldFiles) } + timer.cancel() isProcessing = false processingProgress = null completer.complete(Unit)