only converting the voice messages when we're sending them

- stops us from eagerly converting to .ogg on android L and below devices whilst the draft phase/playback phase is ongoing, fixes unexpected .ogg when playing drafts
This commit is contained in:
Adam Brown 2021-12-01 15:18:24 +00:00
parent 2e52f429fb
commit 81ee141330
2 changed files with 8 additions and 4 deletions

View File

@ -718,7 +718,7 @@ class MessageComposerViewModel @AssistedInject constructor(
if (isCancelled) { if (isCancelled) {
voiceMessageHelper.deleteRecording() voiceMessageHelper.deleteRecording()
} else { } else {
voiceMessageHelper.stopRecording()?.let { audioType -> voiceMessageHelper.stopRecording(convertForSending = true)?.let { audioType ->
if (audioType.duration > 1000) { if (audioType.duration > 1000) {
room.sendMedia(audioType.toContentAttachmentData(isVoiceMessage = true), false, emptySet()) room.sendMedia(audioType.toContentAttachmentData(isVoiceMessage = true), false, emptySet())
} else { } else {

View File

@ -76,13 +76,17 @@ class VoiceMessageHelper @Inject constructor(
startRecordingAmplitudes() startRecordingAmplitudes()
} }
fun stopRecording(): MultiPickerAudioType? { fun stopRecording(convertForSending: Boolean): MultiPickerAudioType? {
tryOrNull("Cannot stop media recording amplitude") { tryOrNull("Cannot stop media recording amplitude") {
stopRecordingAmplitudes() stopRecordingAmplitudes()
} }
val voiceMessageFile = tryOrNull("Cannot stop media recorder!") { val voiceMessageFile = tryOrNull("Cannot stop media recorder!") {
voiceRecorder.stopRecord() voiceRecorder.stopRecord()
if (convertForSending) {
voiceRecorder.getVoiceMessageFile() voiceRecorder.getVoiceMessageFile()
} else {
voiceRecorder.getCurrentRecord()
}
} }
try { try {
@ -234,7 +238,7 @@ class VoiceMessageHelper @Inject constructor(
} }
fun stopAllVoiceActions(deleteRecord: Boolean = true): MultiPickerAudioType? { fun stopAllVoiceActions(deleteRecord: Boolean = true): MultiPickerAudioType? {
val audioType = stopRecording() val audioType = stopRecording(convertForSending = false)
stopPlayback() stopPlayback()
if (deleteRecord) { if (deleteRecord) {
deleteRecording() deleteRecording()