Update desktop_photo_search to use url_launcher's Link (#780)

pull/783/head
Brett Morgan 4 years ago committed by GitHub
parent 873ff4306b
commit 5cb6c39bd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -128,7 +128,7 @@ class UnsplashHomePage extends StatelessWidget {
await photoSearchModel.download(photo: photo); await photoSearchModel.download(photo: photo);
final photoFile = XFile.fromData(fileData, final photoFile = XFile.fromData(fileData,
mimeType: 'image/jpeg'); mimeType: 'image/jpeg');
photoFile.saveTo(path); await photoFile.saveTo(path);
} }
}, },
) )

@ -43,7 +43,7 @@ class _$SearchSerializer implements StructuredSerializer<Search> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'query': case 'query':
result.query = serializers.deserialize(value, result.query = serializers.deserialize(value,
@ -72,12 +72,8 @@ class _$Search extends Search {
(new SearchBuilder()..update(updates)).build(); (new SearchBuilder()..update(updates)).build();
_$Search._({this.query, this.results}) : super._() { _$Search._({this.query, this.results}) : super._() {
if (query == null) { BuiltValueNullFieldError.checkNotNull(query, 'Search', 'query');
throw new BuiltValueNullFieldError('Search', 'query'); BuiltValueNullFieldError.checkNotNull(results, 'Search', 'results');
}
if (results == null) {
throw new BuiltValueNullFieldError('Search', 'results');
}
} }
@override @override
@ -122,9 +118,10 @@ class SearchBuilder implements Builder<Search, SearchBuilder> {
SearchBuilder(); SearchBuilder();
SearchBuilder get _$this { SearchBuilder get _$this {
if (_$v != null) { final $v = _$v;
_query = _$v.query; if ($v != null) {
_results = _$v.results?.toBuilder(); _query = $v.query;
_results = $v.results.toBuilder();
_$v = null; _$v = null;
} }
return this; return this;
@ -132,9 +129,7 @@ class SearchBuilder implements Builder<Search, SearchBuilder> {
@override @override
void replace(Search other) { void replace(Search other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Search; _$v = other as _$Search;
} }
@ -147,7 +142,11 @@ class SearchBuilder implements Builder<Search, SearchBuilder> {
_$Search build() { _$Search build() {
_$Search _$result; _$Search _$result;
try { try {
_$result = _$v ?? new _$Search._(query: query, results: results.build()); _$result = _$v ??
new _$Search._(
query: BuiltValueNullFieldError.checkNotNull(
query, 'Search', 'query'),
results: results.build());
} catch (_) { } catch (_) {
String _$failedField; String _$failedField;
try { try {

@ -40,7 +40,7 @@ class _$ApiErrorSerializer implements StructuredSerializer<ApiError> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'errors': case 'errors':
result.errors.replace(serializers.deserialize(value, result.errors.replace(serializers.deserialize(value,
@ -63,9 +63,7 @@ class _$ApiError extends ApiError {
(new ApiErrorBuilder()..update(updates)).build(); (new ApiErrorBuilder()..update(updates)).build();
_$ApiError._({this.errors}) : super._() { _$ApiError._({this.errors}) : super._() {
if (errors == null) { BuiltValueNullFieldError.checkNotNull(errors, 'ApiError', 'errors');
throw new BuiltValueNullFieldError('ApiError', 'errors');
}
} }
@override @override
@ -104,8 +102,9 @@ class ApiErrorBuilder implements Builder<ApiError, ApiErrorBuilder> {
ApiErrorBuilder(); ApiErrorBuilder();
ApiErrorBuilder get _$this { ApiErrorBuilder get _$this {
if (_$v != null) { final $v = _$v;
_errors = _$v.errors?.toBuilder(); if ($v != null) {
_errors = $v.errors.toBuilder();
_$v = null; _$v = null;
} }
return this; return this;
@ -113,9 +112,7 @@ class ApiErrorBuilder implements Builder<ApiError, ApiErrorBuilder> {
@override @override
void replace(ApiError other) { void replace(ApiError other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$ApiError; _$v = other as _$ApiError;
} }

@ -31,22 +31,26 @@ class _$CurrentUserCollectionsSerializer
'id', 'id',
serializers.serialize(object.id, specifiedType: const FullType(int)), serializers.serialize(object.id, specifiedType: const FullType(int)),
]; ];
if (object.title != null) { Object value;
value = object.title;
if (value != null) {
result result
..add('title') ..add('title')
..add(serializers.serialize(object.title, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.publishedAt != null) { value = object.publishedAt;
if (value != null) {
result result
..add('published_at') ..add('published_at')
..add(serializers.serialize(object.publishedAt, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.updatedAt != null) { value = object.updatedAt;
if (value != null) {
result result
..add('updated_at') ..add('updated_at')
..add(serializers.serialize(object.updatedAt, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
return result; return result;
@ -62,7 +66,7 @@ class _$CurrentUserCollectionsSerializer
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'id': case 'id':
result.id = serializers.deserialize(value, result.id = serializers.deserialize(value,
@ -104,9 +108,7 @@ class _$CurrentUserCollections extends CurrentUserCollections {
_$CurrentUserCollections._( _$CurrentUserCollections._(
{this.id, this.title, this.publishedAt, this.updatedAt}) {this.id, this.title, this.publishedAt, this.updatedAt})
: super._() { : super._() {
if (id == null) { BuiltValueNullFieldError.checkNotNull(id, 'CurrentUserCollections', 'id');
throw new BuiltValueNullFieldError('CurrentUserCollections', 'id');
}
} }
@override @override
@ -169,11 +171,12 @@ class CurrentUserCollectionsBuilder
CurrentUserCollectionsBuilder(); CurrentUserCollectionsBuilder();
CurrentUserCollectionsBuilder get _$this { CurrentUserCollectionsBuilder get _$this {
if (_$v != null) { final $v = _$v;
_id = _$v.id; if ($v != null) {
_title = _$v.title; _id = $v.id;
_publishedAt = _$v.publishedAt; _title = $v.title;
_updatedAt = _$v.updatedAt; _publishedAt = $v.publishedAt;
_updatedAt = $v.updatedAt;
_$v = null; _$v = null;
} }
return this; return this;
@ -181,9 +184,7 @@ class CurrentUserCollectionsBuilder
@override @override
void replace(CurrentUserCollections other) { void replace(CurrentUserCollections other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$CurrentUserCollections; _$v = other as _$CurrentUserCollections;
} }
@ -196,7 +197,8 @@ class CurrentUserCollectionsBuilder
_$CurrentUserCollections build() { _$CurrentUserCollections build() {
final _$result = _$v ?? final _$result = _$v ??
new _$CurrentUserCollections._( new _$CurrentUserCollections._(
id: id, id: BuiltValueNullFieldError.checkNotNull(
id, 'CurrentUserCollections', 'id'),
title: title, title: title,
publishedAt: publishedAt, publishedAt: publishedAt,
updatedAt: updatedAt); updatedAt: updatedAt);

@ -22,41 +22,47 @@ class _$ExifSerializer implements StructuredSerializer<Exif> {
Iterable<Object> serialize(Serializers serializers, Exif object, Iterable<Object> serialize(Serializers serializers, Exif object,
{FullType specifiedType = FullType.unspecified}) { {FullType specifiedType = FullType.unspecified}) {
final result = <Object>[]; final result = <Object>[];
if (object.make != null) { Object value;
value = object.make;
if (value != null) {
result result
..add('make') ..add('make')
..add(serializers.serialize(object.make, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.model != null) { value = object.model;
if (value != null) {
result result
..add('model') ..add('model')
..add(serializers.serialize(object.model, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.exposureTime != null) { value = object.exposureTime;
if (value != null) {
result result
..add('exposure_time') ..add('exposure_time')
..add(serializers.serialize(object.exposureTime, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.aperture != null) { value = object.aperture;
if (value != null) {
result result
..add('aperture') ..add('aperture')
..add(serializers.serialize(object.aperture, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.focalLength != null) { value = object.focalLength;
if (value != null) {
result result
..add('focal_length') ..add('focal_length')
..add(serializers.serialize(object.focalLength, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.iso != null) { value = object.iso;
if (value != null) {
result result
..add('iso') ..add('iso')
..add(serializers.serialize(object.iso, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
return result; return result;
} }
@ -70,7 +76,7 @@ class _$ExifSerializer implements StructuredSerializer<Exif> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'make': case 'make':
result.make = serializers.deserialize(value, result.make = serializers.deserialize(value,
@ -203,13 +209,14 @@ class ExifBuilder implements Builder<Exif, ExifBuilder> {
ExifBuilder(); ExifBuilder();
ExifBuilder get _$this { ExifBuilder get _$this {
if (_$v != null) { final $v = _$v;
_make = _$v.make; if ($v != null) {
_model = _$v.model; _make = $v.make;
_exposureTime = _$v.exposureTime; _model = $v.model;
_aperture = _$v.aperture; _exposureTime = $v.exposureTime;
_focalLength = _$v.focalLength; _aperture = $v.aperture;
_iso = _$v.iso; _focalLength = $v.focalLength;
_iso = $v.iso;
_$v = null; _$v = null;
} }
return this; return this;
@ -217,9 +224,7 @@ class ExifBuilder implements Builder<Exif, ExifBuilder> {
@override @override
void replace(Exif other) { void replace(Exif other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Exif; _$v = other as _$Exif;
} }

@ -22,28 +22,33 @@ class _$LinksSerializer implements StructuredSerializer<Links> {
Iterable<Object> serialize(Serializers serializers, Links object, Iterable<Object> serialize(Serializers serializers, Links object,
{FullType specifiedType = FullType.unspecified}) { {FullType specifiedType = FullType.unspecified}) {
final result = <Object>[]; final result = <Object>[];
if (object.self != null) { Object value;
value = object.self;
if (value != null) {
result result
..add('self') ..add('self')
..add(serializers.serialize(object.self, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.html != null) { value = object.html;
if (value != null) {
result result
..add('html') ..add('html')
..add(serializers.serialize(object.html, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.download != null) { value = object.download;
if (value != null) {
result result
..add('download') ..add('download')
..add(serializers.serialize(object.download, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.downloadLocation != null) { value = object.downloadLocation;
if (value != null) {
result result
..add('download_location') ..add('download_location')
..add(serializers.serialize(object.downloadLocation, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
return result; return result;
@ -58,7 +63,7 @@ class _$LinksSerializer implements StructuredSerializer<Links> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'self': case 'self':
result.self = serializers.deserialize(value, result.self = serializers.deserialize(value,
@ -157,11 +162,12 @@ class LinksBuilder implements Builder<Links, LinksBuilder> {
LinksBuilder(); LinksBuilder();
LinksBuilder get _$this { LinksBuilder get _$this {
if (_$v != null) { final $v = _$v;
_self = _$v.self; if ($v != null) {
_html = _$v.html; _self = $v.self;
_download = _$v.download; _html = $v.html;
_downloadLocation = _$v.downloadLocation; _download = $v.download;
_downloadLocation = $v.downloadLocation;
_$v = null; _$v = null;
} }
return this; return this;
@ -169,9 +175,7 @@ class LinksBuilder implements Builder<Links, LinksBuilder> {
@override @override
void replace(Links other) { void replace(Links other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Links; _$v = other as _$Links;
} }

@ -22,22 +22,26 @@ class _$LocationSerializer implements StructuredSerializer<Location> {
Iterable<Object> serialize(Serializers serializers, Location object, Iterable<Object> serialize(Serializers serializers, Location object,
{FullType specifiedType = FullType.unspecified}) { {FullType specifiedType = FullType.unspecified}) {
final result = <Object>[]; final result = <Object>[];
if (object.city != null) { Object value;
value = object.city;
if (value != null) {
result result
..add('city') ..add('city')
..add(serializers.serialize(object.city, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.country != null) { value = object.country;
if (value != null) {
result result
..add('country') ..add('country')
..add(serializers.serialize(object.country, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.position != null) { value = object.position;
if (value != null) {
result result
..add('position') ..add('position')
..add(serializers.serialize(object.position, ..add(serializers.serialize(value,
specifiedType: const FullType(Position))); specifiedType: const FullType(Position)));
} }
return result; return result;
@ -52,7 +56,7 @@ class _$LocationSerializer implements StructuredSerializer<Location> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'city': case 'city':
result.city = serializers.deserialize(value, result.city = serializers.deserialize(value,
@ -136,10 +140,11 @@ class LocationBuilder implements Builder<Location, LocationBuilder> {
LocationBuilder(); LocationBuilder();
LocationBuilder get _$this { LocationBuilder get _$this {
if (_$v != null) { final $v = _$v;
_city = _$v.city; if ($v != null) {
_country = _$v.country; _city = $v.city;
_position = _$v.position?.toBuilder(); _country = $v.country;
_position = $v.position?.toBuilder();
_$v = null; _$v = null;
} }
return this; return this;
@ -147,9 +152,7 @@ class LocationBuilder implements Builder<Location, LocationBuilder> {
@override @override
void replace(Location other) { void replace(Location other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Location; _$v = other as _$Location;
} }

@ -25,103 +25,116 @@ class _$PhotoSerializer implements StructuredSerializer<Photo> {
'id', 'id',
serializers.serialize(object.id, specifiedType: const FullType(String)), serializers.serialize(object.id, specifiedType: const FullType(String)),
]; ];
if (object.createdAt != null) { Object value;
value = object.createdAt;
if (value != null) {
result result
..add('created_at') ..add('created_at')
..add(serializers.serialize(object.createdAt, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.updatedAt != null) { value = object.updatedAt;
if (value != null) {
result result
..add('updated_at') ..add('updated_at')
..add(serializers.serialize(object.updatedAt, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.width != null) { value = object.width;
if (value != null) {
result result
..add('width') ..add('width')
..add(serializers.serialize(object.width, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.height != null) { value = object.height;
if (value != null) {
result result
..add('height') ..add('height')
..add(serializers.serialize(object.height, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.color != null) { value = object.color;
if (value != null) {
result result
..add('color') ..add('color')
..add(serializers.serialize(object.color, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.downloads != null) { value = object.downloads;
if (value != null) {
result result
..add('downloads') ..add('downloads')
..add(serializers.serialize(object.downloads, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.likes != null) { value = object.likes;
if (value != null) {
result result
..add('likes') ..add('likes')
..add(serializers.serialize(object.likes, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.likedByUser != null) { value = object.likedByUser;
if (value != null) {
result result
..add('liked_by_user') ..add('liked_by_user')
..add(serializers.serialize(object.likedByUser, ..add(
specifiedType: const FullType(bool))); serializers.serialize(value, specifiedType: const FullType(bool)));
} }
if (object.description != null) { value = object.description;
if (value != null) {
result result
..add('description') ..add('description')
..add(serializers.serialize(object.description, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.exif != null) { value = object.exif;
if (value != null) {
result result
..add('exif') ..add('exif')
..add(serializers.serialize(object.exif, ..add(
specifiedType: const FullType(Exif))); serializers.serialize(value, specifiedType: const FullType(Exif)));
} }
if (object.location != null) { value = object.location;
if (value != null) {
result result
..add('location') ..add('location')
..add(serializers.serialize(object.location, ..add(serializers.serialize(value,
specifiedType: const FullType(Location))); specifiedType: const FullType(Location)));
} }
if (object.tags != null) { value = object.tags;
if (value != null) {
result result
..add('tags') ..add('tags')
..add(serializers.serialize(object.tags, ..add(serializers.serialize(value,
specifiedType: specifiedType:
const FullType(BuiltList, const [const FullType(Tags)]))); const FullType(BuiltList, const [const FullType(Tags)])));
} }
if (object.currentUserCollections != null) { value = object.currentUserCollections;
if (value != null) {
result result
..add('current_user_collections') ..add('current_user_collections')
..add(serializers.serialize(object.currentUserCollections, ..add(serializers.serialize(value,
specifiedType: const FullType( specifiedType: const FullType(
BuiltList, const [const FullType(CurrentUserCollections)]))); BuiltList, const [const FullType(CurrentUserCollections)])));
} }
if (object.urls != null) { value = object.urls;
if (value != null) {
result result
..add('urls') ..add('urls')
..add(serializers.serialize(object.urls, ..add(
specifiedType: const FullType(Urls))); serializers.serialize(value, specifiedType: const FullType(Urls)));
} }
if (object.links != null) { value = object.links;
if (value != null) {
result result
..add('links') ..add('links')
..add(serializers.serialize(object.links, ..add(
specifiedType: const FullType(Links))); serializers.serialize(value, specifiedType: const FullType(Links)));
} }
if (object.user != null) { value = object.user;
if (value != null) {
result result
..add('user') ..add('user')
..add(serializers.serialize(object.user, ..add(
specifiedType: const FullType(User))); serializers.serialize(value, specifiedType: const FullType(User)));
} }
return result; return result;
} }
@ -135,7 +148,7 @@ class _$PhotoSerializer implements StructuredSerializer<Photo> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'id': case 'id':
result.id = serializers.deserialize(value, result.id = serializers.deserialize(value,
@ -274,9 +287,7 @@ class _$Photo extends Photo {
this.links, this.links,
this.user}) this.user})
: super._() { : super._() {
if (id == null) { BuiltValueNullFieldError.checkNotNull(id, 'Photo', 'id');
throw new BuiltValueNullFieldError('Photo', 'id');
}
} }
@override @override
@ -453,24 +464,25 @@ class PhotoBuilder implements Builder<Photo, PhotoBuilder> {
PhotoBuilder(); PhotoBuilder();
PhotoBuilder get _$this { PhotoBuilder get _$this {
if (_$v != null) { final $v = _$v;
_id = _$v.id; if ($v != null) {
_createdAt = _$v.createdAt; _id = $v.id;
_updatedAt = _$v.updatedAt; _createdAt = $v.createdAt;
_width = _$v.width; _updatedAt = $v.updatedAt;
_height = _$v.height; _width = $v.width;
_color = _$v.color; _height = $v.height;
_downloads = _$v.downloads; _color = $v.color;
_likes = _$v.likes; _downloads = $v.downloads;
_likedByUser = _$v.likedByUser; _likes = $v.likes;
_description = _$v.description; _likedByUser = $v.likedByUser;
_exif = _$v.exif?.toBuilder(); _description = $v.description;
_location = _$v.location?.toBuilder(); _exif = $v.exif?.toBuilder();
_tags = _$v.tags?.toBuilder(); _location = $v.location?.toBuilder();
_currentUserCollections = _$v.currentUserCollections?.toBuilder(); _tags = $v.tags?.toBuilder();
_urls = _$v.urls?.toBuilder(); _currentUserCollections = $v.currentUserCollections?.toBuilder();
_links = _$v.links?.toBuilder(); _urls = $v.urls?.toBuilder();
_user = _$v.user?.toBuilder(); _links = $v.links?.toBuilder();
_user = $v.user?.toBuilder();
_$v = null; _$v = null;
} }
return this; return this;
@ -478,9 +490,7 @@ class PhotoBuilder implements Builder<Photo, PhotoBuilder> {
@override @override
void replace(Photo other) { void replace(Photo other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Photo; _$v = other as _$Photo;
} }
@ -495,7 +505,7 @@ class PhotoBuilder implements Builder<Photo, PhotoBuilder> {
try { try {
_$result = _$v ?? _$result = _$v ??
new _$Photo._( new _$Photo._(
id: id, id: BuiltValueNullFieldError.checkNotNull(id, 'Photo', 'id'),
createdAt: createdAt, createdAt: createdAt,
updatedAt: updatedAt, updatedAt: updatedAt,
width: width, width: width,

@ -42,7 +42,7 @@ class _$PositionSerializer implements StructuredSerializer<Position> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'latitude': case 'latitude':
result.latitude = serializers.deserialize(value, result.latitude = serializers.deserialize(value,
@ -69,12 +69,8 @@ class _$Position extends Position {
(new PositionBuilder()..update(updates)).build(); (new PositionBuilder()..update(updates)).build();
_$Position._({this.latitude, this.longitude}) : super._() { _$Position._({this.latitude, this.longitude}) : super._() {
if (latitude == null) { BuiltValueNullFieldError.checkNotNull(latitude, 'Position', 'latitude');
throw new BuiltValueNullFieldError('Position', 'latitude'); BuiltValueNullFieldError.checkNotNull(longitude, 'Position', 'longitude');
}
if (longitude == null) {
throw new BuiltValueNullFieldError('Position', 'longitude');
}
} }
@override @override
@ -120,9 +116,10 @@ class PositionBuilder implements Builder<Position, PositionBuilder> {
PositionBuilder(); PositionBuilder();
PositionBuilder get _$this { PositionBuilder get _$this {
if (_$v != null) { final $v = _$v;
_latitude = _$v.latitude; if ($v != null) {
_longitude = _$v.longitude; _latitude = $v.latitude;
_longitude = $v.longitude;
_$v = null; _$v = null;
} }
return this; return this;
@ -130,9 +127,7 @@ class PositionBuilder implements Builder<Position, PositionBuilder> {
@override @override
void replace(Position other) { void replace(Position other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Position; _$v = other as _$Position;
} }
@ -143,8 +138,12 @@ class PositionBuilder implements Builder<Position, PositionBuilder> {
@override @override
_$Position build() { _$Position build() {
final _$result = final _$result = _$v ??
_$v ?? new _$Position._(latitude: latitude, longitude: longitude); new _$Position._(
latitude: BuiltValueNullFieldError.checkNotNull(
latitude, 'Position', 'latitude'),
longitude: BuiltValueNullFieldError.checkNotNull(
longitude, 'Position', 'longitude'));
replace(_$result); replace(_$result);
return _$result; return _$result;
} }

@ -33,17 +33,18 @@ class _$SearchPhotosResponseSerializer
specifiedType: specifiedType:
const FullType(BuiltList, const [const FullType(Photo)])), const FullType(BuiltList, const [const FullType(Photo)])),
]; ];
if (object.total != null) { Object value;
value = object.total;
if (value != null) {
result result
..add('total') ..add('total')
..add(serializers.serialize(object.total, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.totalPages != null) { value = object.totalPages;
if (value != null) {
result result
..add('total_pages') ..add('total_pages')
..add(serializers.serialize(object.totalPages, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
return result; return result;
} }
@ -58,7 +59,7 @@ class _$SearchPhotosResponseSerializer
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'total': case 'total':
result.total = serializers.deserialize(value, result.total = serializers.deserialize(value,
@ -95,9 +96,8 @@ class _$SearchPhotosResponse extends SearchPhotosResponse {
_$SearchPhotosResponse._({this.total, this.totalPages, this.results}) _$SearchPhotosResponse._({this.total, this.totalPages, this.results})
: super._() { : super._() {
if (results == null) { BuiltValueNullFieldError.checkNotNull(
throw new BuiltValueNullFieldError('SearchPhotosResponse', 'results'); results, 'SearchPhotosResponse', 'results');
}
} }
@override @override
@ -154,10 +154,11 @@ class SearchPhotosResponseBuilder
SearchPhotosResponseBuilder(); SearchPhotosResponseBuilder();
SearchPhotosResponseBuilder get _$this { SearchPhotosResponseBuilder get _$this {
if (_$v != null) { final $v = _$v;
_total = _$v.total; if ($v != null) {
_totalPages = _$v.totalPages; _total = $v.total;
_results = _$v.results?.toBuilder(); _totalPages = $v.totalPages;
_results = $v.results.toBuilder();
_$v = null; _$v = null;
} }
return this; return this;
@ -165,9 +166,7 @@ class SearchPhotosResponseBuilder
@override @override
void replace(SearchPhotosResponse other) { void replace(SearchPhotosResponse other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$SearchPhotosResponse; _$v = other as _$SearchPhotosResponse;
} }

@ -39,7 +39,7 @@ class _$TagsSerializer implements StructuredSerializer<Tags> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'title': case 'title':
result.title = serializers.deserialize(value, result.title = serializers.deserialize(value,
@ -60,9 +60,7 @@ class _$Tags extends Tags {
(new TagsBuilder()..update(updates)).build(); (new TagsBuilder()..update(updates)).build();
_$Tags._({this.title}) : super._() { _$Tags._({this.title}) : super._() {
if (title == null) { BuiltValueNullFieldError.checkNotNull(title, 'Tags', 'title');
throw new BuiltValueNullFieldError('Tags', 'title');
}
} }
@override @override
@ -100,8 +98,9 @@ class TagsBuilder implements Builder<Tags, TagsBuilder> {
TagsBuilder(); TagsBuilder();
TagsBuilder get _$this { TagsBuilder get _$this {
if (_$v != null) { final $v = _$v;
_title = _$v.title; if ($v != null) {
_title = $v.title;
_$v = null; _$v = null;
} }
return this; return this;
@ -109,9 +108,7 @@ class TagsBuilder implements Builder<Tags, TagsBuilder> {
@override @override
void replace(Tags other) { void replace(Tags other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Tags; _$v = other as _$Tags;
} }
@ -122,7 +119,10 @@ class TagsBuilder implements Builder<Tags, TagsBuilder> {
@override @override
_$Tags build() { _$Tags build() {
final _$result = _$v ?? new _$Tags._(title: title); final _$result = _$v ??
new _$Tags._(
title:
BuiltValueNullFieldError.checkNotNull(title, 'Tags', 'title'));
replace(_$result); replace(_$result);
return _$result; return _$result;
} }

@ -86,13 +86,13 @@ class Unsplash {
// https://help.unsplash.com/en/articles/2511258-guideline-triggering-a-download // https://help.unsplash.com/en/articles/2511258-guideline-triggering-a-download
_log.info('GET ${photo.urls.full}'); _log.info('GET ${photo.urls.full}');
final futureBytes = http.readBytes(photo.urls.full, headers: { final futureBytes = http.readBytes(Uri.parse(photo.urls.full), headers: {
'Accept-Version': 'v1', 'Accept-Version': 'v1',
'Authorization': 'Client-ID $_accessKey', 'Authorization': 'Client-ID $_accessKey',
}); });
_log.info('GET ${photo.links.downloadLocation}'); _log.info('GET ${photo.links.downloadLocation}');
unawaited(http.get(photo.links.downloadLocation, headers: { unawaited(http.get(Uri.parse(photo.links.downloadLocation), headers: {
'Accept-Version': 'v1', 'Accept-Version': 'v1',
'Authorization': 'Client-ID $_accessKey', 'Authorization': 'Client-ID $_accessKey',
})); }));

@ -22,34 +22,40 @@ class _$UrlsSerializer implements StructuredSerializer<Urls> {
Iterable<Object> serialize(Serializers serializers, Urls object, Iterable<Object> serialize(Serializers serializers, Urls object,
{FullType specifiedType = FullType.unspecified}) { {FullType specifiedType = FullType.unspecified}) {
final result = <Object>[]; final result = <Object>[];
if (object.raw != null) { Object value;
value = object.raw;
if (value != null) {
result result
..add('raw') ..add('raw')
..add(serializers.serialize(object.raw, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.full != null) { value = object.full;
if (value != null) {
result result
..add('full') ..add('full')
..add(serializers.serialize(object.full, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.regular != null) { value = object.regular;
if (value != null) {
result result
..add('regular') ..add('regular')
..add(serializers.serialize(object.regular, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.small != null) { value = object.small;
if (value != null) {
result result
..add('small') ..add('small')
..add(serializers.serialize(object.small, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.thumb != null) { value = object.thumb;
if (value != null) {
result result
..add('thumb') ..add('thumb')
..add(serializers.serialize(object.thumb, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
return result; return result;
@ -64,7 +70,7 @@ class _$UrlsSerializer implements StructuredSerializer<Urls> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'raw': case 'raw':
result.raw = serializers.deserialize(value, result.raw = serializers.deserialize(value,
@ -175,12 +181,13 @@ class UrlsBuilder implements Builder<Urls, UrlsBuilder> {
UrlsBuilder(); UrlsBuilder();
UrlsBuilder get _$this { UrlsBuilder get _$this {
if (_$v != null) { final $v = _$v;
_raw = _$v.raw; if ($v != null) {
_full = _$v.full; _raw = $v.raw;
_regular = _$v.regular; _full = $v.full;
_small = _$v.small; _regular = $v.regular;
_thumb = _$v.thumb; _small = $v.small;
_thumb = $v.thumb;
_$v = null; _$v = null;
} }
return this; return this;
@ -188,9 +195,7 @@ class UrlsBuilder implements Builder<Urls, UrlsBuilder> {
@override @override
void replace(Urls other) { void replace(Urls other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$Urls; _$v = other as _$Urls;
} }

@ -30,53 +30,59 @@ class _$UserSerializer implements StructuredSerializer<User> {
'name', 'name',
serializers.serialize(object.name, specifiedType: const FullType(String)), serializers.serialize(object.name, specifiedType: const FullType(String)),
]; ];
if (object.updatedAt != null) { Object value;
value = object.updatedAt;
if (value != null) {
result result
..add('updated_at') ..add('updated_at')
..add(serializers.serialize(object.updatedAt, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.portfolioUrl != null) { value = object.portfolioUrl;
if (value != null) {
result result
..add('portfolio_url') ..add('portfolio_url')
..add(serializers.serialize(object.portfolioUrl, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.bio != null) { value = object.bio;
if (value != null) {
result result
..add('bio') ..add('bio')
..add(serializers.serialize(object.bio, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.location != null) { value = object.location;
if (value != null) {
result result
..add('location') ..add('location')
..add(serializers.serialize(object.location, ..add(serializers.serialize(value,
specifiedType: const FullType(String))); specifiedType: const FullType(String)));
} }
if (object.totalLikes != null) { value = object.totalLikes;
if (value != null) {
result result
..add('total_likes') ..add('total_likes')
..add(serializers.serialize(object.totalLikes, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.totalPhotos != null) { value = object.totalPhotos;
if (value != null) {
result result
..add('total_photos') ..add('total_photos')
..add(serializers.serialize(object.totalPhotos, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.totalCollections != null) { value = object.totalCollections;
if (value != null) {
result result
..add('total_collections') ..add('total_collections')
..add(serializers.serialize(object.totalCollections, ..add(serializers.serialize(value, specifiedType: const FullType(int)));
specifiedType: const FullType(int)));
} }
if (object.links != null) { value = object.links;
if (value != null) {
result result
..add('links') ..add('links')
..add(serializers.serialize(object.links, ..add(
specifiedType: const FullType(Links))); serializers.serialize(value, specifiedType: const FullType(Links)));
} }
return result; return result;
} }
@ -90,7 +96,7 @@ class _$UserSerializer implements StructuredSerializer<User> {
while (iterator.moveNext()) { while (iterator.moveNext()) {
final key = iterator.current as String; final key = iterator.current as String;
iterator.moveNext(); iterator.moveNext();
final dynamic value = iterator.current; final Object value = iterator.current;
switch (key) { switch (key) {
case 'id': case 'id':
result.id = serializers.deserialize(value, result.id = serializers.deserialize(value,
@ -183,15 +189,9 @@ class _$User extends User {
this.totalCollections, this.totalCollections,
this.links}) this.links})
: super._() { : super._() {
if (id == null) { BuiltValueNullFieldError.checkNotNull(id, 'User', 'id');
throw new BuiltValueNullFieldError('User', 'id'); BuiltValueNullFieldError.checkNotNull(username, 'User', 'username');
} BuiltValueNullFieldError.checkNotNull(name, 'User', 'name');
if (username == null) {
throw new BuiltValueNullFieldError('User', 'username');
}
if (name == null) {
throw new BuiltValueNullFieldError('User', 'name');
}
} }
@override @override
@ -311,18 +311,19 @@ class UserBuilder implements Builder<User, UserBuilder> {
UserBuilder(); UserBuilder();
UserBuilder get _$this { UserBuilder get _$this {
if (_$v != null) { final $v = _$v;
_id = _$v.id; if ($v != null) {
_updatedAt = _$v.updatedAt; _id = $v.id;
_username = _$v.username; _updatedAt = $v.updatedAt;
_name = _$v.name; _username = $v.username;
_portfolioUrl = _$v.portfolioUrl; _name = $v.name;
_bio = _$v.bio; _portfolioUrl = $v.portfolioUrl;
_location = _$v.location; _bio = $v.bio;
_totalLikes = _$v.totalLikes; _location = $v.location;
_totalPhotos = _$v.totalPhotos; _totalLikes = $v.totalLikes;
_totalCollections = _$v.totalCollections; _totalPhotos = $v.totalPhotos;
_links = _$v.links?.toBuilder(); _totalCollections = $v.totalCollections;
_links = $v.links?.toBuilder();
_$v = null; _$v = null;
} }
return this; return this;
@ -330,9 +331,7 @@ class UserBuilder implements Builder<User, UserBuilder> {
@override @override
void replace(User other) { void replace(User other) {
if (other == null) { ArgumentError.checkNotNull(other, 'other');
throw new ArgumentError.notNull('other');
}
_$v = other as _$User; _$v = other as _$User;
} }
@ -347,10 +346,11 @@ class UserBuilder implements Builder<User, UserBuilder> {
try { try {
_$result = _$v ?? _$result = _$v ??
new _$User._( new _$User._(
id: id, id: BuiltValueNullFieldError.checkNotNull(id, 'User', 'id'),
updatedAt: updatedAt, updatedAt: updatedAt,
username: username, username: BuiltValueNullFieldError.checkNotNull(
name: name, username, 'User', 'username'),
name: BuiltValueNullFieldError.checkNotNull(name, 'User', 'name'),
portfolioUrl: portfolioUrl, portfolioUrl: portfolioUrl,
bio: bio, bio: bio,
location: location, location: location,

@ -3,15 +3,14 @@
// found in the LICENSE file. // found in the LICENSE file.
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:transparent_image/transparent_image.dart'; import 'package:transparent_image/transparent_image.dart';
import 'package:url_launcher/url_launcher.dart' as url_launcher; import 'package:url_launcher/link.dart';
import '../../unsplash_access_key.dart'; import '../../unsplash_access_key.dart';
import '../unsplash/photo.dart'; import '../unsplash/photo.dart';
final _unsplashHomepage = Uri.encodeFull( final _unsplashHomepage = Uri.parse(
'https://unsplash.com/?utm_source=$unsplashAppName&utm_medium=referral'); 'https://unsplash.com/?utm_source=$unsplashAppName&utm_medium=referral');
typedef PhotoDetailsPhotoSaveCallback = void Function(Photo); typedef PhotoDetailsPhotoSaveCallback = void Function(Photo);
@ -31,43 +30,26 @@ class PhotoDetails extends StatefulWidget {
class _PhotoDetailsState extends State<PhotoDetails> class _PhotoDetailsState extends State<PhotoDetails>
with TickerProviderStateMixin { with TickerProviderStateMixin {
Widget _buildPhotoAttribution(BuildContext context) { Widget _buildPhotoAttribution(BuildContext context) {
return Expanded( return Row(
child: RichText( children: [
overflow: TextOverflow.fade, Text('Photo by '),
text: TextSpan( Link(
style: Theme.of(context).textTheme.bodyText2, uri: Uri.parse(
children: [ 'https://unsplash.com/@${widget.photo.user.username}?utm_source=$unsplashAppName&utm_medium=referral'),
const TextSpan(text: 'Photo by '), builder: (context, followLink) => TextButton(
TextSpan( onPressed: followLink,
text: widget.photo.user.name, child: Text(widget.photo.user.name),
style: const TextStyle( ),
decoration: TextDecoration.underline,
),
recognizer: TapGestureRecognizer()
..onTap = () async {
final url = Uri.encodeFull(
'https://unsplash.com/@${widget.photo.user.username}?utm_source=$unsplashAppName&utm_medium=referral');
if (await url_launcher.canLaunch(url)) {
await url_launcher.launch(url);
}
},
),
const TextSpan(text: ' on '),
TextSpan(
text: 'Unsplash',
style: const TextStyle(
decoration: TextDecoration.underline,
),
recognizer: TapGestureRecognizer()
..onTap = () async {
if (await url_launcher.canLaunch(_unsplashHomepage)) {
await url_launcher.launch(_unsplashHomepage);
}
},
),
],
), ),
), Text(' on '),
Link(
uri: _unsplashHomepage,
builder: (context, followLink) => TextButton(
onPressed: followLink,
child: Text('Unsplash'),
),
),
],
); );
} }

@ -9,74 +9,32 @@ project 'Runner', {
'Release' => :release, 'Release' => :release,
} }
def parse_KV_file(file, separator='=') def flutter_root
file_abs_path = File.expand_path(file) generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
if !File.exists? file_abs_path unless File.exist?(generated_xcode_build_settings_path)
return []; raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
end end
pods_ary = []
skip_line_start_symbols = ["#", "/"]
File.foreach(file_abs_path) { |line|
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
plugin = line.split(pattern=separator)
if plugin.length == 2
podname = plugin[0].strip()
path = plugin[1].strip()
podpath = File.expand_path("#{path}", file_abs_path)
pods_ary.push({:name => podname, :path => podpath});
else
puts "Invalid plugin specification: #{line}"
end
}
return pods_ary
end
def pubspec_supports_macos(file) File.foreach(generated_xcode_build_settings_path) do |line|
file_abs_path = File.expand_path(file) matches = line.match(/FLUTTER_ROOT\=(.*)/)
if !File.exists? file_abs_path return matches[1].strip if matches
return false;
end end
File.foreach(file_abs_path) { |line| raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
return true if line =~ /^\s*macos:/
}
return false
end end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_macos_podfile_setup
target 'Runner' do target 'Runner' do
use_frameworks! use_frameworks!
use_modular_headers! use_modular_headers!
# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
# referring to absolute paths on developers' machines. end
ephemeral_dir = File.join('Flutter', 'ephemeral')
symlink_dir = File.join(ephemeral_dir, '.symlinks')
symlink_plugins_dir = File.join(symlink_dir, 'plugins')
system("rm -rf #{symlink_dir}")
system("mkdir -p #{symlink_plugins_dir}")
# Flutter Pods post_install do |installer|
generated_xcconfig = parse_KV_file(File.join(ephemeral_dir, 'Flutter-Generated.xcconfig')) installer.pods_project.targets.each do |target|
if generated_xcconfig.empty? flutter_additional_macos_build_settings(target)
puts "Flutter-Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
end end
generated_xcconfig.map { |p|
if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
symlink = File.join(symlink_dir, 'flutter')
File.symlink(File.dirname(p[:path]), symlink)
pod 'FlutterMacOS', :path => File.join(symlink, File.basename(p[:path]))
end
}
# Plugin Pods
plugin_pods = parse_KV_file('../.flutter-plugins')
plugin_pods.map { |p|
symlink = File.join(symlink_plugins_dir, p[:name])
File.symlink(p[:path], symlink)
if pubspec_supports_macos(File.join(symlink, 'pubspec.yaml'))
pod p[:name], :path => File.join(symlink, 'macos')
end
}
end end
# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
install! 'cocoapods', :disable_input_output_paths => true

@ -4,36 +4,31 @@ PODS:
- FlutterMacOS (1.0.0) - FlutterMacOS (1.0.0)
- menubar (0.0.2): - menubar (0.0.2):
- FlutterMacOS - FlutterMacOS
- url_launcher (0.0.1)
- url_launcher_macos (0.0.1): - url_launcher_macos (0.0.1):
- FlutterMacOS - FlutterMacOS
DEPENDENCIES: DEPENDENCIES:
- file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`) - file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`)
- FlutterMacOS (from `Flutter/ephemeral/.symlinks/flutter/darwin-x64`) - FlutterMacOS (from `Flutter/ephemeral`)
- menubar (from `Flutter/ephemeral/.symlinks/plugins/menubar/macos`) - menubar (from `Flutter/ephemeral/.symlinks/plugins/menubar/macos`)
- url_launcher (from `Flutter/ephemeral/.symlinks/plugins/url_launcher/macos`)
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
EXTERNAL SOURCES: EXTERNAL SOURCES:
file_selector_macos: file_selector_macos:
:path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos :path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos
FlutterMacOS: FlutterMacOS:
:path: Flutter/ephemeral/.symlinks/flutter/darwin-x64 :path: Flutter/ephemeral
menubar: menubar:
:path: Flutter/ephemeral/.symlinks/plugins/menubar/macos :path: Flutter/ephemeral/.symlinks/plugins/menubar/macos
url_launcher:
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher/macos
url_launcher_macos: url_launcher_macos:
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
SPEC CHECKSUMS: SPEC CHECKSUMS:
file_selector_macos: ff6dc948d4ddd34e8602a1f60b7d0b4cc6051a47 file_selector_macos: ff6dc948d4ddd34e8602a1f60b7d0b4cc6051a47
FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9 FlutterMacOS: 57701585bf7de1b3fc2bb61f6378d73bbdea8424
menubar: 4e3d461d62d775540277ce6639acafe2a111a231 menubar: 4e3d461d62d775540277ce6639acafe2a111a231
url_launcher: af78307ef9bafff91273b34f1c6c0c86a0004fd7
url_launcher_macos: 45af3d61de06997666568a7149c1be98b41c95d4 url_launcher_macos: 45af3d61de06997666568a7149c1be98b41c95d4
PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7 PODFILE CHECKSUM: 6eac6b3292e5142cfc23bdeb71848a40ec51c14c
COCOAPODS: 1.10.0 COCOAPODS: 1.10.0

@ -26,11 +26,7 @@
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; };
33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
CB0B59C99242536310F74F61 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D99F26E68F5EBE039D3C364 /* Pods_Runner.framework */; }; CB0B59C99242536310F74F61 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D99F26E68F5EBE039D3C364 /* Pods_Runner.framework */; };
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; };
D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
@ -50,8 +46,6 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 10; dstSubfolderSpec = 10;
files = ( files = (
D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */,
33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */,
); );
name = "Bundle Framework"; name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -71,7 +65,6 @@
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; }; 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; }; 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; }; 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
33D1A10322148B71006C7A3E /* FlutterMacOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FlutterMacOS.framework; path = Flutter/ephemeral/FlutterMacOS.framework; sourceTree = SOURCE_ROOT; };
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; }; 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
@ -79,7 +72,6 @@
4D99F26E68F5EBE039D3C364 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4D99F26E68F5EBE039D3C364 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; };
F4698A353FF15CC75800DADA /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; }; F4698A353FF15CC75800DADA /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@ -88,8 +80,6 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */,
33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */,
CB0B59C99242536310F74F61 /* Pods_Runner.framework in Frameworks */, CB0B59C99242536310F74F61 /* Pods_Runner.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
@ -145,8 +135,6 @@
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
D73912EF22F37F9E000D13A0 /* App.framework */,
33D1A10322148B71006C7A3E /* FlutterMacOS.framework */,
); );
path = Flutter; path = Flutter;
sourceTree = "<group>"; sourceTree = "<group>";
@ -280,7 +268,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename\n"; shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
}; };
33CC111E2044C6BF0003C045 /* ShellScript */ = { 33CC111E2044C6BF0003C045 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -308,9 +296,16 @@
files = ( files = (
); );
inputPaths = ( inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/file_selector_macos/file_selector_macos.framework",
"${BUILT_PRODUCTS_DIR}/menubar/menubar.framework",
"${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework",
); );
name = "[CP] Embed Pods Frameworks"; name = "[CP] Embed Pods Frameworks";
outputPaths = ( outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_selector_macos.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/menubar.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_macos.framework",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;

@ -7,21 +7,14 @@ packages:
name: _fe_analyzer_shared name: _fe_analyzer_shared
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "7.0.0" version: "14.0.0"
analysis_server_lib:
dependency: transitive
description:
name: analysis_server_lib
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.10"
analyzer: analyzer:
dependency: transitive dependency: transitive
description: description:
name: analyzer name: analyzer
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.39.17" version: "0.41.2"
ansicolor: ansicolor:
dependency: transitive dependency: transitive
description: description:
@ -42,91 +35,91 @@ packages:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.5.0-nullsafety.3" version: "2.5.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.3" version: "2.1.0"
build: build:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: build name: build
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0" version: "1.6.2"
build_config: build_config:
dependency: transitive dependency: transitive
description: description:
name: build_config name: build_config
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.2" version: "0.4.5"
build_daemon: build_daemon:
dependency: transitive dependency: transitive
description: description:
name: build_daemon name: build_daemon
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.5" version: "2.1.10"
build_resolvers: build_resolvers:
dependency: transitive dependency: transitive
description: description:
name: build_resolvers name: build_resolvers
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.11" version: "1.5.3"
build_runner: build_runner:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: build_runner name: build_runner
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.10.2" version: "1.11.1"
build_runner_core: build_runner_core:
dependency: transitive dependency: transitive
description: description:
name: build_runner_core name: build_runner_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.1" version: "6.1.7"
built_collection: built_collection:
dependency: "direct main" dependency: "direct main"
description: description:
name: built_collection name: built_collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.3.2" version: "5.0.0"
built_value: built_value:
dependency: "direct main" dependency: "direct main"
description: description:
name: built_value name: built_value
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "7.1.0" version: "8.0.3"
built_value_generator: built_value_generator:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: built_value_generator name: built_value_generator
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "7.1.0" version: "8.0.3"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.5" version: "1.1.0"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
name: charcode name: charcode
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety.3" version: "1.2.0"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -147,77 +140,70 @@ packages:
name: clock name: clock
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.3" version: "1.1.0"
code_builder: code_builder:
dependency: transitive dependency: transitive
description: description:
name: code_builder name: code_builder
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.5.0" version: "3.7.0"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.15.0-nullsafety.5" version: "1.15.0"
convert: convert:
dependency: transitive dependency: transitive
description: description:
name: convert name: convert
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "3.0.0"
coverage: coverage:
dependency: transitive dependency: transitive
description: description:
name: coverage name: coverage
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.14.2" version: "0.15.2"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
name: cross_file name: cross_file
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.0" version: "0.3.1+1"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
name: crypto name: crypto
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.5" version: "3.0.0"
csslib:
dependency: transitive
description:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.16.2"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.3" version: "1.0.2"
dart_style: dart_style:
dependency: transitive dependency: transitive
description: description:
name: dart_style name: dart_style
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.6" version: "1.3.12"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety.3" version: "1.2.0"
file: file:
dependency: transitive dependency: transitive
description: description:
@ -231,42 +217,49 @@ packages:
name: file_selector name: file_selector
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.7.0+2" version: "0.8.2"
file_selector_linux: file_selector_linux:
dependency: "direct main" dependency: "direct main"
description: description:
name: file_selector_linux name: file_selector_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1" version: "0.0.2"
file_selector_macos: file_selector_macos:
dependency: "direct main" dependency: "direct main"
description: description:
name: file_selector_macos name: file_selector_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1" version: "0.0.4"
file_selector_platform_interface: file_selector_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: file_selector_platform_interface name: file_selector_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.2" version: "2.0.2"
file_selector_web:
dependency: transitive
description:
name: file_selector_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.8.1"
file_selector_windows: file_selector_windows:
dependency: "direct main" dependency: "direct main"
description: description:
name: file_selector_windows name: file_selector_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1" version: "0.0.2"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
name: fixnum name: fixnum
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.10.11" version: "1.0.0"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -310,20 +303,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.8.6" version: "0.8.6"
html:
dependency: transitive
description:
name: html
url: "https://pub.dartlang.org"
source: hosted
version: "0.14.0+4"
http: http:
dependency: "direct main" dependency: "direct main"
description: description:
name: http name: http
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.2" version: "0.13.0"
http_multi_server: http_multi_server:
dependency: transitive dependency: transitive
description: description:
@ -337,7 +323,7 @@ packages:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.4" version: "4.0.0"
intl: intl:
dependency: transitive dependency: transitive
description: description:
@ -351,21 +337,21 @@ packages:
name: io name: io
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.3.4" version: "0.3.5"
js: js:
dependency: transitive dependency: transitive
description: description:
name: js name: js
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.6.3-nullsafety.3" version: "0.6.3"
json_annotation: json_annotation:
dependency: transitive dependency: transitive
description: description:
name: json_annotation name: json_annotation
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.1" version: "4.0.0"
logging: logging:
dependency: "direct main" dependency: "direct main"
description: description:
@ -379,13 +365,13 @@ packages:
name: matcher name: matcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.10-nullsafety.3" version: "0.12.10"
menubar: menubar:
dependency: "direct main" dependency: "direct main"
description: description:
path: "plugins/menubar" path: "plugins/menubar"
ref: HEAD ref: HEAD
resolved-ref: ff9c2aebbbf673f9726f5c8052f6a21099fa51fd resolved-ref: "7812516a5c1fc8ef379e244106953a2b534432b9"
url: "https://github.com/google/flutter-desktop-embedding.git" url: "https://github.com/google/flutter-desktop-embedding.git"
source: git source: git
version: "0.1.0" version: "0.1.0"
@ -395,28 +381,28 @@ packages:
name: meta name: meta
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0-nullsafety.6" version: "1.3.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
name: mime name: mime
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.9.7" version: "1.0.0"
msix: msix:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: msix name: msix
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.10" version: "0.1.19"
nested: nested:
dependency: transitive dependency: transitive
description: description:
name: nested name: nested
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.4" version: "1.0.0"
node_interop: node_interop:
dependency: transitive dependency: transitive
description: description:
@ -437,7 +423,7 @@ packages:
name: node_preamble name: node_preamble
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.4.12" version: "1.4.13"
package_config: package_config:
dependency: transitive dependency: transitive
description: description:
@ -451,84 +437,84 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0-nullsafety.3" version: "1.8.0"
pedantic: pedantic:
dependency: "direct main" dependency: "direct main"
description: description:
name: pedantic name: pedantic
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.10.0-nullsafety.3" version: "1.11.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.3" version: "2.0.0"
pool: pool:
dependency: transitive dependency: transitive
description: description:
name: pool name: pool
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.5.0-nullsafety.3" version: "1.5.0"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
name: provider name: provider
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.3.2+3" version: "5.0.0"
pub_semver: pub_semver:
dependency: transitive dependency: transitive
description: description:
name: pub_semver name: pub_semver
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.4.4" version: "2.0.0"
pubspec_parse: pubspec_parse:
dependency: transitive dependency: transitive
description: description:
name: pubspec_parse name: pubspec_parse
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.7" version: "0.1.8"
quiver: quiver:
dependency: transitive dependency: transitive
description: description:
name: quiver name: quiver
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.5" version: "3.0.0"
shelf: shelf:
dependency: transitive dependency: transitive
description: description:
name: shelf name: shelf
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.7.9" version: "1.1.0"
shelf_packages_handler: shelf_packages_handler:
dependency: transitive dependency: transitive
description: description:
name: shelf_packages_handler name: shelf_packages_handler
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "3.0.0"
shelf_static: shelf_static:
dependency: transitive dependency: transitive
description: description:
name: shelf_static name: shelf_static
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.9+1" version: "1.0.0"
shelf_web_socket: shelf_web_socket:
dependency: transitive dependency: transitive
description: description:
name: shelf_web_socket name: shelf_web_socket
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.3" version: "0.2.4+1"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
@ -540,84 +526,84 @@ packages:
name: source_gen name: source_gen
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.9.7+1" version: "0.9.10+3"
source_map_stack_trace: source_map_stack_trace:
dependency: transitive dependency: transitive
description: description:
name: source_map_stack_trace name: source_map_stack_trace
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.4" version: "2.1.0"
source_maps: source_maps:
dependency: transitive dependency: transitive
description: description:
name: source_maps name: source_maps
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.10.10-nullsafety.3" version: "0.10.10"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0-nullsafety.4" version: "1.8.0"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.10.0-nullsafety.6" version: "1.10.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.3" version: "2.1.0"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
name: stream_transform name: stream_transform
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "2.0.0"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.3" version: "1.1.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0-nullsafety.3" version: "1.2.0"
test: test:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: test name: test
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.16.0-nullsafety.13" version: "1.16.5"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.19-nullsafety.6" version: "0.2.19"
test_core: test_core:
dependency: transitive dependency: transitive
description: description:
name: test_core name: test_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.3.12-nullsafety.12" version: "0.3.15"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -631,105 +617,98 @@ packages:
name: transparent_image name: transparent_image
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.0" version: "2.0.0"
tuneup:
dependency: "direct dev"
description:
name: tuneup
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.7"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0-nullsafety.5" version: "1.3.0"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
name: url_launcher name: url_launcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.7.10" version: "6.0.2"
url_launcher_linux: url_launcher_linux:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_linux name: url_launcher_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1+4" version: "2.0.0"
url_launcher_macos: url_launcher_macos:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_macos name: url_launcher_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1+9" version: "2.0.0"
url_launcher_platform_interface: url_launcher_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_platform_interface name: url_launcher_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.9" version: "2.0.2"
url_launcher_web: url_launcher_web:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.5+1" version: "2.0.0"
url_launcher_windows: url_launcher_windows:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_windows name: url_launcher_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1+3" version: "2.0.0"
uuid: uuid:
dependency: "direct main" dependency: "direct main"
description: description:
name: uuid name: uuid
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.2.2" version: "3.0.1"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0-nullsafety.5" version: "2.1.0"
vm_service: vm_service:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.5.0" version: "6.1.0+1"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
name: watcher name: watcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.9.7+15" version: "1.0.0"
web_socket_channel: web_socket_channel:
dependency: transitive dependency: transitive
description: description:
name: web_socket_channel name: web_socket_channel
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.2.0"
webkit_inspection_protocol: webkit_inspection_protocol:
dependency: transitive dependency: transitive
description: description:
name: webkit_inspection_protocol name: webkit_inspection_protocol
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.7.4" version: "0.7.5"
yaml: yaml:
dependency: transitive dependency: transitive
description: description:
@ -738,5 +717,5 @@ packages:
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
sdks: sdks:
dart: ">=2.12.0-0.0 <3.0.0" dart: ">=2.12.0 <3.0.0"
flutter: ">=1.22.0" flutter: ">=2.0.0"

@ -4,20 +4,20 @@ version: 1.0.0+1
publish_to: none publish_to: none
environment: environment:
sdk: ^2.9.0-11.0.dev sdk: ^2.11.0
flutter: ^1.19.0-3.0.pre flutter: ^2.0.0
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
built_collection: ^4.3.0 built_collection: ^5.0.0
built_value: ^7.0.0 built_value: ^8.0.3
cupertino_icons: ^0.1.3 cupertino_icons: ^1.0.2
file_selector: ^0.7.0 file_selector: ^0.8.2
file_selector_linux: ^0.0.1 file_selector_linux: ^0.0.1
file_selector_macos: ^0.0.1 file_selector_macos: ^0.0.1
file_selector_windows: ^0.0.1 file_selector_windows: ^0.0.1
http: ^0.12.2 http: ^0.13.0
logging: ^0.11.3+2 logging: ^0.11.3+2
flutter_simple_treeview: ^2.0.1 flutter_simple_treeview: ^2.0.1
menubar: menubar:
@ -26,23 +26,22 @@ dependencies:
path: plugins/menubar path: plugins/menubar
meta: ^1.1.8 meta: ^1.1.8
pedantic: ^1.9.0 pedantic: ^1.9.0
provider: ^4.1.0 provider: ^5.0.0
transparent_image: ^1.0.0 transparent_image: ^2.0.0
uuid: ^2.0.4 uuid: ^3.0.1
url_launcher: ^5.4.0 url_launcher: ^6.0.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
async: ^2.4.0 async: ^2.4.0
build: ^1.2.2 build: ^1.2.2
build_runner: ^1.7.2 build_runner: ^1.10.4
built_value_generator: ^7.0.0 built_value_generator: ^8.0.3
grinder: ^0.8.3 grinder: ^0.8.3
msix: ^0.1.5 msix: ^0.1.5
source_gen: ^0.9.4 source_gen: ^0.9.4
test: ^1.9.4 test: ^1.9.4
tuneup: ^0.3.6
flutter: flutter:
uses-material-design: true uses-material-design: true

@ -43,7 +43,7 @@ Future<void> watch() async => _logProcessOutput(
Future<void> analyzeSource() async => _logProcessOutput( Future<void> analyzeSource() async => _logProcessOutput(
Process.start( Process.start(
'flutter', 'flutter',
['pub', 'run', 'tuneup'], ['analyze'],
), ),
); );

Loading…
Cancel
Save