readHistory method

Future<List<Map<String, dynamic>>> readHistory()

Implementation

Future<List<Map<String, dynamic>>> readHistory() async {
  final file = File(filePath);

  if (!await file.exists()) {
    hasHistory = false;
    return [];
  }

  List<String> lines = await file.readAsLines();

  if (lines.isEmpty) {
    hasHistory = false;
    return [];
  }

  return lines.map((line) {
    var parts = line.split(',');
    if (kDebugMode) {
      print("📝 Linha lida: $line");
    }
    return {
      'timestamp': parts[0],
      'battery': double.tryParse(parts[1]) ?? 0.0,
      'storage': double.tryParse(parts[2]) ?? 0.0,
      'successfulInteractions': int.tryParse(parts[3]) ?? 0,
      'totalInteractions': int.tryParse(parts[4]) ?? 0,
      'requestedPackets': int.tryParse(parts[5]) ?? 0,
      'deliveredPackets': int.tryParse(parts[6]) ?? 0,
      'avgLatency': double.tryParse(parts[7]) ?? 0.0,
      'diversity': int.tryParse(parts[8]) ?? 0,
      'daysSinceLastInteraction': int.tryParse(parts[9]) ?? 0,
      'reputation': double.tryParse(parts[10]) ?? 0.0,
      'canCooperate': parts[11].trim().toLowerCase() == 'true',
      'hasHistory': parts.length > 12
          ? parts[12].trim().toLowerCase() == 'true'
          : false,
    };
  }).toList();
}