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