From f2a99b72416fb39be2030aab268e6d0fb6d6fd64 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Mon, 29 Sep 2025 21:01:12 +0200 Subject: [PATCH] centralize voice recording time --- .../com/bitchat/android/features/media/MediaConstraints.kt | 6 +++++- app/src/main/java/com/bitchat/android/ui/InputComponents.kt | 2 +- .../java/com/bitchat/android/ui/VoiceInputComponents.kt | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/bitchat/android/features/media/MediaConstraints.kt b/app/src/main/java/com/bitchat/android/features/media/MediaConstraints.kt index 1b068594..855c78b7 100644 --- a/app/src/main/java/com/bitchat/android/features/media/MediaConstraints.kt +++ b/app/src/main/java/com/bitchat/android/features/media/MediaConstraints.kt @@ -4,5 +4,9 @@ object MediaConstraints { // Global configurable media size limit (in bytes) // Change this value to adjust the max size for all media transfers const val MAX_MEDIA_BYTES: Long = 1L * 1024L * 1024L // 1 MB -} + // Maximum voice recording duration + // Centralizes the limit used for timer display and auto-stop logic + const val MAX_RECORDING_SECONDS: Int = 30 + const val MAX_RECORDING_MS: Long = MAX_RECORDING_SECONDS * 1000L +} diff --git a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt index f3a3b216..8199819b 100644 --- a/app/src/main/java/com/bitchat/android/ui/InputComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/InputComponents.kt @@ -241,7 +241,7 @@ fun MessageInput( val secs = (elapsedMs / 1000).toInt() val mm = secs / 60 val ss = secs % 60 - val maxSecs = 10 // 10 second max recording time + val maxSecs = com.bitchat.android.features.media.MediaConstraints.MAX_RECORDING_SECONDS val maxMm = maxSecs / 60 val maxSs = maxSecs % 60 Text( diff --git a/app/src/main/java/com/bitchat/android/ui/VoiceInputComponents.kt b/app/src/main/java/com/bitchat/android/ui/VoiceInputComponents.kt index 03ab53aa..be87d7b2 100644 --- a/app/src/main/java/com/bitchat/android/ui/VoiceInputComponents.kt +++ b/app/src/main/java/com/bitchat/android/ui/VoiceInputComponents.kt @@ -20,6 +20,7 @@ import androidx.compose.ui.hapticfeedback.HapticFeedbackType import androidx.compose.ui.unit.dp import com.bitchat.android.features.voice.VoiceRecorder import com.google.accompanist.permissions.ExperimentalPermissionsApi +import com.bitchat.android.features.media.MediaConstraints import com.google.accompanist.permissions.PermissionStatus import com.google.accompanist.permissions.rememberPermissionState import kotlinx.coroutines.Job @@ -82,8 +83,8 @@ fun VoiceRecordButton( val amp = recorder?.pollAmplitude() ?: 0 val elapsedMs = (System.currentTimeMillis() - recordingStart).coerceAtLeast(0L) latestOnAmplitude.value(amp, elapsedMs) - // Auto-stop after 10 seconds - if (elapsedMs >= 10_000 && isRecording) { + // Auto-stop after configured max duration + if (elapsedMs >= MediaConstraints.MAX_RECORDING_MS && isRecording) { val file = recorder?.stop() isRecording = false recorder = null