From 39a9bf33214ea0da44fc7d080a6bbf7e8c40e289 Mon Sep 17 00:00:00 2001 From: Dan Cojocaru Date: Sat, 28 Aug 2021 04:18:43 +0300 Subject: [PATCH] Fixed datetime handling --- CHANGELOG.TXT | 3 ++ .../select_station/select_station.dart | 29 +++++++++++++++++++ .../select_station_cupertino.dart | 9 ++++++ .../select_station_material.dart | 10 +++++++ .../view_train/train_info_cupertino.dart | 2 +- ...in_info_cupertino_DisplayTrainStation.dart | 4 +-- .../view_train/train_info_material.dart | 2 +- ...ain_info_material_DisplayTrainStation.dart | 4 +-- pubspec.yaml | 2 +- 9 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 lib/pages/station_arrdep_page/select_station/select_station.dart create mode 100644 lib/pages/station_arrdep_page/select_station/select_station_cupertino.dart create mode 100644 lib/pages/station_arrdep_page/select_station/select_station_material.dart diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT index fca8ac9..3432f03 100644 --- a/CHANGELOG.TXT +++ b/CHANGELOG.TXT @@ -1,3 +1,6 @@ +v2.4.1 +Fixed DateTime (UTC -> local) + v2.4.0 Moved to api v2 Added support for any train number, including train numbers starting with 0 diff --git a/lib/pages/station_arrdep_page/select_station/select_station.dart b/lib/pages/station_arrdep_page/select_station/select_station.dart new file mode 100644 index 0000000..45e7507 --- /dev/null +++ b/lib/pages/station_arrdep_page/select_station/select_station.dart @@ -0,0 +1,29 @@ +import 'package:flutter/widgets.dart'; +import 'package:info_tren/models/ui_design.dart'; +import 'package:info_tren/pages/station_arrdep_page/select_station/select_station_cupertino.dart'; +import 'package:info_tren/pages/station_arrdep_page/select_station/select_station_material.dart'; +import 'package:info_tren/utils/default_ui_design.dart'; + +class SelectStationPage extends StatefulWidget { + final UiDesign? uiDesign; + + const SelectStationPage({ Key? key, this.uiDesign }) : super(key: key); + + static String routeName = '/stationArrDep/selectStation'; + + @override + SelectStationPageState createState() { + final uiDesign = this.uiDesign ?? defaultUiDesign; + switch (uiDesign) { + case UiDesign.MATERIAL: + return SelectStationPageStateMaterial(); + case UiDesign.CUPERTINO: + return SelectStationPageStateCupertino(); + } + } +} + +abstract class SelectStationPageState extends State { + final TextEditingController textEditingController = TextEditingController(); + +} diff --git a/lib/pages/station_arrdep_page/select_station/select_station_cupertino.dart b/lib/pages/station_arrdep_page/select_station/select_station_cupertino.dart new file mode 100644 index 0000000..aae0bea --- /dev/null +++ b/lib/pages/station_arrdep_page/select_station/select_station_cupertino.dart @@ -0,0 +1,9 @@ +import 'package:flutter/cupertino.dart'; +import 'package:info_tren/pages/station_arrdep_page/select_station/select_station.dart'; + +class SelectStationPageStateCupertino extends SelectStationPageState { + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/pages/station_arrdep_page/select_station/select_station_material.dart b/lib/pages/station_arrdep_page/select_station/select_station_material.dart new file mode 100644 index 0000000..ae01daa --- /dev/null +++ b/lib/pages/station_arrdep_page/select_station/select_station_material.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:info_tren/pages/station_arrdep_page/select_station/select_station.dart'; + +class SelectStationPageStateMaterial extends SelectStationPageState { + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/pages/train_info_page/view_train/train_info_cupertino.dart b/lib/pages/train_info_page/view_train/train_info_cupertino.dart index 9ba42d9..fcdb379 100644 --- a/lib/pages/train_info_page/view_train/train_info_cupertino.dart +++ b/lib/pages/train_info_page/view_train/train_info_cupertino.dart @@ -714,7 +714,7 @@ class DisplayTrainDestination extends StatelessWidget { Builder( builder: (context) { final arrival = - DateTime.parse(trainData.stations.last.arrival!.scheduleTime); + DateTime.parse(trainData.stations.last.arrival!.scheduleTime).toLocal(); final delay = trainData.stations.last.arrival!.status?.delay ?? 0; // final parts = arrival.split(':'); // final arrivalDT = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day, int.parse(parts[0]), int.parse(parts[1])); diff --git a/lib/pages/train_info_page/view_train/train_info_cupertino_DisplayTrainStation.dart b/lib/pages/train_info_page/view_train/train_info_cupertino_DisplayTrainStation.dart index 6aa98e6..e060fec 100644 --- a/lib/pages/train_info_page/view_train/train_info_cupertino_DisplayTrainStation.dart +++ b/lib/pages/train_info_page/view_train/train_info_cupertino_DisplayTrainStation.dart @@ -254,7 +254,7 @@ class ArrivalTime extends StatelessWidget { } else { final delay = station.arrival!.status?.delay ?? 0; - final time = DateTime.parse(station.arrival!.scheduleTime); + final time = DateTime.parse(station.arrival!.scheduleTime).toLocal(); if (delay == 0) { return Text("${time.hour.toString().padLeft(2, "0")}:${time.minute.toString().padLeft(2, "0")}"); @@ -387,7 +387,7 @@ class DepartureTime extends StatelessWidget { } else { final delay = station.departure!.status?.delay ?? 0; - final time = DateTime.parse(station.departure!.scheduleTime); + final time = DateTime.parse(station.departure!.scheduleTime).toLocal(); if (delay == 0) { return Text("${time.hour.toString().padLeft(2, "0")}:${time.minute.toString().padLeft(2, "0")}"); diff --git a/lib/pages/train_info_page/view_train/train_info_material.dart b/lib/pages/train_info_page/view_train/train_info_material.dart index e4840b3..c290a91 100644 --- a/lib/pages/train_info_page/view_train/train_info_material.dart +++ b/lib/pages/train_info_page/view_train/train_info_material.dart @@ -506,7 +506,7 @@ class DisplayTrainDestination extends StatelessWidget { ), Builder( builder: (context) { - final arrival = DateTime.parse(destination.arrival!.scheduleTime); + final arrival = DateTime.parse(destination.arrival!.scheduleTime).toLocal(); final delay = trainData.stations.last.arrival!.status?.delay ?? 0; final arrivalWithDelay = arrival.add(Duration(minutes: delay)); final arrivalWithDelayString = '${arrivalWithDelay.hour}:${arrivalWithDelay.minute.toString().padLeft(2, "0")}'; diff --git a/lib/pages/train_info_page/view_train/train_info_material_DisplayTrainStation.dart b/lib/pages/train_info_page/view_train/train_info_material_DisplayTrainStation.dart index d1ce1e7..997d0c3 100644 --- a/lib/pages/train_info_page/view_train/train_info_material_DisplayTrainStation.dart +++ b/lib/pages/train_info_page/view_train/train_info_material_DisplayTrainStation.dart @@ -261,7 +261,7 @@ class ArrivalTime extends StatelessWidget { } else { final delay = station.arrival!.status?.delay ?? 0; - final time = DateTime.parse(station.arrival!.scheduleTime); + final time = DateTime.parse(station.arrival!.scheduleTime).toLocal(); if (delay == 0) { return Text("${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}"); @@ -396,7 +396,7 @@ class DepartureTime extends StatelessWidget { } else { final delay = station.departure!.status?.delay ?? 0; - final time = DateTime.parse(station.departure!.scheduleTime); + final time = DateTime.parse(station.departure!.scheduleTime).toLocal(); if (delay == 0) { return Text("${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}"); diff --git a/pubspec.yaml b/pubspec.yaml index c4c7a5d..3c84e73 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: O aplicație de vizualizare a datelor puse la dispoziție de Inform # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 2.4.0 +version: 2.4.1 environment: sdk: ">=2.12.0 <3.0.0"