implemented RMV public transit module including trip search, station departures, and nearby stop lookup, added "Marianum Connect" API integration with bearer token authentication and auto-refresh logic, integrated geolocator for location-based station search, added persistent storage for favorite stations and recent trip queries, and implemented comprehensive UI for journey details, trip results, and disruption alerts
This commit is contained in:
@@ -0,0 +1,368 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'rmv_models.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_Product _$ProductFromJson(Map<String, dynamic> json) => _Product(
|
||||
name: json['name'] as String?,
|
||||
line: json['line'] as String?,
|
||||
displayNumber: json['displayNumber'] as String?,
|
||||
category: json['category'] as String?,
|
||||
categoryCode: json['categoryCode'] as String?,
|
||||
operator: json['operator'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$ProductToJson(_Product instance) => <String, dynamic>{
|
||||
'name': instance.name,
|
||||
'line': instance.line,
|
||||
'displayNumber': instance.displayNumber,
|
||||
'category': instance.category,
|
||||
'categoryCode': instance.categoryCode,
|
||||
'operator': instance.operator,
|
||||
};
|
||||
|
||||
_StopLocation _$StopLocationFromJson(Map<String, dynamic> json) =>
|
||||
_StopLocation(
|
||||
id: json['id'] as String,
|
||||
extId: json['extId'] as String?,
|
||||
name: json['name'] as String,
|
||||
description: json['description'] as String?,
|
||||
lat: (json['lat'] as num?)?.toDouble(),
|
||||
lon: (json['lon'] as num?)?.toDouble(),
|
||||
products: (json['products'] as num?)?.toInt(),
|
||||
distanceMeters: (json['distanceMeters'] as num?)?.toInt(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$StopLocationToJson(_StopLocation instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'extId': instance.extId,
|
||||
'name': instance.name,
|
||||
'description': instance.description,
|
||||
'lat': instance.lat,
|
||||
'lon': instance.lon,
|
||||
'products': instance.products,
|
||||
'distanceMeters': instance.distanceMeters,
|
||||
};
|
||||
|
||||
_Departure _$DepartureFromJson(Map<String, dynamic> json) => _Departure(
|
||||
stopId: json['stopId'] as String,
|
||||
stopExtId: json['stopExtId'] as String?,
|
||||
stopName: json['stopName'] as String,
|
||||
name: json['name'] as String,
|
||||
direction: json['direction'] as String,
|
||||
directionFlag: json['directionFlag'] as String?,
|
||||
scheduledTime: DateTime.parse(json['scheduledTime'] as String),
|
||||
realTime: json['realTime'] == null
|
||||
? null
|
||||
: DateTime.parse(json['realTime'] as String),
|
||||
delayMinutes: (json['delayMinutes'] as num?)?.toInt(),
|
||||
track: json['track'] as String?,
|
||||
realTrack: json['realTrack'] as String?,
|
||||
cancelled: json['cancelled'] as bool? ?? false,
|
||||
reachable: json['reachable'] as bool? ?? true,
|
||||
product: json['product'] == null
|
||||
? null
|
||||
: Product.fromJson(json['product'] as Map<String, dynamic>),
|
||||
journeyRef: json['journeyRef'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$DepartureToJson(_Departure instance) =>
|
||||
<String, dynamic>{
|
||||
'stopId': instance.stopId,
|
||||
'stopExtId': instance.stopExtId,
|
||||
'stopName': instance.stopName,
|
||||
'name': instance.name,
|
||||
'direction': instance.direction,
|
||||
'directionFlag': instance.directionFlag,
|
||||
'scheduledTime': instance.scheduledTime.toIso8601String(),
|
||||
'realTime': instance.realTime?.toIso8601String(),
|
||||
'delayMinutes': instance.delayMinutes,
|
||||
'track': instance.track,
|
||||
'realTrack': instance.realTrack,
|
||||
'cancelled': instance.cancelled,
|
||||
'reachable': instance.reachable,
|
||||
'product': instance.product,
|
||||
'journeyRef': instance.journeyRef,
|
||||
};
|
||||
|
||||
_Arrival _$ArrivalFromJson(Map<String, dynamic> json) => _Arrival(
|
||||
stopId: json['stopId'] as String,
|
||||
stopExtId: json['stopExtId'] as String?,
|
||||
stopName: json['stopName'] as String,
|
||||
name: json['name'] as String,
|
||||
origin: json['origin'] as String,
|
||||
scheduledTime: DateTime.parse(json['scheduledTime'] as String),
|
||||
realTime: json['realTime'] == null
|
||||
? null
|
||||
: DateTime.parse(json['realTime'] as String),
|
||||
delayMinutes: (json['delayMinutes'] as num?)?.toInt(),
|
||||
track: json['track'] as String?,
|
||||
realTrack: json['realTrack'] as String?,
|
||||
cancelled: json['cancelled'] as bool? ?? false,
|
||||
product: json['product'] == null
|
||||
? null
|
||||
: Product.fromJson(json['product'] as Map<String, dynamic>),
|
||||
journeyRef: json['journeyRef'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$ArrivalToJson(_Arrival instance) => <String, dynamic>{
|
||||
'stopId': instance.stopId,
|
||||
'stopExtId': instance.stopExtId,
|
||||
'stopName': instance.stopName,
|
||||
'name': instance.name,
|
||||
'origin': instance.origin,
|
||||
'scheduledTime': instance.scheduledTime.toIso8601String(),
|
||||
'realTime': instance.realTime?.toIso8601String(),
|
||||
'delayMinutes': instance.delayMinutes,
|
||||
'track': instance.track,
|
||||
'realTrack': instance.realTrack,
|
||||
'cancelled': instance.cancelled,
|
||||
'product': instance.product,
|
||||
'journeyRef': instance.journeyRef,
|
||||
};
|
||||
|
||||
_TripEndpoint _$TripEndpointFromJson(Map<String, dynamic> json) =>
|
||||
_TripEndpoint(
|
||||
stopId: json['stopId'] as String,
|
||||
stopExtId: json['stopExtId'] as String?,
|
||||
name: json['name'] as String,
|
||||
lat: (json['lat'] as num?)?.toDouble(),
|
||||
lon: (json['lon'] as num?)?.toDouble(),
|
||||
scheduledTime: DateTime.parse(json['scheduledTime'] as String),
|
||||
realTime: json['realTime'] == null
|
||||
? null
|
||||
: DateTime.parse(json['realTime'] as String),
|
||||
delayMinutes: (json['delayMinutes'] as num?)?.toInt(),
|
||||
track: json['track'] as String?,
|
||||
realTrack: json['realTrack'] as String?,
|
||||
type: json['type'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$TripEndpointToJson(_TripEndpoint instance) =>
|
||||
<String, dynamic>{
|
||||
'stopId': instance.stopId,
|
||||
'stopExtId': instance.stopExtId,
|
||||
'name': instance.name,
|
||||
'lat': instance.lat,
|
||||
'lon': instance.lon,
|
||||
'scheduledTime': instance.scheduledTime.toIso8601String(),
|
||||
'realTime': instance.realTime?.toIso8601String(),
|
||||
'delayMinutes': instance.delayMinutes,
|
||||
'track': instance.track,
|
||||
'realTrack': instance.realTrack,
|
||||
'type': instance.type,
|
||||
};
|
||||
|
||||
_JourneyStop _$JourneyStopFromJson(Map<String, dynamic> json) => _JourneyStop(
|
||||
id: json['id'] as String,
|
||||
extId: json['extId'] as String?,
|
||||
name: json['name'] as String,
|
||||
lat: (json['lat'] as num?)?.toDouble(),
|
||||
lon: (json['lon'] as num?)?.toDouble(),
|
||||
routeIdx: (json['routeIdx'] as num?)?.toInt(),
|
||||
scheduledArrival: json['scheduledArrival'] == null
|
||||
? null
|
||||
: DateTime.parse(json['scheduledArrival'] as String),
|
||||
scheduledDeparture: json['scheduledDeparture'] == null
|
||||
? null
|
||||
: DateTime.parse(json['scheduledDeparture'] as String),
|
||||
realArrival: json['realArrival'] == null
|
||||
? null
|
||||
: DateTime.parse(json['realArrival'] as String),
|
||||
realDeparture: json['realDeparture'] == null
|
||||
? null
|
||||
: DateTime.parse(json['realDeparture'] as String),
|
||||
arrTrack: json['arrTrack'] as String?,
|
||||
depTrack: json['depTrack'] as String?,
|
||||
realArrTrack: json['realArrTrack'] as String?,
|
||||
realDepTrack: json['realDepTrack'] as String?,
|
||||
cancelled: json['cancelled'] as bool? ?? false,
|
||||
cancelledArrival: json['cancelledArrival'] as bool? ?? false,
|
||||
cancelledDeparture: json['cancelledDeparture'] as bool? ?? false,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$JourneyStopToJson(_JourneyStop instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'extId': instance.extId,
|
||||
'name': instance.name,
|
||||
'lat': instance.lat,
|
||||
'lon': instance.lon,
|
||||
'routeIdx': instance.routeIdx,
|
||||
'scheduledArrival': instance.scheduledArrival?.toIso8601String(),
|
||||
'scheduledDeparture': instance.scheduledDeparture?.toIso8601String(),
|
||||
'realArrival': instance.realArrival?.toIso8601String(),
|
||||
'realDeparture': instance.realDeparture?.toIso8601String(),
|
||||
'arrTrack': instance.arrTrack,
|
||||
'depTrack': instance.depTrack,
|
||||
'realArrTrack': instance.realArrTrack,
|
||||
'realDepTrack': instance.realDepTrack,
|
||||
'cancelled': instance.cancelled,
|
||||
'cancelledArrival': instance.cancelledArrival,
|
||||
'cancelledDeparture': instance.cancelledDeparture,
|
||||
};
|
||||
|
||||
_Leg _$LegFromJson(Map<String, dynamic> json) => _Leg(
|
||||
id: json['id'] as String,
|
||||
idx: (json['idx'] as num).toInt(),
|
||||
type: $enumDecodeNullable(_$LegTypeEnumMap, json['type']) ?? LegType.unknown,
|
||||
name: json['name'] as String?,
|
||||
category: json['category'] as String?,
|
||||
number: json['number'] as String?,
|
||||
direction: json['direction'] as String?,
|
||||
origin: TripEndpoint.fromJson(json['origin'] as Map<String, dynamic>),
|
||||
destination: TripEndpoint.fromJson(
|
||||
json['destination'] as Map<String, dynamic>,
|
||||
),
|
||||
duration: IsoDuration.fromJson(json['duration'] as String?),
|
||||
cancelled: json['cancelled'] as bool? ?? false,
|
||||
partCancelled: json['partCancelled'] as bool? ?? false,
|
||||
reachable: json['reachable'] as bool? ?? true,
|
||||
product: json['product'] == null
|
||||
? null
|
||||
: Product.fromJson(json['product'] as Map<String, dynamic>),
|
||||
journeyRef: json['journeyRef'] as String?,
|
||||
stops:
|
||||
(json['stops'] as List<dynamic>?)
|
||||
?.map((e) => JourneyStop.fromJson(e as Map<String, dynamic>))
|
||||
.toList() ??
|
||||
const <JourneyStop>[],
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$LegToJson(_Leg instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'idx': instance.idx,
|
||||
'type': _$LegTypeEnumMap[instance.type]!,
|
||||
'name': instance.name,
|
||||
'category': instance.category,
|
||||
'number': instance.number,
|
||||
'direction': instance.direction,
|
||||
'origin': instance.origin,
|
||||
'destination': instance.destination,
|
||||
'duration': IsoDuration.toJson(instance.duration),
|
||||
'cancelled': instance.cancelled,
|
||||
'partCancelled': instance.partCancelled,
|
||||
'reachable': instance.reachable,
|
||||
'product': instance.product,
|
||||
'journeyRef': instance.journeyRef,
|
||||
'stops': instance.stops,
|
||||
};
|
||||
|
||||
const _$LegTypeEnumMap = {
|
||||
LegType.journey: 'JOURNEY',
|
||||
LegType.walk: 'WALK',
|
||||
LegType.transfer: 'TRANSFER',
|
||||
LegType.bike: 'BIKE',
|
||||
LegType.car: 'CAR',
|
||||
LegType.parkRide: 'PARK_RIDE',
|
||||
LegType.taxi: 'TAXI',
|
||||
LegType.checkIn: 'CHECK_IN',
|
||||
LegType.checkOut: 'CHECK_OUT',
|
||||
LegType.dummy: 'DUMMY',
|
||||
LegType.unknown: 'UNKNOWN',
|
||||
};
|
||||
|
||||
_Trip _$TripFromJson(Map<String, dynamic> json) => _Trip(
|
||||
tripId: json['tripId'] as String?,
|
||||
ctxRecon: json['ctxRecon'] as String?,
|
||||
checksum: json['checksum'] as String?,
|
||||
duration: IsoDuration.fromJson(json['duration'] as String?),
|
||||
realDuration: IsoDuration.fromJson(json['realDuration'] as String?),
|
||||
transferCount: (json['transferCount'] as num?)?.toInt(),
|
||||
legs:
|
||||
(json['legs'] as List<dynamic>?)
|
||||
?.map((e) => Leg.fromJson(e as Map<String, dynamic>))
|
||||
.toList() ??
|
||||
const <Leg>[],
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$TripToJson(_Trip instance) => <String, dynamic>{
|
||||
'tripId': instance.tripId,
|
||||
'ctxRecon': instance.ctxRecon,
|
||||
'checksum': instance.checksum,
|
||||
'duration': IsoDuration.toJson(instance.duration),
|
||||
'realDuration': IsoDuration.toJson(instance.realDuration),
|
||||
'transferCount': instance.transferCount,
|
||||
'legs': instance.legs,
|
||||
};
|
||||
|
||||
_TripSearchResult _$TripSearchResultFromJson(Map<String, dynamic> json) =>
|
||||
_TripSearchResult(
|
||||
trips:
|
||||
(json['trips'] as List<dynamic>?)
|
||||
?.map((e) => Trip.fromJson(e as Map<String, dynamic>))
|
||||
.toList() ??
|
||||
const <Trip>[],
|
||||
scrollContextLater: json['scrollContextLater'] as String?,
|
||||
scrollContextEarlier: json['scrollContextEarlier'] as String?,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$TripSearchResultToJson(_TripSearchResult instance) =>
|
||||
<String, dynamic>{
|
||||
'trips': instance.trips,
|
||||
'scrollContextLater': instance.scrollContextLater,
|
||||
'scrollContextEarlier': instance.scrollContextEarlier,
|
||||
};
|
||||
|
||||
_JourneyDetail _$JourneyDetailFromJson(Map<String, dynamic> json) =>
|
||||
_JourneyDetail(
|
||||
journeyId: json['journeyId'] as String?,
|
||||
product: json['product'] == null
|
||||
? null
|
||||
: Product.fromJson(json['product'] as Map<String, dynamic>),
|
||||
direction: json['direction'] as String?,
|
||||
stops:
|
||||
(json['stops'] as List<dynamic>?)
|
||||
?.map((e) => JourneyStop.fromJson(e as Map<String, dynamic>))
|
||||
.toList() ??
|
||||
const <JourneyStop>[],
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$JourneyDetailToJson(_JourneyDetail instance) =>
|
||||
<String, dynamic>{
|
||||
'journeyId': instance.journeyId,
|
||||
'product': instance.product,
|
||||
'direction': instance.direction,
|
||||
'stops': instance.stops,
|
||||
};
|
||||
|
||||
_HimMessage _$HimMessageFromJson(Map<String, dynamic> json) => _HimMessage(
|
||||
id: json['id'] as String,
|
||||
externalId: json['externalId'] as String?,
|
||||
head: json['head'] as String?,
|
||||
lead: json['lead'] as String?,
|
||||
text: json['text'] as String?,
|
||||
category: json['category'] as String?,
|
||||
company: json['company'] as String?,
|
||||
priority: (json['priority'] as num?)?.toInt(),
|
||||
products: (json['products'] as num?)?.toInt(),
|
||||
startValidity: json['startValidity'] == null
|
||||
? null
|
||||
: DateTime.parse(json['startValidity'] as String),
|
||||
endValidity: json['endValidity'] == null
|
||||
? null
|
||||
: DateTime.parse(json['endValidity'] as String),
|
||||
modified: json['modified'] == null
|
||||
? null
|
||||
: DateTime.parse(json['modified'] as String),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$HimMessageToJson(_HimMessage instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'externalId': instance.externalId,
|
||||
'head': instance.head,
|
||||
'lead': instance.lead,
|
||||
'text': instance.text,
|
||||
'category': instance.category,
|
||||
'company': instance.company,
|
||||
'priority': instance.priority,
|
||||
'products': instance.products,
|
||||
'startValidity': instance.startValidity?.toIso8601String(),
|
||||
'endValidity': instance.endValidity?.toIso8601String(),
|
||||
'modified': instance.modified?.toIso8601String(),
|
||||
};
|
||||
Reference in New Issue
Block a user