Media: handle PR review remarks
This commit is contained in:
parent
bae810b190
commit
c89d9dd8e6
6 changed files with 8 additions and 9 deletions
|
|
@ -105,7 +105,7 @@ fun MessagesView(
|
||||||
initialValue = ModalBottomSheetValue.Hidden,
|
initialValue = ModalBottomSheetValue.Hidden,
|
||||||
)
|
)
|
||||||
val composerState = state.composerState
|
val composerState = state.composerState
|
||||||
val initialBottomSheetState = if (LocalInspectionMode.current && composerState.showAttachmentSourcePicker != null) {
|
val initialBottomSheetState = if (LocalInspectionMode.current && composerState.showAttachmentSourcePicker) {
|
||||||
ModalBottomSheetValue.Expanded
|
ModalBottomSheetValue.Expanded
|
||||||
} else {
|
} else {
|
||||||
ModalBottomSheetValue.Hidden
|
ModalBottomSheetValue.Hidden
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ class MediaViewerPresenter @AssistedInject constructor(
|
||||||
mutableStateOf(Async.Uninitialized)
|
mutableStateOf(Async.Uninitialized)
|
||||||
}
|
}
|
||||||
DisposableEffect(loadMediaTrigger) {
|
DisposableEffect(loadMediaTrigger) {
|
||||||
coroutineScope.loadMedia(mediaFile, localMedia)
|
coroutineScope.downloadMedia(mediaFile, localMedia)
|
||||||
onDispose {
|
onDispose {
|
||||||
mediaFile.value?.close()
|
mediaFile.value?.close()
|
||||||
}
|
}
|
||||||
|
|
@ -80,9 +80,9 @@ class MediaViewerPresenter @AssistedInject constructor(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun CoroutineScope.loadMedia(mediaFile: MutableState<MediaFile?>, localMedia: MutableState<Async<LocalMedia>>) = launch {
|
private fun CoroutineScope.downloadMedia(mediaFile: MutableState<MediaFile?>, localMedia: MutableState<Async<LocalMedia>>) = launch {
|
||||||
localMedia.value = Async.Loading()
|
localMedia.value = Async.Loading()
|
||||||
mediaLoader.loadMediaFile(inputs.mediaSource, inputs.mimeType)
|
mediaLoader.downloadMediaFile(inputs.mediaSource, inputs.mimeType)
|
||||||
.onSuccess {
|
.onSuccess {
|
||||||
mediaFile.value = it
|
mediaFile.value = it
|
||||||
}.mapCatching {
|
}.mapCatching {
|
||||||
|
|
|
||||||
|
|
@ -36,5 +36,5 @@ interface MatrixMediaLoader {
|
||||||
* @param mimeType: optional mime type
|
* @param mimeType: optional mime type
|
||||||
* @return a [Result] of [MediaFile]
|
* @return a [Result] of [MediaFile]
|
||||||
*/
|
*/
|
||||||
suspend fun loadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile>
|
suspend fun downloadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ class RustMediaLoader(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun loadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile> =
|
override suspend fun downloadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile> =
|
||||||
withContext(dispatchers.io) {
|
withContext(dispatchers.io) {
|
||||||
runCatching {
|
runCatching {
|
||||||
source.toRustMediaSource().use { mediaSource ->
|
source.toRustMediaSource().use { mediaSource ->
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ class FakeMediaLoader : MatrixMediaLoader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun loadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile> {
|
override suspend fun downloadMediaFile(source: MediaSource, mimeType: String?): Result<MediaFile> {
|
||||||
delay(FAKE_DELAY_IN_MS)
|
delay(FAKE_DELAY_IN_MS)
|
||||||
return if (shouldFail) {
|
return if (shouldFail) {
|
||||||
Result.failure(RuntimeException())
|
Result.failure(RuntimeException())
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,7 @@ internal class CoilMediaFetcher(
|
||||||
override suspend fun fetch(): FetchResult? {
|
override suspend fun fetch(): FetchResult? {
|
||||||
return loadMedia()
|
return loadMedia()
|
||||||
.map { data ->
|
.map { data ->
|
||||||
ByteBuffer.wrap(data)
|
val byteBuffer = ByteBuffer.wrap(data)
|
||||||
}.map { byteBuffer ->
|
|
||||||
imageLoader.components.newFetcher(byteBuffer, options, imageLoader)?.first?.fetch()
|
imageLoader.components.newFetcher(byteBuffer, options, imageLoader)?.first?.fetch()
|
||||||
}.getOrThrow()
|
}.getOrThrow()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue