mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 08:45:20 +00:00
centralize voice recording time
This commit is contained in:
@@ -4,5 +4,9 @@ object MediaConstraints {
|
|||||||
// Global configurable media size limit (in bytes)
|
// Global configurable media size limit (in bytes)
|
||||||
// Change this value to adjust the max size for all media transfers
|
// Change this value to adjust the max size for all media transfers
|
||||||
const val MAX_MEDIA_BYTES: Long = 1L * 1024L * 1024L // 1 MB
|
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 secs = (elapsedMs / 1000).toInt()
|
||||||
val mm = secs / 60
|
val mm = secs / 60
|
||||||
val ss = 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 maxMm = maxSecs / 60
|
||||||
val maxSs = maxSecs % 60
|
val maxSs = maxSecs % 60
|
||||||
Text(
|
Text(
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import androidx.compose.ui.hapticfeedback.HapticFeedbackType
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.bitchat.android.features.voice.VoiceRecorder
|
import com.bitchat.android.features.voice.VoiceRecorder
|
||||||
import com.google.accompanist.permissions.ExperimentalPermissionsApi
|
import com.google.accompanist.permissions.ExperimentalPermissionsApi
|
||||||
|
import com.bitchat.android.features.media.MediaConstraints
|
||||||
import com.google.accompanist.permissions.PermissionStatus
|
import com.google.accompanist.permissions.PermissionStatus
|
||||||
import com.google.accompanist.permissions.rememberPermissionState
|
import com.google.accompanist.permissions.rememberPermissionState
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
@@ -82,8 +83,8 @@ fun VoiceRecordButton(
|
|||||||
val amp = recorder?.pollAmplitude() ?: 0
|
val amp = recorder?.pollAmplitude() ?: 0
|
||||||
val elapsedMs = (System.currentTimeMillis() - recordingStart).coerceAtLeast(0L)
|
val elapsedMs = (System.currentTimeMillis() - recordingStart).coerceAtLeast(0L)
|
||||||
latestOnAmplitude.value(amp, elapsedMs)
|
latestOnAmplitude.value(amp, elapsedMs)
|
||||||
// Auto-stop after 10 seconds
|
// Auto-stop after configured max duration
|
||||||
if (elapsedMs >= 10_000 && isRecording) {
|
if (elapsedMs >= MediaConstraints.MAX_RECORDING_MS && isRecording) {
|
||||||
val file = recorder?.stop()
|
val file = recorder?.stop()
|
||||||
isRecording = false
|
isRecording = false
|
||||||
recorder = null
|
recorder = null
|
||||||
|
|||||||
Reference in New Issue
Block a user