Media: upload audio

This commit is contained in:
ganfra 2023-07-13 20:34:07 +02:00
parent 3d0e6a4130
commit e9a34eb46d
6 changed files with 29 additions and 22 deletions

View file

@ -46,36 +46,43 @@ class MediaSender @Inject constructor(
}
private suspend fun MatrixRoom.sendMedia(
info: MediaUploadInfo,
uploadInfo: MediaUploadInfo,
progressCallback: ProgressCallback?
): Result<Unit> {
return when (info) {
return when (uploadInfo) {
is MediaUploadInfo.Image -> {
sendImage(
file = info.file,
thumbnailFile = info.thumbnailFile,
imageInfo = info.info,
file = uploadInfo.file,
thumbnailFile = uploadInfo.thumbnailFile,
imageInfo = uploadInfo.imageInfo,
progressCallback = progressCallback
)
}
is MediaUploadInfo.Video -> {
sendVideo(
file = info.file,
thumbnailFile = info.thumbnailFile,
videoInfo = info.info,
file = uploadInfo.file,
thumbnailFile = uploadInfo.thumbnailFile,
videoInfo = uploadInfo.videoInfo,
progressCallback = progressCallback
)
}
is MediaUploadInfo.Audio -> {
sendAudio(
file = uploadInfo.file,
audioInfo = uploadInfo.audioInfo,
progressCallback = progressCallback
)
}
is MediaUploadInfo.AnyFile -> {
sendFile(
file = info.file,
fileInfo = info.info,
file = uploadInfo.file,
fileInfo = uploadInfo.fileInfo,
progressCallback = progressCallback
)
}
else -> Result.failure(IllegalStateException("Unexpected MediaUploadInfo format: $info"))
else -> Result.failure(IllegalStateException("Unexpected MediaUploadInfo format: $uploadInfo"))
}
}
}

View file

@ -26,8 +26,8 @@ sealed interface MediaUploadInfo {
val file: File
data class Image(override val file: File, val info: ImageInfo, val thumbnailFile: File) : MediaUploadInfo
data class Video(override val file: File, val info: VideoInfo, val thumbnailFile: File) : MediaUploadInfo
data class Audio(override val file: File, val info: AudioInfo) : MediaUploadInfo
data class AnyFile(override val file: File, val info: FileInfo) : MediaUploadInfo
data class Image(override val file: File, val imageInfo: ImageInfo, val thumbnailFile: File) : MediaUploadInfo
data class Video(override val file: File, val videoInfo: VideoInfo, val thumbnailFile: File) : MediaUploadInfo
data class Audio(override val file: File, val audioInfo: AudioInfo) : MediaUploadInfo
data class AnyFile(override val file: File, val fileInfo: FileInfo) : MediaUploadInfo
}

View file

@ -133,7 +133,7 @@ class AndroidMediaPreProcessor @Inject constructor(
removeSensitiveImageMetadata(compressionResult.file)
return MediaUploadInfo.Image(
file = compressionResult.file,
info = imageInfo,
imageInfo = imageInfo,
thumbnailFile = thumbnailResult.file
)
}
@ -156,7 +156,7 @@ class AndroidMediaPreProcessor @Inject constructor(
removeSensitiveImageMetadata(file)
return MediaUploadInfo.Image(
file = file,
info = imageInfo,
imageInfo = imageInfo,
thumbnailFile = thumbnailResult.file
)
}
@ -184,7 +184,7 @@ class AndroidMediaPreProcessor @Inject constructor(
val videoInfo = extractVideoMetadata(resultFile, mimeType, thumbnailInfo)
return MediaUploadInfo.Video(
file = resultFile,
info = videoInfo,
videoInfo = videoInfo,
thumbnailFile = thumbnailInfo.file
)
}