mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 13:59:48 +01:00
Merge pull request #5110 from nextcloud/bug_fix
Scale DatePicker for smaller screens
This commit is contained in:
commit
5704be67fd
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user