diff --git a/lib/components/artist/artist_album_list.dart b/lib/components/artist/artist_album_list.dart index 5114170c..0d736471 100644 --- a/lib/components/artist/artist_album_list.dart +++ b/lib/components/artist/artist_album_list.dart @@ -11,8 +11,8 @@ class ArtistAlbumList extends HookConsumerWidget { final String artistId; ArtistAlbumList( this.artistId, { - Key? key, - }) : super(key: key); + super.key, + }); final logger = getLogger(ArtistAlbumList); diff --git a/lib/components/artist/artist_card.dart b/lib/components/artist/artist_card.dart index 3526e88f..ac3e9bec 100644 --- a/lib/components/artist/artist_card.dart +++ b/lib/components/artist/artist_card.dart @@ -14,7 +14,7 @@ import 'package:spotube/utils/type_conversion_utils.dart'; class ArtistCard extends HookConsumerWidget { final Artist artist; - const ArtistCard(this.artist, {Key? key}) : super(key: key); + const ArtistCard(this.artist, {super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/desktop_login/login_form.dart b/lib/components/desktop_login/login_form.dart index 5abb9524..a3deb54a 100644 --- a/lib/components/desktop_login/login_form.dart +++ b/lib/components/desktop_login/login_form.dart @@ -8,9 +8,9 @@ import 'package:spotube/provider/authentication_provider.dart'; class TokenLoginForm extends HookConsumerWidget { final void Function()? onDone; const TokenLoginForm({ - Key? key, + super.key, this.onDone, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/home/sections/new_releases.dart b/lib/components/home/sections/new_releases.dart index b38039d5..74e1c307 100644 --- a/lib/components/home/sections/new_releases.dart +++ b/lib/components/home/sections/new_releases.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart' hide Page; -import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:spotify/spotify.dart'; import 'package:spotube/components/shared/horizontal_playbutton_card_view/horizontal_playbutton_card_view.dart'; diff --git a/lib/components/library/playlist_generate/multi_select_field.dart b/lib/components/library/playlist_generate/multi_select_field.dart index ed5eb38f..e54fc2ba 100644 --- a/lib/components/library/playlist_generate/multi_select_field.dart +++ b/lib/components/library/playlist_generate/multi_select_field.dart @@ -25,7 +25,7 @@ class MultiSelectField extends HookWidget { final bool enabled; const MultiSelectField({ - Key? key, + super.key, required this.options, required this.selectedOptions, required this.getValueForOption, @@ -36,7 +36,7 @@ class MultiSelectField extends HookWidget { this.dialogTitle, this.helperText, this.enabled = true, - }) : super(key: key); + }); Widget defaultSelectedOptionBuilder(T option) { return Chip( @@ -134,14 +134,14 @@ class _MultiSelectDialog extends HookWidget { final String? helperText; const _MultiSelectDialog({ - Key? key, + super.key, required this.dialogTitle, required this.options, required this.getValueForOption, this.optionBuilder, this.initialSelection = const [], this.helperText, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/library/playlist_generate/recommendation_attribute_dials.dart b/lib/components/library/playlist_generate/recommendation_attribute_dials.dart index 87f7cb1b..d7f51ffb 100644 --- a/lib/components/library/playlist_generate/recommendation_attribute_dials.dart +++ b/lib/components/library/playlist_generate/recommendation_attribute_dials.dart @@ -20,12 +20,12 @@ class RecommendationAttributeDials extends HookWidget { final double base; const RecommendationAttributeDials({ - Key? key, + super.key, required this.values, required this.onChanged, required this.title, this.base = 1, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/library/playlist_generate/recommendation_attribute_fields.dart b/lib/components/library/playlist_generate/recommendation_attribute_fields.dart index de169147..75437360 100644 --- a/lib/components/library/playlist_generate/recommendation_attribute_fields.dart +++ b/lib/components/library/playlist_generate/recommendation_attribute_fields.dart @@ -12,12 +12,12 @@ class RecommendationAttributeFields extends HookWidget { final Map? presets; const RecommendationAttributeFields({ - Key? key, + super.key, required this.values, required this.onChanged, required this.title, this.presets, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/library/playlist_generate/seeds_multi_autocomplete.dart b/lib/components/library/playlist_generate/seeds_multi_autocomplete.dart index b1665d32..73c58deb 100644 --- a/lib/components/library/playlist_generate/seeds_multi_autocomplete.dart +++ b/lib/components/library/playlist_generate/seeds_multi_autocomplete.dart @@ -26,7 +26,7 @@ class SeedsMultiAutocomplete extends HookWidget { final SelectedItemDisplayType selectedItemDisplayType; const SeedsMultiAutocomplete({ - Key? key, + super.key, required this.seeds, required this.fetchSeeds, required this.autocompleteOptionBuilder, @@ -35,7 +35,7 @@ class SeedsMultiAutocomplete extends HookWidget { this.inputDecoration, this.enabled = true, this.selectedItemDisplayType = SelectedItemDisplayType.wrap, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/library/playlist_generate/simple_track_tile.dart b/lib/components/library/playlist_generate/simple_track_tile.dart index 86800d06..e592969e 100644 --- a/lib/components/library/playlist_generate/simple_track_tile.dart +++ b/lib/components/library/playlist_generate/simple_track_tile.dart @@ -10,10 +10,10 @@ class SimpleTrackTile extends HookWidget { final Track track; final VoidCallback? onDelete; const SimpleTrackTile({ - Key? key, + super.key, required this.track, this.onDelete, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/library/user_albums.dart b/lib/components/library/user_albums.dart index 200d1c59..f731d55c 100644 --- a/lib/components/library/user_albums.dart +++ b/lib/components/library/user_albums.dart @@ -20,7 +20,7 @@ import 'package:spotube/services/queries/queries.dart'; import 'package:spotube/utils/type_conversion_utils.dart'; class UserAlbums extends HookConsumerWidget { - const UserAlbums({Key? key}) : super(key: key); + const UserAlbums({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/library/user_artists.dart b/lib/components/library/user_artists.dart index 36b8528e..3b55e5d0 100644 --- a/lib/components/library/user_artists.dart +++ b/lib/components/library/user_artists.dart @@ -16,7 +16,7 @@ import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/services/queries/queries.dart'; class UserArtists extends HookConsumerWidget { - const UserArtists({Key? key}) : super(key: key); + const UserArtists({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/library/user_downloads.dart b/lib/components/library/user_downloads.dart index c8ceee66..3a1162e6 100644 --- a/lib/components/library/user_downloads.dart +++ b/lib/components/library/user_downloads.dart @@ -7,7 +7,7 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/download_manager_provider.dart'; class UserDownloads extends HookConsumerWidget { - const UserDownloads({Key? key}) : super(key: key); + const UserDownloads({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/library/user_downloads/download_item.dart b/lib/components/library/user_downloads/download_item.dart index 10dec410..1cb5e559 100644 --- a/lib/components/library/user_downloads/download_item.dart +++ b/lib/components/library/user_downloads/download_item.dart @@ -13,9 +13,9 @@ import 'package:spotube/utils/type_conversion_utils.dart'; class DownloadItem extends HookConsumerWidget { final Track track; const DownloadItem({ - Key? key, + super.key, required this.track, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/library/user_local_tracks.dart b/lib/components/library/user_local_tracks.dart index 095e6e97..0868f32b 100644 --- a/lib/components/library/user_local_tracks.dart +++ b/lib/components/library/user_local_tracks.dart @@ -129,7 +129,7 @@ final localTracksProvider = FutureProvider>((ref) async { }); class UserLocalTracks extends HookConsumerWidget { - const UserLocalTracks({Key? key}) : super(key: key); + const UserLocalTracks({super.key}); Future playLocalTracks( WidgetRef ref, diff --git a/lib/components/library/user_playlists.dart b/lib/components/library/user_playlists.dart index 32e91ed6..2956e3b4 100644 --- a/lib/components/library/user_playlists.dart +++ b/lib/components/library/user_playlists.dart @@ -20,7 +20,7 @@ import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/services/queries/queries.dart'; class UserPlaylists extends HookConsumerWidget { - const UserPlaylists({Key? key}) : super(key: key); + const UserPlaylists({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/lyrics/zoom_controls.dart b/lib/components/lyrics/zoom_controls.dart index f50ea71d..73beb4ae 100644 --- a/lib/components/lyrics/zoom_controls.dart +++ b/lib/components/lyrics/zoom_controls.dart @@ -17,7 +17,7 @@ class ZoomControls extends HookWidget { final String unit; const ZoomControls({ - Key? key, + super.key, required this.value, required this.onChanged, this.min, @@ -27,7 +27,7 @@ class ZoomControls extends HookWidget { this.decreaseIcon = const Icon(SpotubeIcons.zoomOut), this.direction = Axis.horizontal, this.unit = "%", - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/player/player.dart b/lib/components/player/player.dart index 458676e3..5d5a39af 100644 --- a/lib/components/player/player.dart +++ b/lib/components/player/player.dart @@ -32,10 +32,10 @@ class PlayerView extends HookConsumerWidget { final PanelController panelController; final ScrollController scrollController; const PlayerView({ - Key? key, + super.key, required this.panelController, required this.scrollController, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/player/player_actions.dart b/lib/components/player/player_actions.dart index 7a248aa5..79dca1b0 100644 --- a/lib/components/player/player_actions.dart +++ b/lib/components/player/player_actions.dart @@ -8,7 +8,6 @@ import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/components/player/sibling_tracks_sheet.dart'; import 'package:spotube/components/shared/adaptive/adaptive_pop_sheet_list.dart'; import 'package:spotube/components/shared/heart_button.dart'; -import 'package:spotube/extensions/constrains.dart'; import 'package:spotube/extensions/context.dart'; import 'package:spotube/extensions/duration.dart'; import 'package:spotube/models/local_track.dart'; @@ -29,8 +28,8 @@ class PlayerActions extends HookConsumerWidget { this.floatingQueue = true, this.showQueue = true, this.extraActions, - Key? key, - }) : super(key: key); + super.key, + }); final logger = getLogger(PlayerActions); @override diff --git a/lib/components/player/player_controls.dart b/lib/components/player/player_controls.dart index 1000af18..02cbfff5 100644 --- a/lib/components/player/player_controls.dart +++ b/lib/components/player/player_controls.dart @@ -21,8 +21,8 @@ class PlayerControls extends HookConsumerWidget { PlayerControls({ this.palette, this.compact = false, - Key? key, - }) : super(key: key); + super.key, + }); final logger = getLogger(PlayerControls); @@ -256,7 +256,7 @@ class PlayerControls extends HookConsumerWidget { onPressed: playlist.isFetching == true ? null : () async { - switch (await audioPlayer.loopMode) { + switch (audioPlayer.loopMode) { case PlaybackLoopMode.all: audioPlayer .setLoopMode(PlaybackLoopMode.one); diff --git a/lib/components/player/player_overlay.dart b/lib/components/player/player_overlay.dart index 2d63811e..1ad91a52 100644 --- a/lib/components/player/player_overlay.dart +++ b/lib/components/player/player_overlay.dart @@ -19,8 +19,8 @@ class PlayerOverlay extends HookConsumerWidget { const PlayerOverlay({ required this.albumArt, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/player/player_queue.dart b/lib/components/player/player_queue.dart index 2784fb5f..449b6c2e 100644 --- a/lib/components/player/player_queue.dart +++ b/lib/components/player/player_queue.dart @@ -22,8 +22,8 @@ class PlayerQueue extends HookConsumerWidget { final bool floating; const PlayerQueue({ this.floating = true, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/player/player_track_details.dart b/lib/components/player/player_track_details.dart index 66cb9ef5..fd97fd74 100644 --- a/lib/components/player/player_track_details.dart +++ b/lib/components/player/player_track_details.dart @@ -13,8 +13,7 @@ import 'package:spotube/utils/type_conversion_utils.dart'; class PlayerTrackDetails extends HookConsumerWidget { final String? albumArt; final Color? color; - const PlayerTrackDetails({Key? key, this.albumArt, this.color}) - : super(key: key); + const PlayerTrackDetails({super.key, this.albumArt, this.color}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/player/sibling_tracks_sheet.dart b/lib/components/player/sibling_tracks_sheet.dart index 58b1ca8c..c805cb42 100644 --- a/lib/components/player/sibling_tracks_sheet.dart +++ b/lib/components/player/sibling_tracks_sheet.dart @@ -45,9 +45,9 @@ final sourceInfoToIconMap = { class SiblingTracksSheet extends HookConsumerWidget { final bool floating; const SiblingTracksSheet({ - Key? key, + super.key, this.floating = true, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/player/volume_slider.dart b/lib/components/player/volume_slider.dart index 75445125..7596a347 100644 --- a/lib/components/player/volume_slider.dart +++ b/lib/components/player/volume_slider.dart @@ -8,9 +8,9 @@ import 'package:spotube/provider/volume_provider.dart'; class VolumeSlider extends HookConsumerWidget { final bool fullWidth; const VolumeSlider({ - Key? key, + super.key, this.fullWidth = false, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/playlist/playlist_card.dart b/lib/components/playlist/playlist_card.dart index f429a0ab..621a4f99 100644 --- a/lib/components/playlist/playlist_card.dart +++ b/lib/components/playlist/playlist_card.dart @@ -16,8 +16,8 @@ class PlaylistCard extends HookConsumerWidget { final PlaylistSimple playlist; const PlaylistCard( this.playlist, { - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { final playlistQueue = ref.watch(ProxyPlaylistNotifier.provider); diff --git a/lib/components/playlist/playlist_create_dialog.dart b/lib/components/playlist/playlist_create_dialog.dart index 2e11a209..a5aaec32 100644 --- a/lib/components/playlist/playlist_create_dialog.dart +++ b/lib/components/playlist/playlist_create_dialog.dart @@ -24,10 +24,10 @@ class PlaylistCreateDialog extends HookConsumerWidget { final List trackIds; final String? playlistId; PlaylistCreateDialog({ - Key? key, + super.key, this.trackIds = const [], this.playlistId, - }) : super(key: key); + }); final formKey = GlobalKey(); @@ -275,7 +275,7 @@ class PlaylistCreateDialog extends HookConsumerWidget { } class PlaylistCreateDialogButton extends HookConsumerWidget { - const PlaylistCreateDialogButton({Key? key}) : super(key: key); + const PlaylistCreateDialogButton({super.key}); showPlaylistDialog(BuildContext context, SpotifyApi spotify) { showDialog( diff --git a/lib/components/root/bottom_player.dart b/lib/components/root/bottom_player.dart index 617e760b..3f70490a 100644 --- a/lib/components/root/bottom_player.dart +++ b/lib/components/root/bottom_player.dart @@ -25,7 +25,7 @@ import 'package:spotube/utils/platform.dart'; import 'package:spotube/utils/type_conversion_utils.dart'; class BottomPlayer extends HookConsumerWidget { - BottomPlayer({Key? key}) : super(key: key); + BottomPlayer({super.key}); final logger = getLogger(BottomPlayer); @override diff --git a/lib/components/root/sidebar.dart b/lib/components/root/sidebar.dart index a55ef947..fdcb3eb2 100644 --- a/lib/components/root/sidebar.dart +++ b/lib/components/root/sidebar.dart @@ -31,8 +31,8 @@ class Sidebar extends HookConsumerWidget { required this.selectedIndex, required this.onSelectedIndexChanged, required this.child, - Key? key, - }) : super(key: key); + super.key, + }); static Widget brandLogo() { return Container( @@ -195,7 +195,7 @@ class Sidebar extends HookConsumerWidget { } class SidebarHeader extends HookWidget { - const SidebarHeader({Key? key}) : super(key: key); + const SidebarHeader({super.key}); @override Widget build(BuildContext context) { @@ -234,8 +234,8 @@ class SidebarHeader extends HookWidget { class SidebarFooter extends HookConsumerWidget { const SidebarFooter({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/root/spotube_navigation_bar.dart b/lib/components/root/spotube_navigation_bar.dart index 0853c60c..489399e5 100644 --- a/lib/components/root/spotube_navigation_bar.dart +++ b/lib/components/root/spotube_navigation_bar.dart @@ -23,8 +23,8 @@ class SpotubeNavigationBar extends HookConsumerWidget { const SpotubeNavigationBar({ required this.selectedIndex, required this.onSelectedIndexChanged, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/settings/color_scheme_picker_dialog.dart b/lib/components/settings/color_scheme_picker_dialog.dart index e0c3d618..8d098375 100644 --- a/lib/components/settings/color_scheme_picker_dialog.dart +++ b/lib/components/settings/color_scheme_picker_dialog.dart @@ -8,9 +8,9 @@ import 'package:system_theme/system_theme.dart'; class SpotubeColor extends Color { final String name; - const SpotubeColor(int color, {required this.name}) : super(color); + const SpotubeColor(super.color, {required this.name}); - const SpotubeColor.from(int value, {required this.name}) : super(value); + const SpotubeColor.from(super.value, {required this.name}); factory SpotubeColor.fromString(String string) { final slices = string.split(":"); @@ -44,7 +44,7 @@ final Set colorsMap = { }; class ColorSchemePickerDialog extends HookConsumerWidget { - const ColorSchemePickerDialog({Key? key}) : super(key: key); + const ColorSchemePickerDialog({super.key}); @override Widget build(BuildContext context, ref) { @@ -119,8 +119,8 @@ class ColorTile extends StatelessWidget { this.onPressed, this.tooltip = "", this.isCompact = false, - Key? key, - }) : super(key: key); + super.key, + }); factory ColorTile.compact({ required Color color, diff --git a/lib/components/shared/adaptive/adaptive_popup_menu_button.dart b/lib/components/shared/adaptive/adaptive_popup_menu_button.dart index 45f22825..02fced52 100644 --- a/lib/components/shared/adaptive/adaptive_popup_menu_button.dart +++ b/lib/components/shared/adaptive/adaptive_popup_menu_button.dart @@ -12,13 +12,13 @@ class Action extends StatelessWidget { final bool isExpanded; final Color? backgroundColor; const Action({ - Key? key, + super.key, required this.icon, required this.text, required this.onPressed, this.isExpanded = true, this.backgroundColor, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/animated_gradient.dart b/lib/components/shared/animated_gradient.dart index b6485f6b..aaba2ff9 100644 --- a/lib/components/shared/animated_gradient.dart +++ b/lib/components/shared/animated_gradient.dart @@ -3,7 +3,7 @@ import 'package:flutter_hooks/flutter_hooks.dart'; class AnimateGradient extends HookWidget { const AnimateGradient({ - Key? key, + super.key, required this.primaryColors, required this.secondaryColors, this.child, @@ -17,8 +17,7 @@ class AnimateGradient extends HookWidget { this.reverse = true, }) : assert(primaryColors.length >= 2), assert(primaryColors.length == secondaryColors.length), - _controller = controller, - super(key: key); + _controller = controller; /// [controller]: pass this to have a fine control over the [Animation] final AnimationController? _controller; diff --git a/lib/components/shared/compact_search.dart b/lib/components/shared/compact_search.dart index 70815291..d37cb673 100644 --- a/lib/components/shared/compact_search.dart +++ b/lib/components/shared/compact_search.dart @@ -11,12 +11,12 @@ class CompactSearch extends HookWidget { final Color? iconColor; const CompactSearch({ - Key? key, + super.key, this.onChanged, this.placeholder = "Search...", this.icon = SpotubeIcons.search, this.iconColor, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/dialogs/confirm_download_dialog.dart b/lib/components/shared/dialogs/confirm_download_dialog.dart index c371e803..486310a7 100644 --- a/lib/components/shared/dialogs/confirm_download_dialog.dart +++ b/lib/components/shared/dialogs/confirm_download_dialog.dart @@ -5,7 +5,7 @@ import 'package:spotube/extensions/constrains.dart'; import 'package:spotube/extensions/context.dart'; class ConfirmDownloadDialog extends StatelessWidget { - const ConfirmDownloadDialog({Key? key}) : super(key: key); + const ConfirmDownloadDialog({super.key}); @override Widget build(BuildContext context) { @@ -82,7 +82,7 @@ class ConfirmDownloadDialog extends StatelessWidget { class BulletPoint extends StatelessWidget { final String text; - const BulletPoint(this.text, {Key? key}) : super(key: key); + const BulletPoint(this.text, {super.key}); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/dialogs/piped_down_dialog.dart b/lib/components/shared/dialogs/piped_down_dialog.dart index 6220adeb..b1717a2a 100644 --- a/lib/components/shared/dialogs/piped_down_dialog.dart +++ b/lib/components/shared/dialogs/piped_down_dialog.dart @@ -5,7 +5,7 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/user_preferences/user_preferences_provider.dart'; class PipedDownDialog extends HookConsumerWidget { - const PipedDownDialog({Key? key}) : super(key: key); + const PipedDownDialog({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/dialogs/playlist_add_track_dialog.dart b/lib/components/shared/dialogs/playlist_add_track_dialog.dart index 51b77c76..60e43ca2 100644 --- a/lib/components/shared/dialogs/playlist_add_track_dialog.dart +++ b/lib/components/shared/dialogs/playlist_add_track_dialog.dart @@ -19,8 +19,8 @@ class PlaylistAddTrackDialog extends HookConsumerWidget { const PlaylistAddTrackDialog({ required this.tracks, required this.openFromPlaylist, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/dialogs/replace_downloaded_dialog.dart b/lib/components/shared/dialogs/replace_downloaded_dialog.dart index 77721041..00461d34 100644 --- a/lib/components/shared/dialogs/replace_downloaded_dialog.dart +++ b/lib/components/shared/dialogs/replace_downloaded_dialog.dart @@ -8,8 +8,7 @@ final replaceDownloadedFileState = StateProvider((ref) => null); class ReplaceDownloadedDialog extends ConsumerWidget { final Track track; - const ReplaceDownloadedDialog({required this.track, Key? key}) - : super(key: key); + const ReplaceDownloadedDialog({required this.track, super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/dialogs/track_details_dialog.dart b/lib/components/shared/dialogs/track_details_dialog.dart index 8634776f..4e65b8e5 100644 --- a/lib/components/shared/dialogs/track_details_dialog.dart +++ b/lib/components/shared/dialogs/track_details_dialog.dart @@ -13,9 +13,9 @@ import 'package:spotube/extensions/duration.dart'; class TrackDetailsDialog extends HookWidget { final Track track; const TrackDetailsDialog({ - Key? key, + super.key, required this.track, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/expandable_search/expandable_search.dart b/lib/components/shared/expandable_search/expandable_search.dart index 75ac6841..157e180f 100644 --- a/lib/components/shared/expandable_search/expandable_search.dart +++ b/lib/components/shared/expandable_search/expandable_search.dart @@ -10,12 +10,12 @@ class ExpandableSearchField extends StatelessWidget { final FocusNode searchFocus; const ExpandableSearchField({ - Key? key, + super.key, required this.isFiltering, required this.onChangeFiltering, required this.searchController, required this.searchFocus, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -60,12 +60,12 @@ class ExpandableSearchButton extends StatelessWidget { final ValueChanged? onPressed; const ExpandableSearchButton({ - Key? key, + super.key, required this.isFiltering, required this.searchFocus, this.icon = const Icon(SpotubeIcons.filter), this.onPressed, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/fallbacks/anonymous_fallback.dart b/lib/components/shared/fallbacks/anonymous_fallback.dart index aea7bf38..ace7ec64 100644 --- a/lib/components/shared/fallbacks/anonymous_fallback.dart +++ b/lib/components/shared/fallbacks/anonymous_fallback.dart @@ -8,9 +8,9 @@ import 'package:spotube/utils/service_utils.dart'; class AnonymousFallback extends ConsumerWidget { final Widget? child; const AnonymousFallback({ - Key? key, + super.key, this.child, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/fallbacks/not_found.dart b/lib/components/shared/fallbacks/not_found.dart index f45573ad..5a74f672 100644 --- a/lib/components/shared/fallbacks/not_found.dart +++ b/lib/components/shared/fallbacks/not_found.dart @@ -3,7 +3,7 @@ import 'package:spotube/collections/assets.gen.dart'; class NotFound extends StatelessWidget { final bool vertical; - const NotFound({Key? key, this.vertical = false}) : super(key: key); + const NotFound({super.key, this.vertical = false}); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/heart_button.dart b/lib/components/shared/heart_button.dart index 81ccffdb..1fabfb3a 100644 --- a/lib/components/shared/heart_button.dart +++ b/lib/components/shared/heart_button.dart @@ -23,8 +23,8 @@ class HeartButton extends HookConsumerWidget { this.color, this.tooltip, this.icon, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { @@ -134,9 +134,9 @@ UseTrackToggleLike useTrackToggleLike(Track track, WidgetRef ref) { class TrackHeartButton extends HookConsumerWidget { final Track track; const TrackHeartButton({ - Key? key, + super.key, required this.track, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { @@ -168,10 +168,10 @@ class PlaylistHeartButton extends HookConsumerWidget { const PlaylistHeartButton({ required this.playlist, - Key? key, + super.key, this.icon, this.onData, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { @@ -217,8 +217,8 @@ class AlbumHeartButton extends HookConsumerWidget { const AlbumHeartButton({ required this.album, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/hover_builder.dart b/lib/components/shared/hover_builder.dart index ec60848e..7793e744 100644 --- a/lib/components/shared/hover_builder.dart +++ b/lib/components/shared/hover_builder.dart @@ -7,8 +7,8 @@ class HoverBuilder extends HookWidget { const HoverBuilder({ required this.builder, this.permanentState, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/image/universal_image.dart b/lib/components/shared/image/universal_image.dart index 04c62478..d8902e63 100644 --- a/lib/components/shared/image/universal_image.dart +++ b/lib/components/shared/image/universal_image.dart @@ -20,8 +20,8 @@ class UniversalImage extends HookWidget { this.placeholder, this.fit, this.scale = 1, - Key? key, - }) : super(key: key); + super.key, + }); static ImageProvider imageProvider( String path, { diff --git a/lib/components/shared/links/anchor_button.dart b/lib/components/shared/links/anchor_button.dart index b1b1cfea..d78bbf96 100644 --- a/lib/components/shared/links/anchor_button.dart +++ b/lib/components/shared/links/anchor_button.dart @@ -11,13 +11,13 @@ class AnchorButton extends HookWidget { const AnchorButton( this.text, { - Key? key, + super.key, this.onTap, this.textAlign, this.overflow, this.maxLines, this.style = const TextStyle(), - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/links/hyper_link.dart b/lib/components/shared/links/hyper_link.dart index fd31298e..f84517b4 100644 --- a/lib/components/shared/links/hyper_link.dart +++ b/lib/components/shared/links/hyper_link.dart @@ -13,12 +13,12 @@ class Hyperlink extends StatelessWidget { const Hyperlink( this.text, this.url, { - Key? key, + super.key, this.textAlign, this.overflow, this.style = const TextStyle(), this.maxLines, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/links/link_text.dart b/lib/components/shared/links/link_text.dart index d7b00b72..db7b6358 100644 --- a/lib/components/shared/links/link_text.dart +++ b/lib/components/shared/links/link_text.dart @@ -15,14 +15,14 @@ class LinkText extends StatelessWidget { const LinkText( this.text, this.route, { - Key? key, + super.key, this.textAlign, this.extra, this.overflow, this.style = const TextStyle(), this.maxLines, this.push = false, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/page_window_title_bar.dart b/lib/components/shared/page_window_title_bar.dart index 9aa2d4a8..ff40bac7 100644 --- a/lib/components/shared/page_window_title_bar.dart +++ b/lib/components/shared/page_window_title_bar.dart @@ -27,7 +27,7 @@ class PageWindowTitleBar extends StatefulHookConsumerWidget final Widget? title; const PageWindowTitleBar({ - Key? key, + super.key, this.actions, this.title, this.toolbarOpacity = 1, @@ -42,7 +42,7 @@ class PageWindowTitleBar extends StatefulHookConsumerWidget this.titleTextStyle, this.titleWidth, this.toolbarTextStyle, - }) : super(key: key); + }); @override Size get preferredSize => const Size.fromHeight(kToolbarHeight); @@ -107,9 +107,9 @@ class _PageWindowTitleBarState extends ConsumerState { class WindowTitleBarButtons extends HookConsumerWidget { final Color? foregroundColor; const WindowTitleBarButtons({ - Key? key, + super.key, this.foregroundColor, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { @@ -277,14 +277,13 @@ class WindowButton extends StatelessWidget { final VoidCallback? onPressed; WindowButton( - {Key? key, + {super.key, WindowButtonColors? colors, this.builder, @required this.iconBuilder, this.padding, this.onPressed, - this.animate = false}) - : super(key: key) { + this.animate = false}) { this.colors = colors ?? _defaultButtonColors; } @@ -350,49 +349,40 @@ class WindowButton extends StatelessWidget { class MinimizeWindowButton extends WindowButton { MinimizeWindowButton( - {Key? key, - WindowButtonColors? colors, - VoidCallback? onPressed, + {super.key, + super.colors, + super.onPressed, bool? animate}) : super( - key: key, - colors: colors, animate: animate ?? false, iconBuilder: (buttonContext) => MinimizeIcon(color: buttonContext.iconColor), - onPressed: onPressed, ); } class MaximizeWindowButton extends WindowButton { MaximizeWindowButton( - {Key? key, - WindowButtonColors? colors, - VoidCallback? onPressed, + {super.key, + super.colors, + super.onPressed, bool? animate}) : super( - key: key, - colors: colors, animate: animate ?? false, iconBuilder: (buttonContext) => MaximizeIcon(color: buttonContext.iconColor), - onPressed: onPressed, ); } class RestoreWindowButton extends WindowButton { RestoreWindowButton( - {Key? key, - WindowButtonColors? colors, - VoidCallback? onPressed, + {super.key, + super.colors, + super.onPressed, bool? animate}) : super( - key: key, - colors: colors, animate: animate ?? false, iconBuilder: (buttonContext) => RestoreIcon(color: buttonContext.iconColor), - onPressed: onPressed, ); } @@ -404,17 +394,15 @@ final _defaultCloseButtonColors = WindowButtonColors( class CloseWindowButton extends WindowButton { CloseWindowButton( - {Key? key, + {super.key, WindowButtonColors? colors, - VoidCallback? onPressed, + super.onPressed, bool? animate}) : super( - key: key, colors: colors ?? _defaultCloseButtonColors, animate: animate ?? false, iconBuilder: (buttonContext) => CloseIcon(color: buttonContext.iconColor), - onPressed: onPressed, ); } @@ -423,7 +411,7 @@ class CloseWindowButton extends WindowButton { /// Close class CloseIcon extends StatelessWidget { final Color color; - const CloseIcon({Key? key, required this.color}) : super(key: key); + const CloseIcon({super.key, required this.color}); @override Widget build(BuildContext context) => Align( alignment: Alignment.topLeft, @@ -444,13 +432,13 @@ class CloseIcon extends StatelessWidget { /// Maximize class MaximizeIcon extends StatelessWidget { final Color color; - const MaximizeIcon({Key? key, required this.color}) : super(key: key); + const MaximizeIcon({super.key, required this.color}); @override Widget build(BuildContext context) => _AlignedPaint(_MaximizePainter(color)); } class _MaximizePainter extends _IconPainter { - _MaximizePainter(Color color) : super(color); + _MaximizePainter(super.color); @override void paint(Canvas canvas, Size size) { Paint p = getPaint(color); @@ -462,15 +450,15 @@ class _MaximizePainter extends _IconPainter { class RestoreIcon extends StatelessWidget { final Color color; const RestoreIcon({ - Key? key, + super.key, required this.color, - }) : super(key: key); + }); @override Widget build(BuildContext context) => _AlignedPaint(_RestorePainter(color)); } class _RestorePainter extends _IconPainter { - _RestorePainter(Color color) : super(color); + _RestorePainter(super.color); @override void paint(Canvas canvas, Size size) { Paint p = getPaint(color); @@ -487,13 +475,13 @@ class _RestorePainter extends _IconPainter { /// Minimize class MinimizeIcon extends StatelessWidget { final Color color; - const MinimizeIcon({Key? key, required this.color}) : super(key: key); + const MinimizeIcon({super.key, required this.color}); @override Widget build(BuildContext context) => _AlignedPaint(_MinimizePainter(color)); } class _MinimizePainter extends _IconPainter { - _MinimizePainter(Color color) : super(color); + _MinimizePainter(super.color); @override void paint(Canvas canvas, Size size) { Paint p = getPaint(color); @@ -512,7 +500,7 @@ abstract class _IconPainter extends CustomPainter { } class _AlignedPaint extends StatelessWidget { - const _AlignedPaint(this.painter, {Key? key}) : super(key: key); + const _AlignedPaint(this.painter); final CustomPainter painter; @override @@ -547,8 +535,7 @@ T? _ambiguate(T? value) => value; class MouseStateBuilder extends StatefulWidget { final MouseStateBuilderCB builder; final VoidCallback? onPressed; - const MouseStateBuilder({Key? key, required this.builder, this.onPressed}) - : super(key: key); + const MouseStateBuilder({super.key, required this.builder, this.onPressed}); @override _MouseStateBuilderState createState() => _MouseStateBuilderState(); } diff --git a/lib/components/shared/panels/helpers.dart b/lib/components/shared/panels/helpers.dart index 2e754bdf..7dad96d5 100644 --- a/lib/components/shared/panels/helpers.dart +++ b/lib/components/shared/panels/helpers.dart @@ -47,8 +47,7 @@ class ForceDraggableWidgetRenderBox extends RenderPointerListener { /// To make [ForceDraggableWidget] work in [Scrollable] widgets class PanelScrollPhysics extends ScrollPhysics { final PanelController controller; - const PanelScrollPhysics({required this.controller, ScrollPhysics? parent}) - : super(parent: parent); + const PanelScrollPhysics({required this.controller, super.parent}); @override PanelScrollPhysics applyTo(ScrollPhysics? ancestor) { return PanelScrollPhysics( diff --git a/lib/components/shared/panels/sliding_up_panel.dart b/lib/components/shared/panels/sliding_up_panel.dart index 137d5eb7..e99fe261 100644 --- a/lib/components/shared/panels/sliding_up_panel.dart +++ b/lib/components/shared/panels/sliding_up_panel.dart @@ -146,7 +146,7 @@ class SlidingUpPanel extends StatefulWidget { final BoxDecoration? panelDecoration; const SlidingUpPanel( - {Key? key, + {super.key, this.body, this.collapsed, this.minHeight = 100.0, @@ -176,8 +176,7 @@ class SlidingUpPanel extends StatefulWidget { this.panelBuilder}) : assert(panelBuilder != null), assert(0 <= backdropOpacity && backdropOpacity <= 1.0), - assert(snapPoint == null || 0 < snapPoint && snapPoint < 1.0), - super(key: key); + assert(snapPoint == null || 0 < snapPoint && snapPoint < 1.0); @override SlidingUpPanelState createState() => SlidingUpPanelState(); diff --git a/lib/components/shared/playbutton_card.dart b/lib/components/shared/playbutton_card.dart index a8a75d30..80a27eb0 100644 --- a/lib/components/shared/playbutton_card.dart +++ b/lib/components/shared/playbutton_card.dart @@ -43,8 +43,8 @@ class PlaybuttonCard extends HookWidget { this.onAddToQueuePressed, this.onTap, this.isOwner = false, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/shimmers/shimmer_lyrics.dart b/lib/components/shared/shimmers/shimmer_lyrics.dart index b225c008..03816202 100644 --- a/lib/components/shared/shimmers/shimmer_lyrics.dart +++ b/lib/components/shared/shimmers/shimmer_lyrics.dart @@ -5,7 +5,7 @@ import 'package:gap/gap.dart'; import 'package:skeletonizer/skeletonizer.dart'; class ShimmerLyrics extends HookWidget { - const ShimmerLyrics({Key? key}) : super(key: key); + const ShimmerLyrics({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/sort_tracks_dropdown.dart b/lib/components/shared/sort_tracks_dropdown.dart index ab35b2e3..be72d689 100644 --- a/lib/components/shared/sort_tracks_dropdown.dart +++ b/lib/components/shared/sort_tracks_dropdown.dart @@ -11,8 +11,8 @@ class SortTracksDropdown extends StatelessWidget { const SortTracksDropdown({ this.onChanged, this.value, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/themed_button_tab_bar.dart b/lib/components/shared/themed_button_tab_bar.dart index d5798189..017f04aa 100644 --- a/lib/components/shared/themed_button_tab_bar.dart +++ b/lib/components/shared/themed_button_tab_bar.dart @@ -5,7 +5,7 @@ import 'package:spotube/hooks/utils/use_brightness_value.dart'; class ThemedButtonsTabBar extends HookWidget implements PreferredSizeWidget { final List tabs; - const ThemedButtonsTabBar({Key? key, required this.tabs}) : super(key: key); + const ThemedButtonsTabBar({super.key, required this.tabs}); @override Widget build(BuildContext context) { diff --git a/lib/components/shared/track_tile/track_options.dart b/lib/components/shared/track_tile/track_options.dart index a094259d..afa7a0b6 100644 --- a/lib/components/shared/track_tile/track_options.dart +++ b/lib/components/shared/track_tile/track_options.dart @@ -53,13 +53,13 @@ class TrackOptions extends HookConsumerWidget { final ObjectRef?>? showMenuCbRef; final Widget? icon; const TrackOptions({ - Key? key, + super.key, required this.track, this.showMenuCbRef, this.userPlaylist = false, this.playlistId, this.icon, - }) : super(key: key); + }); void actionShare(BuildContext context, Track track) { final data = "https://open.spotify.com/track/${track.id}"; diff --git a/lib/components/shared/track_tile/track_tile.dart b/lib/components/shared/track_tile/track_tile.dart index d268c783..ecadc1c6 100644 --- a/lib/components/shared/track_tile/track_tile.dart +++ b/lib/components/shared/track_tile/track_tile.dart @@ -32,7 +32,7 @@ class TrackTile extends HookConsumerWidget { final List? leadingActions; const TrackTile({ - Key? key, + super.key, this.index, required this.track, this.selected = false, @@ -42,7 +42,7 @@ class TrackTile extends HookConsumerWidget { this.userPlaylist = false, this.playlistId, this.leadingActions, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/tracks_view/sections/body/track_view_body.dart b/lib/components/shared/tracks_view/sections/body/track_view_body.dart index 33c8fa82..661e5af4 100644 --- a/lib/components/shared/tracks_view/sections/body/track_view_body.dart +++ b/lib/components/shared/tracks_view/sections/body/track_view_body.dart @@ -19,7 +19,7 @@ import 'package:spotube/utils/service_utils.dart'; import 'package:very_good_infinite_list/very_good_infinite_list.dart'; class TrackViewBodySection extends HookConsumerWidget { - const TrackViewBodySection({Key? key}) : super(key: key); + const TrackViewBodySection({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/tracks_view/sections/body/track_view_body_headers.dart b/lib/components/shared/tracks_view/sections/body/track_view_body_headers.dart index 7e4522a0..3a1538a3 100644 --- a/lib/components/shared/tracks_view/sections/body/track_view_body_headers.dart +++ b/lib/components/shared/tracks_view/sections/body/track_view_body_headers.dart @@ -13,10 +13,10 @@ class TrackViewBodyHeaders extends HookConsumerWidget { final FocusNode searchFocus; const TrackViewBodyHeaders({ - Key? key, + super.key, required this.isFiltering, required this.searchFocus, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/tracks_view/sections/body/track_view_options.dart b/lib/components/shared/tracks_view/sections/body/track_view_options.dart index 583c9107..5560ef3f 100644 --- a/lib/components/shared/tracks_view/sections/body/track_view_options.dart +++ b/lib/components/shared/tracks_view/sections/body/track_view_options.dart @@ -13,7 +13,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart import 'package:spotube/provider/user_preferences/user_preferences_state.dart'; class TrackViewBodyOptions extends HookConsumerWidget { - const TrackViewBodyOptions({Key? key}) : super(key: key); + const TrackViewBodyOptions({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/tracks_view/sections/header/flexible_header.dart b/lib/components/shared/tracks_view/sections/header/flexible_header.dart index 19241dc6..4a704302 100644 --- a/lib/components/shared/tracks_view/sections/header/flexible_header.dart +++ b/lib/components/shared/tracks_view/sections/header/flexible_header.dart @@ -14,7 +14,7 @@ import 'package:spotube/extensions/constrains.dart'; import 'package:spotube/hooks/utils/use_palette_color.dart'; class TrackViewFlexHeader extends HookConsumerWidget { - const TrackViewFlexHeader({Key? key}) : super(key: key); + const TrackViewFlexHeader({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/tracks_view/sections/header/header_actions.dart b/lib/components/shared/tracks_view/sections/header/header_actions.dart index 75aa3f61..a16dd750 100644 --- a/lib/components/shared/tracks_view/sections/header/header_actions.dart +++ b/lib/components/shared/tracks_view/sections/header/header_actions.dart @@ -12,7 +12,7 @@ import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/provider/proxy_playlist/proxy_playlist_provider.dart'; class TrackViewHeaderActions extends HookConsumerWidget { - const TrackViewHeaderActions({Key? key}) : super(key: key); + const TrackViewHeaderActions({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/tracks_view/sections/header/header_buttons.dart b/lib/components/shared/tracks_view/sections/header/header_buttons.dart index bae47f12..513f7aaa 100644 --- a/lib/components/shared/tracks_view/sections/header/header_buttons.dart +++ b/lib/components/shared/tracks_view/sections/header/header_buttons.dart @@ -15,10 +15,10 @@ class TrackViewHeaderButtons extends HookConsumerWidget { final PaletteColor color; final bool compact; const TrackViewHeaderButtons({ - Key? key, + super.key, required this.color, this.compact = false, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/tracks_view/track_view.dart b/lib/components/shared/tracks_view/track_view.dart index 4103573c..eb8f6871 100644 --- a/lib/components/shared/tracks_view/track_view.dart +++ b/lib/components/shared/tracks_view/track_view.dart @@ -10,7 +10,7 @@ import 'package:spotube/components/shared/tracks_view/sections/body/track_view_b import 'package:spotube/components/shared/tracks_view/track_view_props.dart'; class TrackView extends HookConsumerWidget { - const TrackView({Key? key}) : super(key: key); + const TrackView({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/components/shared/waypoint.dart b/lib/components/shared/waypoint.dart index abd9f98d..08e9088a 100644 --- a/lib/components/shared/waypoint.dart +++ b/lib/components/shared/waypoint.dart @@ -11,12 +11,12 @@ class Waypoint extends HookWidget { final bool isGrid; const Waypoint({ - Key? key, + super.key, required this.controller, this.isGrid = false, this.onTouchEdge, this.child, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/hooks/controllers/use_auto_scroll_controller.dart b/lib/hooks/controllers/use_auto_scroll_controller.dart index 8edfb041..0c7119e4 100644 --- a/lib/hooks/controllers/use_auto_scroll_controller.dart +++ b/lib/hooks/controllers/use_auto_scroll_controller.dart @@ -39,8 +39,8 @@ class _AutoScrollControllerHook extends Hook { this.copyTagsFrom, this.suggestedRowHeight, this.debugLabel, - List? keys, - }) : super(keys: keys); + super.keys, + }); final double initialScrollOffset; final bool keepScrollOffset; diff --git a/lib/hooks/controllers/use_package_info.dart b/lib/hooks/controllers/use_package_info.dart index 9b142ced..b3c05665 100644 --- a/lib/hooks/controllers/use_package_info.dart +++ b/lib/hooks/controllers/use_package_info.dart @@ -44,8 +44,8 @@ class _PackageInfoHook extends Hook { required this.version, required this.buildNumber, this.buildSignature = '', - List? keys, - }) : super(keys: keys); + super.keys, + }); @override HookState> createState() => diff --git a/lib/hooks/controllers/use_sidebarx_controller.dart b/lib/hooks/controllers/use_sidebarx_controller.dart index 5af921b7..a14c3305 100644 --- a/lib/hooks/controllers/use_sidebarx_controller.dart +++ b/lib/hooks/controllers/use_sidebarx_controller.dart @@ -24,8 +24,8 @@ class _SidebarXControllerHook extends Hook { const _SidebarXControllerHook({ required this.selectedIndex, this.extended, - List? keys, - }) : super(keys: keys); + super.keys, + }); final int selectedIndex; final bool? extended; diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart index 7aec682a..31eecc99 100644 --- a/lib/l10n/l10n.dart +++ b/lib/l10n/l10n.dart @@ -11,6 +11,7 @@ /// Stephan-P@github, SecularSteve@github => Dutch /// doannc2212@github => Vietnamese /// sappho192@github => Korean +library; import 'package:flutter/material.dart'; class L10n { diff --git a/lib/main.dart b/lib/main.dart index 3281f85f..61fa9044 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,7 +8,6 @@ import 'package:flutter/services.dart'; import 'package:flutter_desktop_tools/flutter_desktop_tools.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:hive/hive.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:media_kit/media_kit.dart'; diff --git a/lib/pages/artist/artist.dart b/lib/pages/artist/artist.dart index d511cb97..4b88bcf4 100644 --- a/lib/pages/artist/artist.dart +++ b/lib/pages/artist/artist.dart @@ -17,7 +17,7 @@ import 'package:spotube/services/queries/queries.dart'; class ArtistPage extends HookConsumerWidget { final String artistId; final logger = getLogger(ArtistPage); - ArtistPage(this.artistId, {Key? key}) : super(key: key); + ArtistPage(this.artistId, {super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/artist/section/footer.dart b/lib/pages/artist/section/footer.dart index b01ef705..7a5413b6 100644 --- a/lib/pages/artist/section/footer.dart +++ b/lib/pages/artist/section/footer.dart @@ -11,7 +11,7 @@ import 'package:url_launcher/url_launcher_string.dart'; class ArtistPageFooter extends HookConsumerWidget { final Artist artist; - const ArtistPageFooter({Key? key, required this.artist}) : super(key: key); + const ArtistPageFooter({super.key, required this.artist}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/artist/section/header.dart b/lib/pages/artist/section/header.dart index 7cee7a01..e472ddc0 100644 --- a/lib/pages/artist/section/header.dart +++ b/lib/pages/artist/section/header.dart @@ -21,7 +21,7 @@ import 'package:spotube/utils/type_conversion_utils.dart'; class ArtistPageHeader extends HookConsumerWidget { final String artistId; - const ArtistPageHeader({Key? key, required this.artistId}) : super(key: key); + const ArtistPageHeader({super.key, required this.artistId}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/artist/section/related_artists.dart b/lib/pages/artist/section/related_artists.dart index 2938c084..1efcd692 100644 --- a/lib/pages/artist/section/related_artists.dart +++ b/lib/pages/artist/section/related_artists.dart @@ -6,9 +6,9 @@ import 'package:spotube/services/queries/queries.dart'; class ArtistPageRelatedArtists extends HookConsumerWidget { final String artistId; const ArtistPageRelatedArtists({ - Key? key, + super.key, required this.artistId, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/artist/section/top_tracks.dart b/lib/pages/artist/section/top_tracks.dart index 771757b9..1209daca 100644 --- a/lib/pages/artist/section/top_tracks.dart +++ b/lib/pages/artist/section/top_tracks.dart @@ -11,8 +11,7 @@ import 'package:spotube/services/queries/queries.dart'; class ArtistPageTopTracks extends HookConsumerWidget { final String artistId; - const ArtistPageTopTracks({Key? key, required this.artistId}) - : super(key: key); + const ArtistPageTopTracks({super.key, required this.artistId}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/desktop_login/desktop_login.dart b/lib/pages/desktop_login/desktop_login.dart index c2cc3695..9c061091 100644 --- a/lib/pages/desktop_login/desktop_login.dart +++ b/lib/pages/desktop_login/desktop_login.dart @@ -9,7 +9,7 @@ import 'package:spotube/extensions/constrains.dart'; import 'package:spotube/extensions/context.dart'; class DesktopLoginPage extends HookConsumerWidget { - const DesktopLoginPage({Key? key}) : super(key: key); + const DesktopLoginPage({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/desktop_login/login_tutorial.dart b/lib/pages/desktop_login/login_tutorial.dart index 24373e75..e6a4cf9a 100644 --- a/lib/pages/desktop_login/login_tutorial.dart +++ b/lib/pages/desktop_login/login_tutorial.dart @@ -12,7 +12,7 @@ import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/utils/service_utils.dart'; class LoginTutorial extends ConsumerWidget { - const LoginTutorial({Key? key}) : super(key: key); + const LoginTutorial({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/lastfm_login/lastfm_login.dart b/lib/pages/lastfm_login/lastfm_login.dart index 4280328f..b6aeef2e 100644 --- a/lib/pages/lastfm_login/lastfm_login.dart +++ b/lib/pages/lastfm_login/lastfm_login.dart @@ -10,7 +10,7 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/scrobbler_provider.dart'; class LastFMLoginPage extends HookConsumerWidget { - const LastFMLoginPage({Key? key}) : super(key: key); + const LastFMLoginPage({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/library/library.dart b/lib/pages/library/library.dart index b6b88656..ccdb6a35 100644 --- a/lib/pages/library/library.dart +++ b/lib/pages/library/library.dart @@ -12,7 +12,7 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/download_manager_provider.dart'; class LibraryPage extends HookConsumerWidget { - const LibraryPage({Key? key}) : super(key: key); + const LibraryPage({super.key}); @override Widget build(BuildContext context, ref) { final downloadingCount = ref.watch(downloadManagerProvider).$downloadCount; diff --git a/lib/pages/library/playlist_generate/playlist_generate.dart b/lib/pages/library/playlist_generate/playlist_generate.dart index 802b28d3..e3685491 100644 --- a/lib/pages/library/playlist_generate/playlist_generate.dart +++ b/lib/pages/library/playlist_generate/playlist_generate.dart @@ -18,13 +18,14 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/pages/library/playlist_generate/playlist_generate_result.dart'; import 'package:spotube/provider/spotify_provider.dart'; import 'package:spotube/provider/user_preferences/user_preferences_provider.dart'; +import 'package:spotube/services/queries/playlist.dart'; import 'package:spotube/services/queries/queries.dart'; import 'package:spotube/utils/type_conversion_utils.dart'; const RecommendationAttribute zeroValues = (min: 0, target: 0, max: 0); class PlaylistGeneratorPage extends HookConsumerWidget { - const PlaylistGeneratorPage({Key? key}) : super(key: key); + const PlaylistGeneratorPage({super.key}); @override Widget build(BuildContext context, ref) { @@ -507,7 +508,7 @@ class PlaylistGeneratorPage extends HookConsumerWidget { tempo: tempo.value, mode: mode.value, time_signature: timeSignature.value, - ) + ), ); GoRouter.of(context).push( "/library/generate/result", diff --git a/lib/pages/library/playlist_generate/playlist_generate_result.dart b/lib/pages/library/playlist_generate/playlist_generate_result.dart index f751b65b..c4e5b37b 100644 --- a/lib/pages/library/playlist_generate/playlist_generate_result.dart +++ b/lib/pages/library/playlist_generate/playlist_generate_result.dart @@ -25,9 +25,9 @@ class PlaylistGenerateResultPage extends HookConsumerWidget { final PlaylistGenerateResultRouteState state; const PlaylistGenerateResultPage({ - Key? key, + super.key, required this.state, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/lyrics/lyrics.dart b/lib/pages/lyrics/lyrics.dart index ac4b61e7..9c777660 100644 --- a/lib/pages/lyrics/lyrics.dart +++ b/lib/pages/lyrics/lyrics.dart @@ -22,7 +22,7 @@ import 'package:spotube/utils/type_conversion_utils.dart'; class LyricsPage extends HookConsumerWidget { final bool isModal; - const LyricsPage({Key? key, this.isModal = false}) : super(key: key); + const LyricsPage({super.key, this.isModal = false}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/lyrics/mini_lyrics.dart b/lib/pages/lyrics/mini_lyrics.dart index 2cf73728..a617909c 100644 --- a/lib/pages/lyrics/mini_lyrics.dart +++ b/lib/pages/lyrics/mini_lyrics.dart @@ -21,7 +21,7 @@ import 'package:spotube/utils/platform.dart'; class MiniLyricsPage extends HookConsumerWidget { final Size prevSize; - const MiniLyricsPage({Key? key, required this.prevSize}) : super(key: key); + const MiniLyricsPage({super.key, required this.prevSize}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/lyrics/plain_lyrics.dart b/lib/pages/lyrics/plain_lyrics.dart index bee5114d..fab9b330 100644 --- a/lib/pages/lyrics/plain_lyrics.dart +++ b/lib/pages/lyrics/plain_lyrics.dart @@ -24,8 +24,8 @@ class PlainLyrics extends HookConsumerWidget { required this.palette, this.isModal, this.defaultTextZoom = 100, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/lyrics/synced_lyrics.dart b/lib/pages/lyrics/synced_lyrics.dart index ddef1c65..5919ea83 100644 --- a/lib/pages/lyrics/synced_lyrics.dart +++ b/lib/pages/lyrics/synced_lyrics.dart @@ -30,8 +30,8 @@ class SyncedLyrics extends HookConsumerWidget { required this.palette, this.isModal, this.defaultTextZoom = 100, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/mobile_login/mobile_login.dart b/lib/pages/mobile_login/mobile_login.dart index 8b9bce4c..d9a309ed 100644 --- a/lib/pages/mobile_login/mobile_login.dart +++ b/lib/pages/mobile_login/mobile_login.dart @@ -8,7 +8,7 @@ import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/utils/platform.dart'; class WebViewLogin extends HookConsumerWidget { - const WebViewLogin({Key? key}) : super(key: key); + const WebViewLogin({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/playlist/liked_playlist.dart b/lib/pages/playlist/liked_playlist.dart index 1fb2e1dc..0915411c 100644 --- a/lib/pages/playlist/liked_playlist.dart +++ b/lib/pages/playlist/liked_playlist.dart @@ -8,9 +8,9 @@ import 'package:spotube/services/queries/queries.dart'; class LikedPlaylistPage extends HookConsumerWidget { final PlaylistSimple playlist; const LikedPlaylistPage({ - Key? key, + super.key, required this.playlist, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/playlist/playlist.dart b/lib/pages/playlist/playlist.dart index 89a279ab..79f27bbf 100644 --- a/lib/pages/playlist/playlist.dart +++ b/lib/pages/playlist/playlist.dart @@ -16,9 +16,9 @@ import 'package:spotube/utils/type_conversion_utils.dart'; class PlaylistPage extends HookConsumerWidget { final PlaylistSimple playlist; const PlaylistPage({ - Key? key, + super.key, required this.playlist, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/root/root_app.dart b/lib/pages/root/root_app.dart index aaf3e30a..ec6f899e 100644 --- a/lib/pages/root/root_app.dart +++ b/lib/pages/root/root_app.dart @@ -31,8 +31,8 @@ class RootApp extends HookConsumerWidget { final Widget child; const RootApp({ required this.child, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/search/search.dart b/lib/pages/search/search.dart index f4a78d4f..9c19ff56 100644 --- a/lib/pages/search/search.dart +++ b/lib/pages/search/search.dart @@ -24,7 +24,7 @@ import 'package:collection/collection.dart'; final searchTermStateProvider = StateProvider((ref) => ""); class SearchPage extends HookConsumerWidget { - const SearchPage({Key? key}) : super(key: key); + const SearchPage({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/search/sections/albums.dart b/lib/pages/search/sections/albums.dart index 8aa33feb..a4a06748 100644 --- a/lib/pages/search/sections/albums.dart +++ b/lib/pages/search/sections/albums.dart @@ -13,8 +13,8 @@ class SearchAlbumsSection extends HookConsumerWidget { final InfiniteQuery>, dynamic, int> query; const SearchAlbumsSection({ required this.query, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/search/sections/artists.dart b/lib/pages/search/sections/artists.dart index fe4459d6..84309eec 100644 --- a/lib/pages/search/sections/artists.dart +++ b/lib/pages/search/sections/artists.dart @@ -11,9 +11,9 @@ class SearchArtistsSection extends HookConsumerWidget { final InfiniteQuery>, dynamic, int> query; const SearchArtistsSection({ - Key? key, + super.key, required this.query, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/search/sections/playlists.dart b/lib/pages/search/sections/playlists.dart index 47614a70..57584ab3 100644 --- a/lib/pages/search/sections/playlists.dart +++ b/lib/pages/search/sections/playlists.dart @@ -10,8 +10,8 @@ class SearchPlaylistsSection extends HookConsumerWidget { final InfiniteQuery>, dynamic, int> query; const SearchPlaylistsSection({ required this.query, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/search/sections/tracks.dart b/lib/pages/search/sections/tracks.dart index e77cd8f2..66bdb9d7 100644 --- a/lib/pages/search/sections/tracks.dart +++ b/lib/pages/search/sections/tracks.dart @@ -12,9 +12,9 @@ import 'package:spotube/provider/proxy_playlist/proxy_playlist_provider.dart'; class SearchTracksSection extends HookConsumerWidget { final InfiniteQuery>, dynamic, int> query; const SearchTracksSection({ - Key? key, + super.key, required this.query, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/about.dart b/lib/pages/settings/about.dart index 00263680..21b8117b 100644 --- a/lib/pages/settings/about.dart +++ b/lib/pages/settings/about.dart @@ -16,7 +16,7 @@ final _licenseProvider = FutureProvider((ref) async { }); class AboutSpotube extends HookConsumerWidget { - const AboutSpotube({Key? key}) : super(key: key); + const AboutSpotube({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/blacklist.dart b/lib/pages/settings/blacklist.dart index b4ce5044..45ce76d9 100644 --- a/lib/pages/settings/blacklist.dart +++ b/lib/pages/settings/blacklist.dart @@ -11,7 +11,7 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/blacklist_provider.dart'; class BlackListPage extends HookConsumerWidget { - const BlackListPage({Key? key}) : super(key: key); + const BlackListPage({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/logs.dart b/lib/pages/settings/logs.dart index cfb28d18..b07ebbb1 100644 --- a/lib/pages/settings/logs.dart +++ b/lib/pages/settings/logs.dart @@ -11,7 +11,7 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/models/logger.dart'; class LogsPage extends HookWidget { - const LogsPage({Key? key}) : super(key: key); + const LogsPage({super.key}); List<({DateTime? date, String body})> parseLogs(String raw) { return raw diff --git a/lib/pages/settings/sections/about.dart b/lib/pages/settings/sections/about.dart index 9fe59662..a8d72cc0 100644 --- a/lib/pages/settings/sections/about.dart +++ b/lib/pages/settings/sections/about.dart @@ -11,7 +11,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart import 'package:url_launcher/url_launcher_string.dart'; class SettingsAboutSection extends HookConsumerWidget { - const SettingsAboutSection({Key? key}) : super(key: key); + const SettingsAboutSection({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/sections/accounts.dart b/lib/pages/settings/sections/accounts.dart index 83740866..bded71b3 100644 --- a/lib/pages/settings/sections/accounts.dart +++ b/lib/pages/settings/sections/accounts.dart @@ -10,7 +10,7 @@ import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/provider/scrobbler_provider.dart'; class SettingsAccountSection extends HookConsumerWidget { - const SettingsAccountSection({Key? key}) : super(key: key); + const SettingsAccountSection({super.key}); @override Widget build(context, ref) { diff --git a/lib/pages/settings/sections/appearance.dart b/lib/pages/settings/sections/appearance.dart index 3d941212..25bd4005 100644 --- a/lib/pages/settings/sections/appearance.dart +++ b/lib/pages/settings/sections/appearance.dart @@ -13,9 +13,9 @@ import 'package:spotube/provider/user_preferences/user_preferences_state.dart'; class SettingsAppearanceSection extends HookConsumerWidget { final bool isGettingStarted; const SettingsAppearanceSection({ - Key? key, + super.key, this.isGettingStarted = false, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/sections/desktop.dart b/lib/pages/settings/sections/desktop.dart index ae721fc4..2c0a1466 100644 --- a/lib/pages/settings/sections/desktop.dart +++ b/lib/pages/settings/sections/desktop.dart @@ -9,7 +9,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart import 'package:spotube/provider/user_preferences/user_preferences_state.dart'; class SettingsDesktopSection extends HookConsumerWidget { - const SettingsDesktopSection({Key? key}) : super(key: key); + const SettingsDesktopSection({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/sections/developers.dart b/lib/pages/settings/sections/developers.dart index 4b5f58a6..a22cf9f1 100644 --- a/lib/pages/settings/sections/developers.dart +++ b/lib/pages/settings/sections/developers.dart @@ -6,7 +6,7 @@ import 'package:spotube/components/settings/section_card_with_heading.dart'; import 'package:spotube/extensions/context.dart'; class SettingsDevelopersSection extends HookWidget { - const SettingsDevelopersSection({Key? key}) : super(key: key); + const SettingsDevelopersSection({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/settings/sections/downloads.dart b/lib/pages/settings/sections/downloads.dart index b1e360d0..1f25028e 100644 --- a/lib/pages/settings/sections/downloads.dart +++ b/lib/pages/settings/sections/downloads.dart @@ -10,7 +10,7 @@ import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/user_preferences/user_preferences_provider.dart'; class SettingsDownloadsSection extends HookConsumerWidget { - const SettingsDownloadsSection({Key? key}) : super(key: key); + const SettingsDownloadsSection({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/sections/playback.dart b/lib/pages/settings/sections/playback.dart index bd2e33b9..b3f0d897 100644 --- a/lib/pages/settings/sections/playback.dart +++ b/lib/pages/settings/sections/playback.dart @@ -14,7 +14,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_state.dart'; import 'package:spotube/services/sourced_track/enums.dart'; class SettingsPlaybackSection extends HookConsumerWidget { - const SettingsPlaybackSection({Key? key}) : super(key: key); + const SettingsPlaybackSection({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/settings/settings.dart b/lib/pages/settings/settings.dart index f773b809..d2a75057 100644 --- a/lib/pages/settings/settings.dart +++ b/lib/pages/settings/settings.dart @@ -16,7 +16,7 @@ import 'package:spotube/pages/settings/sections/playback.dart'; import 'package:spotube/provider/user_preferences/user_preferences_provider.dart'; class SettingsPage extends HookConsumerWidget { - const SettingsPage({Key? key}) : super(key: key); + const SettingsPage({super.key}); @override Widget build(BuildContext context, ref) { diff --git a/lib/pages/track/track.dart b/lib/pages/track/track.dart index 14052c10..5a82c589 100644 --- a/lib/pages/track/track.dart +++ b/lib/pages/track/track.dart @@ -21,9 +21,9 @@ import 'package:spotube/extensions/constrains.dart'; class TrackPage extends HookConsumerWidget { final String trackId; const TrackPage({ - Key? key, + super.key, required this.trackId, - }) : super(key: key); + }); @override Widget build(BuildContext context, ref) { diff --git a/lib/services/audio_services/linux_audio_service.dart b/lib/services/audio_services/linux_audio_service.dart index 436627e6..2dfef362 100644 --- a/lib/services/audio_services/linux_audio_service.dart +++ b/lib/services/audio_services/linux_audio_service.dart @@ -258,7 +258,7 @@ class _MprisMediaPlayer2Player extends DBusObject { /// Gets value of property org.mpris.MediaPlayer2.Player.LoopStatus Future getLoopStatus() async { - final loopMode = switch (await audioPlayer.loopMode) { + final loopMode = switch (audioPlayer.loopMode) { PlaybackLoopMode.all => "Playlist", PlaybackLoopMode.one => "Track", PlaybackLoopMode.none => "None", diff --git a/lib/services/audio_services/mobile_audio_service.dart b/lib/services/audio_services/mobile_audio_service.dart index 833df89c..d259317e 100644 --- a/lib/services/audio_services/mobile_audio_service.dart +++ b/lib/services/audio_services/mobile_audio_service.dart @@ -137,7 +137,7 @@ class MobileAudioService extends BaseAudioHandler { shuffleMode: await audioPlayer.isShuffled == true ? AudioServiceShuffleMode.all : AudioServiceShuffleMode.none, - repeatMode: (await audioPlayer.loopMode).toAudioServiceRepeatMode(), + repeatMode: (audioPlayer.loopMode).toAudioServiceRepeatMode(), processingState: playlist.isFetching == true ? AudioProcessingState.loading : AudioProcessingState.ready, diff --git a/lib/services/download_manager/download_manager.dart b/lib/services/download_manager/download_manager.dart index d7a42430..dbb96791 100644 --- a/lib/services/download_manager/download_manager.dart +++ b/lib/services/download_manager/download_manager.dart @@ -207,7 +207,7 @@ class DownloadManager { // Do nothing return _cache[downloadRequest.url]!; } else { - _queue.remove(_cache[downloadRequest.url]); + _queue.remove(_cache[downloadRequest.url]?.request); } } @@ -286,21 +286,21 @@ class DownloadManager { } Future pauseBatchDownloads(List urls) async { - urls.forEach((element) { + for (var element in urls) { pauseDownload(element); - }); + } } Future cancelBatchDownloads(List urls) async { - urls.forEach((element) { + for (var element in urls) { cancelDownload(element); - }); + } } Future resumeBatchDownloads(List urls) async { - urls.forEach((element) { + for (var element in urls) { resumeDownload(element); - }); + } } ValueNotifier getBatchDownloadProgress(List urls) { @@ -315,9 +315,9 @@ class DownloadManager { return getDownload(urls.first)?.progress ?? progress; } - var progressMap = Map(); + var progressMap = {}; - urls.forEach((url) { + for (var url in urls) { DownloadTask? task = getDownload(url); if (task != null) { @@ -328,29 +328,27 @@ class DownloadManager { progress.value = progressMap.values.sum / total; } - var progressListener; - progressListener = () { + void progressListener() { progressMap[url] = task.progress.value; progress.value = progressMap.values.sum / total; - }; + } task.progress.addListener(progressListener); - var listener; - listener = () { + void listener() { if (task.status.value.isCompleted) { progressMap[url] = 1.0; progress.value = progressMap.values.sum / total; task.status.removeListener(listener); task.progress.removeListener(progressListener); } - }; + } task.status.addListener(listener); } else { total--; } - }); + } return progress; } @@ -374,8 +372,7 @@ class DownloadManager { } } - var listener; - listener = () { + void listener() { if (task.status.value.isCompleted) { completed++; @@ -384,7 +381,7 @@ class DownloadManager { task.status.removeListener(listener); } } - }; + } task.status.addListener(listener); } else { diff --git a/lib/services/download_manager/download_task.dart b/lib/services/download_manager/download_task.dart index 5d57a655..d65f167e 100644 --- a/lib/services/download_manager/download_task.dart +++ b/lib/services/download_manager/download_task.dart @@ -21,13 +21,14 @@ class DownloadTask { completer.complete(status.value); } - var listener; - listener = () { + void listener() { if (status.value.isCompleted) { completer.complete(status.value); status.removeListener(listener); } - }; + } + + ; status.addListener(listener); diff --git a/lib/services/queries/playlist.dart b/lib/services/queries/playlist.dart index 836f9d72..59daf7f3 100644 --- a/lib/services/queries/playlist.dart +++ b/lib/services/queries/playlist.dart @@ -16,6 +16,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart typedef RecommendationParameters = ({ RecommendationAttribute acousticness, RecommendationAttribute danceability, + // ignore: non_constant_identifier_names RecommendationAttribute duration_ms, RecommendationAttribute energy, RecommendationAttribute instrumentalness, @@ -26,6 +27,7 @@ typedef RecommendationParameters = ({ RecommendationAttribute popularity, RecommendationAttribute speechiness, RecommendationAttribute tempo, + // ignore: non_constant_identifier_names RecommendationAttribute time_signature, RecommendationAttribute valence, });