VolumeSettings.staircaseFade constructor

VolumeSettings.staircaseFade({
  1. required List<VolumeFadeStep> fadeSteps,
  2. double? volume,
  3. bool volumeEnforced = false,
  4. bool showSystemUI = true,
})

Constructs VolumeSettings with slowly increasing (stepped) volume level.

Implementation

factory VolumeSettings.staircaseFade({
  required List<VolumeFadeStep> fadeSteps,
  double? volume,
  bool volumeEnforced = false,
  bool showSystemUI = true,
}) {
  assert(fadeSteps.isNotEmpty, 'fadeSteps must not be empty');
  assert(
    () {
      for (var i = 1; i < fadeSteps.length; i++) {
        if (fadeSteps[i].time <= fadeSteps[i - 1].time) return false;
      }
      return true;
    }(),
    'fadeSteps must be sorted by strictly increasing time',
  );
  return VolumeSettings._(
    volume: volume,
    fadeSteps: fadeSteps,
    volumeEnforced: volumeEnforced,
    showSystemUI: showSystemUI,
  );
}