Merge pull request #5110 from nextcloud/bug_fix

Scale DatePicker for smaller screens
This commit is contained in:
Sowjanya Kota 2025-07-08 12:39:36 +02:00 committed by GitHub
commit 5704be67fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7,16 +7,19 @@
package com.nextcloud.talk.ui.dialog package com.nextcloud.talk.ui.dialog
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import androidx.compose.animation.animateContentSize import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.requiredSizeIn
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
@ -42,6 +45,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.scale
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
@ -110,12 +114,11 @@ class DateTimeCompose(val bundle: Bundle) {
) { ) {
Surface( Surface(
shape = RoundedCornerShape(INT_8.dp), shape = RoundedCornerShape(INT_8.dp),
modifier = Modifier.animateContentSize() modifier = Modifier.fillMaxWidth().animateContentSize()
) { ) {
Column( Column(
modifier = Modifier modifier = Modifier
.padding(INT_16.dp) .padding(INT_16.dp)
.fillMaxWidth()
) { ) {
Header() Header()
Body() Body()
@ -281,6 +284,7 @@ class DateTimeCompose(val bundle: Bundle) {
HorizontalDivider() HorizontalDivider()
} }
@SuppressLint("UnusedBoxWithConstraintsScope")
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
private fun CollapsableDateTime(shouldDismiss: MutableState<Boolean>, isCollapsed: MutableState<Boolean>) { private fun CollapsableDateTime(shouldDismiss: MutableState<Boolean>, isCollapsed: MutableState<Boolean>) {
@ -294,9 +298,18 @@ class DateTimeCompose(val bundle: Bundle) {
val datePickerState = rememberDatePickerState() val datePickerState = rememberDatePickerState()
val timePickerState = rememberTimePickerState() val timePickerState = rememberTimePickerState()
DatePicker( BoxWithConstraints(
state = datePickerState modifier = Modifier
) .requiredSizeIn(minWidth = 360.dp)
) {
val scale = remember(maxWidth) { if (maxWidth < 360.dp) maxWidth / 360.dp else 1f }
DatePicker(
state = datePickerState,
modifier = Modifier
.scale(scale)
)
}
TimePicker( TimePicker(
state = timePickerState state = timePickerState