getResumeStatistics static method

Future<Map<String, dynamic>> getResumeStatistics()

Get statistics about resume states across all tracked tasks

Implementation

static Future<Map<String, dynamic>> getResumeStatistics() async {
  try {
    // Get all tasks from FileDownloader database
    final records = await _downloader.database.allRecords();
    final stats = <String, int>{
      'totalTracked': records.length,
      'canResume': 0,
      'cannotResume': 0,
      'noTask': 0,
      'fileComplete': 0,
      'fileNotFound': 0,
      'error': 0,
    };

    for (final record in records) {
      final filename = record.task.filename;
      final status = await checkResumeStatus(filename);
      final statusName = status.name;
      stats[statusName] = (stats[statusName] ?? 0) + 1;
    }

    return {
      'summary': stats,
      'lastChecked': DateTime.now().toIso8601String(),
    };
  } catch (e) {
    return {
      'error': e.toString(),
      'lastChecked': DateTime.now().toIso8601String(),
    };
  }
}