Media: upload audio

This commit is contained in:
ganfra 2023-07-13 20:34:07 +02:00
parent 7e5d339922
commit 31abc20fc2
6 changed files with 29 additions and 22 deletions

View file

@ -29,7 +29,7 @@ data class MediaInfo(
) : Parcelable ) : Parcelable
fun anImageInfo(): MediaInfo = MediaInfo( fun anImageInfo(): MediaInfo = MediaInfo(
"an image file.jpg", MimeTypes.Jpeg, "4MB","jpg" "an image file.jpg", MimeTypes.Jpeg, "4MB", "jpg"
) )
fun aVideoInfo(): MediaInfo = MediaInfo( fun aVideoInfo(): MediaInfo = MediaInfo(

View file

@ -324,7 +324,7 @@ class MessageComposerPresenterTest {
Result.success( Result.success(
MediaUploadInfo.Image( MediaUploadInfo.Image(
file = File("/some/path"), file = File("/some/path"),
info = ImageInfo( imageInfo = ImageInfo(
width = null, width = null,
height = null, height = null,
mimetype = null, mimetype = null,
@ -357,7 +357,7 @@ class MessageComposerPresenterTest {
Result.success( Result.success(
MediaUploadInfo.Video( MediaUploadInfo.Video(
file = File("/some/path"), file = File("/some/path"),
info = VideoInfo( videoInfo = VideoInfo(
width = null, width = null,
height = null, height = null,
mimetype = null, mimetype = null,

View file

@ -605,7 +605,7 @@ class RoomDetailsEditPresenterTest {
Result.success( Result.success(
MediaUploadInfo.AnyFile( MediaUploadInfo.AnyFile(
file = processedFile, file = processedFile,
info = mockk(), fileInfo = mockk(),
) )
) )
) )

View file

@ -46,36 +46,43 @@ class MediaSender @Inject constructor(
} }
private suspend fun MatrixRoom.sendMedia( private suspend fun MatrixRoom.sendMedia(
info: MediaUploadInfo, uploadInfo: MediaUploadInfo,
progressCallback: ProgressCallback? progressCallback: ProgressCallback?
): Result<Unit> { ): Result<Unit> {
return when (info) { return when (uploadInfo) {
is MediaUploadInfo.Image -> { is MediaUploadInfo.Image -> {
sendImage( sendImage(
file = info.file, file = uploadInfo.file,
thumbnailFile = info.thumbnailFile, thumbnailFile = uploadInfo.thumbnailFile,
imageInfo = info.info, imageInfo = uploadInfo.imageInfo,
progressCallback = progressCallback progressCallback = progressCallback
) )
} }
is MediaUploadInfo.Video -> { is MediaUploadInfo.Video -> {
sendVideo( sendVideo(
file = info.file, file = uploadInfo.file,
thumbnailFile = info.thumbnailFile, thumbnailFile = uploadInfo.thumbnailFile,
videoInfo = info.info, videoInfo = uploadInfo.videoInfo,
progressCallback = progressCallback
)
}
is MediaUploadInfo.Audio -> {
sendAudio(
file = uploadInfo.file,
audioInfo = uploadInfo.audioInfo,
progressCallback = progressCallback progressCallback = progressCallback
) )
} }
is MediaUploadInfo.AnyFile -> { is MediaUploadInfo.AnyFile -> {
sendFile( sendFile(
file = info.file, file = uploadInfo.file,
fileInfo = info.info, fileInfo = uploadInfo.fileInfo,
progressCallback = progressCallback 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 val file: File
data class Image(override val file: File, val info: ImageInfo, val thumbnailFile: File) : MediaUploadInfo data class Image(override val file: File, val imageInfo: ImageInfo, val thumbnailFile: File) : MediaUploadInfo
data class Video(override val file: File, val info: VideoInfo, 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 info: AudioInfo) : MediaUploadInfo data class Audio(override val file: File, val audioInfo: AudioInfo) : MediaUploadInfo
data class AnyFile(override val file: File, val info: FileInfo) : 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) removeSensitiveImageMetadata(compressionResult.file)
return MediaUploadInfo.Image( return MediaUploadInfo.Image(
file = compressionResult.file, file = compressionResult.file,
info = imageInfo, imageInfo = imageInfo,
thumbnailFile = thumbnailResult.file thumbnailFile = thumbnailResult.file
) )
} }
@ -156,7 +156,7 @@ class AndroidMediaPreProcessor @Inject constructor(
removeSensitiveImageMetadata(file) removeSensitiveImageMetadata(file)
return MediaUploadInfo.Image( return MediaUploadInfo.Image(
file = file, file = file,
info = imageInfo, imageInfo = imageInfo,
thumbnailFile = thumbnailResult.file thumbnailFile = thumbnailResult.file
) )
} }
@ -184,7 +184,7 @@ class AndroidMediaPreProcessor @Inject constructor(
val videoInfo = extractVideoMetadata(resultFile, mimeType, thumbnailInfo) val videoInfo = extractVideoMetadata(resultFile, mimeType, thumbnailInfo)
return MediaUploadInfo.Video( return MediaUploadInfo.Video(
file = resultFile, file = resultFile,
info = videoInfo, videoInfo = videoInfo,
thumbnailFile = thumbnailInfo.file thumbnailFile = thumbnailInfo.file
) )
} }