package com.suno.android.common_ui.components import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.res.painterResource 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.sp import com.suno.android.common_ui.theme.ExtendedTheme import com.suno.android.common_ui.theme.SunoTheme import com.suno.android.common_res.R as CommonResR @Composable fun UpdateScreen( modifier: Modifier = Modifier, onConfirm: () -> Unit = {}, onDismiss: (() -> Unit)? = null, ) { Box( modifier = Modifier .fillMaxSize() .padding(bottom = 64.dp), contentAlignment = Alignment.Center, ) { Column( modifier = Modifier .align(Alignment.Center) .padding(bottom = 48.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, ) { Image( modifier = Modifier .width(200.dp) .height(100.dp), painter = painterResource(com.suno.android.common_ui.R.drawable.go_play_store), contentDescription = null, ) Text( modifier = Modifier.padding(top = 32.dp), text = stringResource(CommonResR.string.force_update_title), style = ExtendedTheme.typography.categoryHeadline, ) Text( modifier = Modifier .padding(top = 8.dp) .alpha(0.6f), text = if (onDismiss == null) { stringResource(CommonResR.string.force_update_message) } else { stringResource(CommonResR.string.version_not_supported_soon) }, style = ExtendedTheme.typography.smallBody.copy( textAlign = TextAlign.Center, lineHeight = 20.sp, ), ) Spacer(Modifier.height(8.dp)) TextButton( onClick = onConfirm, ) { Text( text = stringResource(CommonResR.string.go_to_play_store), color = ExtendedTheme.colors.sunoPink, style = ExtendedTheme.typography.body, ) } onDismiss?.let { TextButton( onClick = onDismiss, ) { Text( text = stringResource(CommonResR.string.skip), color = ExtendedTheme.colors.textTertiary, style = ExtendedTheme.typography.smallBody, ) } } } } } @Preview(showSystemUi = true) @Composable private fun ForceUpdateScreen_Preview() { SunoTheme { UpdateScreen() } } @Preview(showSystemUi = true) @Composable private fun WarnUpdateScreen_Preview() { SunoTheme { UpdateScreen(onDismiss = {}) } }