diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index e7b96e3a3..194ac9680 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -399,7 +399,7 @@ }, { "name": "geojson", - "rootUri": "file:///Users/r_onoue/.pub-cache/hosted/pub.dev/geojson-1.0.0", + "rootUri": "file:///Users/r_onoue/.pub-cache/git/geojson-7f0e305450014e264f6d0f5bf5b1a62501afc6c2/", "packageUri": "lib/", "languageVersion": "2.12" }, @@ -962,7 +962,7 @@ "languageVersion": "3.0" } ], - "generated": "2023-05-26T15:32:46.941762Z", + "generated": "2023-05-27T05:08:28.281984Z", "generator": "pub", "generatorVersion": "3.0.2" } diff --git a/lib/common/component/map/map.dart b/lib/common/component/map/map.dart index f24d44f6d..d8517423c 100644 --- a/lib/common/component/map/map.dart +++ b/lib/common/component/map/map.dart @@ -2,7 +2,6 @@ import 'dart:math'; import 'package:eqmonitor/common/component/map/model/map_state.dart'; import 'package:eqmonitor/common/component/map/view_model/map_viemwodel.dart'; -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; import 'package:eqmonitor/common/feature/map/model/map_type.dart'; import 'package:eqmonitor/common/feature/map/model/state/map_data_state.dart'; import 'package:eqmonitor/common/feature/map/provider/map_data_provider.dart'; @@ -24,26 +23,6 @@ class MapTouchHandlerWidget extends HookConsumerWidget { useEffect( () { - WidgetsBinding.instance.endOfFrame.then( - (_) => Future( - () { - ref.read(mapViewModelProvider(mapKey).notifier) - ..registerWidgetSize( - context.size!, - ) - ..registerAnimationControllers( - moveController: controller, - scaleController: scaleController, - ) - ..fitBounds( - [ - const LatLng(45.3, 145.1), - const LatLng(30, 128.8), - ], - ); - }, - ), - ); return null; }, [], @@ -64,17 +43,25 @@ class MapTouchHandlerWidget extends HookConsumerWidget { } } -class BaseMapWidget extends ConsumerWidget { +class BaseMapWidget extends HookConsumerWidget { const BaseMapWidget({super.key, required this.mapKey}); final Key mapKey; @override Widget build(BuildContext context, WidgetRef ref) { + useEffect( + () { + ref.read(mapDataProvider.notifier).initialize(); + return null; + }, + [], + ); final state = ref.watch(MapViewModelProvider(mapKey)); final mapData = ref.watch(mapDataProvider.select((value) => value.projectedData)); if (mapData == null) { - throw Exception('mapData is null'); + debugPrint('mapData is null'); + return const SizedBox.shrink(); } return CustomPaint( painter: MapPainter( diff --git a/lib/common/component/map/model/map_config.dart b/lib/common/component/map/model/map_config.dart index c6b4d632b..15237765e 100644 --- a/lib/common/component/map/model/map_config.dart +++ b/lib/common/component/map/model/map_config.dart @@ -1,4 +1,4 @@ -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; diff --git a/lib/common/component/map/model/map_state.dart b/lib/common/component/map/model/map_state.dart index ae2563503..d55020057 100644 --- a/lib/common/component/map/model/map_state.dart +++ b/lib/common/component/map/model/map_state.dart @@ -1,7 +1,7 @@ import 'dart:math'; import 'dart:math' as math; -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:eqmonitor/common/feature/map/utils/web_mercator_projection.dart'; import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; diff --git a/lib/common/component/map/view_model/map_viemwodel.dart b/lib/common/component/map/view_model/map_viemwodel.dart index 8c4dba823..28df4b740 100644 --- a/lib/common/component/map/view_model/map_viemwodel.dart +++ b/lib/common/component/map/view_model/map_viemwodel.dart @@ -1,7 +1,7 @@ import 'dart:math' as math; +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:eqmonitor/common/component/map/model/map_state.dart'; -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; import 'package:eqmonitor/common/feature/map/utils/web_mercator_projection.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; diff --git a/lib/common/feature/map/data/map_data_source.dart b/lib/common/feature/map/data/map_data_source.dart index 93e86e360..8d7bb3896 100644 --- a/lib/common/feature/map/data/map_data_source.dart +++ b/lib/common/feature/map/data/map_data_source.dart @@ -1,7 +1,7 @@ // ignore_for_file: avoid_catches_without_on_clauses, empty_catches +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:eqmonitor/common/feature/map/model/jma_map_property.dart'; -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; import 'package:eqmonitor/common/feature/map/model/map_polygon.dart'; import 'package:eqmonitor/common/feature/map/model/world_map_property.dart'; import 'package:flutter/services.dart'; diff --git a/lib/common/feature/map/model/map_polygon.dart b/lib/common/feature/map/model/map_polygon.dart index f75f0c890..186c2709d 100644 --- a/lib/common/feature/map/model/map_polygon.dart +++ b/lib/common/feature/map/model/map_polygon.dart @@ -1,4 +1,4 @@ -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; +import 'package:eqapi_schema/model/lat_lng.dart'; class MultiPolygonMapData { factory MultiPolygonMapData.fromList( diff --git a/lib/common/feature/map/model/projected/map_polygon.dart b/lib/common/feature/map/model/projected/map_polygon.dart index 6fa410ee7..4d2fbbd59 100644 --- a/lib/common/feature/map/model/projected/map_polygon.dart +++ b/lib/common/feature/map/model/projected/map_polygon.dart @@ -1,4 +1,4 @@ -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:eqmonitor/common/feature/map/model/map_polygon.dart'; import 'package:eqmonitor/common/feature/map/utils/web_mercator_projection.dart'; diff --git a/lib/common/feature/map/utils/web_mercator_projection.dart b/lib/common/feature/map/utils/web_mercator_projection.dart index f211b516f..49a0d79cc 100644 --- a/lib/common/feature/map/utils/web_mercator_projection.dart +++ b/lib/common/feature/map/utils/web_mercator_projection.dart @@ -1,7 +1,7 @@ import 'dart:math'; import 'dart:math' as math; -import 'package:eqmonitor/common/feature/map/model/lat_lng.dart'; +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:flutter/services.dart'; class WebMercatorProjection { diff --git a/lib/feature/earthquake_history_details/component/eq_map.dart b/lib/feature/earthquake_history_details/component/eq_map.dart new file mode 100644 index 000000000..d0aea7bfe --- /dev/null +++ b/lib/feature/earthquake_history_details/component/eq_map.dart @@ -0,0 +1,67 @@ +import 'package:eqapi_schema/model/lat_lng.dart'; +import 'package:eqmonitor/common/component/map/map.dart'; +import 'package:eqmonitor/common/component/map/view_model/map_viemwodel.dart'; +import 'package:eqmonitor/feature/earthquake_history/model/state/earthquake_history_item.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:hooks_riverpod/hooks_riverpod.dart'; + +class EarthquakeHistoryMap extends HookConsumerWidget { + EarthquakeHistoryMap({required this.item, super.key}) : super() { + mapKey = GlobalKey(debugLabel: 'eq-history-map-${item.eventId}'); + } + final EarthquakeHistoryItem item; + late final Key mapKey; + + @override + Widget build(BuildContext context, WidgetRef ref) { + useEffect( + () { + WidgetsBinding.instance.endOfFrame.then((_) { + ref.read(mapViewModelProvider(mapKey).notifier) + ..registerWidgetSize( + context.size!, + ) + ..fitBounds( + [ + const LatLng(45.3, 145.1), + const LatLng(30, 128.8), + ], + ); + }); + return null; + }, + [], + ); + return ClipRRect( + child: Stack( + children: [ + // background + Container( + color: const Color.fromARGB(255, 179, 230, 255), + ), + ClipRRect( + child: Stack( + children: [ + BaseMapWidget(mapKey: mapKey), + ], + ), + ), + MapTouchHandlerWidget(mapKey: mapKey), + ], + ), + ); + } +} + +List _getShowBounds(EarthquakeHistoryItem item) { + if (item.earthquake.intensity == null) { + if (item.earthquake.earthquake != null) { + // return []; + } + } + return [ + const LatLng(45.3, 145.1), + const LatLng(30, 128.8), + ]; +} diff --git a/lib/feature/earthquake_history_details/screen/earthquake_history_details.dart b/lib/feature/earthquake_history_details/screen/earthquake_history_details.dart index 0f045bc9c..af783be82 100644 --- a/lib/feature/earthquake_history_details/screen/earthquake_history_details.dart +++ b/lib/feature/earthquake_history_details/screen/earthquake_history_details.dart @@ -1,17 +1,14 @@ import 'package:collection/collection.dart'; import 'package:eqmonitor/feature/earthquake_history/viewmodel/earthquake_history_view_model.dart'; +import 'package:eqmonitor/feature/earthquake_history_details/component/eq_map.dart'; import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; class EarthquakeHistoryDetailsPage extends ConsumerWidget { - EarthquakeHistoryDetailsPage({ + const EarthquakeHistoryDetailsPage({ required this.eventId, super.key, - }) : super() { - mapKey = GlobalKey(debugLabel: 'eq-history-details-$eventId'); - } - - late final mapKey; + }); final int eventId; @@ -34,10 +31,10 @@ class EarthquakeHistoryDetailsPage extends ConsumerWidget { appBar: AppBar( title: Text(eventId.toString()), ), - body: SingleChildScrollView( - child: Text( - data.toString(), - ), + body: Stack( + children: [ + EarthquakeHistoryMap(item: data), + ], ), ); } diff --git a/lib/feature/setup/component/earthquake_restriction.dart b/lib/feature/setup/component/earthquake_restriction.dart index 4c453302f..5fae2008a 100644 --- a/lib/feature/setup/component/earthquake_restriction.dart +++ b/lib/feature/setup/component/earthquake_restriction.dart @@ -6,6 +6,7 @@ class EarthquakeRestrictionWidget extends StatelessWidget { @override Widget build(BuildContext context) { final theme = Theme.of(context); + final size = MediaQuery.of(context).size; final earthquakeImageWidget = Padding( padding: const EdgeInsets.all(16), child: DecoratedBox( @@ -17,7 +18,11 @@ class EarthquakeRestrictionWidget extends StatelessWidget { padding: const EdgeInsets.all(8), child: ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(16)), - child: Image.asset('assets/images/earthquake_happened.png'), + child: Image.asset( + 'assets/images/earthquake_happened.png', + fit: BoxFit.scaleDown, + width: size.width * 0.8, + ), ), ), ), diff --git a/lib/feature/setup/pages/02_quick_guide_about_eew copy.dart b/lib/feature/setup/pages/02_quick_guide_about_eew copy.dart deleted file mode 100644 index 81b269763..000000000 --- a/lib/feature/setup/pages/02_quick_guide_about_eew copy.dart +++ /dev/null @@ -1,60 +0,0 @@ -import 'package:eqmonitor/common/component/button/action_button.dart'; -import 'package:eqmonitor/feature/setup/component/background_image.dart'; -import 'package:eqmonitor/feature/setup/component/earthquake_restriction.dart'; -import 'package:flutter/material.dart'; - -class QuickGuideAboutEewPage extends StatelessWidget { - const QuickGuideAboutEewPage({required this.onNext, super.key}); - final void Function() onNext; - - @override - Widget build(BuildContext context) { - final theme = Theme.of(context); - return Scaffold( - body: SetupBackgroundImageWidget( - child: Column( - children: [ - // 画面上部のタイトル - Padding( - padding: const EdgeInsets.all(16), - child: Text( - '緊急地震速報の限界について', - style: theme.textTheme.titleLarge!.copyWith( - fontWeight: FontWeight.bold, - color: Colors.white, - ), - ), - ), - const Padding( - padding: EdgeInsets.symmetric(vertical: 16), - child: EarthquakeRestrictionWidget(), - ), - const Spacer(), - Padding( - padding: const EdgeInsets.all(16), - child: ActionButton( - isEnabled: true, - onPressed: onNext, - child: const Padding( - padding: EdgeInsets.symmetric(vertical: 12), - child: SizedBox( - width: double.infinity, - child: Center( - child: Text( - '次へ', - style: TextStyle( - fontWeight: FontWeight.bold, - color: Colors.white, - ), - ), - ), - ), - ), - ), - ) - ], - ), - ), - ); - } -} diff --git a/lib/feature/setup/pages/02_quick_guide_about_eew.dart b/lib/feature/setup/pages/02_quick_guide_about_eew.dart new file mode 100644 index 000000000..e7ea7a860 --- /dev/null +++ b/lib/feature/setup/pages/02_quick_guide_about_eew.dart @@ -0,0 +1,61 @@ +import 'package:eqmonitor/common/component/button/action_button.dart'; +import 'package:eqmonitor/feature/setup/component/background_image.dart'; +import 'package:eqmonitor/feature/setup/component/earthquake_restriction.dart'; +import 'package:flutter/material.dart'; + +class QuickGuideAboutEewPage extends StatelessWidget { + const QuickGuideAboutEewPage({required this.onNext, super.key}); + final void Function() onNext; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Scaffold( + body: SetupBackgroundImageWidget( + child: SingleChildScrollView( + child: Column( + children: [ + // 画面上部のタイトル + Padding( + padding: const EdgeInsets.all(16), + child: Text( + '緊急地震速報の限界について', + style: theme.textTheme.titleLarge!.copyWith( + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + const Padding( + padding: EdgeInsets.symmetric(vertical: 16), + child: EarthquakeRestrictionWidget(), + ), + Padding( + padding: const EdgeInsets.all(16), + child: ActionButton( + isEnabled: true, + onPressed: onNext, + child: const Padding( + padding: EdgeInsets.symmetric(vertical: 12), + child: SizedBox( + width: double.infinity, + child: Center( + child: Text( + '次へ', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + ), + ), + ) + ], + ), + ), + ), + ); + } +} diff --git a/lib/feature/setup/screen/setup_screen.dart b/lib/feature/setup/screen/setup_screen.dart index 315cbfaa7..55d099b37 100644 --- a/lib/feature/setup/screen/setup_screen.dart +++ b/lib/feature/setup/screen/setup_screen.dart @@ -8,7 +8,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import '../pages/02_quick_guide_about_eew copy.dart'; +import '../pages/02_quick_guide_about_eew.dart'; class SetupScreen extends HookConsumerWidget { const SetupScreen({super.key}); diff --git a/packages/eqapi_schema/lib/model/components/earthquake.dart b/packages/eqapi_schema/lib/model/components/earthquake.dart index 372f350ad..a94c2806f 100644 --- a/packages/eqapi_schema/lib/model/components/earthquake.dart +++ b/packages/eqapi_schema/lib/model/components/earthquake.dart @@ -1,3 +1,4 @@ +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; part 'earthquake.freezed.dart'; @@ -27,6 +28,7 @@ class EarthquakeHypocenter with _$EarthquakeHypocenter { /// null: 不明 required int? depth, required EarthquakeHypocenterDetailed? detailed, + required LatLng? coordinate, }) = _EarthquakeHypocenter; factory EarthquakeHypocenter.fromJson(Map json) => diff --git a/packages/eqapi_schema/lib/model/components/earthquake.freezed.dart b/packages/eqapi_schema/lib/model/components/earthquake.freezed.dart index 21f82d3e2..46e735590 100644 --- a/packages/eqapi_schema/lib/model/components/earthquake.freezed.dart +++ b/packages/eqapi_schema/lib/model/components/earthquake.freezed.dart @@ -258,6 +258,7 @@ mixin _$EarthquakeHypocenter { int? get depth => throw _privateConstructorUsedError; EarthquakeHypocenterDetailed? get detailed => throw _privateConstructorUsedError; + LatLng? get coordinate => throw _privateConstructorUsedError; Map toJson() => throw _privateConstructorUsedError; @JsonKey(ignore: true) @@ -275,7 +276,8 @@ abstract class $EarthquakeHypocenterCopyWith<$Res> { {String name, String code, int? depth, - EarthquakeHypocenterDetailed? detailed}); + EarthquakeHypocenterDetailed? detailed, + LatLng? coordinate}); $EarthquakeHypocenterDetailedCopyWith<$Res>? get detailed; } @@ -298,6 +300,7 @@ class _$EarthquakeHypocenterCopyWithImpl<$Res, Object? code = null, Object? depth = freezed, Object? detailed = freezed, + Object? coordinate = freezed, }) { return _then(_value.copyWith( name: null == name @@ -316,6 +319,10 @@ class _$EarthquakeHypocenterCopyWithImpl<$Res, ? _value.detailed : detailed // ignore: cast_nullable_to_non_nullable as EarthquakeHypocenterDetailed?, + coordinate: freezed == coordinate + ? _value.coordinate + : coordinate // ignore: cast_nullable_to_non_nullable + as LatLng?, ) as $Val); } @@ -345,7 +352,8 @@ abstract class _$$_EarthquakeHypocenterCopyWith<$Res> {String name, String code, int? depth, - EarthquakeHypocenterDetailed? detailed}); + EarthquakeHypocenterDetailed? detailed, + LatLng? coordinate}); @override $EarthquakeHypocenterDetailedCopyWith<$Res>? get detailed; @@ -366,6 +374,7 @@ class __$$_EarthquakeHypocenterCopyWithImpl<$Res> Object? code = null, Object? depth = freezed, Object? detailed = freezed, + Object? coordinate = freezed, }) { return _then(_$_EarthquakeHypocenter( name: null == name @@ -384,6 +393,10 @@ class __$$_EarthquakeHypocenterCopyWithImpl<$Res> ? _value.detailed : detailed // ignore: cast_nullable_to_non_nullable as EarthquakeHypocenterDetailed?, + coordinate: freezed == coordinate + ? _value.coordinate + : coordinate // ignore: cast_nullable_to_non_nullable + as LatLng?, )); } } @@ -395,7 +408,8 @@ class _$_EarthquakeHypocenter implements _EarthquakeHypocenter { {required this.name, required this.code, required this.depth, - required this.detailed}); + required this.detailed, + required this.coordinate}); factory _$_EarthquakeHypocenter.fromJson(Map json) => _$$_EarthquakeHypocenterFromJson(json); @@ -412,10 +426,12 @@ class _$_EarthquakeHypocenter implements _EarthquakeHypocenter { final int? depth; @override final EarthquakeHypocenterDetailed? detailed; + @override + final LatLng? coordinate; @override String toString() { - return 'EarthquakeHypocenter(name: $name, code: $code, depth: $depth, detailed: $detailed)'; + return 'EarthquakeHypocenter(name: $name, code: $code, depth: $depth, detailed: $detailed, coordinate: $coordinate)'; } @override @@ -427,12 +443,15 @@ class _$_EarthquakeHypocenter implements _EarthquakeHypocenter { (identical(other.code, code) || other.code == code) && (identical(other.depth, depth) || other.depth == depth) && (identical(other.detailed, detailed) || - other.detailed == detailed)); + other.detailed == detailed) && + (identical(other.coordinate, coordinate) || + other.coordinate == coordinate)); } @JsonKey(ignore: true) @override - int get hashCode => Object.hash(runtimeType, name, code, depth, detailed); + int get hashCode => + Object.hash(runtimeType, name, code, depth, detailed, coordinate); @JsonKey(ignore: true) @override @@ -451,11 +470,11 @@ class _$_EarthquakeHypocenter implements _EarthquakeHypocenter { abstract class _EarthquakeHypocenter implements EarthquakeHypocenter { const factory _EarthquakeHypocenter( - {required final String name, - required final String code, - required final int? depth, - required final EarthquakeHypocenterDetailed? detailed}) = - _$_EarthquakeHypocenter; + {required final String name, + required final String code, + required final int? depth, + required final EarthquakeHypocenterDetailed? detailed, + required final LatLng? coordinate}) = _$_EarthquakeHypocenter; factory _EarthquakeHypocenter.fromJson(Map json) = _$_EarthquakeHypocenter.fromJson; @@ -473,6 +492,8 @@ abstract class _EarthquakeHypocenter implements EarthquakeHypocenter { @override EarthquakeHypocenterDetailed? get detailed; @override + LatLng? get coordinate; + @override @JsonKey(ignore: true) _$$_EarthquakeHypocenterCopyWith<_$_EarthquakeHypocenter> get copyWith => throw _privateConstructorUsedError; diff --git a/packages/eqapi_schema/lib/model/components/earthquake.g.dart b/packages/eqapi_schema/lib/model/components/earthquake.g.dart index bb4cbc36b..1e6aa4592 100644 --- a/packages/eqapi_schema/lib/model/components/earthquake.g.dart +++ b/packages/eqapi_schema/lib/model/components/earthquake.g.dart @@ -49,6 +49,11 @@ _$_EarthquakeHypocenter _$$_EarthquakeHypocenterFromJson( ? null : EarthquakeHypocenterDetailed.fromJson( v as Map)), + coordinate: $checkedConvert( + 'coordinate', + (v) => v == null + ? null + : LatLng.fromJson(v as Map)), ); return val; }, @@ -61,6 +66,7 @@ Map _$$_EarthquakeHypocenterToJson( 'code': instance.code, 'depth': instance.depth, 'detailed': instance.detailed, + 'coordinate': instance.coordinate, }; _$_EarthquakeHypocenterDetailed _$$_EarthquakeHypocenterDetailedFromJson( diff --git a/packages/eqapi_schema/lib/model/components/eew_hypocenter.dart b/packages/eqapi_schema/lib/model/components/eew_hypocenter.dart index 440ede54a..b917e7c0c 100644 --- a/packages/eqapi_schema/lib/model/components/eew_hypocenter.dart +++ b/packages/eqapi_schema/lib/model/components/eew_hypocenter.dart @@ -1,3 +1,4 @@ +import 'package:eqapi_schema/model/lat_lng.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; part 'eew_hypocenter.freezed.dart'; @@ -6,8 +7,7 @@ part 'eew_hypocenter.g.dart'; @freezed class EewHypocenter with _$EewHypocenter { const factory EewHypocenter({ - required double? latitude, - required double? longitude, + required LatLng? coordinate, required String code, required String name, }) = _EewHypocenter; diff --git a/packages/eqapi_schema/lib/model/components/eew_hypocenter.freezed.dart b/packages/eqapi_schema/lib/model/components/eew_hypocenter.freezed.dart index 04617dbab..e37a9716a 100644 --- a/packages/eqapi_schema/lib/model/components/eew_hypocenter.freezed.dart +++ b/packages/eqapi_schema/lib/model/components/eew_hypocenter.freezed.dart @@ -20,8 +20,7 @@ EewHypocenter _$EewHypocenterFromJson(Map json) { /// @nodoc mixin _$EewHypocenter { - double? get latitude => throw _privateConstructorUsedError; - double? get longitude => throw _privateConstructorUsedError; + LatLng? get coordinate => throw _privateConstructorUsedError; String get code => throw _privateConstructorUsedError; String get name => throw _privateConstructorUsedError; @@ -37,7 +36,7 @@ abstract class $EewHypocenterCopyWith<$Res> { EewHypocenter value, $Res Function(EewHypocenter) then) = _$EewHypocenterCopyWithImpl<$Res, EewHypocenter>; @useResult - $Res call({double? latitude, double? longitude, String code, String name}); + $Res call({LatLng? coordinate, String code, String name}); } /// @nodoc @@ -53,20 +52,15 @@ class _$EewHypocenterCopyWithImpl<$Res, $Val extends EewHypocenter> @pragma('vm:prefer-inline') @override $Res call({ - Object? latitude = freezed, - Object? longitude = freezed, + Object? coordinate = freezed, Object? code = null, Object? name = null, }) { return _then(_value.copyWith( - latitude: freezed == latitude - ? _value.latitude - : latitude // ignore: cast_nullable_to_non_nullable - as double?, - longitude: freezed == longitude - ? _value.longitude - : longitude // ignore: cast_nullable_to_non_nullable - as double?, + coordinate: freezed == coordinate + ? _value.coordinate + : coordinate // ignore: cast_nullable_to_non_nullable + as LatLng?, code: null == code ? _value.code : code // ignore: cast_nullable_to_non_nullable @@ -87,7 +81,7 @@ abstract class _$$_EewHypocenterCopyWith<$Res> __$$_EewHypocenterCopyWithImpl<$Res>; @override @useResult - $Res call({double? latitude, double? longitude, String code, String name}); + $Res call({LatLng? coordinate, String code, String name}); } /// @nodoc @@ -101,20 +95,15 @@ class __$$_EewHypocenterCopyWithImpl<$Res> @pragma('vm:prefer-inline') @override $Res call({ - Object? latitude = freezed, - Object? longitude = freezed, + Object? coordinate = freezed, Object? code = null, Object? name = null, }) { return _then(_$_EewHypocenter( - latitude: freezed == latitude - ? _value.latitude - : latitude // ignore: cast_nullable_to_non_nullable - as double?, - longitude: freezed == longitude - ? _value.longitude - : longitude // ignore: cast_nullable_to_non_nullable - as double?, + coordinate: freezed == coordinate + ? _value.coordinate + : coordinate // ignore: cast_nullable_to_non_nullable + as LatLng?, code: null == code ? _value.code : code // ignore: cast_nullable_to_non_nullable @@ -131,18 +120,13 @@ class __$$_EewHypocenterCopyWithImpl<$Res> @JsonSerializable() class _$_EewHypocenter implements _EewHypocenter { const _$_EewHypocenter( - {required this.latitude, - required this.longitude, - required this.code, - required this.name}); + {required this.coordinate, required this.code, required this.name}); factory _$_EewHypocenter.fromJson(Map json) => _$$_EewHypocenterFromJson(json); @override - final double? latitude; - @override - final double? longitude; + final LatLng? coordinate; @override final String code; @override @@ -150,7 +134,7 @@ class _$_EewHypocenter implements _EewHypocenter { @override String toString() { - return 'EewHypocenter(latitude: $latitude, longitude: $longitude, code: $code, name: $name)'; + return 'EewHypocenter(coordinate: $coordinate, code: $code, name: $name)'; } @override @@ -158,17 +142,15 @@ class _$_EewHypocenter implements _EewHypocenter { return identical(this, other) || (other.runtimeType == runtimeType && other is _$_EewHypocenter && - (identical(other.latitude, latitude) || - other.latitude == latitude) && - (identical(other.longitude, longitude) || - other.longitude == longitude) && + (identical(other.coordinate, coordinate) || + other.coordinate == coordinate) && (identical(other.code, code) || other.code == code) && (identical(other.name, name) || other.name == name)); } @JsonKey(ignore: true) @override - int get hashCode => Object.hash(runtimeType, latitude, longitude, code, name); + int get hashCode => Object.hash(runtimeType, coordinate, code, name); @JsonKey(ignore: true) @override @@ -186,8 +168,7 @@ class _$_EewHypocenter implements _EewHypocenter { abstract class _EewHypocenter implements EewHypocenter { const factory _EewHypocenter( - {required final double? latitude, - required final double? longitude, + {required final LatLng? coordinate, required final String code, required final String name}) = _$_EewHypocenter; @@ -195,9 +176,7 @@ abstract class _EewHypocenter implements EewHypocenter { _$_EewHypocenter.fromJson; @override - double? get latitude; - @override - double? get longitude; + LatLng? get coordinate; @override String get code; @override diff --git a/packages/eqapi_schema/lib/model/components/eew_hypocenter.g.dart b/packages/eqapi_schema/lib/model/components/eew_hypocenter.g.dart index 605cd5e47..4321c46e0 100644 --- a/packages/eqapi_schema/lib/model/components/eew_hypocenter.g.dart +++ b/packages/eqapi_schema/lib/model/components/eew_hypocenter.g.dart @@ -12,9 +12,11 @@ _$_EewHypocenter _$$_EewHypocenterFromJson(Map json) => json, ($checkedConvert) { final val = _$_EewHypocenter( - latitude: $checkedConvert('latitude', (v) => (v as num?)?.toDouble()), - longitude: - $checkedConvert('longitude', (v) => (v as num?)?.toDouble()), + coordinate: $checkedConvert( + 'coordinate', + (v) => v == null + ? null + : LatLng.fromJson(v as Map)), code: $checkedConvert('code', (v) => v as String), name: $checkedConvert('name', (v) => v as String), ); @@ -24,8 +26,7 @@ _$_EewHypocenter _$$_EewHypocenterFromJson(Map json) => Map _$$_EewHypocenterToJson(_$_EewHypocenter instance) => { - 'latitude': instance.latitude, - 'longitude': instance.longitude, + 'coordinate': instance.coordinate, 'code': instance.code, 'name': instance.name, }; diff --git a/lib/common/feature/map/model/lat_lng.dart b/packages/eqapi_schema/lib/model/lat_lng.dart similarity index 100% rename from lib/common/feature/map/model/lat_lng.dart rename to packages/eqapi_schema/lib/model/lat_lng.dart diff --git a/pubspec.lock b/pubspec.lock index 252ddc864..d998f392a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -522,10 +522,11 @@ packages: geojson: dependency: "direct main" description: - name: geojson - sha256: "8aab8116d074e92ef2d1ade25ec5ae90ea8bf024a920ab46703c433ffe08878f" - url: "https://pub.dev" - source: hosted + path: "." + ref: "7f0e305450014e264f6d0f5bf5b1a62501afc6c2" + resolved-ref: "7f0e305450014e264f6d0f5bf5b1a62501afc6c2" + url: "git@github.com:FaFre/geojson.git" + source: git version: "1.0.0" geopoint: dependency: transitive diff --git a/pubspec.yaml b/pubspec.yaml index e17d6ef9a..2eda3cf48 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,7 +29,10 @@ dependencies: flutter_launcher_icons: ^0.13.0 flutter_tts: ^3.6.3 freezed_annotation: ^2.2.0 - geojson: ^1.0.0 + geojson: + git: + url: git@github.com:FaFre/geojson.git + ref: 7f0e305450014e264f6d0f5bf5b1a62501afc6c2 go_router: ^7.0.0 hooks_riverpod: ^2.3.6 intl: ^0.17.0