needReload method

bool needReload()

Implementation

bool needReload() {
  if (_lastReloadTime == null) {
    return true;
  }

  final now = TZDateTime.now(_timezone);

  // 마지막 리로드가 오래되었다면, 리로드 필요.
  if (_lastReloadTime!.isBefore(now.subtract(_reloadDuration))) {
    return true;
  }

  // 날짜가 달라졌다면, 리로드 필요.
  if (formatDate(now) != formatDate(_lastReloadTime!)) {
    return true;
  }

  // 날짜가 바뀌기 직전이라면, 리로드 필요.
  final nextMidnight = now.add(const Duration(days: 1)).subtract(Duration(
      hours: now.hour,
      minutes: now.minute,
      seconds: now.second,
      milliseconds: now.millisecond,
      microseconds: now.microsecond));
  if (nextMidnight.difference(now).inMilliseconds < 300 * 1000) {
    return true;
  }

  return false;
}