FailureConfirmationDialog

Functions summary

Unit
@Composable
FailureConfirmationDialog(
    visible: Boolean,
    onDismissRequest: () -> Unit,
    curvedText: (CurvedScope.() -> Unit)?,
    modifier: Modifier,
    colors: ConfirmationDialogColors,
    properties: DialogProperties,
    durationMillis: Long,
    content: @Composable () -> Unit
)

Shows a FailureConfirmationDialog with a failure icon and an optional short curved text.

Functions

FailureConfirmationDialog

@Composable
fun FailureConfirmationDialog(
    visible: Boolean,
    onDismissRequest: () -> Unit,
    curvedText: (CurvedScope.() -> Unit)?,
    modifier: Modifier = Modifier,
    colors: ConfirmationDialogColors = ConfirmationDialogDefaults.failureColors(),
    properties: DialogProperties = DialogProperties(),
    durationMillis: Long = ConfirmationDialogDefaults.DurationMillis,
    content: @Composable () -> Unit = { ConfirmationDialogDefaults.ConnectionFailureIcon() }
): Unit

Shows a FailureConfirmationDialog with a failure icon and an optional short curved text. This variation of confirmation dialog indicates an unsuccessful operation or action.

The confirmation dialog will show a message to the user for durationMillis. After a specified timeout, the onDismissRequest callback will be invoked, where it's up to the caller to handle the dismissal. To hide the confirmation, visible parameter should be set to false.

Where user input is required, such as choosing to ok or cancel an action, use AlertDialog instead of FailureConfirmationDialog.

Example of FailureConfirmationDialog usage with default icon:

import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.wear.compose.material3.ConfirmationDialog
import androidx.wear.compose.material3.ConfirmationDialogDefaults
import androidx.wear.compose.material3.FailureConfirmationDialog
import androidx.wear.compose.material3.FilledTonalButton
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.confirmationDialogCurvedText

var showConfirmation by remember { mutableStateOf(false) }

Box(Modifier.fillMaxSize()) {
    FilledTonalButton(
        modifier = Modifier.align(Alignment.Center),
        onClick = { showConfirmation = true },
        label = { Text("Show Confirmation") },
    )
}

val text = "Failure"
val style = ConfirmationDialogDefaults.curvedTextStyle
FailureConfirmationDialog(
    visible = showConfirmation,
    onDismissRequest = { showConfirmation = false },
    curvedText = { confirmationDialogCurvedText(text, style) },
)

Example of FailureConfirmationDialog with the variant failure icon for a generic error.

import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.wear.compose.material3.ConfirmationDialog
import androidx.wear.compose.material3.ConfirmationDialogDefaults
import androidx.wear.compose.material3.FailureConfirmationDialog
import androidx.wear.compose.material3.FilledTonalButton
import androidx.wear.compose.material3.Icon
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.confirmationDialogCurvedText

var showConfirmation by remember { mutableStateOf(false) }

Box(Modifier.fillMaxSize()) {
    FilledTonalButton(
        modifier = Modifier.align(Alignment.Center),
        onClick = { showConfirmation = true },
        label = { Text("Show Confirmation") },
    )
}

val text = "Failure"
val style = ConfirmationDialogDefaults.curvedTextStyle
FailureConfirmationDialog(
    visible = showConfirmation,
    onDismissRequest = { showConfirmation = false },
    curvedText = { confirmationDialogCurvedText(text, style) },
    content = { ConfirmationDialogDefaults.GenericFailureIcon() },
)
Parameters
visible: Boolean

A boolean indicating whether the confirmation dialog should be displayed.

onDismissRequest: () -> Unit

A lambda function to be called when the dialog is dismissed - either by swiping right or when the durationMillis has passed. Implementation of this lambda must remove the dialog from the composition hierarchy e.g. by setting visible to false.

curvedText: (CurvedScope.() -> Unit)?

A slot for displaying curved text content which will be shown along the bottom edge of the dialog. We recommend using confirmationDialogCurvedText for this parameter, which will give the default sweep angle and padding.

modifier: Modifier = Modifier

Modifier to be applied to the confirmation content.

colors: ConfirmationDialogColors = ConfirmationDialogDefaults.failureColors()

A ConfirmationDialogColors object for customizing the colors used in this FailureConfirmationDialog.

properties: DialogProperties = DialogProperties()

An optional DialogProperties object for configuring the dialog's behavior.

durationMillis: Long = ConfirmationDialogDefaults.DurationMillis

The duration in milliseconds for which the dialog is displayed. This value will be adjusted by the accessibility manager according to the content displayed.

content: @Composable () -> Unit = { ConfirmationDialogDefaults.ConnectionFailureIcon() }

A slot for displaying an icon inside the confirmation dialog, which can be animated. The default value is ConfirmationDialogDefaults.ConnectionFailureIcon, which shows a broken connection to the phone icon. Alternatively, provide ConfirmationDialogDefaults.GenericFailureIcon for a generic error icon.