replace most toasts with in-app snackbars

This commit is contained in:
pato05 2021-11-01 17:54:56 +01:00
parent c792daea19
commit b908c0c6cd
No known key found for this signature in database
GPG key ID: C7C6C9EDFCBB6681
8 changed files with 118 additions and 160 deletions

View file

@ -1175,3 +1175,17 @@ enum NavigatorRouteType {
/// Standard cupertino route look
cupertino,
}
extension ScaffoldMessengerSnack on ScaffoldMessengerState {
ScaffoldFeatureController<SnackBar, SnackBarClosedReason> snack(
String content, {
SnackBarBehavior behavior = SnackBarBehavior.floating,
SnackBarAction? action,
Duration? duration,
}) =>
showSnackBar(SnackBar(
content: Text(content),
behavior: behavior,
duration: duration ?? const Duration(seconds: 4),
action: action));
}

View file

@ -202,16 +202,15 @@ class _AlbumDetailsState extends State<AlbumDetails> {
//Add to library
if (!album!.library!) {
await deezerAPI.addFavoriteAlbum(album!.id);
ScaffoldMessenger.of(context).snack
ScaffoldMessenger.of(context)
.snack('Added to library'.i18n);
setState(() => album!.library = true);
return;
}
//Remove
await deezerAPI.removeAlbum(album!.id);
Fluttertoast.showToast(
msg: 'Album removed from library!'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context)
.snack('Album removed from library!'.i18n);
setState(() => album!.library = false);
},
),
@ -311,10 +310,8 @@ class _MakeAlbumOfflineState extends State<MakeAlbumOffline> {
return;
}
downloadManager.removeOfflineAlbum(widget.album!.id);
Fluttertoast.showToast(
msg: "Removed album from offline!".i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context)
.snack("Removed album from offline!".i18n);
setState(() {
_offline = false;
});
@ -444,10 +441,8 @@ class ArtistDetails extends StatelessWidget {
),
onPressed: () async {
await deezerAPI.addFavoriteArtist(artist.id);
Fluttertoast.showToast(
msg: 'Added to library'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context)
.snack('Added to library'.i18n);
},
),
if ((artist.radio ?? false))
@ -1000,19 +995,15 @@ class _PlaylistDetailsState extends State<PlaylistDetails> {
//Add to library
if (!playlist!.library!) {
await deezerAPI.addPlaylist(playlist!.id!);
Fluttertoast.showToast(
msg: 'Added to library'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context)
.snack('Added to library'.i18n);
setState(() => playlist!.library = true);
return;
}
//Remove
await deezerAPI.removePlaylist(playlist!.id!);
Fluttertoast.showToast(
msg: 'Playlist removed from library!'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context)
.snack('Playlist removed from library!'.i18n);
setState(() => playlist!.library = false);
},
),
@ -1164,10 +1155,8 @@ class _MakePlaylistOfflineState extends State<MakePlaylistOffline> {
return;
}
downloadManager.removeOfflinePlaylist(widget.playlist!.id);
Fluttertoast.showToast(
msg: "Playlist removed from offline!".i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context)
.snack("Playlist removed from offline!".i18n);
setState(() {
_offline = false;
});

View file

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:freezer/api/definitions.dart';
import 'package:freezer/settings.dart';
import 'package:freezer/ui/menu.dart';
import 'package:freezer/api/importer.dart';
@ -418,11 +419,8 @@ class _SpotifyImporterV2State extends State<SpotifyImporterV2> {
child: Text("Copy the Redirect URL".i18n),
onPressed: () async {
await Clipboard.setData(
new ClipboardData(text: "http://localhost:42069"));
Fluttertoast.showToast(
msg: "Copied".i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ClipboardData(text: "http://localhost:42069"));
ScaffoldMessenger.of(context).snack("Copied".i18n);
},
),
),
@ -438,7 +436,7 @@ class _SpotifyImporterV2State extends State<SpotifyImporterV2> {
onChanged: (v) => setState(() => _clientId = v),
),
),
Container(width: 16.0),
const SizedBox(width: 16.0),
Flexible(
child: TextField(
controller: TextEditingController(text: _clientSecret),
@ -520,10 +518,7 @@ class _SpotifyImporterV2MainState extends State<SpotifyImporterV2Main> {
_urlPlaylist = playlist;
});
} catch (e) {
Fluttertoast.showToast(
msg: "Invalid/Unsupported URL".i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context).snack("Invalid/Unsupported URL".i18n);
setState(() => _urlLoading = false);
return;
}
@ -559,10 +554,7 @@ class _SpotifyImporterV2MainState extends State<SpotifyImporterV2Main> {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => ImporterStatusScreen()));
} catch (e) {
Fluttertoast.showToast(
msg: e.toString(),
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context).snack(e.toString());
Navigator.of(context).pop();
return;
}

