Merge pull request #1162 from davotoula/bugfix-images-reported-saved-as-video

Bugfix: images reported saved as video
This commit is contained in:
Vitor Pamplona
2024-11-04 10:09:36 -05:00
committed by GitHub
@@ -29,7 +29,6 @@ import android.widget.FrameLayout
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut import androidx.compose.animation.fadeOut
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Arrangement.spacedBy
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
@@ -67,7 +66,6 @@ import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.view.ViewCompat
import coil3.compose.AsyncImage import coil3.compose.AsyncImage
import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.isGranted
@@ -104,8 +102,6 @@ fun ZoomableImageDialog(
onDismiss: () -> Unit, onDismiss: () -> Unit,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
) { ) {
val orientation = LocalConfiguration.current.orientation
Dialog( Dialog(
onDismissRequest = onDismiss, onDismissRequest = onDismiss,
properties = properties =
@@ -115,7 +111,6 @@ fun ZoomableImageDialog(
), ),
) { ) {
val view = LocalView.current val view = LocalView.current
val insets = ViewCompat.getRootWindowInsets(view)
val orientation = LocalConfiguration.current.orientation val orientation = LocalConfiguration.current.orientation
println("This Log only exists to force orientation listener $orientation") println("This Log only exists to force orientation listener $orientation")
@@ -151,7 +146,7 @@ fun ZoomableImageDialog(
} }
@Composable @Composable
@OptIn(ExperimentalFoundationApi::class, ExperimentalPermissionsApi::class) @OptIn(ExperimentalPermissionsApi::class)
private fun DialogContent( private fun DialogContent(
allImages: ImmutableList<BaseMediaContent>, allImages: ImmutableList<BaseMediaContent>,
imageUrl: BaseMediaContent, imageUrl: BaseMediaContent,
@@ -296,7 +291,7 @@ private fun saveMediaToGallery(
localContext: Context, localContext: Context,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
) { ) {
val isImage = content is MediaUrlImage && content is MediaLocalImage val isImage = content is MediaUrlImage || content is MediaLocalImage
val success = if (isImage) R.string.image_saved_to_the_gallery else R.string.video_saved_to_the_gallery val success = if (isImage) R.string.image_saved_to_the_gallery else R.string.video_saved_to_the_gallery
val failure = if (isImage) R.string.failed_to_save_the_image else R.string.failed_to_save_the_video val failure = if (isImage) R.string.failed_to_save_the_image else R.string.failed_to_save_the_video
@@ -329,8 +324,8 @@ private fun saveMediaToGallery(
onSuccess = { onSuccess = {
accountViewModel.toast(success, success) accountViewModel.toast(success, success)
}, },
onError = { onError = { innerIt ->
accountViewModel.toast(failure, null, it) accountViewModel.toast(failure, null, innerIt)
}, },
) )
} }
@@ -338,7 +333,6 @@ private fun saveMediaToGallery(
} }
@Composable @Composable
@OptIn(ExperimentalFoundationApi::class)
fun InlineCarrousel( fun InlineCarrousel(
allImages: ImmutableList<String>, allImages: ImmutableList<String>,
imageUrl: String, imageUrl: String,
@@ -385,7 +379,7 @@ private fun RenderImageOrVideo(
onToggleControllerVisibility: (() -> Unit)? = null, onToggleControllerVisibility: (() -> Unit)? = null,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
) { ) {
val automaticallyStartPlayback = remember { mutableStateOf<Boolean>(true) } val automaticallyStartPlayback = remember { mutableStateOf(true) }
val contentScale = val contentScale =
if (isFiniteHeight) { if (isFiniteHeight) {
ContentScale.Fit ContentScale.Fit
@@ -394,7 +388,8 @@ 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) {
is MediaUrlImage -> {
val mainModifier = val mainModifier =
Modifier Modifier
.fillMaxWidth() .fillMaxWidth()
@@ -416,7 +411,9 @@ private fun RenderImageOrVideo(
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
alwayShowImage = true, alwayShowImage = true,
) )
} else if (content is MediaUrlVideo) { }
is MediaUrlVideo -> {
val borderModifier = val borderModifier =
if (roundedCorner) { if (roundedCorner) {
MaterialTheme.colorScheme.imageModifier MaterialTheme.colorScheme.imageModifier
@@ -436,7 +433,9 @@ private fun RenderImageOrVideo(
onControllerVisibilityChanged = onControllerVisibilityChanged, onControllerVisibilityChanged = onControllerVisibilityChanged,
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
) )
} else if (content is MediaLocalImage) { }
is MediaLocalImage -> {
val mainModifier = val mainModifier =
Modifier Modifier
.fillMaxWidth() .fillMaxWidth()
@@ -458,7 +457,9 @@ private fun RenderImageOrVideo(
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
alwayShowImage = true, alwayShowImage = true,
) )
} else if (content is MediaLocalVideo) { }
is MediaLocalVideo -> {
val borderModifier = val borderModifier =
if (roundedCorner) { if (roundedCorner) {
MaterialTheme.colorScheme.imageModifier MaterialTheme.colorScheme.imageModifier
@@ -483,3 +484,4 @@ private fun RenderImageOrVideo(
} }
} }
} }
}