diff --git a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/components/AlertContent.kt b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/components/AlertContent.kt index 5b5ea11..841bffd 100644 --- a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/components/AlertContent.kt +++ b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/components/AlertContent.kt @@ -5,6 +5,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.material3.BasicAlertDialog import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi +import androidx.compose.material3.MaterialExpressiveTheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.ModalBottomSheetProperties @@ -14,8 +16,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties +import ru.shadowsparky.ui.theme.getColorScheme -@OptIn(ExperimentalMaterial3Api::class) +@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class) @Composable fun AlertContent( onDismissRequest: () -> Unit, @@ -40,31 +43,35 @@ fun AlertContent( content() } } - if (isTv()) { - BasicAlertDialog( - onDismissRequest = onDismissRequest, - modifier = modifier, - properties = DialogProperties( - dismissOnBackPress = canDismiss, - dismissOnClickOutside = canDismiss - ) + MaterialExpressiveTheme(getColorScheme()) { + Surface( + shape = MaterialTheme.shapes.extraLarge, + color = MaterialTheme.colorScheme.surface ) { - Surface( - shape = MaterialTheme.shapes.extraLarge, - color = MaterialTheme.colorScheme.surface - ) { - BaseDialogLayout() + if (isTv()) { + BasicAlertDialog( + onDismissRequest = onDismissRequest, + modifier = modifier, + properties = DialogProperties( + dismissOnBackPress = canDismiss, + dismissOnClickOutside = canDismiss + ) + ) { + BaseDialogLayout() + } + } else { + ModalBottomSheet( + onDismissRequest = onDismissRequest, + modifier = modifier, + properties = ModalBottomSheetProperties( + shouldDismissOnBackPress = canDismiss, + shouldDismissOnClickOutside = canDismiss + ), + shape = MaterialTheme.shapes.extraLarge + ) { + BaseDialogLayout() + } } } - } else { - ModalBottomSheet( - onDismissRequest = onDismissRequest, - modifier = modifier, - properties = ModalBottomSheetProperties( - shouldDismissOnBackPress = canDismiss, - shouldDismissOnClickOutside = canDismiss - ), - shape = MaterialTheme.shapes.extraLarge - ) { BaseDialogLayout() } } } diff --git a/libs/updater/updater-client/src/commonMain/kotlin/ru/shadowsparky/updater/presentation/UpdateDialog.kt b/libs/updater/updater-client/src/commonMain/kotlin/ru/shadowsparky/updater/presentation/UpdateDialog.kt index ffbc44b..41071c6 100644 --- a/libs/updater/updater-client/src/commonMain/kotlin/ru/shadowsparky/updater/presentation/UpdateDialog.kt +++ b/libs/updater/updater-client/src/commonMain/kotlin/ru/shadowsparky/updater/presentation/UpdateDialog.kt @@ -38,6 +38,7 @@ import com.arkivanov.decompose.extensions.compose.subscribeAsState import org.jetbrains.compose.resources.StringResource import org.jetbrains.compose.resources.stringResource import ru.shadowsparky.ui.components.AlertContent +import ru.shadowsparky.ui.components.LazyColumn import ru.shadowsparky.ui.components.Loading import ru.shadowsparky.updater.domain.UpdateState @@ -122,22 +123,30 @@ private fun UpdateAvailableContent( style = MaterialTheme.typography.titleLarge, modifier = Modifier.align(Alignment.CenterHorizontally) ) - Column(modifier = Modifier.fillMaxWidth()) { - Text( - text = stringResource(Res.string.updater_changelog_title), - style = MaterialTheme.typography.titleMedium - ) - Spacer(modifier = Modifier.height(4.dp)) - Text( - text = changeLog ?: stringResource(Res.string.updater_changelog_empty), - style = MaterialTheme.typography.bodyMedium - ) - } - Button(onClick = onDownloadClick, modifier = Modifier.fillMaxWidth()) { - Text( - stringResource(Res.string.updater_btn_download), - style = MaterialTheme.typography.labelLarge - ) + LazyColumn(modifier = Modifier.fillMaxWidth()) { + item { + Text( + text = stringResource(Res.string.updater_changelog_title), + style = MaterialTheme.typography.titleMedium + ) + } + item { + Spacer(modifier = Modifier.height(4.dp)) + } + item { + Text( + text = changeLog ?: stringResource(Res.string.updater_changelog_empty), + style = MaterialTheme.typography.bodyMedium + ) + } + item { + Button(onClick = onDownloadClick, modifier = Modifier.fillMaxWidth()) { + Text( + stringResource(Res.string.updater_btn_download), + style = MaterialTheme.typography.labelLarge + ) + } + } } } }