NotificationFlowConfig class

Configuration for the notification permission flow.

Allows customization of timing, limits, strings, and dialog builders.

Constructors

NotificationFlowConfig({Duration askAgainAfter = const Duration(days: 7), double askAgainMultiplier = 3.0, int maxAskCount = 3, bool showGoToSettingsPrompt = true, Duration goToSettingsAskAgainAfter = const Duration(days: 30), int? goToSettingsMaxAskCount, NotificationFlowStrings strings = const NotificationFlowStrings(), Future<bool> valuePropositionBuilder(BuildContext context)?, Future<bool> goToSettingsBuilder(BuildContext context)?, Future<bool> askAgainBuilder(BuildContext context, NotificationDenialInfo info)?})
const
NotificationFlowConfig.fromAppConfig({bool showGoToSettingsPrompt = true, Duration? goToSettingsAskAgainAfter, int? goToSettingsMaxAskCount, NotificationFlowStrings strings = const NotificationFlowStrings(), Future<bool> valuePropositionBuilder(BuildContext context)?, Future<bool> goToSettingsBuilder(BuildContext context)?, Future<bool> askAgainBuilder(BuildContext context, NotificationDenialInfo info)?})
Creates a NotificationFlowConfig using values from AppConfigBase.
factory

Properties

askAgainAfter → Duration
How long to wait before asking again after the first denial. For subsequent denials, this is multiplied by askAgainMultiplier.
final
askAgainBuilder → Future<bool> Function(BuildContext context, NotificationDenialInfo info)?
Custom builder for ask-again dialog. Return true to ask again, false to skip. If null, uses built-in dialog with strings.
final
askAgainMultiplier → double
Multiplier applied to askAgainAfter for each subsequent denial.
final
goToSettingsAskAgainAfter → Duration
How long to wait before showing the "go to settings" prompt again. Only applies if user previously declined to go to settings. Default: 30 days (or Duration.zero to never ask again after first decline)
final
goToSettingsBuilder → Future<bool> Function(BuildContext context)?
Custom builder for go-to-settings dialog. Return true to open settings, false to cancel. If null, uses built-in dialog with strings. Note: If showGoToSettingsPrompt is false, this is never called.
final
goToSettingsMaxAskCount → int?
Maximum number of times to show the "go to settings" prompt. 0 = never show, 1 = show once only, null = unlimited (respects duration only) Default: null (unlimited, respects duration)
final
hashCode → int
The hash code for this object.
no setterinherited
maxAskCount → int
Maximum number of times to ask after denials (0 = never ask again).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
showGoToSettingsPrompt → bool
Whether to show the "go to settings" prompt at all when permanently denied. Set to false if your app should never prompt users to change settings. Default: true
final
strings → NotificationFlowStrings
Strings for built-in dialogs (for localization).
final
valuePropositionBuilder → Future<bool> Function(BuildContext context)?
Custom builder for value proposition dialog. Return true to proceed with permission request, false to cancel. If null, uses built-in dialog with strings.
final

Methods

copyWith({Duration? askAgainAfter, double? askAgainMultiplier, int? maxAskCount, bool? showGoToSettingsPrompt, Duration? goToSettingsAskAgainAfter, int? goToSettingsMaxAskCount, NotificationFlowStrings? strings, Future<bool> valuePropositionBuilder(BuildContext context)?, Future<bool> goToSettingsBuilder(BuildContext context)?, Future<bool> askAgainBuilder(BuildContext context, NotificationDenialInfo info)?}) → NotificationFlowConfig
Creates a copy of this NotificationFlowConfig with the given fields replaced.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited