DialogProperties

Class
Common
expect class DialogProperties(
    dismissOnBackPress: Boolean = true,
    dismissOnClickOutside: Boolean = true,
    usePlatformDefaultWidth: Boolean = true,
)

Properties used to customize the behavior of a Dialog.

Properties

Common
val dismissOnBackPress: Boolean
Common
val dismissOnClickOutside: Boolean
Common
val usePlatformDefaultWidth: Boolean
Android
actual class DialogProperties(
    actual val dismissOnBackPress: Boolean = true,
    actual val dismissOnClickOutside: Boolean = true,
    val securePolicy: SecureFlagPolicy = SecureFlagPolicy.Inherit,
    actual val usePlatformDefaultWidth: Boolean = true,
    val decorFitsSystemWindows: Boolean = true,
    val windowTitle: String = "",
    val windowType: Int = WindowManager.LayoutParams.TYPE_APPLICATION,
    val windowToken: IBinder? = null,
)

Properties used to customize the behavior of a Dialog.

Secondary Constructors

actual constructor(
    dismissOnBackPress: Boolean,
    dismissOnClickOutside: Boolean,
    usePlatformDefaultWidth: Boolean,
) : this(
    dismissOnBackPress = dismissOnBackPress,
    dismissOnClickOutside = dismissOnClickOutside,
    securePolicy = SecureFlagPolicy.Inherit,
    usePlatformDefaultWidth = usePlatformDefaultWidth,
    decorFitsSystemWindows = true,
)
constructor(
    dismissOnBackPress: Boolean = true,
    dismissOnClickOutside: Boolean = true,
    securePolicy: SecureFlagPolicy = SecureFlagPolicy.Inherit,
    usePlatformDefaultWidth: Boolean = true,
    decorFitsSystemWindows: Boolean = true,
    windowTitle: String = "",
) : this(
    dismissOnBackPress = dismissOnBackPress,
    dismissOnClickOutside = dismissOnClickOutside,
    securePolicy = securePolicy,
    usePlatformDefaultWidth = usePlatformDefaultWidth,
    decorFitsSystemWindows = decorFitsSystemWindows,
    windowTitle = windowTitle,
    windowType = WindowManager.LayoutParams.TYPE_APPLICATION,
    windowToken = null,
)
constructor(
    dismissOnBackPress: Boolean = true,
    dismissOnClickOutside: Boolean = true,
    securePolicy: SecureFlagPolicy = SecureFlagPolicy.Inherit,
    usePlatformDefaultWidth: Boolean = true,
    decorFitsSystemWindows: Boolean = true,
) : this(
    dismissOnBackPress = dismissOnBackPress,
    dismissOnClickOutside = dismissOnClickOutside,
    securePolicy = SecureFlagPolicy.Inherit,
    usePlatformDefaultWidth = usePlatformDefaultWidth,
    decorFitsSystemWindows = true,
    windowTitle = "",
)
constructor(
    dismissOnBackPress: Boolean = true,
    dismissOnClickOutside: Boolean = true,
    securePolicy: SecureFlagPolicy = SecureFlagPolicy.Inherit,
) : this(
    dismissOnBackPress = dismissOnBackPress,
    dismissOnClickOutside = dismissOnClickOutside,
    securePolicy = securePolicy,
    usePlatformDefaultWidth = true,
    decorFitsSystemWindows = true,
)

Code Examples

DialogFromServiceSample

@Composable
fun DialogFromServiceSample() {
    // In a real Service scenario, appWindowToken would be received via IPC
    // from the main application process. This sample simulates having the token.
    val appWindowToken: IBinder? = null // Provided via IPC
    var showDialog by remember { mutableStateOf(false) }
    Button(onClick = { showDialog = true }) { Text("Show Dialog From Service") }
    if (showDialog) {
        Dialog(
            onDismissRequest = { showDialog = false },
            properties =
                DialogProperties(
                    // Pass the application's window token
                    windowToken = appWindowToken
                ),
        ) {
            Box(Modifier.size(250.dp, 150.dp).background(Color.DarkGray)) {
                Text("Dialog Content (Service)", color = Color.White)
            }
        }
    }
}