init static method

SwipeLockProvider init({
  1. int times = 5,
  2. Duration lockoutDuration = const Duration(hours: 8),
  3. DateTime? now,
  4. required OnSwipeLockProviderReader reader,
  5. required OnSwipeLockProviderWriter writer,
})

Initializes the SwipeLockProvider singleton instance.

Implementation

static SwipeLockProvider init({
  int times = 5,
  Duration lockoutDuration = const Duration(hours: 8),
  DateTime? now,
  required OnSwipeLockProviderReader reader,
  required OnSwipeLockProviderWriter writer,
}) {
  _instance ??= SwipeLockProvider._(
    times: times,
    lockoutDuration: lockoutDuration,
    reader: reader,
    writer: writer,
  );
  instance._swipe = reader(_kSwipeLimitationTimes) ?? 0;
  final lt = reader(_kSwipeLimitationTime) ?? 0;
  now ??= DateTime.now();
  if (instance._isLocked(now: now, lockoutTime: lt)) {
    final x = DateTime.fromMillisecondsSinceEpoch(lt).difference(now);
    final y = x > lockoutDuration ? lockoutDuration : x;
    instance._startTimer(now: now, lockoutTime: lt, remainingDuration: y);
  }
  return instance;
}