Merge pull request #4608 from vector-im/feature/adm/converting-vm-on-send

Fixed voice messages on Android 28 and below
This commit is contained in:
Benoit Marty 2021-12-01 16:46:26 +01:00 committed by GitHub
commit 17245dc7ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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()
voiceRecorder.getVoiceMessageFile() if (convertForSending) {
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()