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 = 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)?})
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