feat(ui): redesign alarm dialog
This commit is contained in:
@@ -17,29 +17,35 @@
|
|||||||
|
|
||||||
package org.nsh07.pomodoro.ui.timerScreen
|
package org.nsh07.pomodoro.ui.timerScreen
|
||||||
|
|
||||||
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.wrapContentHeight
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.layout.wrapContentWidth
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.AlertDialogDefaults
|
|
||||||
import androidx.compose.material3.BasicAlertDialog
|
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.LocalContentColor
|
||||||
|
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||||
import androidx.compose.material3.MaterialTheme.typography
|
import androidx.compose.material3.MaterialTheme.typography
|
||||||
import androidx.compose.material3.Surface
|
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.TextButton
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.compose.ui.window.Dialog
|
||||||
|
import androidx.compose.ui.window.DialogProperties
|
||||||
import org.nsh07.pomodoro.R
|
import org.nsh07.pomodoro.R
|
||||||
|
import org.nsh07.pomodoro.ui.theme.TomatoTheme
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -47,42 +53,57 @@ fun AlarmDialog(
|
|||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
stopAlarm: () -> Unit
|
stopAlarm: () -> Unit
|
||||||
) {
|
) {
|
||||||
BasicAlertDialog(
|
Dialog(
|
||||||
onDismissRequest = stopAlarm,
|
onDismissRequest = stopAlarm,
|
||||||
modifier = modifier
|
properties = DialogProperties(
|
||||||
|
usePlatformDefaultWidth = false,
|
||||||
|
decorFitsSystemWindows = false
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
Surface(
|
Box(
|
||||||
modifier = Modifier
|
contentAlignment = Alignment.Center,
|
||||||
.wrapContentWidth()
|
modifier = modifier
|
||||||
.wrapContentHeight()
|
.fillMaxSize()
|
||||||
.clickable(onClick = stopAlarm),
|
.background(colorScheme.primaryContainer)
|
||||||
shape = MaterialTheme.shapes.extraLarge,
|
.clickable(onClick = stopAlarm)
|
||||||
tonalElevation = AlertDialogDefaults.TonalElevation,
|
|
||||||
) {
|
) {
|
||||||
Column(modifier = Modifier.padding(24.dp)) {
|
CompositionLocalProvider(LocalContentColor provides colorScheme.onPrimaryContainer) {
|
||||||
Icon(
|
Column(modifier = Modifier.padding(24.dp)) {
|
||||||
painter = painterResource(R.drawable.alarm),
|
Icon(
|
||||||
contentDescription = stringResource(R.string.alarm),
|
painter = painterResource(R.drawable.alarm),
|
||||||
modifier = Modifier.align(Alignment.CenterHorizontally)
|
contentDescription = stringResource(R.string.alarm),
|
||||||
)
|
modifier = Modifier
|
||||||
Spacer(Modifier.height(16.dp))
|
.align(Alignment.CenterHorizontally)
|
||||||
Text(
|
.size(40.dp)
|
||||||
text = stringResource(R.string.stop_alarm_question),
|
)
|
||||||
style = typography.headlineSmall,
|
Spacer(Modifier.height(16.dp))
|
||||||
modifier = Modifier.align(Alignment.CenterHorizontally)
|
Text(
|
||||||
)
|
text = stringResource(R.string.stop_alarm_question),
|
||||||
Spacer(Modifier.height(16.dp))
|
style = typography.headlineSmall,
|
||||||
Text(
|
modifier = Modifier.align(Alignment.CenterHorizontally)
|
||||||
text = stringResource(R.string.stop_alarm_dialog_text)
|
)
|
||||||
)
|
Spacer(Modifier.height(16.dp))
|
||||||
Spacer(modifier = Modifier.height(24.dp))
|
Text(
|
||||||
TextButton(
|
text = stringResource(R.string.stop_alarm_dialog_text),
|
||||||
onClick = stopAlarm,
|
textAlign = TextAlign.Center
|
||||||
modifier = Modifier.align(Alignment.End),
|
)
|
||||||
) {
|
Spacer(modifier = Modifier.height(24.dp))
|
||||||
Text(stringResource(R.string.stop_alarm))
|
Button(
|
||||||
|
onClick = stopAlarm,
|
||||||
|
modifier = Modifier.align(Alignment.End),
|
||||||
|
) {
|
||||||
|
Text(stringResource(R.string.stop_alarm))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun AlarmDialogPreview() {
|
||||||
|
TomatoTheme {
|
||||||
|
AlarmDialog(stopAlarm = {})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user