From c68b47170bd2059189cf89713bcd475376986596 Mon Sep 17 00:00:00 2001 From: fbachus Date: Wed, 29 Jul 2026 23:31:58 +0200 Subject: [PATCH] fix(transport_helper): add color parsing for line --- lib/transport_helper.dart | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/lib/transport_helper.dart b/lib/transport_helper.dart index 54918e9..f4355a7 100644 --- a/lib/transport_helper.dart +++ b/lib/transport_helper.dart @@ -782,10 +782,10 @@ class Line { "lineid": lineId, "destination": destination, "direction": direction, - "mode": mode, + "mode": mode.toString(), "name": name, - "fgcolor": fgColor, - "bgcolor": bgColor, + "fgcolor": fgColor.toString(), + "bgcolor": bgColor.toString(), }; } @@ -794,7 +794,12 @@ class Line { lineId: map["lineId"] as String, destination: map["destination"] as String, direction: map["direction"] as String, - mode: map["mode"] as VehicleType, + // Source - https://stackoverflow.com/a/44060511 + // Posted by Collin Jackson, modified by community. See post 'Timeline' for change history + // Retrieved 2026-07-29, License - CC BY-SA 4.k + mode: VehicleType.values.firstWhere( + (e) => e.toString() == 'VehicleType.${map["mode"] as String}', + ), name: map["name"] as String, fgColor: map["fgcolor"] as Color, bgColor: map["bgcolor"] as Color, @@ -1092,11 +1097,28 @@ class Color { required this.b, }); + factory Color.fromStringRGBComma(String input) { + List split = input.split(","); + if (split.length == 3) { + return Color( + r: int.parse(split[0]), + g: int.parse(split[1]), + b: int.parse(split[2]), + ); + } + return Color(r: 128, g: 128, b: 128); + } + factory Color.fromJson(Map json) => Color( r: json["r"], g: json["g"], b: json["b"], ); + + @override + String toString() { + return '$r,$g,$b'; + } } enum VehicleType { @@ -1106,4 +1128,4 @@ enum VehicleType { subway, regionalTrain, PLACEHOLDER, -} +} \ No newline at end of file