From 3de5696b0499c800989240d2180df0263dc30c0f Mon Sep 17 00:00:00 2001 From: ashilkn Date: Sun, 2 Apr 2023 18:17:18 +0530 Subject: [PATCH] Used freezed package in location and locationTag models --- lib/db/files_db.dart | 7 +- lib/models/file.dart | 7 +- lib/models/location.dart | 9 - lib/models/location/location.dart | 16 ++ lib/models/location/location.freezed.dart | 168 +++++++++++++++ lib/models/location/location.g.dart | 18 ++ lib/models/location_tag.dart | 13 -- lib/models/location_tag/location_tag.dart | 17 ++ .../location_tag/location_tag.freezed.dart | 201 ++++++++++++++++++ lib/models/location_tag/location_tag.g.dart | 22 ++ lib/services/location_service.dart | 8 +- lib/services/search_service.dart | 2 +- lib/states/location_screen_state.dart | 2 +- lib/ui/tools/editor/image_editor_page.dart | 7 +- lib/ui/viewer/location/location_screen.dart | 1 - lib/utils/file_uploader_util.dart | 5 +- pubspec.lock | 162 +++++++++++++- pubspec.yaml | 5 + 18 files changed, 631 insertions(+), 39 deletions(-) delete mode 100644 lib/models/location.dart create mode 100644 lib/models/location/location.dart create mode 100644 lib/models/location/location.freezed.dart create mode 100644 lib/models/location/location.g.dart delete mode 100644 lib/models/location_tag.dart create mode 100644 lib/models/location_tag/location_tag.dart create mode 100644 lib/models/location_tag/location_tag.freezed.dart create mode 100644 lib/models/location_tag/location_tag.g.dart diff --git a/lib/db/files_db.dart b/lib/db/files_db.dart index d5298f3ff..a05cb0e37 100644 --- a/lib/db/files_db.dart +++ b/lib/db/files_db.dart @@ -9,7 +9,7 @@ import 'package:photos/models/backup_status.dart'; import 'package:photos/models/file.dart'; import 'package:photos/models/file_load_result.dart'; import 'package:photos/models/file_type.dart'; -import 'package:photos/models/location.dart'; +import 'package:photos/models/location/location.dart'; import 'package:photos/models/magic_metadata.dart'; import 'package:photos/utils/file_uploader_util.dart'; import 'package:sqflite/sqflite.dart'; @@ -1489,7 +1489,10 @@ class FilesDB { file.title = row[columnTitle]; file.deviceFolder = row[columnDeviceFolder]; if (row[columnLatitude] != null && row[columnLongitude] != null) { - file.location = Location(row[columnLatitude], row[columnLongitude]); + file.location = Location( + latitude: row[columnLatitude], + longitude: row[columnLongitude], + ); } file.fileType = getFileType(row[columnFileType]); file.creationTime = row[columnCreationTime]; diff --git a/lib/models/file.dart b/lib/models/file.dart index 6035d1daa..8c0861ecc 100644 --- a/lib/models/file.dart +++ b/lib/models/file.dart @@ -8,7 +8,7 @@ import 'package:photos/core/configuration.dart'; import 'package:photos/core/constants.dart'; import 'package:photos/models/ente_file.dart'; import 'package:photos/models/file_type.dart'; -import 'package:photos/models/location.dart'; +import 'package:photos/models/location/location.dart'; import 'package:photos/models/magic_metadata.dart'; import 'package:photos/services/feature_flag_service.dart'; import 'package:photos/utils/date_time_util.dart'; @@ -72,7 +72,8 @@ class File extends EnteFile { file.localID = asset.id; file.title = asset.title; file.deviceFolder = pathName; - file.location = Location(asset.latitude, asset.longitude); + file.location = + Location(latitude: asset.latitude, longitude: asset.longitude); file.fileType = _fileTypeFromAsset(asset); file.creationTime = parseFileCreationTime(file.title, asset); file.modificationTime = asset.modifiedDateTime.microsecondsSinceEpoch; @@ -147,7 +148,7 @@ class File extends EnteFile { if (latitude == null || longitude == null) { location = null; } else { - location = Location(latitude, longitude); + location = Location(latitude: latitude, longitude: longitude); } fileType = getFileType(metadata["fileType"] ?? -1); fileSubType = metadata["subType"] ?? -1; diff --git a/lib/models/location.dart b/lib/models/location.dart deleted file mode 100644 index e81964322..000000000 --- a/lib/models/location.dart +++ /dev/null @@ -1,9 +0,0 @@ -class Location { - final double? latitude; - final double? longitude; - - Location(this.latitude, this.longitude); - - @override - String toString() => 'Location(latitude: $latitude, longitude: $longitude)'; -} diff --git a/lib/models/location/location.dart b/lib/models/location/location.dart new file mode 100644 index 000000000..1349aba44 --- /dev/null +++ b/lib/models/location/location.dart @@ -0,0 +1,16 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'location.freezed.dart'; + +part 'location.g.dart'; + +@freezed +class Location with _$Location { + const factory Location({ + required double? latitude, + required double? longitude, + }) = _Location; + + factory Location.fromJson(Map json) => + _$LocationFromJson(json); +} diff --git a/lib/models/location/location.freezed.dart b/lib/models/location/location.freezed.dart new file mode 100644 index 000000000..e3cc1a19d --- /dev/null +++ b/lib/models/location/location.freezed.dart @@ -0,0 +1,168 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'location.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + +Location _$LocationFromJson(Map json) { + return _Location.fromJson(json); +} + +/// @nodoc +mixin _$Location { + double? get latitude => throw _privateConstructorUsedError; + double? get longitude => throw _privateConstructorUsedError; + + Map toJson() => throw _privateConstructorUsedError; + @JsonKey(ignore: true) + $LocationCopyWith get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $LocationCopyWith<$Res> { + factory $LocationCopyWith(Location value, $Res Function(Location) then) = + _$LocationCopyWithImpl<$Res, Location>; + @useResult + $Res call({double? latitude, double? longitude}); +} + +/// @nodoc +class _$LocationCopyWithImpl<$Res, $Val extends Location> + implements $LocationCopyWith<$Res> { + _$LocationCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? latitude = freezed, + Object? longitude = freezed, + }) { + 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?, + ) as $Val); + } +} + +/// @nodoc +abstract class _$$_LocationCopyWith<$Res> implements $LocationCopyWith<$Res> { + factory _$$_LocationCopyWith( + _$_Location value, $Res Function(_$_Location) then) = + __$$_LocationCopyWithImpl<$Res>; + @override + @useResult + $Res call({double? latitude, double? longitude}); +} + +/// @nodoc +class __$$_LocationCopyWithImpl<$Res> + extends _$LocationCopyWithImpl<$Res, _$_Location> + implements _$$_LocationCopyWith<$Res> { + __$$_LocationCopyWithImpl( + _$_Location _value, $Res Function(_$_Location) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? latitude = freezed, + Object? longitude = freezed, + }) { + return _then(_$_Location( + 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?, + )); + } +} + +/// @nodoc +@JsonSerializable() +class _$_Location implements _Location { + const _$_Location({required this.latitude, required this.longitude}); + + factory _$_Location.fromJson(Map json) => + _$$_LocationFromJson(json); + + @override + final double? latitude; + @override + final double? longitude; + + @override + String toString() { + return 'Location(latitude: $latitude, longitude: $longitude)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$_Location && + (identical(other.latitude, latitude) || + other.latitude == latitude) && + (identical(other.longitude, longitude) || + other.longitude == longitude)); + } + + @JsonKey(ignore: true) + @override + int get hashCode => Object.hash(runtimeType, latitude, longitude); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$_LocationCopyWith<_$_Location> get copyWith => + __$$_LocationCopyWithImpl<_$_Location>(this, _$identity); + + @override + Map toJson() { + return _$$_LocationToJson( + this, + ); + } +} + +abstract class _Location implements Location { + const factory _Location( + {required final double? latitude, + required final double? longitude}) = _$_Location; + + factory _Location.fromJson(Map json) = _$_Location.fromJson; + + @override + double? get latitude; + @override + double? get longitude; + @override + @JsonKey(ignore: true) + _$$_LocationCopyWith<_$_Location> get copyWith => + throw _privateConstructorUsedError; +} diff --git a/lib/models/location/location.g.dart b/lib/models/location/location.g.dart new file mode 100644 index 000000000..fe91798f9 --- /dev/null +++ b/lib/models/location/location.g.dart @@ -0,0 +1,18 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'location.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +_$_Location _$$_LocationFromJson(Map json) => _$_Location( + latitude: (json['latitude'] as num?)?.toDouble(), + longitude: (json['longitude'] as num?)?.toDouble(), + ); + +Map _$$_LocationToJson(_$_Location instance) => + { + 'latitude': instance.latitude, + 'longitude': instance.longitude, + }; diff --git a/lib/models/location_tag.dart b/lib/models/location_tag.dart deleted file mode 100644 index 1c5c5339a..000000000 --- a/lib/models/location_tag.dart +++ /dev/null @@ -1,13 +0,0 @@ -import "package:photos/models/location.dart"; - -class LocationTag { - String name; - int radius; - Location centerPoint; - - LocationTag({ - required this.name, - required this.radius, - required this.centerPoint, - }); -} diff --git a/lib/models/location_tag/location_tag.dart b/lib/models/location_tag/location_tag.dart new file mode 100644 index 000000000..177af092a --- /dev/null +++ b/lib/models/location_tag/location_tag.dart @@ -0,0 +1,17 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; +import 'package:photos/models/location/location.dart'; + +part 'location_tag.freezed.dart'; +part 'location_tag.g.dart'; + +@freezed +class LocationTag with _$LocationTag { + const factory LocationTag({ + required String name, + required int radius, + required Location centerPoint, + }) = _LocationTag; + + factory LocationTag.fromJson(Map json) => + _$LocationTagFromJson(json); +} diff --git a/lib/models/location_tag/location_tag.freezed.dart b/lib/models/location_tag/location_tag.freezed.dart new file mode 100644 index 000000000..8cdb175fe --- /dev/null +++ b/lib/models/location_tag/location_tag.freezed.dart @@ -0,0 +1,201 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'location_tag.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#custom-getters-and-methods'); + +LocationTag _$LocationTagFromJson(Map json) { + return _LocationTag.fromJson(json); +} + +/// @nodoc +mixin _$LocationTag { + String get name => throw _privateConstructorUsedError; + int get radius => throw _privateConstructorUsedError; + Location get centerPoint => throw _privateConstructorUsedError; + + Map toJson() => throw _privateConstructorUsedError; + @JsonKey(ignore: true) + $LocationTagCopyWith get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $LocationTagCopyWith<$Res> { + factory $LocationTagCopyWith( + LocationTag value, $Res Function(LocationTag) then) = + _$LocationTagCopyWithImpl<$Res, LocationTag>; + @useResult + $Res call({String name, int radius, Location centerPoint}); + + $LocationCopyWith<$Res> get centerPoint; +} + +/// @nodoc +class _$LocationTagCopyWithImpl<$Res, $Val extends LocationTag> + implements $LocationTagCopyWith<$Res> { + _$LocationTagCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? name = null, + Object? radius = null, + Object? centerPoint = null, + }) { + return _then(_value.copyWith( + name: null == name + ? _value.name + : name // ignore: cast_nullable_to_non_nullable + as String, + radius: null == radius + ? _value.radius + : radius // ignore: cast_nullable_to_non_nullable + as int, + centerPoint: null == centerPoint + ? _value.centerPoint + : centerPoint // ignore: cast_nullable_to_non_nullable + as Location, + ) as $Val); + } + + @override + @pragma('vm:prefer-inline') + $LocationCopyWith<$Res> get centerPoint { + return $LocationCopyWith<$Res>(_value.centerPoint, (value) { + return _then(_value.copyWith(centerPoint: value) as $Val); + }); + } +} + +/// @nodoc +abstract class _$$_LocationTagCopyWith<$Res> + implements $LocationTagCopyWith<$Res> { + factory _$$_LocationTagCopyWith( + _$_LocationTag value, $Res Function(_$_LocationTag) then) = + __$$_LocationTagCopyWithImpl<$Res>; + @override + @useResult + $Res call({String name, int radius, Location centerPoint}); + + @override + $LocationCopyWith<$Res> get centerPoint; +} + +/// @nodoc +class __$$_LocationTagCopyWithImpl<$Res> + extends _$LocationTagCopyWithImpl<$Res, _$_LocationTag> + implements _$$_LocationTagCopyWith<$Res> { + __$$_LocationTagCopyWithImpl( + _$_LocationTag _value, $Res Function(_$_LocationTag) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? name = null, + Object? radius = null, + Object? centerPoint = null, + }) { + return _then(_$_LocationTag( + name: null == name + ? _value.name + : name // ignore: cast_nullable_to_non_nullable + as String, + radius: null == radius + ? _value.radius + : radius // ignore: cast_nullable_to_non_nullable + as int, + centerPoint: null == centerPoint + ? _value.centerPoint + : centerPoint // ignore: cast_nullable_to_non_nullable + as Location, + )); + } +} + +/// @nodoc +@JsonSerializable() +class _$_LocationTag implements _LocationTag { + const _$_LocationTag( + {required this.name, required this.radius, required this.centerPoint}); + + factory _$_LocationTag.fromJson(Map json) => + _$$_LocationTagFromJson(json); + + @override + final String name; + @override + final int radius; + @override + final Location centerPoint; + + @override + String toString() { + return 'LocationTag(name: $name, radius: $radius, centerPoint: $centerPoint)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$_LocationTag && + (identical(other.name, name) || other.name == name) && + (identical(other.radius, radius) || other.radius == radius) && + (identical(other.centerPoint, centerPoint) || + other.centerPoint == centerPoint)); + } + + @JsonKey(ignore: true) + @override + int get hashCode => Object.hash(runtimeType, name, radius, centerPoint); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$_LocationTagCopyWith<_$_LocationTag> get copyWith => + __$$_LocationTagCopyWithImpl<_$_LocationTag>(this, _$identity); + + @override + Map toJson() { + return _$$_LocationTagToJson( + this, + ); + } +} + +abstract class _LocationTag implements LocationTag { + const factory _LocationTag( + {required final String name, + required final int radius, + required final Location centerPoint}) = _$_LocationTag; + + factory _LocationTag.fromJson(Map json) = + _$_LocationTag.fromJson; + + @override + String get name; + @override + int get radius; + @override + Location get centerPoint; + @override + @JsonKey(ignore: true) + _$$_LocationTagCopyWith<_$_LocationTag> get copyWith => + throw _privateConstructorUsedError; +} diff --git a/lib/models/location_tag/location_tag.g.dart b/lib/models/location_tag/location_tag.g.dart new file mode 100644 index 000000000..8c8183e82 --- /dev/null +++ b/lib/models/location_tag/location_tag.g.dart @@ -0,0 +1,22 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'location_tag.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +_$_LocationTag _$$_LocationTagFromJson(Map json) => + _$_LocationTag( + name: json['name'] as String, + radius: json['radius'] as int, + centerPoint: + Location.fromJson(json['centerPoint'] as Map), + ); + +Map _$$_LocationTagToJson(_$_LocationTag instance) => + { + 'name': instance.name, + 'radius': instance.radius, + 'centerPoint': instance.centerPoint, + }; diff --git a/lib/services/location_service.dart b/lib/services/location_service.dart index ceb8f6bea..3630297e7 100644 --- a/lib/services/location_service.dart +++ b/lib/services/location_service.dart @@ -3,8 +3,8 @@ import "dart:convert"; import "dart:math"; import "package:photos/core/constants.dart"; -import "package:photos/models/location.dart"; -import "package:photos/models/location_tag.dart"; +import 'package:photos/models/location/location.dart'; +import 'package:photos/models/location_tag/location_tag.dart'; import "package:shared_preferences/shared_preferences.dart"; class LocationService { @@ -74,8 +74,8 @@ class LocationService { name: locationJson["name"], radius: locationJson["radius"], centerPoint: Location( - locationJson["center"][0], - locationJson["center"][1], + latitude: locationJson["center"][0], + longitude: locationJson["center"][1], ), ), ); diff --git a/lib/services/search_service.dart b/lib/services/search_service.dart index edf085831..7d1c8eb3a 100644 --- a/lib/services/search_service.dart +++ b/lib/services/search_service.dart @@ -11,7 +11,7 @@ import 'package:photos/models/collection.dart'; import 'package:photos/models/collection_items.dart'; import 'package:photos/models/file.dart'; import 'package:photos/models/file_type.dart'; -import 'package:photos/models/location.dart'; +import 'package:photos/models/location/location.dart'; import 'package:photos/models/search/album_search_result.dart'; import 'package:photos/models/search/generic_search_result.dart'; import 'package:photos/models/search/location_api_response.dart'; diff --git a/lib/states/location_screen_state.dart b/lib/states/location_screen_state.dart index 4c4771d2b..113189792 100644 --- a/lib/states/location_screen_state.dart +++ b/lib/states/location_screen_state.dart @@ -1,5 +1,5 @@ import "package:flutter/material.dart"; -import "package:photos/models/location_tag.dart"; +import 'package:photos/models/location_tag/location_tag.dart'; class InheritedLocationScreenState extends InheritedWidget { final LocationTag locationTag; diff --git a/lib/ui/tools/editor/image_editor_page.dart b/lib/ui/tools/editor/image_editor_page.dart index 8f2624a79..32e9c85b0 100644 --- a/lib/ui/tools/editor/image_editor_page.dart +++ b/lib/ui/tools/editor/image_editor_page.dart @@ -12,7 +12,7 @@ import 'package:photos/core/event_bus.dart'; import 'package:photos/db/files_db.dart'; import 'package:photos/events/local_photos_updated_event.dart'; import 'package:photos/models/file.dart' as ente; -import 'package:photos/models/location.dart'; +import 'package:photos/models/location/location.dart'; import 'package:photos/services/sync_service.dart'; import 'package:photos/ui/common/loading_widget.dart'; import 'package:photos/ui/components/action_sheet_widget.dart'; @@ -359,7 +359,10 @@ class _ImageEditorPageState extends State { final assetEntity = await widget.originalFile.getAsset; if (assetEntity != null) { final latLong = await assetEntity.latlngAsync(); - newFile.location = Location(latLong.latitude, latLong.longitude); + newFile.location = Location( + latitude: latLong.latitude, + longitude: latLong.longitude, + ); } } newFile.generatedID = await FilesDB.instance.insert(newFile); diff --git a/lib/ui/viewer/location/location_screen.dart b/lib/ui/viewer/location/location_screen.dart index 8acc87c8b..81c247c40 100644 --- a/lib/ui/viewer/location/location_screen.dart +++ b/lib/ui/viewer/location/location_screen.dart @@ -160,7 +160,6 @@ class GalleryHeaderWidget extends StatefulWidget { class _GalleryHeaderWidgetState extends State { @override Widget build(BuildContext context) { - debugPrint("Building GalleryHeaderWidget --------------"); final locationName = InheritedLocationScreenState.of(context).locationTag.name; return Padding( diff --git a/lib/utils/file_uploader_util.dart b/lib/utils/file_uploader_util.dart index 64b3f77d3..e7c0a87ea 100644 --- a/lib/utils/file_uploader_util.dart +++ b/lib/utils/file_uploader_util.dart @@ -13,7 +13,7 @@ import 'package:photos/core/constants.dart'; import 'package:photos/core/errors.dart'; import 'package:photos/models/file.dart' as ente; import 'package:photos/models/file_type.dart'; -import 'package:photos/models/location.dart'; +import 'package:photos/models/location/location.dart'; import 'package:photos/utils/crypto_util.dart'; import 'package:photos/utils/file_util.dart'; import 'package:video_thumbnail/video_thumbnail.dart'; @@ -155,7 +155,8 @@ Future _decorateEnteFileData(ente.File file, AssetEntity asset) async { if (file.location == null || (file.location!.latitude == 0 && file.location!.longitude == 0)) { final latLong = await asset.latlngAsync(); - file.location = Location(latLong.latitude, latLong.longitude); + file.location = + Location(latitude: latLong.latitude, longitude: latLong.longitude); } if (file.title == null || file.title!.isEmpty) { diff --git a/pubspec.lock b/pubspec.lock index 32aeb5e61..419c5bb32 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -97,6 +97,70 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "757153e5d9cd88253cb13f28c2fb55a537dc31fefd98137549895b5beb7c6169" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: db49b8609ef8c81cca2b310618c3017c00f03a92af44c04d310b907b2d692d95 + url: "https://pub.dev" + source: hosted + version: "2.2.0" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + url: "https://pub.dev" + source: hosted + version: "2.3.3" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + url: "https://pub.dev" + source: hosted + version: "7.2.7" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "31b7c748fd4b9adf8d25d72a4c4a59ef119f12876cf414f94f8af5131d5fa2b0" + url: "https://pub.dev" + source: hosted + version: "8.4.4" cached_network_image: dependency: "direct main" description: @@ -169,6 +233,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.1" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + url: "https://pub.dev" + source: hosted + version: "2.0.2" chewie: dependency: "direct main" description: @@ -184,6 +256,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + url: "https://pub.dev" + source: hosted + version: "4.4.0" collection: dependency: "direct main" description: @@ -272,6 +352,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.5" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "5be16bf1707658e4c03078d4a9b90208ded217fb02c163e207d334082412f2fb" + url: "https://pub.dev" + source: hosted + version: "2.2.5" dbus: dependency: transitive description: @@ -472,6 +560,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.2.12" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" fk_user_agent: dependency: "direct main" description: @@ -716,6 +812,22 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.3" + freezed: + dependency: "direct dev" + description: + name: freezed + sha256: e819441678f1679b719008ff2ff0ef045d66eed9f9ec81166ca0d9b02a187454 + url: "https://pub.dev" + source: hosted + version: "2.3.2" + freezed_annotation: + dependency: "direct main" + description: + name: freezed_annotation + sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 + url: "https://pub.dev" + source: hosted + version: "2.2.0" frontend_server_client: dependency: transitive description: @@ -740,6 +852,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.6" + graphs: + dependency: transitive + description: + name: graphs + sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + url: "https://pub.dev" + source: hosted + version: "2.2.0" hex: dependency: transitive description: @@ -877,13 +997,21 @@ packages: source: hosted version: "0.6.5" json_annotation: - dependency: transitive + dependency: "direct main" description: name: json_annotation sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 url: "https://pub.dev" source: hosted version: "4.8.0" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + sha256: dadc08bd61f72559f938dd08ec20dbfec6c709bba83515085ea943d2078d187a + url: "https://pub.dev" + source: hosted + version: "6.6.1" like_button: dependency: "direct main" description: @@ -1309,6 +1437,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.3" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: ec85d7d55339d85f44ec2b682a82fea340071e8978257e5a43e69f79e98ef50c + url: "https://pub.dev" + source: hosted + version: "1.2.2" quiver: dependency: "direct main" description: @@ -1498,6 +1634,22 @@ packages: description: flutter source: sdk version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: c2bea18c95cfa0276a366270afaa2850b09b4a76db95d546f3d003dcc7011298 + url: "https://pub.dev" + source: hosted + version: "1.2.7" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + url: "https://pub.dev" + source: hosted + version: "1.3.3" source_map_stack_trace: dependency: transitive description: @@ -1675,6 +1827,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.8.0" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" tuple: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 37414178d..930a4fa73 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -68,12 +68,14 @@ dependencies: flutter_sodium: ^0.2.0 flutter_typeahead: ^4.0.0 fluttertoast: ^8.0.6 + freezed_annotation: ^2.2.0 google_nav_bar: ^5.0.5 http: ^0.13.4 image: ^3.0.2 image_editor: ^1.0.0 in_app_purchase: ^3.0.7 intl: ^0.17.0 + json_annotation: ^4.8.0 like_button: ^2.0.2 loading_animations: ^2.1.0 local_auth: ^2.1.5 @@ -130,9 +132,12 @@ dependency_overrides: wakelock: ^0.6.1+2 dev_dependencies: + build_runner: ^2.3.3 flutter_lints: ^2.0.1 flutter_test: sdk: flutter + freezed: ^2.3.2 + json_serializable: ^6.6.1 test: flutter_icons: