Media: upload audio
This commit is contained in:
parent
7e5d339922
commit
31abc20fc2
6 changed files with 29 additions and 22 deletions
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -605,7 +605,7 @@ class RoomDetailsEditPresenterTest {
|
||||||
Result.success(
|
Result.success(
|
||||||
MediaUploadInfo.AnyFile(
|
MediaUploadInfo.AnyFile(
|
||||||
file = processedFile,
|
file = processedFile,
|
||||||
info = mockk(),
|
fileInfo = mockk(),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue