feat(transport_helper): add arrivalTime for more precision

helpful when vehicles are waiting on-station
should be covered by fallbacks without introducing nullability down the
line
This commit is contained in:
fbachus
2026-07-22 01:35:20 +02:00
parent d7aa2a1b46
commit fce749ba3a
+25 -2
View File
@@ -758,6 +758,7 @@ class Departure {
String vehicleId; String vehicleId;
String vehicleName; String vehicleName;
String stationId; String stationId;
DateTime arrivalTime;
DateTime departureTime; DateTime departureTime;
Departure({ Departure({
@@ -765,6 +766,7 @@ class Departure {
required this.vehicleId, required this.vehicleId,
required this.vehicleName, required this.vehicleName,
required this.stationId, required this.stationId,
required this.arrivalTime,
required this.departureTime, required this.departureTime,
}); });
@@ -774,6 +776,7 @@ class Departure {
"vehicle": vehicleId, "vehicle": vehicleId,
"vehiclename": vehicleName, "vehiclename": vehicleName,
"station": stationId, "station": stationId,
"arrivaltime": arrivalTime,
"departuretime": departureTime, "departuretime": departureTime,
}; };
} }
@@ -784,6 +787,7 @@ class Departure {
vehicleId: map["vehicle"] as String, vehicleId: map["vehicle"] as String,
vehicleName: map["vehiclename"] as String, vehicleName: map["vehiclename"] as String,
stationId: map["station"] as String, stationId: map["station"] as String,
arrivalTime: map["arrivaltime"] as DateTime,
departureTime: map["departuretime"] as DateTime, departureTime: map["departuretime"] as DateTime,
); );
} }
@@ -804,11 +808,30 @@ class Departure {
// } catch (e) { // } catch (e) {
// station.dbUpdate(); // station.dbUpdate();
// } // }
DateTime? arrDateTime;
DateTime? depDateTime;
String? arrivalDate = json["arrDate"];
String? arrivalTime = json["arrTime"];
if (arrivalDate != null && arrivalTime != null) {
arrDateTime = DateTime.parse('${arrivalDate}T$arrivalTime');
}
String? departureDate = json["depDate"] ?? json["date"];
String? departureTime = json["depTime"] ?? json["time"];
if (departureDate != null && departureTime != null) {
depDateTime = DateTime.parse('${departureDate}T$departureTime');
}
return Departure( return Departure(
vehicleId: vehicle.id, vehicleId: vehicle.id,
vehicleName: vehicle.name, vehicleName: vehicle.name,
stationId: station.id, stationId: station.id,
departureTime: DateTime.parse('${json["date"]}T${json["time"]}'), arrivalTime:
arrDateTime ??
depDateTime as DateTime, // one of these has to be in the json
departureTime:
depDateTime ??
arrDateTime as DateTime, // one of these has to be in the json
); );
} }
@@ -920,4 +943,4 @@ enum VehicleType {
subway, subway,
regionalTrain, regionalTrain,
PLACEHOLDER, PLACEHOLDER,
} }