Skip to content

Commit ee90908

Browse files
committed
feat(ui): redesign alarm dialog
1 parent 25acdeb commit ee90908

File tree

1 file changed

+59
-38
lines changed

1 file changed

+59
-38
lines changed

app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/AlarmDialog.kt

Lines changed: 59 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -17,72 +17,93 @@
1717

1818
package org.nsh07.pomodoro.ui.timerScreen
1919

20+
import androidx.compose.foundation.background
2021
import androidx.compose.foundation.clickable
22+
import androidx.compose.foundation.layout.Box
2123
import androidx.compose.foundation.layout.Column
2224
import androidx.compose.foundation.layout.Spacer
25+
import androidx.compose.foundation.layout.fillMaxSize
2326
import androidx.compose.foundation.layout.height
2427
import androidx.compose.foundation.layout.padding
25-
import androidx.compose.foundation.layout.wrapContentHeight
26-
import androidx.compose.foundation.layout.wrapContentWidth
27-
import androidx.compose.material3.AlertDialogDefaults
28-
import androidx.compose.material3.BasicAlertDialog
28+
import androidx.compose.foundation.layout.size
29+
import androidx.compose.material3.Button
2930
import androidx.compose.material3.ExperimentalMaterial3Api
3031
import androidx.compose.material3.Icon
31-
import androidx.compose.material3.MaterialTheme
32+
import androidx.compose.material3.LocalContentColor
33+
import androidx.compose.material3.MaterialTheme.colorScheme
3234
import androidx.compose.material3.MaterialTheme.typography
33-
import androidx.compose.material3.Surface
3435
import androidx.compose.material3.Text
35-
import androidx.compose.material3.TextButton
3636
import androidx.compose.runtime.Composable
37+
import androidx.compose.runtime.CompositionLocalProvider
3738
import androidx.compose.ui.Alignment
3839
import androidx.compose.ui.Modifier
3940
import androidx.compose.ui.res.painterResource
4041
import androidx.compose.ui.res.stringResource
42+
import androidx.compose.ui.text.style.TextAlign
43+
import androidx.compose.ui.tooling.preview.Preview
4144
import androidx.compose.ui.unit.dp
45+
import androidx.compose.ui.window.Dialog
46+
import androidx.compose.ui.window.DialogProperties
4247
import org.nsh07.pomodoro.R
48+
import org.nsh07.pomodoro.ui.theme.TomatoTheme
4349

4450
@OptIn(ExperimentalMaterial3Api::class)
4551
@Composable
4652
fun AlarmDialog(
4753
modifier: Modifier = Modifier,
4854
stopAlarm: () -> Unit
4955
) {
50-
BasicAlertDialog(
56+
Dialog(
5157
onDismissRequest = stopAlarm,
52-
modifier = modifier
58+
properties = DialogProperties(
59+
usePlatformDefaultWidth = false,
60+
decorFitsSystemWindows = false
61+
)
5362
) {
54-
Surface(
55-
modifier = Modifier
56-
.wrapContentWidth()
57-
.wrapContentHeight()
58-
.clickable(onClick = stopAlarm),
59-
shape = MaterialTheme.shapes.extraLarge,
60-
tonalElevation = AlertDialogDefaults.TonalElevation,
63+
Box(
64+
contentAlignment = Alignment.Center,
65+
modifier = modifier
66+
.fillMaxSize()
67+
.background(colorScheme.primaryContainer)
68+
.clickable(onClick = stopAlarm)
6169
) {
62-
Column(modifier = Modifier.padding(24.dp)) {
63-
Icon(
64-
painter = painterResource(R.drawable.alarm),
65-
contentDescription = stringResource(R.string.alarm),
66-
modifier = Modifier.align(Alignment.CenterHorizontally)
67-
)
68-
Spacer(Modifier.height(16.dp))
69-
Text(
70-
text = stringResource(R.string.stop_alarm_question),
71-
style = typography.headlineSmall,
72-
modifier = Modifier.align(Alignment.CenterHorizontally)
73-
)
74-
Spacer(Modifier.height(16.dp))
75-
Text(
76-
text = stringResource(R.string.stop_alarm_dialog_text)
77-
)
78-
Spacer(modifier = Modifier.height(24.dp))
79-
TextButton(
80-
onClick = stopAlarm,
81-
modifier = Modifier.align(Alignment.End),
82-
) {
83-
Text(stringResource(R.string.stop_alarm))
70+
CompositionLocalProvider(LocalContentColor provides colorScheme.onPrimaryContainer) {
71+
Column(modifier = Modifier.padding(24.dp)) {
72+
Icon(
73+
painter = painterResource(R.drawable.alarm),
74+
contentDescription = stringResource(R.string.alarm),
75+
modifier = Modifier
76+
.align(Alignment.CenterHorizontally)
77+
.size(40.dp)
78+
)
79+
Spacer(Modifier.height(16.dp))
80+
Text(
81+
text = stringResource(R.string.stop_alarm_question),
82+
style = typography.headlineSmall,
83+
modifier = Modifier.align(Alignment.CenterHorizontally)
84+
)
85+
Spacer(Modifier.height(16.dp))
86+
Text(
87+
text = stringResource(R.string.stop_alarm_dialog_text),
88+
textAlign = TextAlign.Center
89+
)
90+
Spacer(modifier = Modifier.height(24.dp))
91+
Button(
92+
onClick = stopAlarm,
93+
modifier = Modifier.align(Alignment.End),
94+
) {
95+
Text(stringResource(R.string.stop_alarm))
96+
}
8497
}
8598
}
8699
}
87100
}
88101
}
102+
103+
@Preview
104+
@Composable
105+
fun AlarmDialogPreview() {
106+
TomatoTheme {
107+
AlarmDialog(stopAlarm = {})
108+
}
109+
}

0 commit comments

Comments
 (0)