scale datePicker

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-06-27 23:16:00 +02:00
parent 3ad7291cc4
commit 2b5973e763
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220

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>) {
@ -288,20 +292,27 @@ class DateTimeCompose(val bundle: Bundle) {
val scrollState = rememberScrollState() val scrollState = rememberScrollState()
Column( Column(
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxWidth().verticalScroll(scrollState) modifier = Modifier.verticalScroll(scrollState)
) { ) {
if (!isCollapsed.value) { if (!isCollapsed.value) {
val datePickerState = rememberDatePickerState() val datePickerState = rememberDatePickerState()
val timePickerState = rememberTimePickerState() val timePickerState = rememberTimePickerState()
DatePicker( BoxWithConstraints(
state = datePickerState, modifier = Modifier
modifier = Modifier.fillMaxWidth() .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
modifier = Modifier.fillMaxWidth()
) )
val date = datePickerState.selectedDateMillis?.let { val date = datePickerState.selectedDateMillis?.let {