diff --git a/.fvm/fvm_config.json b/.fvm/fvm_config.json index 5d1bc03b..f474c4f1 100644 --- a/.fvm/fvm_config.json +++ b/.fvm/fvm_config.json @@ -1,4 +1,4 @@ { - "flutterSdkVersion": "3.0.5", + "flutterSdkVersion": "3.3.8", "flavors": {} } \ No newline at end of file diff --git a/lib/collections/assets.gen.dart b/lib/collections/assets.gen.dart new file mode 100644 index 00000000..b6b97cdf --- /dev/null +++ b/lib/collections/assets.gen.dart @@ -0,0 +1,182 @@ +/// GENERATED CODE - DO NOT MODIFY BY HAND +/// ***************************************************** +/// FlutterGen +/// ***************************************************** + +// coverage:ignore-file +// ignore_for_file: type=lint +// ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal + +import 'package:flutter/widgets.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter/services.dart'; + +class $AssetsTutorialGen { + const $AssetsTutorialGen(); + + /// File path: assets/tutorial/step-1.png + AssetGenImage get step1 => const AssetGenImage('assets/tutorial/step-1.png'); + + /// File path: assets/tutorial/step-2.png + AssetGenImage get step2 => const AssetGenImage('assets/tutorial/step-2.png'); + + /// File path: assets/tutorial/step-3.png + AssetGenImage get step3 => const AssetGenImage('assets/tutorial/step-3.png'); + + /// List of all assets + List get values => [step1, step2, step3]; +} + +class Assets { + Assets._(); + + static const AssetGenImage albumPlaceholder = + AssetGenImage('assets/album-placeholder.png'); + static const AssetGenImage emptyBox = AssetGenImage('assets/empty_box.png'); + static const AssetGenImage placeholder = + AssetGenImage('assets/placeholder.png'); + static const AssetGenImage spotubeLogoForeground = + AssetGenImage('assets/spotube-logo-foreground.jpg'); + static const AssetGenImage spotubeLogoPng = + AssetGenImage('assets/spotube-logo.png'); + static const SvgGenImage spotubeLogoSvg = + SvgGenImage('assets/spotube-logo.svg'); + static const AssetGenImage spotubeScreenshot = + AssetGenImage('assets/spotube-screenshot.jpg'); + static const AssetGenImage spotubeBanner = + AssetGenImage('assets/spotube_banner.png'); + static const AssetGenImage success = AssetGenImage('assets/success.png'); + static const $AssetsTutorialGen tutorial = $AssetsTutorialGen(); + static const AssetGenImage userPlaceholder = + AssetGenImage('assets/user-placeholder.png'); + + /// List of all assets + List get values => [ + albumPlaceholder, + emptyBox, + placeholder, + spotubeLogoForeground, + spotubeLogoPng, + spotubeLogoSvg, + spotubeScreenshot, + spotubeBanner, + success, + userPlaceholder + ]; +} + +class AssetGenImage { + const AssetGenImage(this._assetName); + + final String _assetName; + + Image image({ + Key? key, + AssetBundle? bundle, + ImageFrameBuilder? frameBuilder, + ImageErrorWidgetBuilder? errorBuilder, + String? semanticLabel, + bool excludeFromSemantics = false, + double? scale, + double? width, + double? height, + Color? color, + Animation? opacity, + BlendMode? colorBlendMode, + BoxFit? fit, + AlignmentGeometry alignment = Alignment.center, + ImageRepeat repeat = ImageRepeat.noRepeat, + Rect? centerSlice, + bool matchTextDirection = false, + bool gaplessPlayback = false, + bool isAntiAlias = false, + String? package, + FilterQuality filterQuality = FilterQuality.low, + int? cacheWidth, + int? cacheHeight, + }) { + return Image.asset( + _assetName, + key: key, + bundle: bundle, + frameBuilder: frameBuilder, + errorBuilder: errorBuilder, + semanticLabel: semanticLabel, + excludeFromSemantics: excludeFromSemantics, + scale: scale, + width: width, + height: height, + color: color, + opacity: opacity, + colorBlendMode: colorBlendMode, + fit: fit, + alignment: alignment, + repeat: repeat, + centerSlice: centerSlice, + matchTextDirection: matchTextDirection, + gaplessPlayback: gaplessPlayback, + isAntiAlias: isAntiAlias, + package: package, + filterQuality: filterQuality, + cacheWidth: cacheWidth, + cacheHeight: cacheHeight, + ); + } + + ImageProvider provider() => AssetImage(_assetName); + + String get path => _assetName; + + String get keyName => _assetName; +} + +class SvgGenImage { + const SvgGenImage(this._assetName); + + final String _assetName; + + SvgPicture svg({ + Key? key, + bool matchTextDirection = false, + AssetBundle? bundle, + String? package, + double? width, + double? height, + BoxFit fit = BoxFit.contain, + AlignmentGeometry alignment = Alignment.center, + bool allowDrawingOutsideViewBox = false, + WidgetBuilder? placeholderBuilder, + Color? color, + BlendMode colorBlendMode = BlendMode.srcIn, + String? semanticsLabel, + bool excludeFromSemantics = false, + Clip clipBehavior = Clip.hardEdge, + bool cacheColorFilter = false, + SvgTheme? theme, + }) { + return SvgPicture.asset( + _assetName, + key: key, + matchTextDirection: matchTextDirection, + bundle: bundle, + package: package, + width: width, + height: height, + fit: fit, + alignment: alignment, + allowDrawingOutsideViewBox: allowDrawingOutsideViewBox, + placeholderBuilder: placeholderBuilder, + color: color, + colorBlendMode: colorBlendMode, + semanticsLabel: semanticsLabel, + excludeFromSemantics: excludeFromSemantics, + clipBehavior: clipBehavior, + cacheColorFilter: cacheColorFilter, + theme: theme, + ); + } + + String get path => _assetName; + + String get keyName => _assetName; +} diff --git a/lib/components/player/player_track_details.dart b/lib/components/player/player_track_details.dart index 5209027f..08b59960 100644 --- a/lib/components/player/player_track_details.dart +++ b/lib/components/player/player_track_details.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/components/shared/image/universal_image.dart'; import 'package:spotube/hooks/use_breakpoints.dart'; import 'package:spotube/provider/playback_provider.dart'; @@ -27,8 +28,7 @@ class PlayerTrackDetails extends HookConsumerWidget { height: 50, width: 50, placeholder: (context, url) { - return Image.asset( - "assets/album-placeholder.png", + return Assets.albumPlaceholder.image( height: 50, width: 50, ); diff --git a/lib/components/root/bottom_player.dart b/lib/components/root/bottom_player.dart index 87b3f027..5eb59661 100644 --- a/lib/components/root/bottom_player.dart +++ b/lib/components/root/bottom_player.dart @@ -5,6 +5,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:macos_ui/macos_ui.dart'; import 'package:fluent_ui/fluent_ui.dart' as fluent_ui; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/components/player/player_actions.dart'; import 'package:spotube/components/player/player_overlay.dart'; import 'package:spotube/components/player/player_track_details.dart'; @@ -36,7 +37,7 @@ class BottomPlayer extends HookConsumerWidget { index: (playback.track?.album?.images?.length ?? 1) - 1, placeholder: ImagePlaceholder.albumArt, ) - : "assets/album-placeholder.png", + : Assets.albumPlaceholder.path, [playback.track?.album?.images], ); diff --git a/lib/components/root/sidebar.dart b/lib/components/root/sidebar.dart index 90f80bce..3794b40e 100644 --- a/lib/components/root/sidebar.dart +++ b/lib/components/root/sidebar.dart @@ -3,8 +3,9 @@ import 'package:fl_query_hooks/fl_query_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:flutter/material.dart'; +import 'package:flutter/material.dart' hide Badge; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/collections/side_bar_tiles.dart'; import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/components/shared/image/universal_image.dart'; @@ -37,10 +38,7 @@ class Sidebar extends HookConsumerWidget { color: Colors.black, borderRadius: BorderRadius.circular(50), ), - child: Image.asset( - "assets/spotube-logo.png", - height: 50, - ), + child: Assets.spotubeLogoPng.image(height: 50), ); } @@ -242,8 +240,7 @@ class SidebarFooter extends HookConsumerWidget { backgroundImage: UniversalImage.imageProvider(avatarImg), onBackgroundImageError: (exception, stackTrace) => - Image.asset( - "assets/user-placeholder.png", + Assets.userPlaceholder.image( height: 16, width: 16, ), diff --git a/lib/components/shared/fallbacks/not_found.dart b/lib/components/shared/fallbacks/not_found.dart index 2a3d4bba..cdd5b765 100644 --- a/lib/components/shared/fallbacks/not_found.dart +++ b/lib/components/shared/fallbacks/not_found.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:spotube/collections/assets.gen.dart'; class NotFound extends StatelessWidget { final bool vertical; @@ -10,7 +11,7 @@ class NotFound extends StatelessWidget { SizedBox( height: 150, width: 150, - child: Image.asset("assets/empty_box.png"), + child: Assets.emptyBox.image(), ), Column( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/components/shared/image/universal_image.dart b/lib/components/shared/image/universal_image.dart index a4da56b6..4e222a1b 100644 --- a/lib/components/shared/image/universal_image.dart +++ b/lib/components/shared/image/universal_image.dart @@ -4,6 +4,7 @@ import 'dart:io'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:spotube/collections/assets.gen.dart'; class UniversalImage extends HookWidget { final String path; @@ -64,8 +65,7 @@ class UniversalImage extends HookWidget { scale: scale, errorBuilder: (context, error, stackTrace) { return placeholder?.call(context, error.toString()) ?? - Image.asset( - "assets/placeholder.png", + Assets.placeholder.image( width: width, height: height, cacheHeight: height?.toInt(), @@ -84,8 +84,7 @@ class UniversalImage extends HookWidget { scale: scale, errorBuilder: (context, error, stackTrace) { return placeholder?.call(context, error.toString()) ?? - Image.asset( - "assets/placeholder.png", + Assets.placeholder.image( width: width, height: height, cacheHeight: height?.toInt(), @@ -105,8 +104,7 @@ class UniversalImage extends HookWidget { scale: scale, errorBuilder: (context, error, stackTrace) { return placeholder?.call(context, error.toString()) ?? - Image.asset( - "assets/placeholder.png", + Assets.placeholder.image( width: width, height: height, cacheHeight: height?.toInt(), diff --git a/lib/components/shared/playbutton_card.dart b/lib/components/shared/playbutton_card.dart index 40d1f5b2..6a4203b2 100644 --- a/lib/components/shared/playbutton_card.dart +++ b/lib/components/shared/playbutton_card.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/components/shared/hover_builder.dart'; import 'package:spotube/components/shared/spotube_marquee_text.dart'; @@ -114,8 +115,7 @@ class PlaybuttonCard extends HookWidget { child: UniversalImage( path: imageUrl, width: isSquare ? 200 : 60, - placeholder: (context, url) => - Image.asset("assets/placeholder.png"), + placeholder: (context, url) => Assets.placeholder.image(), ), ), ); diff --git a/lib/components/shared/track_table/track_collection_view.dart b/lib/components/shared/track_table/track_collection_view.dart index 1db5bd5d..b85987cc 100644 --- a/lib/components/shared/track_table/track_collection_view.dart +++ b/lib/components/shared/track_table/track_collection_view.dart @@ -5,6 +5,7 @@ import 'package:fuzzywuzzy/fuzzywuzzy.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/components/shared/compact_search.dart'; import 'package:spotube/components/shared/shimmers/shimmer_track_tile.dart'; @@ -185,7 +186,7 @@ class TrackCollectionView extends HookConsumerWidget { child: searchbar, ); }); - Overlay.of(context)!.insert(entry!); + Overlay.of(context)?.insert(entry!); } }); return () => entry?.remove(); @@ -274,9 +275,7 @@ class TrackCollectionView extends HookConsumerWidget { child: UniversalImage( path: titleImage, placeholder: (context, url) { - return const UniversalImage( - path: "assets/album-placeholder.png", - ); + return Assets.albumPlaceholder.image(); }, ), ), diff --git a/lib/components/shared/track_table/track_tile.dart b/lib/components/shared/track_table/track_tile.dart index 51ed247d..386fc56d 100644 --- a/lib/components/shared/track_table/track_tile.dart +++ b/lib/components/shared/track_table/track_tile.dart @@ -7,6 +7,7 @@ import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:platform_ui/platform_ui.dart'; import 'package:spotify/spotify.dart' hide Image; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/components/shared/adaptive/adaptive_popup_menu_button.dart'; import 'package:spotube/components/shared/heart_button.dart'; @@ -227,8 +228,7 @@ class TrackTile extends HookConsumerWidget { height: 40, width: 40, placeholder: (context, url) { - return Image.asset( - "assets/album-placeholder.png", + return Assets.albumPlaceholder.image( height: 40, width: 40, ); diff --git a/lib/pages/desktop_login/desktop_login.dart b/lib/pages/desktop_login/desktop_login.dart index ec8c4193..aaa59f7e 100644 --- a/lib/pages/desktop_login/desktop_login.dart +++ b/lib/pages/desktop_login/desktop_login.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/components/desktop_login/login_form.dart'; import 'package:spotube/components/shared/page_window_title_bar.dart'; import 'package:spotube/hooks/use_breakpoints.dart'; @@ -30,8 +31,7 @@ class DesktopLoginPage extends HookConsumerWidget { ), child: Column( children: [ - Image.asset( - "assets/spotube-logo.png", + Assets.spotubeLogoPng.image( width: MediaQuery.of(context).size.width * (breakpoint <= Breakpoints.md ? .5 : .3), ), diff --git a/lib/pages/desktop_login/login_tutorial.dart b/lib/pages/desktop_login/login_tutorial.dart index e3312b46..2ec2249f 100644 --- a/lib/pages/desktop_login/login_tutorial.dart +++ b/lib/pages/desktop_login/login_tutorial.dart @@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import 'package:introduction_screen/introduction_screen.dart'; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/components/desktop_login/login_form.dart'; import 'package:spotube/components/shared/links/hyper_link.dart'; import 'package:spotube/components/shared/page_window_title_bar.dart'; @@ -61,7 +62,7 @@ class LoginTutorial extends ConsumerWidget { PageViewModel( decoration: pageDecoration, title: "Step 1", - image: Image.asset("assets/tutorial/step-1.png"), + image: Assets.tutorial.step1.image(), bodyWidget: Wrap( children: const [ PlatformText( @@ -80,7 +81,7 @@ class LoginTutorial extends ConsumerWidget { PageViewModel( decoration: pageDecoration, title: "Step 2", - image: Image.asset("assets/tutorial/step-2.png"), + image: Assets.tutorial.step2.image(), bodyWidget: const PlatformText( "1. Once you're logged in, press F12 or Mouse Right Click > Inspect to Open the Browser devtools.\n2. Then go the \"Application\" Tab (Chrome, Edge, Brave etc..) or \"Storage\" Tab (Firefox, Palemoon etc..)\n3. Go to the \"Cookies\" section then the \"https://accounts.spotify.com\" subsection", textAlign: TextAlign.left, @@ -89,9 +90,7 @@ class LoginTutorial extends ConsumerWidget { PageViewModel( decoration: pageDecoration, title: "Step 3", - image: Image.asset( - "assets/tutorial/step-3.png", - ), + image: Assets.tutorial.step3.image(), bodyWidget: const PlatformText( "Copy the values of \"sp_dc\" and \"sp_key\" Cookies", textAlign: TextAlign.left, @@ -103,7 +102,7 @@ class LoginTutorial extends ConsumerWidget { bodyAlignment: Alignment.center, ), title: "Success🥳", - image: Image.asset("assets/success.png"), + image: Assets.success.image(), body: "Now you're successfully Logged In with your Spotify account. Good Job, mate!", ) diff --git a/lib/pages/settings/about.dart b/lib/pages/settings/about.dart index 9bd33506..d589cc11 100644 --- a/lib/pages/settings/about.dart +++ b/lib/pages/settings/about.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:platform_ui/platform_ui.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/components/shared/image/universal_image.dart'; import 'package:spotube/components/shared/page_window_title_bar.dart'; import 'package:spotube/hooks/use_package_info.dart'; @@ -26,8 +27,7 @@ class AboutSpotube extends HookConsumerWidget { padding: const EdgeInsets.symmetric(horizontal: 16.0), child: Column( children: [ - Image.asset( - "assets/spotube-logo.png", + Assets.spotubeLogoPng.image( height: 200, width: 200, ), diff --git a/lib/utils/type_conversion_utils.dart b/lib/utils/type_conversion_utils.dart index 6187a064..fa547ba1 100644 --- a/lib/utils/type_conversion_utils.dart +++ b/lib/utils/type_conversion_utils.dart @@ -5,6 +5,7 @@ import 'dart:io'; import 'package:flutter/widgets.dart' hide Image; import 'package:metadata_god/metadata_god.dart' hide Image; import 'package:path/path.dart'; +import 'package:spotube/collections/assets.gen.dart'; import 'package:spotube/components/shared/links/anchor_button.dart'; import 'package:spotify/spotify.dart'; import 'package:spotube/models/spotube_track.dart'; @@ -26,9 +27,9 @@ abstract class TypeConversionUtils { required ImagePlaceholder placeholder, }) { final String placeholderUrl = { - ImagePlaceholder.albumArt: "assets/album-placeholder.png", - ImagePlaceholder.artist: "assets/user-placeholder.png", - ImagePlaceholder.collection: "assets/placeholder.png", + ImagePlaceholder.albumArt: Assets.albumPlaceholder.path, + ImagePlaceholder.artist: Assets.userPlaceholder.path, + ImagePlaceholder.collection: Assets.placeholder.path, ImagePlaceholder.online: "https://avatars.dicebear.com/api/bottts/${PrimitiveUtils.uuid.v4()}.png", }[placeholder]!; diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 3e05dc1a..76b6998e 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -12,9 +12,9 @@ import connectivity_plus_macos import macos_ui import metadata_god import package_info_plus_macos -import path_provider_macos +import path_provider_foundation import screen_retriever -import shared_preferences_macos +import shared_preferences_foundation import sqflite import url_launcher_macos import window_manager diff --git a/pubspec.lock b/pubspec.lock index 23eae2ee..37243c57 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -84,14 +84,14 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "3.3.0" + version: "3.3.6" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "2.3.1" + version: "2.3.2" async: dependency: transitive description: @@ -105,7 +105,7 @@ packages: name: audio_service url: "https://pub.dartlang.org" source: hosted - version: "0.18.7" + version: "0.18.9" audio_service_platform_interface: dependency: transitive description: @@ -126,7 +126,7 @@ packages: name: audio_session url: "https://pub.dartlang.org" source: hosted - version: "0.1.10" + version: "0.1.13" audioplayers: dependency: "direct main" description: @@ -217,7 +217,7 @@ packages: name: build_config url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" build_daemon: dependency: transitive description: @@ -238,14 +238,14 @@ packages: name: build_runner url: "https://pub.dartlang.org" source: hosted - version: "2.3.2" + version: "2.3.3" build_runner_core: dependency: transitive description: name: build_runner_core url: "https://pub.dartlang.org" source: hosted - version: "7.2.3" + version: "7.2.7" built_collection: dependency: transitive description: @@ -259,14 +259,14 @@ packages: name: built_value url: "https://pub.dartlang.org" source: hosted - version: "8.3.2" + version: "8.4.3" cached_network_image: dependency: "direct main" description: name: cached_network_image url: "https://pub.dartlang.org" source: hosted - version: "3.2.2" + version: "3.2.3" cached_network_image_platform_interface: dependency: transitive description: @@ -294,7 +294,7 @@ packages: name: checked_yaml url: "https://pub.dartlang.org" source: hosted - version: "2.0.1" + version: "2.0.2" cli_util: dependency: transitive description: @@ -315,7 +315,7 @@ packages: name: code_builder url: "https://pub.dartlang.org" source: hosted - version: "4.3.0" + version: "4.4.0" collection: dependency: "direct main" description: @@ -323,6 +323,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.16.0" + color: + dependency: transitive + description: + name: color + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" colorize: dependency: transitive description: @@ -350,14 +357,14 @@ packages: name: connectivity_plus_macos url: "https://pub.dartlang.org" source: hosted - version: "1.2.4" + version: "1.2.6" connectivity_plus_platform_interface: dependency: transitive description: name: connectivity_plus_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.2.1" + version: "1.2.3" connectivity_plus_web: dependency: transitive description: @@ -378,7 +385,7 @@ packages: name: convert url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "3.1.1" crypto: dependency: transitive description: @@ -392,7 +399,7 @@ packages: name: csslib url: "https://pub.dartlang.org" source: hosted - version: "0.17.1" + version: "0.17.2" cupertino_icons: dependency: "direct main" description: @@ -407,6 +414,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.2.4" + dartx: + dependency: transitive + description: + name: dartx + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" dbus: dependency: "direct main" description: @@ -448,14 +462,14 @@ packages: name: file url: "https://pub.dartlang.org" source: hosted - version: "6.1.2" + version: "6.1.4" file_picker: dependency: "direct main" description: name: file_picker url: "https://pub.dartlang.org" source: hosted - version: "5.2.2" + version: "5.2.5" fixnum: dependency: transitive description: @@ -490,7 +504,7 @@ packages: name: fluentui_system_icons url: "https://pub.dartlang.org" source: hosted - version: "1.1.189" + version: "1.1.190" flutter: dependency: "direct main" description: flutter @@ -538,6 +552,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0+1" + flutter_gen_core: + dependency: transitive + description: + name: flutter_gen_core + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0+1" + flutter_gen_runner: + dependency: "direct dev" + description: + name: flutter_gen_runner + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0+1" flutter_hooks: dependency: "direct main" description: @@ -584,14 +612,14 @@ packages: name: flutter_riverpod url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" flutter_rust_bridge: dependency: transitive description: name: flutter_rust_bridge url: "https://pub.dartlang.org" source: hosted - version: "1.59.0" + version: "1.62.0" flutter_svg: dependency: "direct main" description: @@ -615,14 +643,14 @@ packages: name: freezed_annotation url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.0" frontend_server_client: dependency: transitive description: name: frontend_server_client url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "3.2.0" fuzzywuzzy: dependency: "direct main" description: @@ -636,28 +664,28 @@ packages: name: glob url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.1.1" go_router: dependency: "direct main" description: name: go_router url: "https://pub.dartlang.org" source: hosted - version: "5.2.0" + version: "5.2.4" graphs: dependency: transitive description: name: graphs url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.0" gsettings: dependency: transitive description: name: gsettings url: "https://pub.dartlang.org" source: hosted - version: "0.2.5" + version: "0.2.7" hive: dependency: "direct main" description: @@ -685,7 +713,7 @@ packages: name: hooks_riverpod url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" html: dependency: "direct main" description: @@ -706,21 +734,21 @@ packages: name: http_multi_server url: "https://pub.dartlang.org" source: hosted - version: "3.2.0" + version: "3.2.1" http_parser: dependency: transitive description: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "4.0.1" + version: "4.0.2" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted - version: "3.2.0" + version: "3.3.0" intl: dependency: transitive description: @@ -734,14 +762,14 @@ packages: name: introduction_screen url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "3.1.4" io: dependency: transitive description: name: io url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.0.4" js: dependency: transitive description: @@ -755,7 +783,7 @@ packages: name: json_annotation url: "https://pub.dartlang.org" source: hosted - version: "4.5.0" + version: "4.8.0" libadwaita: dependency: "direct main" description: @@ -776,7 +804,7 @@ packages: name: lints url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.1" logger: dependency: "direct main" description: @@ -790,14 +818,14 @@ packages: name: logging url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.1.1" macos_ui: dependency: "direct main" description: name: macos_ui url: "https://pub.dartlang.org" source: hosted - version: "1.7.5" + version: "1.7.6" marquee: dependency: "direct main" description: @@ -839,7 +867,7 @@ packages: name: mime url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.4" nm: dependency: transitive description: @@ -853,7 +881,7 @@ packages: name: oauth2 url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.1" octo_image: dependency: transitive description: @@ -867,7 +895,7 @@ packages: name: package_config url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.1.0" package_info_plus: dependency: "direct main" description: @@ -902,7 +930,7 @@ packages: name: package_info_plus_web url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.0.6" package_info_plus_windows: dependency: transitive description: @@ -916,7 +944,7 @@ packages: name: palette_generator url: "https://pub.dartlang.org" source: hosted - version: "0.3.3" + version: "0.3.3+2" path: dependency: "direct main" description: @@ -944,21 +972,21 @@ packages: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" + version: "2.0.12" path_provider_android: dependency: transitive description: name: path_provider_android url: "https://pub.dartlang.org" source: hosted - version: "2.0.14" - path_provider_ios: + version: "2.0.22" + path_provider_foundation: dependency: transitive description: - name: path_provider_ios + name: path_provider_foundation url: "https://pub.dartlang.org" source: hosted - version: "2.0.9" + version: "2.1.1" path_provider_linux: dependency: transitive description: @@ -966,20 +994,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.7" - path_provider_macos: - dependency: transitive - description: - name: path_provider_macos - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.6" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.4" + version: "2.0.5" path_provider_windows: dependency: transitive description: @@ -1035,7 +1056,7 @@ packages: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "5.0.0" + version: "5.1.0" platform: dependency: transitive description: @@ -1058,21 +1079,28 @@ packages: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.3" + pointycastle: + dependency: transitive + description: + name: pointycastle + url: "https://pub.dartlang.org" + source: hosted + version: "3.6.2" pool: dependency: transitive description: name: pool url: "https://pub.dartlang.org" source: hosted - version: "1.5.0" + version: "1.5.1" popover: dependency: "direct main" description: name: popover url: "https://pub.dartlang.org" source: hosted - version: "0.2.6+3" + version: "0.2.8" popover_gtk: dependency: transitive description: @@ -1093,28 +1121,28 @@ packages: name: pub_semver url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" pubspec_parse: dependency: transitive description: name: pubspec_parse url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" puppeteer: dependency: transitive description: name: puppeteer url: "https://pub.dartlang.org" source: hosted - version: "2.15.0" + version: "2.22.0" queue: dependency: "direct main" description: name: queue url: "https://pub.dartlang.org" source: hosted - version: "3.1.0+1" + version: "3.1.0+2" recase: dependency: transitive description: @@ -1128,14 +1156,14 @@ packages: name: riverpod url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" rxdart: dependency: transitive description: name: rxdart url: "https://pub.dartlang.org" source: hosted - version: "0.27.3" + version: "0.27.7" screen_retriever: dependency: transitive description: @@ -1163,42 +1191,35 @@ packages: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "2.0.15" + version: "2.0.17" shared_preferences_android: dependency: transitive description: name: shared_preferences_android url: "https://pub.dartlang.org" source: hosted - version: "2.0.12" - shared_preferences_ios: + version: "2.0.15" + shared_preferences_foundation: dependency: transitive description: - name: shared_preferences_ios + name: shared_preferences_foundation url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.2" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" - shared_preferences_macos: - dependency: transitive - description: - name: shared_preferences_macos - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.4" + version: "2.1.3" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" shared_preferences_web: dependency: transitive description: @@ -1212,7 +1233,7 @@ packages: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" shelf: dependency: transitive description: @@ -1280,14 +1301,14 @@ packages: name: sqflite url: "https://pub.dartlang.org" source: hosted - version: "2.0.2+1" + version: "2.2.4+1" sqflite_common: dependency: transitive description: name: sqflite_common url: "https://pub.dartlang.org" source: hosted - version: "2.2.1+1" + version: "2.4.2+2" stack_trace: dependency: transitive description: @@ -1315,7 +1336,7 @@ packages: name: stream_transform url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" string_scanner: dependency: transitive description: @@ -1329,7 +1350,7 @@ packages: name: synchronized url: "https://pub.dartlang.org" source: hosted - version: "3.0.0+2" + version: "3.0.1" term_glyph: dependency: transitive description: @@ -1344,13 +1365,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.4.12" + time: + dependency: transitive + description: + name: time + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.3" timing: dependency: transitive description: name: timing url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.0.1" tuple: dependency: "direct main" description: @@ -1371,56 +1399,56 @@ packages: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "6.1.7" + version: "6.1.8" url_launcher_android: dependency: transitive description: name: url_launcher_android url: "https://pub.dartlang.org" source: hosted - version: "6.0.17" + version: "6.0.23" url_launcher_ios: dependency: transitive description: name: url_launcher_ios url: "https://pub.dartlang.org" source: hosted - version: "6.0.17" + version: "6.0.18" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.0.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.0.2" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" + version: "2.0.14" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.0.3" uuid: dependency: "direct main" description: @@ -1455,21 +1483,21 @@ packages: name: watcher url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" web_socket_channel: dependency: transitive description: name: web_socket_channel url: "https://pub.dartlang.org" source: hosted - version: "2.2.0" + version: "2.3.0" win32: dependency: transitive description: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.1.3" window_manager: dependency: "direct main" description: @@ -1492,7 +1520,7 @@ packages: name: xdg_directories url: "https://pub.dartlang.org" source: hosted - version: "0.2.0+1" + version: "0.2.0+3" xml: dependency: transitive description: @@ -1513,7 +1541,7 @@ packages: name: youtube_explode_dart url: "https://pub.dartlang.org" source: hosted - version: "1.12.1" + version: "1.12.3" sdks: dart: ">=2.18.0 <3.0.0" flutter: ">=3.3.0" diff --git a/pubspec.yaml b/pubspec.yaml index 133b169b..67695335 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -58,7 +58,7 @@ dependencies: git: url: https://github.com/KRTirtho/platform_ui.git ref: 073cefb9c419fcb01cbdfd6ca2f9714eec23c83b - fluent_ui: ^4.0.3 + fluent_ui: 4.0.3 macos_ui: ^1.7.5 libadwaita: ^1.2.5 adwaita: ^0.5.2 @@ -81,6 +81,7 @@ dev_dependencies: hive_generator: ^2.0.0 build_runner: ^2.3.2 flutter_distributor: ^0.0.2 + flutter_gen_runner: ^5.1.0+1 flutter: uses-material-design: true @@ -100,3 +101,8 @@ flutter_icons: macos: generate: true image_path: "assets/spotube-logo.png" + +flutter_gen: + output: lib/collections + integrations: + flutter_svg: true \ No newline at end of file