From f7f0d74be1f9fdd621e8396570c871bbbd106c1f Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Sun, 3 Nov 2024 10:19:29 +0000 Subject: [PATCH 1/6] Correct boolean operation from AND to OR --- .../amethyst/ui/components/ZoomableContentDialog.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index 4556c0f1e..a2d935c5c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -296,7 +296,7 @@ private fun saveMediaToGallery( localContext: Context, 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 failure = if (isImage) R.string.failed_to_save_the_image else R.string.failed_to_save_the_video From b2628764c9f70842d67abfbbc1dc9009c37fb0e2 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Sun, 3 Nov 2024 10:20:30 +0000 Subject: [PATCH 2/6] Remove unused shadowed orientation val --- .../amethyst/ui/components/ZoomableContentDialog.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index a2d935c5c..aeaf127b4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -104,8 +104,6 @@ fun ZoomableImageDialog( onDismiss: () -> Unit, accountViewModel: AccountViewModel, ) { - val orientation = LocalConfiguration.current.orientation - Dialog( onDismissRequest = onDismiss, properties = From 69e139e382328d316cd673636fcb085c8613f488 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Sun, 3 Nov 2024 10:23:32 +0000 Subject: [PATCH 3/6] Remove unused @OptIn(ExperimentalFoundationApi::class) --- .../amethyst/ui/components/ZoomableContentDialog.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index aeaf127b4..d86e7aa02 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -29,7 +29,6 @@ import android.widget.FrameLayout import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement.spacedBy import androidx.compose.foundation.layout.Box @@ -149,7 +148,7 @@ fun ZoomableImageDialog( } @Composable -@OptIn(ExperimentalFoundationApi::class, ExperimentalPermissionsApi::class) +@OptIn(ExperimentalPermissionsApi::class) private fun DialogContent( allImages: ImmutableList, imageUrl: BaseMediaContent, @@ -336,7 +335,6 @@ private fun saveMediaToGallery( } @Composable -@OptIn(ExperimentalFoundationApi::class) fun InlineCarrousel( allImages: ImmutableList, imageUrl: String, From d1cd15c389281df4c41be5d9f4964bda73cda624 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Sun, 3 Nov 2024 10:24:20 +0000 Subject: [PATCH 4/6] Remove unused val --- .../amethyst/ui/components/ZoomableContentDialog.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index d86e7aa02..ca52b9f24 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -66,7 +66,6 @@ import androidx.compose.ui.platform.LocalView import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.core.net.toUri -import androidx.core.view.ViewCompat import coil3.compose.AsyncImage import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted @@ -112,7 +111,6 @@ fun ZoomableImageDialog( ), ) { val view = LocalView.current - val insets = ViewCompat.getRootWindowInsets(view) val orientation = LocalConfiguration.current.orientation println("This Log only exists to force orientation listener $orientation") From b877e4105ad5f00bf55da83dceaa93c5fa907e0a Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Sun, 3 Nov 2024 10:30:07 +0000 Subject: [PATCH 5/6] Replace nested ifs with a when --- .../ui/components/ZoomableContentDialog.kt | 150 +++++++++--------- 1 file changed, 79 insertions(+), 71 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index ca52b9f24..e48ef059e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -388,81 +388,41 @@ private fun RenderImageOrVideo( } Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center, modifier = Modifier.fillMaxWidth()) { - if (content is MediaUrlImage) { - val mainModifier = - Modifier - .fillMaxWidth() - .zoomable( - rememberZoomState(), - onTap = { - if (onToggleControllerVisibility != null) { - onToggleControllerVisibility() - } - }, - ) + when (content) { + is MediaUrlImage -> { + val mainModifier = + Modifier + .fillMaxWidth() + .zoomable( + rememberZoomState(), + onTap = { + if (onToggleControllerVisibility != null) { + onToggleControllerVisibility() + } + }, + ) - UrlImageView( - content = content, - contentScale = contentScale, - mainImageModifier = mainModifier, - loadedImageModifier = Modifier.fillMaxWidth(), - controllerVisible = controllerVisible, - accountViewModel = accountViewModel, - alwayShowImage = true, - ) - } else if (content is MediaUrlVideo) { - val borderModifier = - if (roundedCorner) { - MaterialTheme.colorScheme.imageModifier - } else { - Modifier.fillMaxWidth() - } + UrlImageView( + content = content, + contentScale = contentScale, + mainImageModifier = mainModifier, + loadedImageModifier = Modifier.fillMaxWidth(), + controllerVisible = controllerVisible, + accountViewModel = accountViewModel, + alwayShowImage = true, + ) + } - VideoViewInner( - videoUri = content.url, - mimeType = content.mimeType, - title = content.description, - artworkUri = content.artworkUri, - authorName = content.authorName, - 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() - } - }, - ) + is MediaUrlVideo -> { + val borderModifier = + if (roundedCorner) { + MaterialTheme.colorScheme.imageModifier + } else { + Modifier.fillMaxWidth() + } - 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( - videoUri = it.toUri().toString(), + videoUri = content.url, mimeType = content.mimeType, title = content.description, artworkUri = content.artworkUri, @@ -474,6 +434,54 @@ private fun RenderImageOrVideo( 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, + ) + } + } } } } From aad5aaa930b0bd89c550ef2c5d1b2fceba75b091 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Sun, 3 Nov 2024 11:48:12 +0000 Subject: [PATCH 6/6] rename inner it to avoid shadowed it --- .../amethyst/ui/components/ZoomableContentDialog.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index e48ef059e..0ce50701c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -324,8 +324,8 @@ private fun saveMediaToGallery( onSuccess = { accountViewModel.toast(success, success) }, - onError = { - accountViewModel.toast(failure, null, it) + onError = { innerIt -> + accountViewModel.toast(failure, null, innerIt) }, ) } @@ -379,7 +379,7 @@ private fun RenderImageOrVideo( onToggleControllerVisibility: (() -> Unit)? = null, accountViewModel: AccountViewModel, ) { - val automaticallyStartPlayback = remember { mutableStateOf(true) } + val automaticallyStartPlayback = remember { mutableStateOf(true) } val contentScale = if (isFiniteHeight) { ContentScale.Fit