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