Compare commits
8 Commits
Author | SHA1 | Date |
---|---|---|
Kenneth Bruen | f0ccf59db9 | 1 year ago |
Kenneth Bruen | cc7caffffa | 1 year ago |
Kenneth Bruen | 17d8fac893 | 1 year ago |
Kenneth Bruen | 1f48e868b0 | 1 year ago |
Kenneth Bruen | 9d2871405d | 2 years ago |
Kenneth Bruen | 9637551d7a | 2 years ago |
Kenneth Bruen | 2456f7cbda | 2 years ago |
Kenneth Bruen | 0f39a30921 | 2 years ago |
63 changed files with 4987 additions and 1124 deletions
@ -0,0 +1,34 @@ |
|||||||
|
PODS: |
||||||
|
- Flutter (1.0.0) |
||||||
|
- package_info_plus (0.4.5): |
||||||
|
- Flutter |
||||||
|
- shared_preferences_ios (0.0.1): |
||||||
|
- Flutter |
||||||
|
- url_launcher_ios (0.0.1): |
||||||
|
- Flutter |
||||||
|
|
||||||
|
DEPENDENCIES: |
||||||
|
- Flutter (from `Flutter`) |
||||||
|
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) |
||||||
|
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`) |
||||||
|
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) |
||||||
|
|
||||||
|
EXTERNAL SOURCES: |
||||||
|
Flutter: |
||||||
|
:path: Flutter |
||||||
|
package_info_plus: |
||||||
|
:path: ".symlinks/plugins/package_info_plus/ios" |
||||||
|
shared_preferences_ios: |
||||||
|
:path: ".symlinks/plugins/shared_preferences_ios/ios" |
||||||
|
url_launcher_ios: |
||||||
|
:path: ".symlinks/plugins/url_launcher_ios/ios" |
||||||
|
|
||||||
|
SPEC CHECKSUMS: |
||||||
|
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 |
||||||
|
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e |
||||||
|
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad |
||||||
|
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de |
||||||
|
|
||||||
|
PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 |
||||||
|
|
||||||
|
COCOAPODS: 1.11.3 |
@ -0,0 +1,39 @@ |
|||||||
|
import 'package:flutter/gestures.dart'; |
||||||
|
import 'package:flutter/rendering.dart'; |
||||||
|
|
||||||
|
TextSpan trainIdSpan({ |
||||||
|
required String rank, |
||||||
|
required String number, |
||||||
|
Locale? locale, |
||||||
|
MouseCursor? mouseCursor, |
||||||
|
void Function(PointerEnterEvent)? onEnter, |
||||||
|
void Function(PointerExitEvent)? onExit, |
||||||
|
GestureRecognizer? recognizer, |
||||||
|
String? semanticsLabel, |
||||||
|
bool? spellOut, |
||||||
|
TextStyle? style, |
||||||
|
}) => TextSpan( |
||||||
|
children: [ |
||||||
|
TextSpan( |
||||||
|
text: rank, |
||||||
|
style: TextStyle( |
||||||
|
inherit: true, |
||||||
|
color: rank.startsWith('IC') |
||||||
|
? const Color.fromARGB(255, 0, 255, 0) |
||||||
|
: rank.startsWith('IR') |
||||||
|
? const Color.fromARGB(255, 255, 0, 0) |
||||||
|
: null, |
||||||
|
), |
||||||
|
), |
||||||
|
const TextSpan(text: ' '), |
||||||
|
TextSpan(text: number), |
||||||
|
], |
||||||
|
locale: locale, |
||||||
|
mouseCursor: mouseCursor, |
||||||
|
onEnter: onEnter, |
||||||
|
onExit: onExit, |
||||||
|
recognizer: recognizer, |
||||||
|
semanticsLabel: semanticsLabel, |
||||||
|
spellOut: spellOut, |
||||||
|
style: style, |
||||||
|
); |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,217 @@ |
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND |
||||||
|
|
||||||
|
part of 'train_data.dart'; |
||||||
|
|
||||||
|
// ************************************************************************** |
||||||
|
// JsonSerializableGenerator |
||||||
|
// ************************************************************************** |
||||||
|
|
||||||
|
_$_TrainData _$$_TrainDataFromJson(Map<String, dynamic> json) => _$_TrainData( |
||||||
|
rank: json['rank'] as String, |
||||||
|
number: json['number'] as String, |
||||||
|
date: json['date'] as String, |
||||||
|
operator: json['operator'] as String, |
||||||
|
groups: (json['groups'] as List<dynamic>) |
||||||
|
.map((e) => TrainDataGroup.fromJson(e as Map<String, dynamic>)) |
||||||
|
.toList(), |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataToJson(_$_TrainData instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'rank': instance.rank, |
||||||
|
'number': instance.number, |
||||||
|
'date': instance.date, |
||||||
|
'operator': instance.operator, |
||||||
|
'groups': instance.groups, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataGroup _$$_TrainDataGroupFromJson(Map<String, dynamic> json) => |
||||||
|
_$_TrainDataGroup( |
||||||
|
route: TrainDataRoute.fromJson(json['route'] as Map<String, dynamic>), |
||||||
|
stations: (json['stations'] as List<dynamic>) |
||||||
|
.map((e) => TrainDataStation.fromJson(e as Map<String, dynamic>)) |
||||||
|
.toList(), |
||||||
|
status: json['status'] == null |
||||||
|
? null |
||||||
|
: TrainDataStatus.fromJson(json['status'] as Map<String, dynamic>), |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataGroupToJson(_$_TrainDataGroup instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'route': instance.route, |
||||||
|
'stations': instance.stations, |
||||||
|
'status': instance.status, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataRoute _$$_TrainDataRouteFromJson(Map<String, dynamic> json) => |
||||||
|
_$_TrainDataRoute( |
||||||
|
from: json['from'] as String, |
||||||
|
to: json['to'] as String, |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataRouteToJson(_$_TrainDataRoute instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'from': instance.from, |
||||||
|
'to': instance.to, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataStation _$$_TrainDataStationFromJson(Map<String, dynamic> json) => |
||||||
|
_$_TrainDataStation( |
||||||
|
name: json['name'] as String, |
||||||
|
linkName: json['linkName'] as String, |
||||||
|
km: json['km'] as int, |
||||||
|
stoppingTime: json['stoppingTime'] as int?, |
||||||
|
platform: json['platform'] as String?, |
||||||
|
arrival: json['arrival'] == null |
||||||
|
? null |
||||||
|
: StationArrDepTime.fromJson(json['arrival'] as Map<String, dynamic>), |
||||||
|
departure: json['departure'] == null |
||||||
|
? null |
||||||
|
: StationArrDepTime.fromJson( |
||||||
|
json['departure'] as Map<String, dynamic>), |
||||||
|
notes: (json['notes'] as List<dynamic>) |
||||||
|
.map((e) => const TrainDataNoteConverter() |
||||||
|
.fromJson(e as Map<String, dynamic>)) |
||||||
|
.toList(), |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataStationToJson(_$_TrainDataStation instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'name': instance.name, |
||||||
|
'linkName': instance.linkName, |
||||||
|
'km': instance.km, |
||||||
|
'stoppingTime': instance.stoppingTime, |
||||||
|
'platform': instance.platform, |
||||||
|
'arrival': instance.arrival, |
||||||
|
'departure': instance.departure, |
||||||
|
'notes': |
||||||
|
instance.notes.map(const TrainDataNoteConverter().toJson).toList(), |
||||||
|
}; |
||||||
|
|
||||||
|
_$_StationArrDepTime _$$_StationArrDepTimeFromJson(Map<String, dynamic> json) => |
||||||
|
_$_StationArrDepTime( |
||||||
|
scheduleTime: DateTime.parse(json['scheduleTime'] as String), |
||||||
|
status: json['status'] == null |
||||||
|
? null |
||||||
|
: StationArrDepTimeStatus.fromJson( |
||||||
|
json['status'] as Map<String, dynamic>), |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_StationArrDepTimeToJson( |
||||||
|
_$_StationArrDepTime instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'scheduleTime': instance.scheduleTime.toIso8601String(), |
||||||
|
'status': instance.status, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_StationArrDepTimeStatus _$$_StationArrDepTimeStatusFromJson( |
||||||
|
Map<String, dynamic> json) => |
||||||
|
_$_StationArrDepTimeStatus( |
||||||
|
delay: json['delay'] as int, |
||||||
|
real: json['real'] as bool, |
||||||
|
cancelled: json['cancelled'] as bool, |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_StationArrDepTimeStatusToJson( |
||||||
|
_$_StationArrDepTimeStatus instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'delay': instance.delay, |
||||||
|
'real': instance.real, |
||||||
|
'cancelled': instance.cancelled, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataStatus _$$_TrainDataStatusFromJson(Map<String, dynamic> json) => |
||||||
|
_$_TrainDataStatus( |
||||||
|
delay: json['delay'] as int, |
||||||
|
station: json['station'] as String, |
||||||
|
state: $enumDecode(_$TrainDataStatusStateEnumMap, json['state']), |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataStatusToJson(_$_TrainDataStatus instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'delay': instance.delay, |
||||||
|
'station': instance.station, |
||||||
|
'state': _$TrainDataStatusStateEnumMap[instance.state]!, |
||||||
|
}; |
||||||
|
|
||||||
|
const _$TrainDataStatusStateEnumMap = { |
||||||
|
TrainDataStatusState.passing: 'passing', |
||||||
|
TrainDataStatusState.arrival: 'arrival', |
||||||
|
TrainDataStatusState.departure: 'departure', |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataNoteTrainNumberChange _$$_TrainDataNoteTrainNumberChangeFromJson( |
||||||
|
Map<String, dynamic> json) => |
||||||
|
_$_TrainDataNoteTrainNumberChange( |
||||||
|
kind: json['kind'] as String? ?? "trainNumberChange", |
||||||
|
rank: json['rank'] as String, |
||||||
|
number: json['number'] as String, |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataNoteTrainNumberChangeToJson( |
||||||
|
_$_TrainDataNoteTrainNumberChange instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'kind': instance.kind, |
||||||
|
'rank': instance.rank, |
||||||
|
'number': instance.number, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataNoteDepartsAs _$$_TrainDataNoteDepartsAsFromJson( |
||||||
|
Map<String, dynamic> json) => |
||||||
|
_$_TrainDataNoteDepartsAs( |
||||||
|
kind: json['kind'] as String? ?? "departsAs", |
||||||
|
rank: json['rank'] as String, |
||||||
|
number: json['number'] as String, |
||||||
|
departureDate: DateTime.parse(json['departureDate'] as String), |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataNoteDepartsAsToJson( |
||||||
|
_$_TrainDataNoteDepartsAs instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'kind': instance.kind, |
||||||
|
'rank': instance.rank, |
||||||
|
'number': instance.number, |
||||||
|
'departureDate': instance.departureDate.toIso8601String(), |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataNoteDetachingWagons _$$_TrainDataNoteDetachingWagonsFromJson( |
||||||
|
Map<String, dynamic> json) => |
||||||
|
_$_TrainDataNoteDetachingWagons( |
||||||
|
kind: json['kind'] as String? ?? "detachingWagons", |
||||||
|
station: json['station'] as String, |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataNoteDetachingWagonsToJson( |
||||||
|
_$_TrainDataNoteDetachingWagons instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'kind': instance.kind, |
||||||
|
'station': instance.station, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataNoteReceivingWagons _$$_TrainDataNoteReceivingWagonsFromJson( |
||||||
|
Map<String, dynamic> json) => |
||||||
|
_$_TrainDataNoteReceivingWagons( |
||||||
|
kind: json['kind'] as String? ?? "receivingWagons", |
||||||
|
station: json['station'] as String, |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataNoteReceivingWagonsToJson( |
||||||
|
_$_TrainDataNoteReceivingWagons instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'kind': instance.kind, |
||||||
|
'station': instance.station, |
||||||
|
}; |
||||||
|
|
||||||
|
_$_TrainDataNoteUnknown _$$_TrainDataNoteUnknownFromJson( |
||||||
|
Map<String, dynamic> json) => |
||||||
|
_$_TrainDataNoteUnknown( |
||||||
|
kind: json['kind'] as String, |
||||||
|
extra: json['extra'] as Map<String, dynamic>, |
||||||
|
); |
||||||
|
|
||||||
|
Map<String, dynamic> _$$_TrainDataNoteUnknownToJson( |
||||||
|
_$_TrainDataNoteUnknown instance) => |
||||||
|
<String, dynamic>{ |
||||||
|
'kind': instance.kind, |
||||||
|
'extra': instance.extra, |
||||||
|
}; |
@ -0,0 +1,94 @@ |
|||||||
|
import 'package:timezone/timezone.dart' as tz; |
||||||
|
|
||||||
|
enum UiTimeZoneType { |
||||||
|
ro, |
||||||
|
local, |
||||||
|
utc, |
||||||
|
iana, |
||||||
|
} |
||||||
|
|
||||||
|
extension UITimeZoneTypeName on UiTimeZoneType { |
||||||
|
String get userInterfaceName => (const { |
||||||
|
UiTimeZoneType.iana: 'Fus orar IANA', |
||||||
|
UiTimeZoneType.local: 'Local', |
||||||
|
UiTimeZoneType.ro: 'România', |
||||||
|
UiTimeZoneType.utc: 'UTC', |
||||||
|
})[this]!; |
||||||
|
} |
||||||
|
|
||||||
|
const Map<UiTimeZoneType, UiTimeZone Function(String)> fromSerStringConstructors = { |
||||||
|
UiTimeZoneType.ro: RoUiTimeZone.fromSerString, |
||||||
|
UiTimeZoneType.local: LocalUiTimeZone.fromSerString, |
||||||
|
UiTimeZoneType.utc: UtcUiTimeZone.fromSerString, |
||||||
|
UiTimeZoneType.iana: IanaUiTimeZone.fromSerString, |
||||||
|
}; |
||||||
|
|
||||||
|
abstract class UiTimeZone { |
||||||
|
final UiTimeZoneType type; |
||||||
|
|
||||||
|
const UiTimeZone({required this.type}); |
||||||
|
|
||||||
|
DateTime convertDateTime(DateTime dt); |
||||||
|
|
||||||
|
factory UiTimeZone.fromSerString(String ser) { |
||||||
|
final arr = ser.split('\n'); |
||||||
|
return fromSerStringConstructors.map((key, value) => MapEntry(key.name, value))[arr[0]]!(ser); |
||||||
|
} |
||||||
|
|
||||||
|
String toSerString() { |
||||||
|
return '${type.name}\n'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class RoUiTimeZone extends UiTimeZone { |
||||||
|
static final roTz = tz.getLocation('Europe/Bucharest'); |
||||||
|
|
||||||
|
const RoUiTimeZone() : super(type: UiTimeZoneType.ro); |
||||||
|
|
||||||
|
factory RoUiTimeZone.fromSerString(String ser) => const RoUiTimeZone(); |
||||||
|
|
||||||
|
@override |
||||||
|
DateTime convertDateTime(DateTime dt) { |
||||||
|
return tz.TZDateTime.from(dt, roTz); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class LocalUiTimeZone extends UiTimeZone { |
||||||
|
const LocalUiTimeZone() : super(type: UiTimeZoneType.local); |
||||||
|
|
||||||
|
factory LocalUiTimeZone.fromSerString(String ser) => LocalUiTimeZone(); |
||||||
|
|
||||||
|
@override |
||||||
|
DateTime convertDateTime(DateTime dt) => dt.toLocal(); |
||||||
|
} |
||||||
|
|
||||||
|
class UtcUiTimeZone extends UiTimeZone { |
||||||
|
const UtcUiTimeZone() : super(type: UiTimeZoneType.utc); |
||||||
|
|
||||||
|
factory UtcUiTimeZone.fromSerString(String ser) => UtcUiTimeZone(); |
||||||
|
|
||||||
|
@override |
||||||
|
DateTime convertDateTime(DateTime dt) => dt.toUtc(); |
||||||
|
} |
||||||
|
|
||||||
|
class IanaUiTimeZone extends UiTimeZone { |
||||||
|
late final tz.Location location; |
||||||
|
|
||||||
|
IanaUiTimeZone({required String ianaName}): super(type: UiTimeZoneType.iana) { |
||||||
|
location = tz.getLocation(ianaName); |
||||||
|
} |
||||||
|
|
||||||
|
factory IanaUiTimeZone.fromSerString(String ser) => IanaUiTimeZone( |
||||||
|
ianaName: ser.split('\n').skip(1).join('\n'), |
||||||
|
); |
||||||
|
|
||||||
|
@override |
||||||
|
DateTime convertDateTime(DateTime dt) { |
||||||
|
return tz.TZDateTime.from(dt, location); |
||||||
|
} |
||||||
|
|
||||||
|
@override |
||||||
|
String toSerString() { |
||||||
|
return '${type.name}\n${location.name}'; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,120 @@ |
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND |
||||||
|
|
||||||
|
part of 'providers.dart'; |
||||||
|
|
||||||
|
// ************************************************************************** |
||||||
|
// RiverpodGenerator |
||||||
|
// ************************************************************************** |
||||||
|
|
||||||
|
String _$trainInfoHash() => r'd25aabc3ba656acf6497ec6831e11892178b22c9'; |
||||||
|
|
||||||
|
/// Copied from Dart SDK |
||||||
|
class _SystemHash { |
||||||
|
_SystemHash._(); |
||||||
|
|
||||||
|
static int combine(int hash, int value) { |
||||||
|
// ignore: parameter_assignments |
||||||
|
hash = 0x1fffffff & (hash + value); |
||||||
|
// ignore: parameter_assignments |
||||||
|
hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10)); |
||||||
|
return hash ^ (hash >> 6); |
||||||
|
} |
||||||
|
|
||||||
|
static int finish(int hash) { |
||||||
|
// ignore: parameter_assignments |
||||||
|
hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3)); |
||||||
|
// ignore: parameter_assignments |
||||||
|
hash = hash ^ (hash >> 11); |
||||||
|
return 0x1fffffff & (hash + ((0x00003fff & hash) << 15)); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
typedef TrainInfoRef = FutureProviderRef<TrainData>; |
||||||
|
|
||||||
|
/// See also [trainInfo]. |
||||||
|
@ProviderFor(trainInfo) |
||||||
|
const trainInfoProvider = TrainInfoFamily(); |
||||||
|
|
||||||
|
/// See also [trainInfo]. |
||||||
|
class TrainInfoFamily extends Family<AsyncValue<TrainData>> { |
||||||
|
/// See also [trainInfo]. |
||||||
|
const TrainInfoFamily(); |
||||||
|
|
||||||
|
/// See also [trainInfo]. |
||||||
|
TrainInfoProvider call({ |
||||||
|
required String trainNumber, |
||||||
|
DateTime? date, |
||||||
|
}) { |
||||||
|
return TrainInfoProvider( |
||||||
|
trainNumber: trainNumber, |
||||||
|
date: date, |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
@override |
||||||
|
TrainInfoProvider getProviderOverride( |
||||||
|
covariant TrainInfoProvider provider, |
||||||
|
) { |
||||||
|
return call( |
||||||
|
trainNumber: provider.trainNumber, |
||||||
|
date: provider.date, |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
static const Iterable<ProviderOrFamily>? _dependencies = null; |
||||||
|
|
||||||
|
@override |
||||||
|
Iterable<ProviderOrFamily>? get dependencies => _dependencies; |
||||||
|
|
||||||
|
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null; |
||||||
|
|
||||||
|
@override |
||||||
|
Iterable<ProviderOrFamily>? get allTransitiveDependencies => |
||||||
|
_allTransitiveDependencies; |
||||||
|
|
||||||
|
@override |
||||||
|
String? get name => r'trainInfoProvider'; |
||||||
|
} |
||||||
|
|
||||||
|
/// See also [trainInfo]. |
||||||
|
class TrainInfoProvider extends FutureProvider<TrainData> { |
||||||
|
/// See also [trainInfo]. |
||||||
|
TrainInfoProvider({ |
||||||
|
required this.trainNumber, |
||||||
|
this.date, |
||||||
|
}) : super.internal( |
||||||
|
(ref) => trainInfo( |
||||||
|
ref, |
||||||
|
trainNumber: trainNumber, |
||||||
|
date: date, |
||||||
|
), |
||||||
|
from: trainInfoProvider, |
||||||
|
name: r'trainInfoProvider', |
||||||
|
debugGetCreateSourceHash: |
||||||
|
const bool.fromEnvironment('dart.vm.product') |
||||||
|
? null |
||||||
|
: _$trainInfoHash, |
||||||
|
dependencies: TrainInfoFamily._dependencies, |
||||||
|
allTransitiveDependencies: TrainInfoFamily._allTransitiveDependencies, |
||||||
|
); |
||||||
|
|
||||||
|
final String trainNumber; |
||||||
|
final DateTime? date; |
||||||
|
|
||||||
|
@override |
||||||
|
bool operator ==(Object other) { |
||||||
|
return other is TrainInfoProvider && |
||||||
|
other.trainNumber == trainNumber && |
||||||
|
other.date == date; |
||||||
|
} |
||||||
|
|
||||||
|
@override |
||||||
|
int get hashCode { |
||||||
|
var hash = _SystemHash.combine(0, runtimeType.hashCode); |
||||||
|
hash = _SystemHash.combine(hash, trainNumber.hashCode); |
||||||
|
hash = _SystemHash.combine(hash, date.hashCode); |
||||||
|
|
||||||
|
return _SystemHash.finish(hash); |
||||||
|
} |
||||||
|
} |
||||||
|
// ignore_for_file: unnecessary_raw_strings, subtype_of_sealed_class, invalid_use_of_internal_member, do_not_use_environment, prefer_const_constructors, public_member_api_docs, avoid_private_typedef_functions |
@ -1,12 +1,7 @@ |
|||||||
import 'package:info_tren/models.dart'; |
import 'package:info_tren/models.dart'; |
||||||
|
|
||||||
String stateToString(TrainDataState state) { |
String stateToString(TrainDataState state) => switch (state) { |
||||||
switch(state) { |
TrainDataState.passing => 'trecere fără oprire', |
||||||
case TrainDataState.PASSING: |
TrainDataState.arrival => 'sosire', |
||||||
return 'trecere fără oprire'; |
TrainDataState.departure => 'plecare', |
||||||
case TrainDataState.ARRIVAL: |
}; |
||||||
return 'sosire'; |
|
||||||
case TrainDataState.DEPARTURE: |
|
||||||
return 'plecare'; |
|
||||||
} |
|
||||||
} |
|
||||||
|
@ -1 +1,2 @@ |
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" |
||||||
#include "ephemeral/Flutter-Generated.xcconfig" |
#include "ephemeral/Flutter-Generated.xcconfig" |
||||||
|
@ -1 +1,2 @@ |
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" |
||||||
#include "ephemeral/Flutter-Generated.xcconfig" |
#include "ephemeral/Flutter-Generated.xcconfig" |
||||||
|
@ -0,0 +1,40 @@ |
|||||||
|
platform :osx, '10.14' |
||||||
|
|
||||||
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. |
||||||
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true' |
||||||
|
|
||||||
|
project 'Runner', { |
||||||
|
'Debug' => :debug, |
||||||
|
'Profile' => :release, |
||||||
|
'Release' => :release, |
||||||
|
} |
||||||
|
|
||||||
|
def flutter_root |
||||||
|
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) |
||||||
|
unless File.exist?(generated_xcode_build_settings_path) |
||||||
|
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" |
||||||
|
end |
||||||
|
|
||||||
|
File.foreach(generated_xcode_build_settings_path) do |line| |
||||||
|
matches = line.match(/FLUTTER_ROOT\=(.*)/) |
||||||
|
return matches[1].strip if matches |
||||||
|
end |
||||||
|
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" |
||||||
|
end |
||||||
|
|
||||||
|
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) |
||||||
|
|
||||||
|
flutter_macos_podfile_setup |
||||||
|
|
||||||
|
target 'Runner' do |
||||||
|
use_frameworks! |
||||||
|
use_modular_headers! |
||||||
|
|
||||||
|
flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) |
||||||
|
end |
||||||
|
|
||||||
|
post_install do |installer| |
||||||
|
installer.pods_project.targets.each do |target| |
||||||
|
flutter_additional_macos_build_settings(target) |
||||||
|
end |
||||||
|
end |
@ -0,0 +1,41 @@ |
|||||||
|
PODS: |
||||||
|
- dynamic_color (0.0.2): |
||||||
|
- FlutterMacOS |
||||||
|
- FlutterMacOS (1.0.0) |
||||||
|
- package_info_plus (0.0.1): |
||||||
|
- FlutterMacOS |
||||||
|
- shared_preferences_foundation (0.0.1): |
||||||
|
- Flutter |
||||||
|
- FlutterMacOS |
||||||
|
- url_launcher_macos (0.0.1): |
||||||
|
- FlutterMacOS |
||||||
|
|
||||||
|
DEPENDENCIES: |
||||||
|
- dynamic_color (from `Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos`) |
||||||
|
- FlutterMacOS (from `Flutter/ephemeral`) |
||||||
|
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) |
||||||
|
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) |
||||||
|
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) |
||||||
|
|
||||||
|
EXTERNAL SOURCES: |
||||||
|
dynamic_color: |
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos |
||||||
|
FlutterMacOS: |
||||||
|
:path: Flutter/ephemeral |
||||||
|
package_info_plus: |
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos |
||||||
|
shared_preferences_foundation: |
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin |
||||||
|
url_launcher_macos: |
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos |
||||||
|
|
||||||
|
SPEC CHECKSUMS: |
||||||
|
dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f |
||||||
|
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 |
||||||
|
package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce |
||||||
|
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126 |
||||||
|
url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 |
||||||
|
|
||||||
|
PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 |
||||||
|
|
||||||
|
COCOAPODS: 1.12.1 |
Loading…
Reference in new issue