NotificationFlowConfig.fromAppConfig constructor

NotificationFlowConfig.fromAppConfig({
  1. bool showGoToSettingsPrompt = true,
  2. Duration goToSettingsAskAgainAfter = const Duration(days: 30),
  3. int? goToSettingsMaxAskCount,
  4. NotificationFlowStrings strings = const NotificationFlowStrings(),
  5. Future<bool> valuePropositionBuilder(
    1. BuildContext context
    )?,
  6. Future<bool> goToSettingsBuilder(
    1. BuildContext context
    )?,
  7. Future<bool> askAgainBuilder(
    1. BuildContext context,
    2. NotificationDenialInfo info
    )?,
})

Creates a NotificationFlowConfig using values from AppConfigBase.

This factory reads the notification re-request configuration from AppConfigBase, which supports environment variables, Firebase Remote Config, and programmatic defaults.

Use this to create a config that can be dynamically controlled via Remote Config.

Implementation

factory NotificationFlowConfig.fromAppConfig({
  // Go-to-settings defaults (not yet in AppConfigBase)
  bool showGoToSettingsPrompt = true,
  Duration goToSettingsAskAgainAfter = const Duration(days: 30),
  int? goToSettingsMaxAskCount,
  // Strings and builders
  NotificationFlowStrings strings = const NotificationFlowStrings(),
  Future<bool> Function(BuildContext context)? valuePropositionBuilder,
  Future<bool> Function(BuildContext context)? goToSettingsBuilder,
  Future<bool> Function(BuildContext context, NotificationDenialInfo info)? askAgainBuilder,
}) {
  return NotificationFlowConfig(
    askAgainAfter: Duration(days: AppConfigBase.notificationAskAgainDays),
    askAgainMultiplier: AppConfigBase.notificationAskAgainMultiplier,
    maxAskCount: AppConfigBase.notificationMaxAskCount,
    showGoToSettingsPrompt: showGoToSettingsPrompt,
    goToSettingsAskAgainAfter: goToSettingsAskAgainAfter,
    goToSettingsMaxAskCount: goToSettingsMaxAskCount,
    strings: strings,
    valuePropositionBuilder: valuePropositionBuilder,
    goToSettingsBuilder: goToSettingsBuilder,
    askAgainBuilder: askAgainBuilder,
  );
}