Fixed datetime handling
This commit is contained in:
parent
44d229f0f6
commit
39a9bf3321
9 changed files with 58 additions and 7 deletions
|
@ -1,3 +1,6 @@
|
||||||
|
v2.4.1
|
||||||
|
Fixed DateTime (UTC -> local)
|
||||||
|
|
||||||
v2.4.0
|
v2.4.0
|
||||||
Moved to api v2
|
Moved to api v2
|
||||||
Added support for any train number, including train numbers starting with 0
|
Added support for any train number, including train numbers starting with 0
|
||||||
|
|
|
@ -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<SelectStationPage> {
|
||||||
|
final TextEditingController textEditingController = TextEditingController();
|
||||||
|
|
||||||
|
}
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -714,7 +714,7 @@ class DisplayTrainDestination extends StatelessWidget {
|
||||||
Builder(
|
Builder(
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
final arrival =
|
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 delay = trainData.stations.last.arrival!.status?.delay ?? 0;
|
||||||
// final parts = arrival.split(':');
|
// final parts = arrival.split(':');
|
||||||
// final arrivalDT = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day, int.parse(parts[0]), int.parse(parts[1]));
|
// final arrivalDT = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day, int.parse(parts[0]), int.parse(parts[1]));
|
||||||
|
|
|
@ -254,7 +254,7 @@ class ArrivalTime extends StatelessWidget {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
final delay = station.arrival!.status?.delay ?? 0;
|
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) {
|
if (delay == 0) {
|
||||||
return Text("${time.hour.toString().padLeft(2, "0")}:${time.minute.toString().padLeft(2, "0")}");
|
return Text("${time.hour.toString().padLeft(2, "0")}:${time.minute.toString().padLeft(2, "0")}");
|
||||||
|
@ -387,7 +387,7 @@ class DepartureTime extends StatelessWidget {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
final delay = station.departure!.status?.delay ?? 0;
|
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) {
|
if (delay == 0) {
|
||||||
return Text("${time.hour.toString().padLeft(2, "0")}:${time.minute.toString().padLeft(2, "0")}");
|
return Text("${time.hour.toString().padLeft(2, "0")}:${time.minute.toString().padLeft(2, "0")}");
|
||||||
|
|
|
@ -506,7 +506,7 @@ class DisplayTrainDestination extends StatelessWidget {
|
||||||
),
|
),
|
||||||
Builder(
|
Builder(
|
||||||
builder: (context) {
|
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 delay = trainData.stations.last.arrival!.status?.delay ?? 0;
|
||||||
final arrivalWithDelay = arrival.add(Duration(minutes: delay));
|
final arrivalWithDelay = arrival.add(Duration(minutes: delay));
|
||||||
final arrivalWithDelayString = '${arrivalWithDelay.hour}:${arrivalWithDelay.minute.toString().padLeft(2, "0")}';
|
final arrivalWithDelayString = '${arrivalWithDelay.hour}:${arrivalWithDelay.minute.toString().padLeft(2, "0")}';
|
||||||
|
|
|
@ -261,7 +261,7 @@ class ArrivalTime extends StatelessWidget {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
final delay = station.arrival!.status?.delay ?? 0;
|
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) {
|
if (delay == 0) {
|
||||||
return Text("${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}");
|
return Text("${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}");
|
||||||
|
@ -396,7 +396,7 @@ class DepartureTime extends StatelessWidget {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
final delay = station.departure!.status?.delay ?? 0;
|
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) {
|
if (delay == 0) {
|
||||||
return Text("${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}");
|
return Text("${time.hour.toString().padLeft(2, '0')}:${time.minute.toString().padLeft(2, '0')}");
|
||||||
|
|
|
@ -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.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 2.4.0
|
version: 2.4.1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.12.0 <3.0.0"
|
sdk: ">=2.12.0 <3.0.0"
|
||||||
|
|
Loading…
Add table
Reference in a new issue