From 88d852719d744e9cf0e408ee508a837464bd1acf Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 29 May 2026 17:31:57 +0200 Subject: [PATCH] feat: Dynamically adjust dialog height based on screen size in DiaryCourtDrawing --- .../tt_tagebuch/app/ui/DiaryCourtDrawing.kt | 19 ++++++++++++++++--- mobile-app/gradle/libs.versions.toml | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/mobile-app/composeApp/src/androidMain/kotlin/de/tsschulz/tt_tagebuch/app/ui/DiaryCourtDrawing.kt b/mobile-app/composeApp/src/androidMain/kotlin/de/tsschulz/tt_tagebuch/app/ui/DiaryCourtDrawing.kt index bb7c46fd..70c6f5cc 100644 --- a/mobile-app/composeApp/src/androidMain/kotlin/de/tsschulz/tt_tagebuch/app/ui/DiaryCourtDrawing.kt +++ b/mobile-app/composeApp/src/androidMain/kotlin/de/tsschulz/tt_tagebuch/app/ui/DiaryCourtDrawing.kt @@ -23,6 +23,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Size @@ -134,12 +135,15 @@ internal fun DiaryCourtDrawingDialog( var nextType by remember(initial?.id) { mutableStateOf("US") } var nextTarget by remember(initial?.id) { mutableStateOf("") } + val cfg = LocalConfiguration.current + val maxHeight = (cfg.screenHeightDp.dp * 0.86f) + AlertDialog( onDismissRequest = onDismiss, title = { Text("Uebungszeichnung") }, text = { Column( - modifier = Modifier.fillMaxWidth().heightIn(max = 600.dp).verticalScroll(rememberScrollState()), + modifier = Modifier.fillMaxWidth().heightIn(max = maxHeight).verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(8.dp), ) { OutlinedTextField(value = name, onValueChange = { name = it }, label = { Text("Name") }, singleLine = true) @@ -221,11 +225,17 @@ internal fun DiaryCourtDrawingViewerDialog( data: DiaryCourtDrawingData, onDismiss: () -> Unit, ) { + val cfg = LocalConfiguration.current + val maxHeight = (cfg.screenHeightDp.dp * 0.86f) + AlertDialog( onDismissRequest = onDismiss, title = { Text(title) }, text = { - Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Column( + modifier = Modifier.fillMaxWidth().heightIn(max = maxHeight).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { DiaryCourtDrawingPreview(data) Text(data.fullCode(), style = MaterialTheme.typography.body2) } @@ -253,10 +263,13 @@ private fun DrawingChoiceRow(label: String, values: List, selected: Stri @Composable internal fun DiaryCourtDrawingPreview(data: DiaryCourtDrawingData, modifier: Modifier = Modifier) { + val cfg = LocalConfiguration.current + val previewHeight = (cfg.screenHeightDp.dp * 0.28f).coerceAtLeast(150.dp) + Canvas( modifier = modifier .fillMaxWidth() - .height(155.dp) + .height(previewHeight) .background(Color(0xFFF0F4F1)) .padding(10.dp), ) { diff --git a/mobile-app/gradle/libs.versions.toml b/mobile-app/gradle/libs.versions.toml index 8f1d87e2..efacf522 100644 --- a/mobile-app/gradle/libs.versions.toml +++ b/mobile-app/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # composeApp (Play Store / „Über die App“-Build) -appVersionCode = "17" +appVersionCode = "18" appVersionName = "1.6.2" agp = "9.2.1" android-compileSdk = "35"