centralize voice recording time

This commit is contained in:
callebtc
2025-09-29 21:01:12 +02:00
parent a359ef2348
commit f2a99b7241
3 changed files with 9 additions and 4 deletions
@@ -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
}
@@ -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(
@@ -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