Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bfd405fd authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Always set dialog width for SettingsAlertDialog

Especially for tablet, this will use the correct width.

Bug: 236346018
Test: Manually with Settings
Test: Unit test
Change-Id: Ia7cddd510b852fc568a492ba4e3b1c60c45d2c2f
parent b10a28f6
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -30,9 +30,9 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties

@@ -74,7 +74,6 @@ fun rememberAlertDialogPresenter(
    return alertDialogPresenter
}

@OptIn(ExperimentalComposeUiApi::class)
@Composable
private fun AlertDialogPresenter.SettingsAlertDialog(
    confirmButton: AlertDialogButton?,
@@ -82,15 +81,9 @@ private fun AlertDialogPresenter.SettingsAlertDialog(
    title: String?,
    text: @Composable (() -> Unit)?,
) {
    val configuration = LocalConfiguration.current
    AlertDialog(
        onDismissRequest = ::close,
        modifier = when (configuration.orientation) {
            Configuration.ORIENTATION_LANDSCAPE -> {
                Modifier.width(configuration.screenWidthDp.dp * 0.6f)
            }
            else -> Modifier
        },
        modifier = Modifier.width(getDialogWidth()),
        confirmButton = { confirmButton?.let { Button(it) } },
        dismissButton = dismissButton?.let { { Button(it) } },
        title = title?.let { { Text(it) } },
@@ -105,6 +98,15 @@ private fun AlertDialogPresenter.SettingsAlertDialog(
    )
}

@Composable
private fun getDialogWidth(): Dp {
    val configuration = LocalConfiguration.current
    return configuration.screenWidthDp.dp * when (configuration.orientation) {
        Configuration.ORIENTATION_LANDSCAPE -> 0.6f
        else -> 0.8f
    }
}

@Composable
private fun AlertDialogPresenter.Button(button: AlertDialogButton) {
    TextButton(