RRulePickerController constructor

RRulePickerController({
  1. String initialRRule = '',
  2. String defaultTimeZone = ExcludedDatesController.defaultTimeZone,
  3. bool enableExcludedDates = true,
})

Creates a new RRulePickerController.

initialRRule is the initial recurrence rule string. Defaults to an empty string. Takes precedence over RRulePicker.initialRRule.

defaultTimeZone is the default time zone to be used for the excluded dates. Defaults to ExcludedDatesController.defaultTimeZone. Takes precedence over RRulePicker.timeZone.

enableExcludedDates determines whether the excluded dates feature is enabled. Defaults to true. Takes precedence over RRulePicker.enableExcludedDates.

Implementation

RRulePickerController({
  String initialRRule = '',
  String defaultTimeZone = ExcludedDatesController.defaultTimeZone,
  bool enableExcludedDates = true,
}) : _excludedDatesEnabled = ValueNotifier(enableExcludedDates),
     _recurrenceType = .new(RecurrenceType.fromRRule(initialRRule)) {
  _recurrenceType.addListener(_rruleChanged);

  _daily = .new(listener: _rruleChanged, initialRRule: initialRRule);
  _weekly = .new(listener: _rruleChanged, initialRRule: initialRRule);
  _monthly = .new(listener: _rruleChanged, initialRRule: initialRRule);
  _yearly = .new(listener: _rruleChanged, initialRRule: initialRRule);

  _excludedDates = .new(
    initialRRule: initialRRule,
    defaultTimeZone: defaultTimeZone,
  );

  if (_excludedDatesEnabled.value) {
    _excludedDates.addListener(_rruleChanged);
  }

  _rrule = _buildRRule();
}