PermissionRationaleDialog

fun PermissionRationaleDialog(titleRes: StringResource, rationaleRes: StringResource, onConfirm: () -> Unit, onDismiss: () -> Unit, icon: ImageVector = MeshtasticIcons.Info)(source)

The educational UI the Android permissions guidance requires before re-requesting a permission the user has already declined once (shouldShowRequestPermissionRationale is true, i.e. org.meshtastic.core.ui.util.PermissionStatus.DENIED_CAN_RETRY).

Two things make this a rationale rather than a nag, and both are required by the guidance:

  • rationaleRes must say what the feature does with the permission and what stays disabled without it.

  • The dismiss action is a real way out, not a decoration. The next system prompt is the one that can turn a recoverable denial into a permanent one, so the user must be able to decline again without being cornered.

Deliberately not shown for a first request: before any prompt, an extra dialog is friction with nothing to explain that the system dialog does not already say.