chore: fix dart lint issues

This commit is contained in:
Kingkor Roy Tirtho 2024-03-16 22:02:11 +06:00
parent 94b3e160c2
commit dc999b81f0
110 changed files with 232 additions and 252 deletions

View File

@ -11,8 +11,8 @@ class ArtistAlbumList extends HookConsumerWidget {
final String artistId; final String artistId;
ArtistAlbumList( ArtistAlbumList(
this.artistId, { this.artistId, {
Key? key, super.key,
}) : super(key: key); });
final logger = getLogger(ArtistAlbumList); final logger = getLogger(ArtistAlbumList);

View File

@ -14,7 +14,7 @@ import 'package:spotube/utils/type_conversion_utils.dart';
class ArtistCard extends HookConsumerWidget { class ArtistCard extends HookConsumerWidget {
final Artist artist; final Artist artist;
const ArtistCard(this.artist, {Key? key}) : super(key: key); const ArtistCard(this.artist, {super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -8,9 +8,9 @@ import 'package:spotube/provider/authentication_provider.dart';
class TokenLoginForm extends HookConsumerWidget { class TokenLoginForm extends HookConsumerWidget {
final void Function()? onDone; final void Function()? onDone;
const TokenLoginForm({ const TokenLoginForm({
Key? key, super.key,
this.onDone, this.onDone,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -1,5 +1,4 @@
import 'package:flutter/material.dart' hide Page; import 'package:flutter/material.dart' hide Page;
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotify/spotify.dart'; import 'package:spotify/spotify.dart';
import 'package:spotube/components/shared/horizontal_playbutton_card_view/horizontal_playbutton_card_view.dart'; import 'package:spotube/components/shared/horizontal_playbutton_card_view/horizontal_playbutton_card_view.dart';

View File

@ -25,7 +25,7 @@ class MultiSelectField<T> extends HookWidget {
final bool enabled; final bool enabled;
const MultiSelectField({ const MultiSelectField({
Key? key, super.key,
required this.options, required this.options,
required this.selectedOptions, required this.selectedOptions,
required this.getValueForOption, required this.getValueForOption,
@ -36,7 +36,7 @@ class MultiSelectField<T> extends HookWidget {
this.dialogTitle, this.dialogTitle,
this.helperText, this.helperText,
this.enabled = true, this.enabled = true,
}) : super(key: key); });
Widget defaultSelectedOptionBuilder(T option) { Widget defaultSelectedOptionBuilder(T option) {
return Chip( return Chip(
@ -134,14 +134,14 @@ class _MultiSelectDialog<T> extends HookWidget {
final String? helperText; final String? helperText;
const _MultiSelectDialog({ const _MultiSelectDialog({
Key? key, super.key,
required this.dialogTitle, required this.dialogTitle,
required this.options, required this.options,
required this.getValueForOption, required this.getValueForOption,
this.optionBuilder, this.optionBuilder,
this.initialSelection = const [], this.initialSelection = const [],
this.helperText, this.helperText,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -20,12 +20,12 @@ class RecommendationAttributeDials extends HookWidget {
final double base; final double base;
const RecommendationAttributeDials({ const RecommendationAttributeDials({
Key? key, super.key,
required this.values, required this.values,
required this.onChanged, required this.onChanged,
required this.title, required this.title,
this.base = 1, this.base = 1,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -12,12 +12,12 @@ class RecommendationAttributeFields extends HookWidget {
final Map<String, RecommendationAttribute>? presets; final Map<String, RecommendationAttribute>? presets;
const RecommendationAttributeFields({ const RecommendationAttributeFields({
Key? key, super.key,
required this.values, required this.values,
required this.onChanged, required this.onChanged,
required this.title, required this.title,
this.presets, this.presets,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -26,7 +26,7 @@ class SeedsMultiAutocomplete<T extends Object> extends HookWidget {
final SelectedItemDisplayType selectedItemDisplayType; final SelectedItemDisplayType selectedItemDisplayType;
const SeedsMultiAutocomplete({ const SeedsMultiAutocomplete({
Key? key, super.key,
required this.seeds, required this.seeds,
required this.fetchSeeds, required this.fetchSeeds,
required this.autocompleteOptionBuilder, required this.autocompleteOptionBuilder,
@ -35,7 +35,7 @@ class SeedsMultiAutocomplete<T extends Object> extends HookWidget {
this.inputDecoration, this.inputDecoration,
this.enabled = true, this.enabled = true,
this.selectedItemDisplayType = SelectedItemDisplayType.wrap, this.selectedItemDisplayType = SelectedItemDisplayType.wrap,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -10,10 +10,10 @@ class SimpleTrackTile extends HookWidget {
final Track track; final Track track;
final VoidCallback? onDelete; final VoidCallback? onDelete;
const SimpleTrackTile({ const SimpleTrackTile({
Key? key, super.key,
required this.track, required this.track,
this.onDelete, this.onDelete,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -20,7 +20,7 @@ import 'package:spotube/services/queries/queries.dart';
import 'package:spotube/utils/type_conversion_utils.dart'; import 'package:spotube/utils/type_conversion_utils.dart';
class UserAlbums extends HookConsumerWidget { class UserAlbums extends HookConsumerWidget {
const UserAlbums({Key? key}) : super(key: key); const UserAlbums({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -16,7 +16,7 @@ import 'package:spotube/provider/authentication_provider.dart';
import 'package:spotube/services/queries/queries.dart'; import 'package:spotube/services/queries/queries.dart';
class UserArtists extends HookConsumerWidget { class UserArtists extends HookConsumerWidget {
const UserArtists({Key? key}) : super(key: key); const UserArtists({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -7,7 +7,7 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/provider/download_manager_provider.dart'; import 'package:spotube/provider/download_manager_provider.dart';
class UserDownloads extends HookConsumerWidget { class UserDownloads extends HookConsumerWidget {
const UserDownloads({Key? key}) : super(key: key); const UserDownloads({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -13,9 +13,9 @@ import 'package:spotube/utils/type_conversion_utils.dart';
class DownloadItem extends HookConsumerWidget { class DownloadItem extends HookConsumerWidget {
final Track track; final Track track;
const DownloadItem({ const DownloadItem({
Key? key, super.key,
required this.track, required this.track,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -129,7 +129,7 @@ final localTracksProvider = FutureProvider<List<LocalTrack>>((ref) async {
}); });
class UserLocalTracks extends HookConsumerWidget { class UserLocalTracks extends HookConsumerWidget {
const UserLocalTracks({Key? key}) : super(key: key); const UserLocalTracks({super.key});
Future<void> playLocalTracks( Future<void> playLocalTracks(
WidgetRef ref, WidgetRef ref,

View File

@ -20,7 +20,7 @@ import 'package:spotube/provider/authentication_provider.dart';
import 'package:spotube/services/queries/queries.dart'; import 'package:spotube/services/queries/queries.dart';
class UserPlaylists extends HookConsumerWidget { class UserPlaylists extends HookConsumerWidget {
const UserPlaylists({Key? key}) : super(key: key); const UserPlaylists({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -17,7 +17,7 @@ class ZoomControls extends HookWidget {
final String unit; final String unit;
const ZoomControls({ const ZoomControls({
Key? key, super.key,
required this.value, required this.value,
required this.onChanged, required this.onChanged,
this.min, this.min,
@ -27,7 +27,7 @@ class ZoomControls extends HookWidget {
this.decreaseIcon = const Icon(SpotubeIcons.zoomOut), this.decreaseIcon = const Icon(SpotubeIcons.zoomOut),
this.direction = Axis.horizontal, this.direction = Axis.horizontal,
this.unit = "%", this.unit = "%",
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -32,10 +32,10 @@ class PlayerView extends HookConsumerWidget {
final PanelController panelController; final PanelController panelController;
final ScrollController scrollController; final ScrollController scrollController;
const PlayerView({ const PlayerView({
Key? key, super.key,
required this.panelController, required this.panelController,
required this.scrollController, required this.scrollController,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -8,7 +8,6 @@ import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/player/sibling_tracks_sheet.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/adaptive/adaptive_pop_sheet_list.dart';
import 'package:spotube/components/shared/heart_button.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/context.dart';
import 'package:spotube/extensions/duration.dart'; import 'package:spotube/extensions/duration.dart';
import 'package:spotube/models/local_track.dart'; import 'package:spotube/models/local_track.dart';
@ -29,8 +28,8 @@ class PlayerActions extends HookConsumerWidget {
this.floatingQueue = true, this.floatingQueue = true,
this.showQueue = true, this.showQueue = true,
this.extraActions, this.extraActions,
Key? key, super.key,
}) : super(key: key); });
final logger = getLogger(PlayerActions); final logger = getLogger(PlayerActions);
@override @override

View File

@ -21,8 +21,8 @@ class PlayerControls extends HookConsumerWidget {
PlayerControls({ PlayerControls({
this.palette, this.palette,
this.compact = false, this.compact = false,
Key? key, super.key,
}) : super(key: key); });
final logger = getLogger(PlayerControls); final logger = getLogger(PlayerControls);
@ -256,7 +256,7 @@ class PlayerControls extends HookConsumerWidget {
onPressed: playlist.isFetching == true onPressed: playlist.isFetching == true
? null ? null
: () async { : () async {
switch (await audioPlayer.loopMode) { switch (audioPlayer.loopMode) {
case PlaybackLoopMode.all: case PlaybackLoopMode.all:
audioPlayer audioPlayer
.setLoopMode(PlaybackLoopMode.one); .setLoopMode(PlaybackLoopMode.one);

View File

@ -19,8 +19,8 @@ class PlayerOverlay extends HookConsumerWidget {
const PlayerOverlay({ const PlayerOverlay({
required this.albumArt, required this.albumArt,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -22,8 +22,8 @@ class PlayerQueue extends HookConsumerWidget {
final bool floating; final bool floating;
const PlayerQueue({ const PlayerQueue({
this.floating = true, this.floating = true,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -13,8 +13,7 @@ import 'package:spotube/utils/type_conversion_utils.dart';
class PlayerTrackDetails extends HookConsumerWidget { class PlayerTrackDetails extends HookConsumerWidget {
final String? albumArt; final String? albumArt;
final Color? color; final Color? color;
const PlayerTrackDetails({Key? key, this.albumArt, this.color}) const PlayerTrackDetails({super.key, this.albumArt, this.color});
: super(key: key);
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -45,9 +45,9 @@ final sourceInfoToIconMap = {
class SiblingTracksSheet extends HookConsumerWidget { class SiblingTracksSheet extends HookConsumerWidget {
final bool floating; final bool floating;
const SiblingTracksSheet({ const SiblingTracksSheet({
Key? key, super.key,
this.floating = true, this.floating = true,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -8,9 +8,9 @@ import 'package:spotube/provider/volume_provider.dart';
class VolumeSlider extends HookConsumerWidget { class VolumeSlider extends HookConsumerWidget {
final bool fullWidth; final bool fullWidth;
const VolumeSlider({ const VolumeSlider({
Key? key, super.key,
this.fullWidth = false, this.fullWidth = false,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -16,8 +16,8 @@ class PlaylistCard extends HookConsumerWidget {
final PlaylistSimple playlist; final PlaylistSimple playlist;
const PlaylistCard( const PlaylistCard(
this.playlist, { this.playlist, {
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
final playlistQueue = ref.watch(ProxyPlaylistNotifier.provider); final playlistQueue = ref.watch(ProxyPlaylistNotifier.provider);

View File

@ -24,10 +24,10 @@ class PlaylistCreateDialog extends HookConsumerWidget {
final List<String> trackIds; final List<String> trackIds;
final String? playlistId; final String? playlistId;
PlaylistCreateDialog({ PlaylistCreateDialog({
Key? key, super.key,
this.trackIds = const [], this.trackIds = const [],
this.playlistId, this.playlistId,
}) : super(key: key); });
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
@ -275,7 +275,7 @@ class PlaylistCreateDialog extends HookConsumerWidget {
} }
class PlaylistCreateDialogButton extends HookConsumerWidget { class PlaylistCreateDialogButton extends HookConsumerWidget {
const PlaylistCreateDialogButton({Key? key}) : super(key: key); const PlaylistCreateDialogButton({super.key});
showPlaylistDialog(BuildContext context, SpotifyApi spotify) { showPlaylistDialog(BuildContext context, SpotifyApi spotify) {
showDialog( showDialog(

View File

@ -25,7 +25,7 @@ import 'package:spotube/utils/platform.dart';
import 'package:spotube/utils/type_conversion_utils.dart'; import 'package:spotube/utils/type_conversion_utils.dart';
class BottomPlayer extends HookConsumerWidget { class BottomPlayer extends HookConsumerWidget {
BottomPlayer({Key? key}) : super(key: key); BottomPlayer({super.key});
final logger = getLogger(BottomPlayer); final logger = getLogger(BottomPlayer);
@override @override

View File

@ -31,8 +31,8 @@ class Sidebar extends HookConsumerWidget {
required this.selectedIndex, required this.selectedIndex,
required this.onSelectedIndexChanged, required this.onSelectedIndexChanged,
required this.child, required this.child,
Key? key, super.key,
}) : super(key: key); });
static Widget brandLogo() { static Widget brandLogo() {
return Container( return Container(
@ -195,7 +195,7 @@ class Sidebar extends HookConsumerWidget {
} }
class SidebarHeader extends HookWidget { class SidebarHeader extends HookWidget {
const SidebarHeader({Key? key}) : super(key: key); const SidebarHeader({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -234,8 +234,8 @@ class SidebarHeader extends HookWidget {
class SidebarFooter extends HookConsumerWidget { class SidebarFooter extends HookConsumerWidget {
const SidebarFooter({ const SidebarFooter({
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -23,8 +23,8 @@ class SpotubeNavigationBar extends HookConsumerWidget {
const SpotubeNavigationBar({ const SpotubeNavigationBar({
required this.selectedIndex, required this.selectedIndex,
required this.onSelectedIndexChanged, required this.onSelectedIndexChanged,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -8,9 +8,9 @@ import 'package:system_theme/system_theme.dart';
class SpotubeColor extends Color { class SpotubeColor extends Color {
final String name; 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) { factory SpotubeColor.fromString(String string) {
final slices = string.split(":"); final slices = string.split(":");
@ -44,7 +44,7 @@ final Set<SpotubeColor> colorsMap = {
}; };
class ColorSchemePickerDialog extends HookConsumerWidget { class ColorSchemePickerDialog extends HookConsumerWidget {
const ColorSchemePickerDialog({Key? key}) : super(key: key); const ColorSchemePickerDialog({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
@ -119,8 +119,8 @@ class ColorTile extends StatelessWidget {
this.onPressed, this.onPressed,
this.tooltip = "", this.tooltip = "",
this.isCompact = false, this.isCompact = false,
Key? key, super.key,
}) : super(key: key); });
factory ColorTile.compact({ factory ColorTile.compact({
required Color color, required Color color,

View File

@ -12,13 +12,13 @@ class Action extends StatelessWidget {
final bool isExpanded; final bool isExpanded;
final Color? backgroundColor; final Color? backgroundColor;
const Action({ const Action({
Key? key, super.key,
required this.icon, required this.icon,
required this.text, required this.text,
required this.onPressed, required this.onPressed,
this.isExpanded = true, this.isExpanded = true,
this.backgroundColor, this.backgroundColor,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -3,7 +3,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
class AnimateGradient extends HookWidget { class AnimateGradient extends HookWidget {
const AnimateGradient({ const AnimateGradient({
Key? key, super.key,
required this.primaryColors, required this.primaryColors,
required this.secondaryColors, required this.secondaryColors,
this.child, this.child,
@ -17,8 +17,7 @@ class AnimateGradient extends HookWidget {
this.reverse = true, this.reverse = true,
}) : assert(primaryColors.length >= 2), }) : assert(primaryColors.length >= 2),
assert(primaryColors.length == secondaryColors.length), assert(primaryColors.length == secondaryColors.length),
_controller = controller, _controller = controller;
super(key: key);
/// [controller]: pass this to have a fine control over the [Animation] /// [controller]: pass this to have a fine control over the [Animation]
final AnimationController? _controller; final AnimationController? _controller;

View File

@ -11,12 +11,12 @@ class CompactSearch extends HookWidget {
final Color? iconColor; final Color? iconColor;
const CompactSearch({ const CompactSearch({
Key? key, super.key,
this.onChanged, this.onChanged,
this.placeholder = "Search...", this.placeholder = "Search...",
this.icon = SpotubeIcons.search, this.icon = SpotubeIcons.search,
this.iconColor, this.iconColor,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -5,7 +5,7 @@ import 'package:spotube/extensions/constrains.dart';
import 'package:spotube/extensions/context.dart'; import 'package:spotube/extensions/context.dart';
class ConfirmDownloadDialog extends StatelessWidget { class ConfirmDownloadDialog extends StatelessWidget {
const ConfirmDownloadDialog({Key? key}) : super(key: key); const ConfirmDownloadDialog({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -82,7 +82,7 @@ class ConfirmDownloadDialog extends StatelessWidget {
class BulletPoint extends StatelessWidget { class BulletPoint extends StatelessWidget {
final String text; final String text;
const BulletPoint(this.text, {Key? key}) : super(key: key); const BulletPoint(this.text, {super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -5,7 +5,7 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart'; import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
class PipedDownDialog extends HookConsumerWidget { class PipedDownDialog extends HookConsumerWidget {
const PipedDownDialog({Key? key}) : super(key: key); const PipedDownDialog({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -19,8 +19,8 @@ class PlaylistAddTrackDialog extends HookConsumerWidget {
const PlaylistAddTrackDialog({ const PlaylistAddTrackDialog({
required this.tracks, required this.tracks,
required this.openFromPlaylist, required this.openFromPlaylist,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -8,8 +8,7 @@ final replaceDownloadedFileState = StateProvider<bool?>((ref) => null);
class ReplaceDownloadedDialog extends ConsumerWidget { class ReplaceDownloadedDialog extends ConsumerWidget {
final Track track; final Track track;
const ReplaceDownloadedDialog({required this.track, Key? key}) const ReplaceDownloadedDialog({required this.track, super.key});
: super(key: key);
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -13,9 +13,9 @@ import 'package:spotube/extensions/duration.dart';
class TrackDetailsDialog extends HookWidget { class TrackDetailsDialog extends HookWidget {
final Track track; final Track track;
const TrackDetailsDialog({ const TrackDetailsDialog({
Key? key, super.key,
required this.track, required this.track,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -10,12 +10,12 @@ class ExpandableSearchField extends StatelessWidget {
final FocusNode searchFocus; final FocusNode searchFocus;
const ExpandableSearchField({ const ExpandableSearchField({
Key? key, super.key,
required this.isFiltering, required this.isFiltering,
required this.onChangeFiltering, required this.onChangeFiltering,
required this.searchController, required this.searchController,
required this.searchFocus, required this.searchFocus,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -60,12 +60,12 @@ class ExpandableSearchButton extends StatelessWidget {
final ValueChanged<bool>? onPressed; final ValueChanged<bool>? onPressed;
const ExpandableSearchButton({ const ExpandableSearchButton({
Key? key, super.key,
required this.isFiltering, required this.isFiltering,
required this.searchFocus, required this.searchFocus,
this.icon = const Icon(SpotubeIcons.filter), this.icon = const Icon(SpotubeIcons.filter),
this.onPressed, this.onPressed,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -8,9 +8,9 @@ import 'package:spotube/utils/service_utils.dart';
class AnonymousFallback extends ConsumerWidget { class AnonymousFallback extends ConsumerWidget {
final Widget? child; final Widget? child;
const AnonymousFallback({ const AnonymousFallback({
Key? key, super.key,
this.child, this.child,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -3,7 +3,7 @@ import 'package:spotube/collections/assets.gen.dart';
class NotFound extends StatelessWidget { class NotFound extends StatelessWidget {
final bool vertical; final bool vertical;
const NotFound({Key? key, this.vertical = false}) : super(key: key); const NotFound({super.key, this.vertical = false});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -23,8 +23,8 @@ class HeartButton extends HookConsumerWidget {
this.color, this.color,
this.tooltip, this.tooltip,
this.icon, this.icon,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
@ -134,9 +134,9 @@ UseTrackToggleLike useTrackToggleLike(Track track, WidgetRef ref) {
class TrackHeartButton extends HookConsumerWidget { class TrackHeartButton extends HookConsumerWidget {
final Track track; final Track track;
const TrackHeartButton({ const TrackHeartButton({
Key? key, super.key,
required this.track, required this.track,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
@ -168,10 +168,10 @@ class PlaylistHeartButton extends HookConsumerWidget {
const PlaylistHeartButton({ const PlaylistHeartButton({
required this.playlist, required this.playlist,
Key? key, super.key,
this.icon, this.icon,
this.onData, this.onData,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
@ -217,8 +217,8 @@ class AlbumHeartButton extends HookConsumerWidget {
const AlbumHeartButton({ const AlbumHeartButton({
required this.album, required this.album,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -7,8 +7,8 @@ class HoverBuilder extends HookWidget {
const HoverBuilder({ const HoverBuilder({
required this.builder, required this.builder,
this.permanentState, this.permanentState,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -20,8 +20,8 @@ class UniversalImage extends HookWidget {
this.placeholder, this.placeholder,
this.fit, this.fit,
this.scale = 1, this.scale = 1,
Key? key, super.key,
}) : super(key: key); });
static ImageProvider imageProvider( static ImageProvider imageProvider(
String path, { String path, {

View File

@ -11,13 +11,13 @@ class AnchorButton<T> extends HookWidget {
const AnchorButton( const AnchorButton(
this.text, { this.text, {
Key? key, super.key,
this.onTap, this.onTap,
this.textAlign, this.textAlign,
this.overflow, this.overflow,
this.maxLines, this.maxLines,
this.style = const TextStyle(), this.style = const TextStyle(),
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -13,12 +13,12 @@ class Hyperlink extends StatelessWidget {
const Hyperlink( const Hyperlink(
this.text, this.text,
this.url, { this.url, {
Key? key, super.key,
this.textAlign, this.textAlign,
this.overflow, this.overflow,
this.style = const TextStyle(), this.style = const TextStyle(),
this.maxLines, this.maxLines,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -15,14 +15,14 @@ class LinkText<T> extends StatelessWidget {
const LinkText( const LinkText(
this.text, this.text,
this.route, { this.route, {
Key? key, super.key,
this.textAlign, this.textAlign,
this.extra, this.extra,
this.overflow, this.overflow,
this.style = const TextStyle(), this.style = const TextStyle(),
this.maxLines, this.maxLines,
this.push = false, this.push = false,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -27,7 +27,7 @@ class PageWindowTitleBar extends StatefulHookConsumerWidget
final Widget? title; final Widget? title;
const PageWindowTitleBar({ const PageWindowTitleBar({
Key? key, super.key,
this.actions, this.actions,
this.title, this.title,
this.toolbarOpacity = 1, this.toolbarOpacity = 1,
@ -42,7 +42,7 @@ class PageWindowTitleBar extends StatefulHookConsumerWidget
this.titleTextStyle, this.titleTextStyle,
this.titleWidth, this.titleWidth,
this.toolbarTextStyle, this.toolbarTextStyle,
}) : super(key: key); });
@override @override
Size get preferredSize => const Size.fromHeight(kToolbarHeight); Size get preferredSize => const Size.fromHeight(kToolbarHeight);
@ -107,9 +107,9 @@ class _PageWindowTitleBarState extends ConsumerState<PageWindowTitleBar> {
class WindowTitleBarButtons extends HookConsumerWidget { class WindowTitleBarButtons extends HookConsumerWidget {
final Color? foregroundColor; final Color? foregroundColor;
const WindowTitleBarButtons({ const WindowTitleBarButtons({
Key? key, super.key,
this.foregroundColor, this.foregroundColor,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
@ -277,14 +277,13 @@ class WindowButton extends StatelessWidget {
final VoidCallback? onPressed; final VoidCallback? onPressed;
WindowButton( WindowButton(
{Key? key, {super.key,
WindowButtonColors? colors, WindowButtonColors? colors,
this.builder, this.builder,
@required this.iconBuilder, @required this.iconBuilder,
this.padding, this.padding,
this.onPressed, this.onPressed,
this.animate = false}) this.animate = false}) {
: super(key: key) {
this.colors = colors ?? _defaultButtonColors; this.colors = colors ?? _defaultButtonColors;
} }
@ -350,49 +349,40 @@ class WindowButton extends StatelessWidget {
class MinimizeWindowButton extends WindowButton { class MinimizeWindowButton extends WindowButton {
MinimizeWindowButton( MinimizeWindowButton(
{Key? key, {super.key,
WindowButtonColors? colors, super.colors,
VoidCallback? onPressed, super.onPressed,
bool? animate}) bool? animate})
: super( : super(
key: key,
colors: colors,
animate: animate ?? false, animate: animate ?? false,
iconBuilder: (buttonContext) => iconBuilder: (buttonContext) =>
MinimizeIcon(color: buttonContext.iconColor), MinimizeIcon(color: buttonContext.iconColor),
onPressed: onPressed,
); );
} }
class MaximizeWindowButton extends WindowButton { class MaximizeWindowButton extends WindowButton {
MaximizeWindowButton( MaximizeWindowButton(
{Key? key, {super.key,
WindowButtonColors? colors, super.colors,
VoidCallback? onPressed, super.onPressed,
bool? animate}) bool? animate})
: super( : super(
key: key,
colors: colors,
animate: animate ?? false, animate: animate ?? false,
iconBuilder: (buttonContext) => iconBuilder: (buttonContext) =>
MaximizeIcon(color: buttonContext.iconColor), MaximizeIcon(color: buttonContext.iconColor),
onPressed: onPressed,
); );
} }
class RestoreWindowButton extends WindowButton { class RestoreWindowButton extends WindowButton {
RestoreWindowButton( RestoreWindowButton(
{Key? key, {super.key,
WindowButtonColors? colors, super.colors,
VoidCallback? onPressed, super.onPressed,
bool? animate}) bool? animate})
: super( : super(
key: key,
colors: colors,
animate: animate ?? false, animate: animate ?? false,
iconBuilder: (buttonContext) => iconBuilder: (buttonContext) =>
RestoreIcon(color: buttonContext.iconColor), RestoreIcon(color: buttonContext.iconColor),
onPressed: onPressed,
); );
} }
@ -404,17 +394,15 @@ final _defaultCloseButtonColors = WindowButtonColors(
class CloseWindowButton extends WindowButton { class CloseWindowButton extends WindowButton {
CloseWindowButton( CloseWindowButton(
{Key? key, {super.key,
WindowButtonColors? colors, WindowButtonColors? colors,
VoidCallback? onPressed, super.onPressed,
bool? animate}) bool? animate})
: super( : super(
key: key,
colors: colors ?? _defaultCloseButtonColors, colors: colors ?? _defaultCloseButtonColors,
animate: animate ?? false, animate: animate ?? false,
iconBuilder: (buttonContext) => iconBuilder: (buttonContext) =>
CloseIcon(color: buttonContext.iconColor), CloseIcon(color: buttonContext.iconColor),
onPressed: onPressed,
); );
} }
@ -423,7 +411,7 @@ class CloseWindowButton extends WindowButton {
/// Close /// Close
class CloseIcon extends StatelessWidget { class CloseIcon extends StatelessWidget {
final Color color; final Color color;
const CloseIcon({Key? key, required this.color}) : super(key: key); const CloseIcon({super.key, required this.color});
@override @override
Widget build(BuildContext context) => Align( Widget build(BuildContext context) => Align(
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
@ -444,13 +432,13 @@ class CloseIcon extends StatelessWidget {
/// Maximize /// Maximize
class MaximizeIcon extends StatelessWidget { class MaximizeIcon extends StatelessWidget {
final Color color; final Color color;
const MaximizeIcon({Key? key, required this.color}) : super(key: key); const MaximizeIcon({super.key, required this.color});
@override @override
Widget build(BuildContext context) => _AlignedPaint(_MaximizePainter(color)); Widget build(BuildContext context) => _AlignedPaint(_MaximizePainter(color));
} }
class _MaximizePainter extends _IconPainter { class _MaximizePainter extends _IconPainter {
_MaximizePainter(Color color) : super(color); _MaximizePainter(super.color);
@override @override
void paint(Canvas canvas, Size size) { void paint(Canvas canvas, Size size) {
Paint p = getPaint(color); Paint p = getPaint(color);
@ -462,15 +450,15 @@ class _MaximizePainter extends _IconPainter {
class RestoreIcon extends StatelessWidget { class RestoreIcon extends StatelessWidget {
final Color color; final Color color;
const RestoreIcon({ const RestoreIcon({
Key? key, super.key,
required this.color, required this.color,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) => _AlignedPaint(_RestorePainter(color)); Widget build(BuildContext context) => _AlignedPaint(_RestorePainter(color));
} }
class _RestorePainter extends _IconPainter { class _RestorePainter extends _IconPainter {
_RestorePainter(Color color) : super(color); _RestorePainter(super.color);
@override @override
void paint(Canvas canvas, Size size) { void paint(Canvas canvas, Size size) {
Paint p = getPaint(color); Paint p = getPaint(color);
@ -487,13 +475,13 @@ class _RestorePainter extends _IconPainter {
/// Minimize /// Minimize
class MinimizeIcon extends StatelessWidget { class MinimizeIcon extends StatelessWidget {
final Color color; final Color color;
const MinimizeIcon({Key? key, required this.color}) : super(key: key); const MinimizeIcon({super.key, required this.color});
@override @override
Widget build(BuildContext context) => _AlignedPaint(_MinimizePainter(color)); Widget build(BuildContext context) => _AlignedPaint(_MinimizePainter(color));
} }
class _MinimizePainter extends _IconPainter { class _MinimizePainter extends _IconPainter {
_MinimizePainter(Color color) : super(color); _MinimizePainter(super.color);
@override @override
void paint(Canvas canvas, Size size) { void paint(Canvas canvas, Size size) {
Paint p = getPaint(color); Paint p = getPaint(color);
@ -512,7 +500,7 @@ abstract class _IconPainter extends CustomPainter {
} }
class _AlignedPaint extends StatelessWidget { class _AlignedPaint extends StatelessWidget {
const _AlignedPaint(this.painter, {Key? key}) : super(key: key); const _AlignedPaint(this.painter);
final CustomPainter painter; final CustomPainter painter;
@override @override
@ -547,8 +535,7 @@ T? _ambiguate<T>(T? value) => value;
class MouseStateBuilder extends StatefulWidget { class MouseStateBuilder extends StatefulWidget {
final MouseStateBuilderCB builder; final MouseStateBuilderCB builder;
final VoidCallback? onPressed; final VoidCallback? onPressed;
const MouseStateBuilder({Key? key, required this.builder, this.onPressed}) const MouseStateBuilder({super.key, required this.builder, this.onPressed});
: super(key: key);
@override @override
_MouseStateBuilderState createState() => _MouseStateBuilderState(); _MouseStateBuilderState createState() => _MouseStateBuilderState();
} }

View File

@ -47,8 +47,7 @@ class ForceDraggableWidgetRenderBox extends RenderPointerListener {
/// To make [ForceDraggableWidget] work in [Scrollable] widgets /// To make [ForceDraggableWidget] work in [Scrollable] widgets
class PanelScrollPhysics extends ScrollPhysics { class PanelScrollPhysics extends ScrollPhysics {
final PanelController controller; final PanelController controller;
const PanelScrollPhysics({required this.controller, ScrollPhysics? parent}) const PanelScrollPhysics({required this.controller, super.parent});
: super(parent: parent);
@override @override
PanelScrollPhysics applyTo(ScrollPhysics? ancestor) { PanelScrollPhysics applyTo(ScrollPhysics? ancestor) {
return PanelScrollPhysics( return PanelScrollPhysics(

View File

@ -146,7 +146,7 @@ class SlidingUpPanel extends StatefulWidget {
final BoxDecoration? panelDecoration; final BoxDecoration? panelDecoration;
const SlidingUpPanel( const SlidingUpPanel(
{Key? key, {super.key,
this.body, this.body,
this.collapsed, this.collapsed,
this.minHeight = 100.0, this.minHeight = 100.0,
@ -176,8 +176,7 @@ class SlidingUpPanel extends StatefulWidget {
this.panelBuilder}) this.panelBuilder})
: assert(panelBuilder != null), : assert(panelBuilder != null),
assert(0 <= backdropOpacity && backdropOpacity <= 1.0), assert(0 <= backdropOpacity && backdropOpacity <= 1.0),
assert(snapPoint == null || 0 < snapPoint && snapPoint < 1.0), assert(snapPoint == null || 0 < snapPoint && snapPoint < 1.0);
super(key: key);
@override @override
SlidingUpPanelState createState() => SlidingUpPanelState(); SlidingUpPanelState createState() => SlidingUpPanelState();

View File

@ -43,8 +43,8 @@ class PlaybuttonCard extends HookWidget {
this.onAddToQueuePressed, this.onAddToQueuePressed,
this.onTap, this.onTap,
this.isOwner = false, this.isOwner = false,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -5,7 +5,7 @@ import 'package:gap/gap.dart';
import 'package:skeletonizer/skeletonizer.dart'; import 'package:skeletonizer/skeletonizer.dart';
class ShimmerLyrics extends HookWidget { class ShimmerLyrics extends HookWidget {
const ShimmerLyrics({Key? key}) : super(key: key); const ShimmerLyrics({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -11,8 +11,8 @@ class SortTracksDropdown extends StatelessWidget {
const SortTracksDropdown({ const SortTracksDropdown({
this.onChanged, this.onChanged,
this.value, this.value,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -5,7 +5,7 @@ import 'package:spotube/hooks/utils/use_brightness_value.dart';
class ThemedButtonsTabBar extends HookWidget implements PreferredSizeWidget { class ThemedButtonsTabBar extends HookWidget implements PreferredSizeWidget {
final List<Widget> tabs; final List<Widget> tabs;
const ThemedButtonsTabBar({Key? key, required this.tabs}) : super(key: key); const ThemedButtonsTabBar({super.key, required this.tabs});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -53,13 +53,13 @@ class TrackOptions extends HookConsumerWidget {
final ObjectRef<ValueChanged<RelativeRect>?>? showMenuCbRef; final ObjectRef<ValueChanged<RelativeRect>?>? showMenuCbRef;
final Widget? icon; final Widget? icon;
const TrackOptions({ const TrackOptions({
Key? key, super.key,
required this.track, required this.track,
this.showMenuCbRef, this.showMenuCbRef,
this.userPlaylist = false, this.userPlaylist = false,
this.playlistId, this.playlistId,
this.icon, this.icon,
}) : super(key: key); });
void actionShare(BuildContext context, Track track) { void actionShare(BuildContext context, Track track) {
final data = "https://open.spotify.com/track/${track.id}"; final data = "https://open.spotify.com/track/${track.id}";

View File

@ -32,7 +32,7 @@ class TrackTile extends HookConsumerWidget {
final List<Widget>? leadingActions; final List<Widget>? leadingActions;
const TrackTile({ const TrackTile({
Key? key, super.key,
this.index, this.index,
required this.track, required this.track,
this.selected = false, this.selected = false,
@ -42,7 +42,7 @@ class TrackTile extends HookConsumerWidget {
this.userPlaylist = false, this.userPlaylist = false,
this.playlistId, this.playlistId,
this.leadingActions, this.leadingActions,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -19,7 +19,7 @@ import 'package:spotube/utils/service_utils.dart';
import 'package:very_good_infinite_list/very_good_infinite_list.dart'; import 'package:very_good_infinite_list/very_good_infinite_list.dart';
class TrackViewBodySection extends HookConsumerWidget { class TrackViewBodySection extends HookConsumerWidget {
const TrackViewBodySection({Key? key}) : super(key: key); const TrackViewBodySection({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -13,10 +13,10 @@ class TrackViewBodyHeaders extends HookConsumerWidget {
final FocusNode searchFocus; final FocusNode searchFocus;
const TrackViewBodyHeaders({ const TrackViewBodyHeaders({
Key? key, super.key,
required this.isFiltering, required this.isFiltering,
required this.searchFocus, required this.searchFocus,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -13,7 +13,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart
import 'package:spotube/provider/user_preferences/user_preferences_state.dart'; import 'package:spotube/provider/user_preferences/user_preferences_state.dart';
class TrackViewBodyOptions extends HookConsumerWidget { class TrackViewBodyOptions extends HookConsumerWidget {
const TrackViewBodyOptions({Key? key}) : super(key: key); const TrackViewBodyOptions({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -14,7 +14,7 @@ import 'package:spotube/extensions/constrains.dart';
import 'package:spotube/hooks/utils/use_palette_color.dart'; import 'package:spotube/hooks/utils/use_palette_color.dart';
class TrackViewFlexHeader extends HookConsumerWidget { class TrackViewFlexHeader extends HookConsumerWidget {
const TrackViewFlexHeader({Key? key}) : super(key: key); const TrackViewFlexHeader({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -12,7 +12,7 @@ import 'package:spotube/provider/authentication_provider.dart';
import 'package:spotube/provider/proxy_playlist/proxy_playlist_provider.dart'; import 'package:spotube/provider/proxy_playlist/proxy_playlist_provider.dart';
class TrackViewHeaderActions extends HookConsumerWidget { class TrackViewHeaderActions extends HookConsumerWidget {
const TrackViewHeaderActions({Key? key}) : super(key: key); const TrackViewHeaderActions({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -15,10 +15,10 @@ class TrackViewHeaderButtons extends HookConsumerWidget {
final PaletteColor color; final PaletteColor color;
final bool compact; final bool compact;
const TrackViewHeaderButtons({ const TrackViewHeaderButtons({
Key? key, super.key,
required this.color, required this.color,
this.compact = false, this.compact = false,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -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'; import 'package:spotube/components/shared/tracks_view/track_view_props.dart';
class TrackView extends HookConsumerWidget { class TrackView extends HookConsumerWidget {
const TrackView({Key? key}) : super(key: key); const TrackView({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -11,12 +11,12 @@ class Waypoint extends HookWidget {
final bool isGrid; final bool isGrid;
const Waypoint({ const Waypoint({
Key? key, super.key,
required this.controller, required this.controller,
this.isGrid = false, this.isGrid = false,
this.onTouchEdge, this.onTouchEdge,
this.child, this.child,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -39,8 +39,8 @@ class _AutoScrollControllerHook extends Hook<AutoScrollController> {
this.copyTagsFrom, this.copyTagsFrom,
this.suggestedRowHeight, this.suggestedRowHeight,
this.debugLabel, this.debugLabel,
List<Object?>? keys, super.keys,
}) : super(keys: keys); });
final double initialScrollOffset; final double initialScrollOffset;
final bool keepScrollOffset; final bool keepScrollOffset;

View File

@ -44,8 +44,8 @@ class _PackageInfoHook<PageKeyType, ItemType> extends Hook<PackageInfo> {
required this.version, required this.version,
required this.buildNumber, required this.buildNumber,
this.buildSignature = '', this.buildSignature = '',
List<Object?>? keys, super.keys,
}) : super(keys: keys); });
@override @override
HookState<PackageInfo, Hook<PackageInfo>> createState() => HookState<PackageInfo, Hook<PackageInfo>> createState() =>

View File

@ -24,8 +24,8 @@ class _SidebarXControllerHook extends Hook<SidebarXController> {
const _SidebarXControllerHook({ const _SidebarXControllerHook({
required this.selectedIndex, required this.selectedIndex,
this.extended, this.extended,
List<Object?>? keys, super.keys,
}) : super(keys: keys); });
final int selectedIndex; final int selectedIndex;
final bool? extended; final bool? extended;

View File

@ -11,6 +11,7 @@
/// Stephan-P@github, SecularSteve@github => Dutch /// Stephan-P@github, SecularSteve@github => Dutch
/// doannc2212@github => Vietnamese /// doannc2212@github => Vietnamese
/// sappho192@github => Korean /// sappho192@github => Korean
library;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class L10n { class L10n {

View File

@ -8,7 +8,6 @@ import 'package:flutter/services.dart';
import 'package:flutter_desktop_tools/flutter_desktop_tools.dart'; import 'package:flutter_desktop_tools/flutter_desktop_tools.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:media_kit/media_kit.dart'; import 'package:media_kit/media_kit.dart';

View File

@ -17,7 +17,7 @@ import 'package:spotube/services/queries/queries.dart';
class ArtistPage extends HookConsumerWidget { class ArtistPage extends HookConsumerWidget {
final String artistId; final String artistId;
final logger = getLogger(ArtistPage); final logger = getLogger(ArtistPage);
ArtistPage(this.artistId, {Key? key}) : super(key: key); ArtistPage(this.artistId, {super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -11,7 +11,7 @@ import 'package:url_launcher/url_launcher_string.dart';
class ArtistPageFooter extends HookConsumerWidget { class ArtistPageFooter extends HookConsumerWidget {
final Artist artist; final Artist artist;
const ArtistPageFooter({Key? key, required this.artist}) : super(key: key); const ArtistPageFooter({super.key, required this.artist});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -21,7 +21,7 @@ import 'package:spotube/utils/type_conversion_utils.dart';
class ArtistPageHeader extends HookConsumerWidget { class ArtistPageHeader extends HookConsumerWidget {
final String artistId; final String artistId;
const ArtistPageHeader({Key? key, required this.artistId}) : super(key: key); const ArtistPageHeader({super.key, required this.artistId});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -6,9 +6,9 @@ import 'package:spotube/services/queries/queries.dart';
class ArtistPageRelatedArtists extends HookConsumerWidget { class ArtistPageRelatedArtists extends HookConsumerWidget {
final String artistId; final String artistId;
const ArtistPageRelatedArtists({ const ArtistPageRelatedArtists({
Key? key, super.key,
required this.artistId, required this.artistId,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -11,8 +11,7 @@ import 'package:spotube/services/queries/queries.dart';
class ArtistPageTopTracks extends HookConsumerWidget { class ArtistPageTopTracks extends HookConsumerWidget {
final String artistId; final String artistId;
const ArtistPageTopTracks({Key? key, required this.artistId}) const ArtistPageTopTracks({super.key, required this.artistId});
: super(key: key);
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -9,7 +9,7 @@ import 'package:spotube/extensions/constrains.dart';
import 'package:spotube/extensions/context.dart'; import 'package:spotube/extensions/context.dart';
class DesktopLoginPage extends HookConsumerWidget { class DesktopLoginPage extends HookConsumerWidget {
const DesktopLoginPage({Key? key}) : super(key: key); const DesktopLoginPage({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -12,7 +12,7 @@ import 'package:spotube/provider/authentication_provider.dart';
import 'package:spotube/utils/service_utils.dart'; import 'package:spotube/utils/service_utils.dart';
class LoginTutorial extends ConsumerWidget { class LoginTutorial extends ConsumerWidget {
const LoginTutorial({Key? key}) : super(key: key); const LoginTutorial({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -10,7 +10,7 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/provider/scrobbler_provider.dart'; import 'package:spotube/provider/scrobbler_provider.dart';
class LastFMLoginPage extends HookConsumerWidget { class LastFMLoginPage extends HookConsumerWidget {
const LastFMLoginPage({Key? key}) : super(key: key); const LastFMLoginPage({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -12,7 +12,7 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/provider/download_manager_provider.dart'; import 'package:spotube/provider/download_manager_provider.dart';
class LibraryPage extends HookConsumerWidget { class LibraryPage extends HookConsumerWidget {
const LibraryPage({Key? key}) : super(key: key); const LibraryPage({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
final downloadingCount = ref.watch(downloadManagerProvider).$downloadCount; final downloadingCount = ref.watch(downloadManagerProvider).$downloadCount;

View File

@ -18,13 +18,14 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/pages/library/playlist_generate/playlist_generate_result.dart'; import 'package:spotube/pages/library/playlist_generate/playlist_generate_result.dart';
import 'package:spotube/provider/spotify_provider.dart'; import 'package:spotube/provider/spotify_provider.dart';
import 'package:spotube/provider/user_preferences/user_preferences_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/services/queries/queries.dart';
import 'package:spotube/utils/type_conversion_utils.dart'; import 'package:spotube/utils/type_conversion_utils.dart';
const RecommendationAttribute zeroValues = (min: 0, target: 0, max: 0); const RecommendationAttribute zeroValues = (min: 0, target: 0, max: 0);
class PlaylistGeneratorPage extends HookConsumerWidget { class PlaylistGeneratorPage extends HookConsumerWidget {
const PlaylistGeneratorPage({Key? key}) : super(key: key); const PlaylistGeneratorPage({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {
@ -507,7 +508,7 @@ class PlaylistGeneratorPage extends HookConsumerWidget {
tempo: tempo.value, tempo: tempo.value,
mode: mode.value, mode: mode.value,
time_signature: timeSignature.value, time_signature: timeSignature.value,
) ),
); );
GoRouter.of(context).push( GoRouter.of(context).push(
"/library/generate/result", "/library/generate/result",

View File

@ -25,9 +25,9 @@ class PlaylistGenerateResultPage extends HookConsumerWidget {
final PlaylistGenerateResultRouteState state; final PlaylistGenerateResultRouteState state;
const PlaylistGenerateResultPage({ const PlaylistGenerateResultPage({
Key? key, super.key,
required this.state, required this.state,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -22,7 +22,7 @@ import 'package:spotube/utils/type_conversion_utils.dart';
class LyricsPage extends HookConsumerWidget { class LyricsPage extends HookConsumerWidget {
final bool isModal; final bool isModal;
const LyricsPage({Key? key, this.isModal = false}) : super(key: key); const LyricsPage({super.key, this.isModal = false});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -21,7 +21,7 @@ import 'package:spotube/utils/platform.dart';
class MiniLyricsPage extends HookConsumerWidget { class MiniLyricsPage extends HookConsumerWidget {
final Size prevSize; final Size prevSize;
const MiniLyricsPage({Key? key, required this.prevSize}) : super(key: key); const MiniLyricsPage({super.key, required this.prevSize});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -24,8 +24,8 @@ class PlainLyrics extends HookConsumerWidget {
required this.palette, required this.palette,
this.isModal, this.isModal,
this.defaultTextZoom = 100, this.defaultTextZoom = 100,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -30,8 +30,8 @@ class SyncedLyrics extends HookConsumerWidget {
required this.palette, required this.palette,
this.isModal, this.isModal,
this.defaultTextZoom = 100, this.defaultTextZoom = 100,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -8,7 +8,7 @@ import 'package:spotube/provider/authentication_provider.dart';
import 'package:spotube/utils/platform.dart'; import 'package:spotube/utils/platform.dart';
class WebViewLogin extends HookConsumerWidget { class WebViewLogin extends HookConsumerWidget {
const WebViewLogin({Key? key}) : super(key: key); const WebViewLogin({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -8,9 +8,9 @@ import 'package:spotube/services/queries/queries.dart';
class LikedPlaylistPage extends HookConsumerWidget { class LikedPlaylistPage extends HookConsumerWidget {
final PlaylistSimple playlist; final PlaylistSimple playlist;
const LikedPlaylistPage({ const LikedPlaylistPage({
Key? key, super.key,
required this.playlist, required this.playlist,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -16,9 +16,9 @@ import 'package:spotube/utils/type_conversion_utils.dart';
class PlaylistPage extends HookConsumerWidget { class PlaylistPage extends HookConsumerWidget {
final PlaylistSimple playlist; final PlaylistSimple playlist;
const PlaylistPage({ const PlaylistPage({
Key? key, super.key,
required this.playlist, required this.playlist,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -31,8 +31,8 @@ class RootApp extends HookConsumerWidget {
final Widget child; final Widget child;
const RootApp({ const RootApp({
required this.child, required this.child,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -24,7 +24,7 @@ import 'package:collection/collection.dart';
final searchTermStateProvider = StateProvider<String>((ref) => ""); final searchTermStateProvider = StateProvider<String>((ref) => "");
class SearchPage extends HookConsumerWidget { class SearchPage extends HookConsumerWidget {
const SearchPage({Key? key}) : super(key: key); const SearchPage({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -13,8 +13,8 @@ class SearchAlbumsSection extends HookConsumerWidget {
final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query; final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query;
const SearchAlbumsSection({ const SearchAlbumsSection({
required this.query, required this.query,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -11,9 +11,9 @@ class SearchArtistsSection extends HookConsumerWidget {
final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query; final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query;
const SearchArtistsSection({ const SearchArtistsSection({
Key? key, super.key,
required this.query, required this.query,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -10,8 +10,8 @@ class SearchPlaylistsSection extends HookConsumerWidget {
final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query; final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query;
const SearchPlaylistsSection({ const SearchPlaylistsSection({
required this.query, required this.query,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -12,9 +12,9 @@ import 'package:spotube/provider/proxy_playlist/proxy_playlist_provider.dart';
class SearchTracksSection extends HookConsumerWidget { class SearchTracksSection extends HookConsumerWidget {
final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query; final InfiniteQuery<List<Page<dynamic>>, dynamic, int> query;
const SearchTracksSection({ const SearchTracksSection({
Key? key, super.key,
required this.query, required this.query,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -16,7 +16,7 @@ final _licenseProvider = FutureProvider<String>((ref) async {
}); });
class AboutSpotube extends HookConsumerWidget { class AboutSpotube extends HookConsumerWidget {
const AboutSpotube({Key? key}) : super(key: key); const AboutSpotube({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -11,7 +11,7 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/provider/blacklist_provider.dart'; import 'package:spotube/provider/blacklist_provider.dart';
class BlackListPage extends HookConsumerWidget { class BlackListPage extends HookConsumerWidget {
const BlackListPage({Key? key}) : super(key: key); const BlackListPage({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -11,7 +11,7 @@ import 'package:spotube/extensions/context.dart';
import 'package:spotube/models/logger.dart'; import 'package:spotube/models/logger.dart';
class LogsPage extends HookWidget { class LogsPage extends HookWidget {
const LogsPage({Key? key}) : super(key: key); const LogsPage({super.key});
List<({DateTime? date, String body})> parseLogs(String raw) { List<({DateTime? date, String body})> parseLogs(String raw) {
return raw return raw

View File

@ -11,7 +11,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart
import 'package:url_launcher/url_launcher_string.dart'; import 'package:url_launcher/url_launcher_string.dart';
class SettingsAboutSection extends HookConsumerWidget { class SettingsAboutSection extends HookConsumerWidget {
const SettingsAboutSection({Key? key}) : super(key: key); const SettingsAboutSection({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -10,7 +10,7 @@ import 'package:spotube/provider/authentication_provider.dart';
import 'package:spotube/provider/scrobbler_provider.dart'; import 'package:spotube/provider/scrobbler_provider.dart';
class SettingsAccountSection extends HookConsumerWidget { class SettingsAccountSection extends HookConsumerWidget {
const SettingsAccountSection({Key? key}) : super(key: key); const SettingsAccountSection({super.key});
@override @override
Widget build(context, ref) { Widget build(context, ref) {

View File

@ -13,9 +13,9 @@ import 'package:spotube/provider/user_preferences/user_preferences_state.dart';
class SettingsAppearanceSection extends HookConsumerWidget { class SettingsAppearanceSection extends HookConsumerWidget {
final bool isGettingStarted; final bool isGettingStarted;
const SettingsAppearanceSection({ const SettingsAppearanceSection({
Key? key, super.key,
this.isGettingStarted = false, this.isGettingStarted = false,
}) : super(key: key); });
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

View File

@ -9,7 +9,7 @@ import 'package:spotube/provider/user_preferences/user_preferences_provider.dart
import 'package:spotube/provider/user_preferences/user_preferences_state.dart'; import 'package:spotube/provider/user_preferences/user_preferences_state.dart';
class SettingsDesktopSection extends HookConsumerWidget { class SettingsDesktopSection extends HookConsumerWidget {
const SettingsDesktopSection({Key? key}) : super(key: key); const SettingsDesktopSection({super.key});
@override @override
Widget build(BuildContext context, ref) { Widget build(BuildContext context, ref) {

Some files were not shown because too many files have changed in this diff Show More