View file

@ -1093,9 +1093,8 @@ class _LibraryPlaylistsState extends State<LibraryPlaylists> {
LeadingIcon(Icons.playlist_add, color: Color(0xff009a85)),
onTap: () async {
if (settings.offlineMode) {
Fluttertoast.showToast(
msg: 'Cannot create playlists in offline mode'.i18n,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context)
.snack('Cannot create playlists in offline mode'.i18n);
return;
}
MenuSheet m = MenuSheet(context);

View file

@ -419,10 +419,8 @@ class _EmailLoginState extends State<EmailLogin> {
if (_email != null && _password != null)
await _login();
else
Fluttertoast.showToast(
msg: "Missing email or password!".i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context)
.snack("Missing email or password!".i18n);
},
)
],

View file

@ -180,10 +180,7 @@ class MenuSheet {
if (await downloadManager.checkOffline(playlist: p)) {
downloadManager.addOfflinePlaylist(p);
}
Fluttertoast.showToast(
msg: 'Added to library'.i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context).snack('Added to library'.i18n);
//Add to cache
if (cache.libraryTracks == null) cache.libraryTracks = [];
cache.libraryTracks!.add(t.id);
@ -218,11 +215,8 @@ class MenuSheet {
if (await downloadManager.checkOffline(playlist: p)) {
downloadManager.addOfflinePlaylist(p);
}
Fluttertoast.showToast(
msg: "Track added to".i18n + " ${p.title}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
ScaffoldMessenger.of(context)
.snack("Track added to".i18n + " ${p.title}");
});
});
_close();
@ -234,11 +228,8 @@ class MenuSheet {
leading: Icon(Icons.delete),
onTap: () async {
await deezerAPI.removeFromPlaylist(t.id, p!.id);
Fluttertoast.showToast(
msg: 'Track removed from'.i18n + ' ${p.title}',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
ScaffoldMessenger.of(context)
.snack('Track removed from'.i18n + ' ${p.title}');
_close();
},
);
@ -256,10 +247,8 @@ class MenuSheet {
//Remove from cache
if (cache.libraryTracks != null)
cache.libraryTracks!.removeWhere((i) => i == t.id);
Fluttertoast.showToast(
msg: 'Track removed from library'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context)
.snack('Track removed from library'.i18n);
if (onUpdate != null) onUpdate();
_close();
},
@ -321,10 +310,8 @@ class MenuSheet {
onTap: () async {
if (isOffline) {
await downloadManager.removeOfflineTracks([track]);
Fluttertoast.showToast(
msg: "Track removed from offline!".i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context)
.snack("Track removed from offline!".i18n);
} else {
await downloadManager.addOfflineTrack(track,
private: true, context: context);
@ -383,8 +370,7 @@ class MenuSheet {
leading: Icon(Icons.library_music),
onTap: () async {
await deezerAPI.addFavoriteAlbum(a.id);
Fluttertoast.showToast(
msg: 'Added to library'.i18n, gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context).snack('Added to library'.i18n);
_close();
},
);
@ -396,11 +382,7 @@ class MenuSheet {
onTap: () async {
await deezerAPI.removeAlbum(a.id);
await downloadManager.removeOfflineAlbum(a.id);
Fluttertoast.showToast(
msg: 'Album removed'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
ScaffoldMessenger.of(context).snack('Album removed'.i18n);
if (onRemove != null) onRemove();
_close();
},
@ -430,10 +412,8 @@ class MenuSheet {
leading: Icon(Icons.delete),
onTap: () async {
await deezerAPI.removeArtist(a.id);
Fluttertoast.showToast(
msg: 'Artist removed from library'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context)
.snack('Artist removed from library'.i18n);
if (onRemove != null) onRemove();
_close();
},
@ -444,10 +424,7 @@ class MenuSheet {
leading: Icon(Icons.favorite),
onTap: () async {
await deezerAPI.addFavoriteArtist(a.id);
Fluttertoast.showToast(
msg: 'Added to library'.i18n,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context).snack('Added to library'.i18n);
_close();
},
);
@ -499,9 +476,7 @@ class MenuSheet {
leading: Icon(Icons.favorite),
onTap: () async {
await deezerAPI.addPlaylist(p.id!);
Fluttertoast.showToast(
msg: 'Added playlist to library'.i18n,
gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context).snack('Added playlist to library'.i18n);
_close();
},
);
@ -577,10 +552,7 @@ class MenuSheet {
//===================
showDownloadStartedToast() {
Fluttertoast.showToast(
msg: 'Downloads added!'.i18n,
gravity: ToastGravity.BOTTOM,
toastLength: Toast.LENGTH_SHORT);
ScaffoldMessenger.of(context).snack('Downloads added!'.i18n);
}
//Create playlist
@ -620,15 +592,13 @@ class MenuSheet {
//Enable
if (!cache.wakelock) {
Wakelock.enable();
Fluttertoast.showToast(
msg: 'Wakelock enabled!'.i18n, gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context).snack('Wakelock enabled!'.i18n);
cache.wakelock = true;
return;
}
//Disable
Wakelock.disable();
Fluttertoast.showToast(
msg: 'Wakelock disabled!'.i18n, gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context).snack('Wakelock disabled!'.i18n);
cache.wakelock = false;
},
);
@ -892,8 +862,7 @@ class _CreatePlaylistDialogState extends State<CreatePlaylistDialog> {
await deezerAPI.updatePlaylist(widget.playlist!.id!,
_titleController!.value.text, _descController!.value.text,
status: _playlistType);
Fluttertoast.showToast(
msg: 'Playlist updated!'.i18n, gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context).snack('Playlist updated!'.i18n);
} else {
List<String> tracks = [];
if (widget.tracks != null) {
@ -903,8 +872,7 @@ class _CreatePlaylistDialogState extends State<CreatePlaylistDialog> {
status: _playlistType,
description: _description,
trackIds: tracks);
Fluttertoast.showToast(
msg: 'Playlist created!'.i18n, gravity: ToastGravity.BOTTOM);
ScaffoldMessenger.of(context).snack('Playlist created!'.i18n);
}
Navigator.of(context).pop();
},

View file

@ -1313,9 +1313,7 @@ class _GeneralSettingsState extends State<GeneralSettings> {
leading: Icon(Icons.lock),
onTap: () async {
Clipboard.setData(ClipboardData(text: settings.arl));
await Fluttertoast.showToast(
msg: 'Copied'.i18n,
);
await ScaffoldMessenger.of(context).snack('Copied'.i18n);
},
),
],

View file

@ -7,21 +7,21 @@ packages:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
source: hosted
version: "24.0.0"
version: "30.0.0"
analyzer:
dependency: "direct overridden"
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.7.0"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.0"
version: "2.3.0"
async:
dependency: "direct main"
description:
@ -35,7 +35,7 @@ packages:
name: audio_service
url: "https://pub.dartlang.org"
source: hosted
version: "0.18.0-beta.0"
version: "0.18.1"
audio_service_platform_interface:
dependency: transitive
description:
@ -49,14 +49,14 @@ packages:
name: audio_service_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0"
version: "0.1.1"
audio_session:
dependency: "direct main"
description:
name: audio_session
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.6"
version: "0.1.6+1"
boolean_selector:
dependency: transitive
description:
@ -70,7 +70,7 @@ packages:
name: build
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.1.1"
build_config:
dependency: transitive
description:
@ -84,7 +84,7 @@ packages:
name: build_daemon
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
version: "3.0.1"
build_resolvers:
dependency: transitive
description:
@ -98,28 +98,28 @@ packages:
name: build_runner
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
version: "2.1.4"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.dartlang.org"
source: hosted
version: "7.1.0"
version: "7.2.2"
built_collection:
dependency: transitive
description:
name: built_collection
url: "https://pub.dartlang.org"
source: hosted
version: "5.1.0"
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.dartlang.org"
source: hosted
version: "8.1.2"
version: "8.1.3"
cached_network_image:
dependency: "direct main"
description:
@ -168,7 +168,7 @@ packages:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.3"
version: "0.3.5"
clock:
dependency: transitive
description:
@ -252,21 +252,21 @@ packages:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.17.0"
version: "0.17.1"
dart_style:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
version: "2.2.0"
dio:
dependency: transitive
description:
name: dio
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.0"
version: "4.0.1"
disk_space:
dependency: "direct main"
description:
@ -305,7 +305,7 @@ packages:
name: fading_edge_scrollview
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.1"
fake_async:
dependency: transitive
description:
@ -380,7 +380,7 @@ packages:
name: flutter_local_notifications
url: "https://pub.dartlang.org"
source: hosted
version: "8.1.1+2"
version: "8.2.0"
flutter_local_notifications_platform_interface:
dependency: transitive
description:
@ -451,7 +451,7 @@ packages:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
google_fonts:
dependency: "direct main"
description:
@ -465,7 +465,7 @@ packages:
name: graphs
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.1.0"
html:
dependency: "direct main"
description:
@ -479,7 +479,7 @@ packages:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.3"
version: "0.13.4"
http_multi_server:
dependency: transitive
description:
@ -500,7 +500,7 @@ packages:
name: i18n_extension
url: "https://pub.dartlang.org"
source: hosted
version: "4.1.1"
version: "4.1.3"
infinite_listview:
dependency: transitive
description:
@ -542,16 +542,16 @@ packages:
name: json_serializable
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.0"
version: "5.0.2"
just_audio:
dependency: "direct main"
description:
path: just_audio
ref: dev
resolved-ref: "27a777fbb5e0fca2c9db6bdf1cdc9672b3fe9971"
resolved-ref: feb12085f1b055959d2cef70b7fb232454b77bf1
url: "https://github.com/ryanheise/just_audio.git"
source: git
version: "0.9.8"
version: "0.9.15"
just_audio_platform_interface:
dependency: transitive
description:
@ -565,14 +565,14 @@ packages:
name: just_audio_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.1"
version: "0.4.2"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.0.2"
marquee:
dependency: "direct main"
description:
@ -600,7 +600,7 @@ packages:
name: mime
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.0.1"
move_to_background:
dependency: "direct main"
description:
@ -649,7 +649,7 @@ packages:
name: package_config
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.0.2"
package_info:
dependency: "direct main"
description:
@ -663,7 +663,7 @@ packages:
name: palette_generator
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
version: "0.3.2"
path:
dependency: "direct main"
description:
@ -677,14 +677,14 @@ packages:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
version: "2.0.6"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
version: "2.1.0"
path_provider_macos:
dependency: transitive
description:
@ -719,21 +719,21 @@ packages:
name: permission_handler
url: "https://pub.dartlang.org"
source: hosted
version: "8.1.4+2"
version: "8.2.5"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.6.1"
version: "3.7.0"
petitparser:
dependency: transitive
description:
name: petitparser
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.0"
version: "4.4.0"
photo_view:
dependency: "direct main"
description:
@ -754,7 +754,7 @@ packages:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
pool:
dependency: transitive
description:
@ -768,35 +768,35 @@ packages:
name: process
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.3"
version: "4.2.4"
provider:
dependency: "direct main"
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.0"
version: "6.0.1"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "2.1.0"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.1.0"
quick_actions:
dependency: "direct main"
description:
name: quick_actions
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.0+6"
version: "0.6.0+7"
quick_actions_platform_interface:
dependency: transitive
description:
@ -817,7 +817,7 @@ packages:
name: rxdart
url: "https://pub.dartlang.org"
source: hosted
version: "0.27.1"
version: "0.27.2"
scrobblenaut:
dependency: "direct main"
description:
@ -859,14 +859,14 @@ packages:
name: source_gen
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.1.1"
source_helper:
dependency: transitive
description:
name: source_helper
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.1"
version: "1.3.0"
source_span:
dependency: transitive
description:
@ -901,7 +901,7 @@ packages:
name: sqflite_common
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.1+1"
stack_trace:
dependency: transitive
description:
@ -999,21 +999,21 @@ packages:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.9"
version: "6.0.12"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
url_launcher_platform_interface:
dependency: transitive
description:
@ -1041,7 +1041,7 @@ packages:
name: uuid
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.4"
version: "3.0.5"
vector_math:
dependency: transitive
description:
@ -1062,42 +1062,42 @@ packages:
name: wakelock
url: "https://pub.dartlang.org"
source: hosted
version: "0.5.3+3"
version: "0.5.6"
wakelock_macos:
dependency: transitive
description:
name: wakelock_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0+2"
version: "0.4.0"
wakelock_platform_interface:
dependency: transitive
description:
name: wakelock_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.1+2"
version: "0.3.0"
wakelock_web:
dependency: transitive
description:
name: wakelock_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0+2"
version: "0.4.0"
wakelock_windows:
dependency: transitive
description:
name: wakelock_windows
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0+1"
version: "0.2.0"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.0.1"
web_socket_channel:
dependency: transitive
description:
@ -1111,7 +1111,7 @@ packages:
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.8"
version: "2.2.10"
xdg_directories:
dependency: transitive
description:
@ -1125,7 +1125,7 @@ packages:
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "5.2.0"
version: "5.3.1"
yaml:
dependency: transitive
description:
@ -1134,5 +1134,5 @@ packages:
source: hosted
version: "3.1.0"
sdks:
dart: ">=2.13.0 <3.0.0"
flutter: ">=2.2.0"
dart: ">=2.14.0 <3.0.0"
flutter: ">=2.5.0"