core/permissions/widgets/permission_screen library

Classes

PermissionScreen
A full-screen, platform-adaptive page for explaining a permission request or guiding the user to Settings.

Enums

PermissionScreenMode
Which flavor of full-screen page to show. Distinct from the existing dialogs — this is a real, pushable screen (see spec items #3/#4), not a popup.

Functions

permissionsProcessingStream(PermissionNotifier stateNotifier, List<PermissionType> permissions) Stream<bool>
Builds a Stream<bool> reporting whether any of permissions currently reads as PermissionUiState.requesting or PermissionUiState.openingSettings on stateNotifier — i.e. "busy" from the caller's perspective. Feed this into PermissionScreen.externalProcessingStream so the screen's busy indicator reflects the real Riverpod-driven operation state instead of only its own local tracking.
showCanonicalExplanationScreen({required BuildContext context, required List<PermissionType> permissions, String? title, String? message}) Future<bool>
Pushes the canonical pre-request explanation PermissionScreen (PermissionScreenMode.explanation) — the recommended-flow counterpart to showCanonicalSettingsRequiredScreen, used before the native OS permission prompt rather than after a permanent denial. Not PermissionInitialDialog, which remains available only as an explicit legacy/compatibility API.
showCanonicalSettingsRequiredScreen({required BuildContext context, required PermissionNotifier stateNotifier, required List<PermissionType> permissions, required Future<bool> onOpenSettings(), String? title, String? message}) Future<bool>
Pushes the canonical settings-required PermissionScreen — the single recommended UI for permanent denial across every Riverpod-driven widget in this package (PermissionWrapper via PermissionActionNotifier, and PermissionBuilder). Not PermissionPermanentDialog, which remains available only as an explicit legacy/compatibility API for callers who want the old popup behavior on purpose.