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.