7
7
8
8
package com.nextcloud.talk.ui.dialog
9
9
10
+ import android.annotation.SuppressLint
10
11
import android.content.Context
11
12
import android.os.Bundle
12
13
import androidx.compose.animation.animateContentSize
13
14
import androidx.compose.foundation.clickable
14
15
import androidx.compose.foundation.layout.Arrangement
16
+ import androidx.compose.foundation.layout.BoxWithConstraints
15
17
import androidx.compose.foundation.layout.Column
16
18
import androidx.compose.foundation.layout.Row
17
19
import androidx.compose.foundation.layout.Spacer
18
20
import androidx.compose.foundation.layout.fillMaxWidth
19
21
import androidx.compose.foundation.layout.padding
22
+ import androidx.compose.foundation.layout.requiredSizeIn
20
23
import androidx.compose.foundation.layout.size
21
24
import androidx.compose.foundation.layout.width
22
25
import androidx.compose.foundation.rememberScrollState
@@ -42,6 +45,7 @@ import androidx.compose.runtime.mutableStateOf
42
45
import androidx.compose.runtime.remember
43
46
import androidx.compose.ui.Alignment
44
47
import androidx.compose.ui.Modifier
48
+ import androidx.compose.ui.draw.scale
45
49
import androidx.compose.ui.graphics.Color
46
50
import androidx.compose.ui.graphics.vector.ImageVector
47
51
import androidx.compose.ui.res.stringResource
@@ -110,12 +114,11 @@ class DateTimeCompose(val bundle: Bundle) {
110
114
) {
111
115
Surface (
112
116
shape = RoundedCornerShape (INT_8 .dp),
113
- modifier = Modifier .animateContentSize()
117
+ modifier = Modifier .fillMaxWidth(). animateContentSize()
114
118
) {
115
119
Column (
116
120
modifier = Modifier
117
121
.padding(INT_16 .dp)
118
- .fillMaxWidth()
119
122
) {
120
123
Header ()
121
124
Body ()
@@ -281,27 +284,35 @@ class DateTimeCompose(val bundle: Bundle) {
281
284
HorizontalDivider ()
282
285
}
283
286
287
+ @SuppressLint(" UnusedBoxWithConstraintsScope" )
284
288
@OptIn(ExperimentalMaterial3Api ::class )
285
289
@Composable
286
290
private fun CollapsableDateTime (shouldDismiss : MutableState <Boolean >, isCollapsed : MutableState <Boolean >) {
287
291
GeneralIconButton (icon = Icons .Filled .DateRange , label = " Custom" ) { isCollapsed.value = ! isCollapsed.value }
288
292
val scrollState = rememberScrollState()
289
293
Column (
290
294
horizontalAlignment = Alignment .CenterHorizontally ,
291
- modifier = Modifier .fillMaxWidth(). verticalScroll(scrollState)
295
+ modifier = Modifier .verticalScroll(scrollState)
292
296
) {
293
297
if (! isCollapsed.value) {
294
298
val datePickerState = rememberDatePickerState()
295
299
val timePickerState = rememberTimePickerState()
296
300
297
- DatePicker (
298
- state = datePickerState,
299
- modifier = Modifier .fillMaxWidth()
300
- )
301
+ BoxWithConstraints (
302
+ modifier = Modifier
303
+ .requiredSizeIn(minWidth = 360 .dp)
304
+ ) {
305
+ val scale = remember(maxWidth) { if (maxWidth < 360 .dp) maxWidth / 360 .dp else 1f }
306
+
307
+ DatePicker (
308
+ state = datePickerState,
309
+ modifier = Modifier
310
+ .scale(scale)
311
+ )
312
+ }
301
313
302
314
TimePicker (
303
- state = timePickerState,
304
- modifier = Modifier .fillMaxWidth()
315
+ state = timePickerState
305
316
)
306
317
307
318
val date = datePickerState.selectedDateMillis?.let {
0 commit comments