Activates images controllers on click

This commit is contained in:
Vitor Pamplona 2023-10-15 17:15:48 -04:00
parent 4028018605
commit 1767cc74a9

View File

@ -12,6 +12,7 @@ import androidx.compose.animation.fadeOut
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxWithConstraints
@ -696,6 +697,9 @@ private fun DialogContent(
onControllerVisibilityChanged = {
controllerVisible.value = it
},
onToggleControllerVisibility = {
controllerVisible.value = !controllerVisible.value
},
accountViewModel = accountViewModel
)
}
@ -707,6 +711,9 @@ private fun DialogContent(
onControllerVisibilityChanged = {
controllerVisible.value = it
},
onToggleControllerVisibility = {
controllerVisible.value = !controllerVisible.value
},
accountViewModel = accountViewModel
)
}
@ -815,13 +822,22 @@ private fun RenderImageOrVideo(
roundedCorner: Boolean,
topPaddingForControllers: Dp = Dp.Unspecified,
onControllerVisibilityChanged: ((Boolean) -> Unit)? = null,
onToggleControllerVisibility: (() -> Unit)? = null,
accountViewModel: AccountViewModel
) {
val mainModifier = Modifier
.fillMaxSize()
.zoomable(rememberZoomState())
if (content is ZoomableUrlImage) {
val mainModifier = Modifier
.fillMaxSize()
.zoomable(rememberZoomState())
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null // Avoid flashing on click
) {
if (onToggleControllerVisibility != null) {
onToggleControllerVisibility()
}
}
UrlImageView(
content = content,
mainImageModifier = mainModifier,
@ -844,6 +860,18 @@ private fun RenderImageOrVideo(
)
}
} else if (content is ZoomableLocalImage) {
val mainModifier = Modifier
.fillMaxSize()
.zoomable(rememberZoomState())
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null // Avoid flashing on click
) {
if (onToggleControllerVisibility != null) {
onToggleControllerVisibility()
}
}
LocalImageView(
content = content,
mainImageModifier = mainModifier,