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) {
voiceMessageHelper.deleteRecording()
} else {
voiceMessageHelper.stopRecording()?.let { audioType ->
voiceMessageHelper.stopRecording(convertForSending = true)?.let { audioType ->
if (audioType.duration > 1000) {
room.sendMedia(audioType.toContentAttachmentData(isVoiceMessage = true), false, emptySet())
} else {

View File

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