Replace nested ifs with a when

This commit is contained in:
David Kaspar
2024-11-03 10:30:07 +00:00
parent d1cd15c389
commit b877e4105a
@@ -388,81 +388,41 @@ private fun RenderImageOrVideo(
} }
Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center, modifier = Modifier.fillMaxWidth()) { Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center, modifier = Modifier.fillMaxWidth()) {
if (content is MediaUrlImage) { when (content) {
val mainModifier = is MediaUrlImage -> {
Modifier val mainModifier =
.fillMaxWidth() Modifier
.zoomable( .fillMaxWidth()
rememberZoomState(), .zoomable(
onTap = { rememberZoomState(),
if (onToggleControllerVisibility != null) { onTap = {
onToggleControllerVisibility() if (onToggleControllerVisibility != null) {
} onToggleControllerVisibility()
}, }
) },
)
UrlImageView( UrlImageView(
content = content, content = content,
contentScale = contentScale, contentScale = contentScale,
mainImageModifier = mainModifier, mainImageModifier = mainModifier,
loadedImageModifier = Modifier.fillMaxWidth(), loadedImageModifier = Modifier.fillMaxWidth(),
controllerVisible = controllerVisible, controllerVisible = controllerVisible,
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
alwayShowImage = true, alwayShowImage = true,
) )
} else if (content is MediaUrlVideo) { }
val borderModifier =
if (roundedCorner) {
MaterialTheme.colorScheme.imageModifier
} else {
Modifier.fillMaxWidth()
}
VideoViewInner( is MediaUrlVideo -> {
videoUri = content.url, val borderModifier =
mimeType = content.mimeType, if (roundedCorner) {
title = content.description, MaterialTheme.colorScheme.imageModifier
artworkUri = content.artworkUri, } else {
authorName = content.authorName, Modifier.fillMaxWidth()
borderModifier = borderModifier, }
isFiniteHeight = isFiniteHeight,
automaticallyStartPlayback = automaticallyStartPlayback,
onControllerVisibilityChanged = onControllerVisibilityChanged,
accountViewModel = accountViewModel,
)
} else if (content is MediaLocalImage) {
val mainModifier =
Modifier
.fillMaxWidth()
.zoomable(
rememberZoomState(),
onTap = {
if (onToggleControllerVisibility != null) {
onToggleControllerVisibility()
}
},
)
LocalImageView(
content = content,
contentScale = contentScale,
mainImageModifier = mainModifier,
loadedImageModifier = Modifier.fillMaxWidth(),
controllerVisible = controllerVisible,
accountViewModel = accountViewModel,
alwayShowImage = true,
)
} else if (content is MediaLocalVideo) {
val borderModifier =
if (roundedCorner) {
MaterialTheme.colorScheme.imageModifier
} else {
Modifier.fillMaxWidth()
}
content.localFile?.let {
VideoViewInner( VideoViewInner(
videoUri = it.toUri().toString(), videoUri = content.url,
mimeType = content.mimeType, mimeType = content.mimeType,
title = content.description, title = content.description,
artworkUri = content.artworkUri, artworkUri = content.artworkUri,
@@ -474,6 +434,54 @@ private fun RenderImageOrVideo(
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
) )
} }
is MediaLocalImage -> {
val mainModifier =
Modifier
.fillMaxWidth()
.zoomable(
rememberZoomState(),
onTap = {
if (onToggleControllerVisibility != null) {
onToggleControllerVisibility()
}
},
)
LocalImageView(
content = content,
contentScale = contentScale,
mainImageModifier = mainModifier,
loadedImageModifier = Modifier.fillMaxWidth(),
controllerVisible = controllerVisible,
accountViewModel = accountViewModel,
alwayShowImage = true,
)
}
is MediaLocalVideo -> {
val borderModifier =
if (roundedCorner) {
MaterialTheme.colorScheme.imageModifier
} else {
Modifier.fillMaxWidth()
}
content.localFile?.let {
VideoViewInner(
videoUri = it.toUri().toString(),
mimeType = content.mimeType,
title = content.description,
artworkUri = content.artworkUri,
authorName = content.authorName,
borderModifier = borderModifier,
isFiniteHeight = isFiniteHeight,
automaticallyStartPlayback = automaticallyStartPlayback,
onControllerVisibilityChanged = onControllerVisibilityChanged,
accountViewModel = accountViewModel,
)
}
}
} }
} }
} }