copyWith method

AlarmSettings copyWith({
  1. int? id,
  2. DateTime? dateTime,
  3. String? assetAudioPath,
  4. VolumeSettings? volumeSettings,
  5. NotificationSettings? notificationSettings,
  6. bool? loopAudio,
  7. bool? vibrate,
  8. @Deprecated('This parameter is ignored. Use volumeSettings instead.') double? volume,
  9. @Deprecated('This parameter is ignored. Use volumeSettings instead.') bool? volumeEnforced,
  10. @Deprecated('This parameter is ignored. Use volumeSettings instead.') double? fadeDuration,
  11. @Deprecated('This parameter is ignored. Use volumeSettings instead.') List<double>? fadeStopTimes,
  12. @Deprecated('This parameter is ignored. Use volumeSettings instead.') List<double>? fadeStopVolumes,
  13. @Deprecated('This parameter is ignored. Use notificationSettings instead.') String? notificationTitle,
  14. @Deprecated('This parameter is ignored. Use notificationSettings instead.') String? notificationBody,
  15. bool? warningNotificationOnKill,
  16. bool? androidFullScreenIntent,
  17. bool? allowAlarmOverlap,
  18. bool? allowSameSecondScheduling,
  19. bool? iOSBackgroundAudio,
  20. bool? androidStopAlarmOnTermination,
  21. bool? preferConnectedAudioDevice,
  22. String? payload()?,
  23. Duration? androidSnoozeDuration()?,
})

Creates a copy of AlarmSettings but with the given fields replaced with the new values.

Implementation

AlarmSettings copyWith({
  int? id,
  DateTime? dateTime,
  String? assetAudioPath,
  VolumeSettings? volumeSettings,
  NotificationSettings? notificationSettings,
  bool? loopAudio,
  bool? vibrate,
  @Deprecated('This parameter is ignored. Use volumeSettings instead.')
  double? volume,
  @Deprecated('This parameter is ignored. Use volumeSettings instead.')
  bool? volumeEnforced,
  @Deprecated('This parameter is ignored. Use volumeSettings instead.')
  double? fadeDuration,
  @Deprecated('This parameter is ignored. Use volumeSettings instead.')
  List<double>? fadeStopTimes,
  @Deprecated('This parameter is ignored. Use volumeSettings instead.')
  List<double>? fadeStopVolumes,
  @Deprecated('This parameter is ignored. Use notificationSettings instead.')
  String? notificationTitle,
  @Deprecated('This parameter is ignored. Use notificationSettings instead.')
  String? notificationBody,
  bool? warningNotificationOnKill,
  bool? androidFullScreenIntent,
  bool? allowAlarmOverlap,
  bool? allowSameSecondScheduling,
  bool? iOSBackgroundAudio,
  bool? androidStopAlarmOnTermination,
  bool? preferConnectedAudioDevice,
  String? Function()? payload,
  Duration? Function()? androidSnoozeDuration,
}) {
  return AlarmSettings(
    id: id ?? this.id,
    dateTime: dateTime ?? this.dateTime,
    assetAudioPath: assetAudioPath ?? this.assetAudioPath,
    volumeSettings: volumeSettings ?? this.volumeSettings,
    notificationSettings: notificationSettings ?? this.notificationSettings,
    loopAudio: loopAudio ?? this.loopAudio,
    vibrate: vibrate ?? this.vibrate,
    warningNotificationOnKill:
        warningNotificationOnKill ?? this.warningNotificationOnKill,
    androidFullScreenIntent:
        androidFullScreenIntent ?? this.androidFullScreenIntent,
    allowAlarmOverlap: allowAlarmOverlap ?? this.allowAlarmOverlap,
    allowSameSecondScheduling:
        allowSameSecondScheduling ?? this.allowSameSecondScheduling,
    iOSBackgroundAudio: iOSBackgroundAudio ?? this.iOSBackgroundAudio,
    androidStopAlarmOnTermination:
        androidStopAlarmOnTermination ?? this.androidStopAlarmOnTermination,
    preferConnectedAudioDevice:
        preferConnectedAudioDevice ?? this.preferConnectedAudioDevice,
    // The function wrapper allows callers to clear the payload by
    // explicitly returning null.
    payload: payload != null ? payload() : this.payload,
    // Wrapped like payload so a caller can remove an existing snooze by
    // returning null, which a plain nullable parameter cannot express.
    androidSnoozeDuration: androidSnoozeDuration != null
        ? androidSnoozeDuration()
        : this.androidSnoozeDuration,
  );
}