Fix preview dialog: scrollable + cap video height at 200dp

Dialog content is now scrollable so buttons are always reachable.
Video player capped at 200dp height — no longer pushes buttons
off screen when the JavaFX panel expands.
This commit is contained in:
Kyle Bolen
2026-07-30 06:09:15 +00:00
parent 42039bade1
commit 7b28c87f2c

View File

@@ -4,6 +4,8 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Warning import androidx.compose.material.icons.filled.Warning
@@ -408,7 +410,9 @@ private fun PhotoPreviewDialog(
Dialog(onDismissRequest = onDismiss) { Dialog(onDismissRequest = onDismiss) {
Card(modifier = Modifier.fillMaxWidth(0.85f)) { Card(modifier = Modifier.fillMaxWidth(0.85f)) {
Column(modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { Column(modifier = Modifier.padding(16.dp)
.verticalScroll(rememberScrollState()),
verticalArrangement = Arrangement.spacedBy(8.dp)) {
Row(verticalAlignment = Alignment.CenterVertically, Row(verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
modifier = Modifier.fillMaxWidth()) { modifier = Modifier.fillMaxWidth()) {
@@ -461,7 +465,7 @@ private fun PhotoPreviewDialog(
Spacer(Modifier.height(2.dp)) Spacer(Modifier.height(2.dp))
LivePhotoPlayer( LivePhotoPlayer(
videoPath = mov, videoPath = mov,
modifier = Modifier.fillMaxWidth().aspectRatio(16f / 9f), modifier = Modifier.fillMaxWidth().height(200.dp),
) )
} else if (photo.isLivePhotoStill && mov == null && movPath == null) { } else if (photo.isLivePhotoStill && mov == null && movPath == null) {
Text("⏳ Loading motion clip…", Text("⏳ Loading motion clip…",