From 26a2bd3f5e4bba247633d81e19e8eb3574aaf673 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sun, 5 Jan 2025 20:49:45 -0500 Subject: [PATCH] Remove yaru dep --- lib/helpers/extension_helper.dart | 12 ++ lib/main.dart | 10 +- lib/models/decoration_type.dart | 6 + lib/models/decorations.dart | 6 +- lib/providers/decorations_provider.dart | 6 +- lib/providers/search_provider.dart | 2 +- lib/screens/{album_page.dart => album.dart} | 0 .../{playlist_page.dart => playlist.dart} | 0 lib/screens/tabs/home.dart | 97 ++++++----- lib/screens/tabs/search.dart | 120 ++++++------- lib/widgets/app.dart | 21 +-- lib/widgets/appbar.dart | 76 +++++---- lib/widgets/result.dart | 35 ++++ lib/widgets/select_button.dart | 4 + lib/widgets/thumbnail.dart | 20 ++- linux/flutter/generated_plugin_registrant.cc | 12 -- linux/flutter/generated_plugins.cmake | 3 - pubspec.lock | 160 ++++-------------- pubspec.yaml | 8 +- .../flutter/generated_plugin_registrant.cc | 3 - windows/flutter/generated_plugins.cmake | 1 - 21 files changed, 291 insertions(+), 311 deletions(-) create mode 100644 lib/models/decoration_type.dart rename lib/screens/{album_page.dart => album.dart} (100%) rename lib/screens/{playlist_page.dart => playlist.dart} (100%) create mode 100644 lib/widgets/result.dart diff --git a/lib/helpers/extension_helper.dart b/lib/helpers/extension_helper.dart index cd0cd6e..94e28a2 100644 --- a/lib/helpers/extension_helper.dart +++ b/lib/helpers/extension_helper.dart @@ -20,3 +20,15 @@ extension Capitalize on String { String toCapitalized() => length > 0 ? "${this[0].toUpperCase()}${substring(1).toLowerCase()}" : ""; } + +extension GetTheme on ThemeData { + ThemeData tweaked() => copyWith( + textTheme: (brightness == Brightness.light + ? ThemeData.light() + : ThemeData.dark()) + .textTheme, + navigationRailTheme: NavigationRailThemeData( + backgroundColor: Colors.transparent, + ), + ); +} diff --git a/lib/main.dart b/lib/main.dart index 8c63d63..ccbb8c2 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,14 +1,16 @@ import 'package:flutter/widgets.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:brook/widgets/app.dart'; -import 'package:window_size/window_size.dart'; -import 'package:yaru/yaru.dart'; +import 'package:window_manager/window_manager.dart'; void main() async { - await YaruWindowTitleBar.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized(); - setWindowMinSize(const Size.square(500)); + await windowManager.ensureInitialized(); + windowManager.waitUntilReadyToShow(WindowOptions( + minimumSize: Size.square(500), + titleBarStyle: TitleBarStyle.hidden, + )); runApp(const ProviderScope(child: App())); } diff --git a/lib/models/decoration_type.dart b/lib/models/decoration_type.dart new file mode 100644 index 0000000..9af957a --- /dev/null +++ b/lib/models/decoration_type.dart @@ -0,0 +1,6 @@ +enum DecorationType { + close, + maximize, + restore, + minimize, +} diff --git a/lib/models/decorations.dart b/lib/models/decorations.dart index aa0141a..93094a7 100644 --- a/lib/models/decorations.dart +++ b/lib/models/decorations.dart @@ -1,11 +1,11 @@ +import 'package:brook/models/decoration_type.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:yaru/yaru.dart'; part "decorations.freezed.dart"; @freezed class Decorations with _$Decorations { const factory Decorations({ - required List leading, - required List trailing, + required List leading, + required List trailing, }) = _Decorations; } diff --git a/lib/providers/decorations_provider.dart b/lib/providers/decorations_provider.dart index 8d471c4..c7d9410 100644 --- a/lib/providers/decorations_provider.dart +++ b/lib/providers/decorations_provider.dart @@ -1,16 +1,16 @@ +import 'package:brook/models/decoration_type.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import "package:riverpod_annotation/riverpod_annotation.dart"; import 'package:brook/models/decorations.dart'; import 'package:brook/providers/button_layout_provider.dart'; -import 'package:yaru/yaru.dart'; import "package:collection/collection.dart"; part 'decorations_provider.g.dart'; @riverpod Decorations decorations(Ref ref) { - List parse(String section) => section + List parse(String section) => section .split(",") - .map((button) => YaruWindowControlType.values.firstWhereOrNull( + .map((button) => DecorationType.values.firstWhereOrNull( (element) => element.name == button, )) .nonNulls diff --git a/lib/providers/search_provider.dart b/lib/providers/search_provider.dart index 91d4eb2..c9e9b45 100644 --- a/lib/providers/search_provider.dart +++ b/lib/providers/search_provider.dart @@ -20,7 +20,7 @@ Future> searchProvider( SearchType.songs => await yt.searchSongs(search), SearchType.albums => await yt.searchAlbums(search), SearchType.videos => await yt.searchVideos(search), - SearchType.artists => await yt.searchAlbums(search), + SearchType.artists => await yt.searchArtists(search), SearchType.playlists => await yt.searchPlaylists(search), }, ); diff --git a/lib/screens/album_page.dart b/lib/screens/album.dart similarity index 100% rename from lib/screens/album_page.dart rename to lib/screens/album.dart diff --git a/lib/screens/playlist_page.dart b/lib/screens/playlist.dart similarity index 100% rename from lib/screens/playlist_page.dart rename to lib/screens/playlist.dart diff --git a/lib/screens/tabs/home.dart b/lib/screens/tabs/home.dart index c18f6d6..0b64e17 100644 --- a/lib/screens/tabs/home.dart +++ b/lib/screens/tabs/home.dart @@ -1,13 +1,12 @@ import 'package:brook/helpers/extension_helper.dart'; import 'package:brook/providers/home_sections_provider.dart'; -import 'package:brook/screens/album_page.dart'; -import 'package:brook/screens/playlist_page.dart'; +import 'package:brook/screens/album.dart'; +import 'package:brook/screens/playlist.dart'; import 'package:brook/widgets/thumbnail.dart'; import 'package:dart_ytmusic_api/dart_ytmusic_api.dart'; import 'package:flutter/material.dart'; import 'package:brook/models/tab.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:yaru/yaru.dart'; class HomeTab extends ConsumerWidget implements TabPage { const HomeTab({super.key}); @@ -19,46 +18,56 @@ class HomeTab extends ConsumerWidget implements TabPage { String get title => "Home"; @override - Widget build(BuildContext context, WidgetRef ref) => ref - .watch(homeSectionsProvider) - .betterWhen( - data: (sections) => ListView( - padding: EdgeInsets.symmetric(vertical: 4), - children: sections - .where( - (element) => element.contents.isNotEmpty, - ) - .map( - (section) => YaruSection( - margin: EdgeInsets.symmetric(horizontal: 12, vertical: 8), - padding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), - headline: Text(section.title), - child: SizedBox( - height: 262, - child: ListView( - itemExtent: 268, - scrollDirection: Axis.horizontal, - children: section.contents - .map((song) => Padding( - padding: - EdgeInsets.only(right: 12, bottom: 4, top: 2), - child: Thumbnail( - url: song.thumbnails.first.url, - onClick: () => Navigator.of(context) - .push(MaterialPageRoute( - builder: (_) => switch (song) { - PlaylistDetailed _ => - PlaylistPage(), - AlbumDetailed _ => AlbumPage(), - _ => throw "Unknown type", - })), - ))) - .toList(), + Widget build(BuildContext context, WidgetRef ref) => + ref.watch(homeSectionsProvider).betterWhen( + data: (sections) => ListView( + padding: EdgeInsets.symmetric(vertical: 4), + children: sections + .where((element) => element.contents.isNotEmpty) + .map( + (section) => Column( + children: [ + ListTile( + title: Text( + section.title, + style: Theme.of(context).textTheme.displayMedium, + ), + subtitle: SizedBox( + height: 266, + child: ListView( + padding: EdgeInsets.only(top: 6), + itemExtent: 268, + scrollDirection: Axis.horizontal, + children: section.contents + .map( + (song) => Padding( + padding: EdgeInsets.only( + right: 12, + bottom: 4, + top: 2, + ), + child: Thumbnail( + url: song.thumbnails.first.url, + onClick: () => Navigator.of(context) + .push(MaterialPageRoute( + builder: (_) => switch (song) { + PlaylistDetailed _ => + PlaylistPage(), + AlbumDetailed _ => AlbumPage(), + _ => throw "Unknown type", + }, + )), + ), + ), + ) + .toList(), + ), + ), + ), + ], ), - ), - ), - ) - .toList(), - ), - ); + ) + .toList(), + ), + ); } diff --git a/lib/screens/tabs/search.dart b/lib/screens/tabs/search.dart index 44de994..2840f1c 100644 --- a/lib/screens/tabs/search.dart +++ b/lib/screens/tabs/search.dart @@ -1,4 +1,5 @@ import 'package:brook/helpers/extension_helper.dart'; +import 'package:brook/widgets/result.dart'; import 'package:collection/collection.dart'; import 'package:brook/providers/search_provider.dart'; import 'package:brook/widgets/thumbnail.dart'; @@ -9,7 +10,6 @@ import 'package:brook/models/search_type.dart'; import 'package:brook/models/tab.dart'; import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:yaru/yaru.dart'; class SearchTab extends HookConsumerWidget implements TabPage { const SearchTab({super.key}); @@ -28,9 +28,8 @@ class SearchTab extends HookConsumerWidget implements TabPage { return ListView( padding: EdgeInsets.symmetric(horizontal: 16, vertical: 4), children: [ - YaruSearchField( - hintText: "Search YouTube music...", - fillColor: Theme.of(context).colorScheme.surface, + SearchBar( + hintText: "Search YouTube Music...", onChanged: (value) => search.value = value, ), Padding( @@ -42,66 +41,71 @@ class SearchTab extends HookConsumerWidget implements TabPage { ), ), Divider(), - SizedBox(height: 8), ref .watch(searchProviderProvider( search: search.value, searchType: type.value, )) .betterWhen( - data: (results) => Column( - children: results - .mapIndexed((index, result) => switch (result) { - SongDetailed _ => Builder(builder: (_) { - final padding = - EdgeInsets.symmetric(horizontal: 16); - final leading = Thumbnail( - url: result.thumbnails.first.url, - onClick: () {}, - ); - return index == 0 - ? SizedBox( - height: 128, - child: YaruBanner.tile( - padding: padding, - icon: leading, - title: Text(result.name), - subtitle: Text(result.artist.name), - ), - ) - : YaruTile( - padding: padding, - leading: leading, - title: Text(result.name), - subtitle: Text(result.artist.name), - ); - }), - AlbumDetailed _ => Thumbnail( - url: result.thumbnails.first.url, - onClick: () {}, - ), - VideoDetailed _ => Thumbnail( - url: result.thumbnails.first.url, - onClick: () {}, - radius: 0, - ), - ArtistDetailed _ => Thumbnail( - url: result.thumbnails.first.url, - onClick: () {}, - ), - PlaylistDetailed _ => Thumbnail( - url: result.thumbnails.first.url, - onClick: () {}, - ), - _ => throw Exception( - "Unknown Detailed Result: ${result.runtimeType}", - ), - }) - .map((element) => Padding( - padding: EdgeInsets.only(bottom: 16), - child: element, - )) - .toList(), + data: (results) => LayoutBuilder( + builder: (_, constraints) { + final maxGridSize = (constraints.maxWidth / 3) - 4 * 3 * 2; + final gridSize = maxGridSize < 300 ? null : maxGridSize; + + return Wrap( + children: [ + ...results + .mapIndexed((index, result) => switch (result) { + SongDetailed _ => Result( + thumb: result.thumbnails.first.url, + onClick: () {}, + title: result.name, + subtitle: result.artist.name, + ), + AlbumDetailed _ => Result( + thumb: result.thumbnails.first.url, + onClick: () {}, + title: result.name, + subtitle: result.artist.name, + ), + VideoDetailed _ => Thumbnail( + url: result.thumbnails.first.url, + onClick: () {}, + child: Icon( + Icons.play_circle, + size: 48, + ), + ), + ArtistDetailed _ => Result( + thumb: result.thumbnails.first.url, + onClick: () {}, + title: result.name, + ), + PlaylistDetailed _ => Result( + thumb: result.thumbnails.first.url, + subtitle: result.artist.name, + onClick: () {}, + title: result.name, + ), + _ => throw Exception( + "Unknown Detailed Result: ${result.runtimeType}", + ), + }) + .mapIndexed((index, element) => index == 0 + ? element + : Padding( + padding: EdgeInsets.symmetric( + horizontal: 4, + vertical: 6, + ), + child: SizedBox( + width: gridSize?.toDouble(), + child: element, + ), + )) + ], + ); + }, ), ), ], diff --git a/lib/widgets/app.dart b/lib/widgets/app.dart index 18ebc73..502ce14 100644 --- a/lib/widgets/app.dart +++ b/lib/widgets/app.dart @@ -10,7 +10,6 @@ import "package:flutter/material.dart"; import 'package:fast_immutable_collections/fast_immutable_collections.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:yaru/yaru.dart'; import 'package:brook/providers/button_layout_provider.dart'; import 'package:brook/providers/warmup_provider.dart'; @@ -30,30 +29,28 @@ class App extends HookConsumerWidget { ytmusicProvider, ]))) .betterWhen( - data: (_) => YaruDetailPage( - appBar: const Appbar(title: "Brook"), - body: tabs[selected.value], + data: (_) => Scaffold( + appBar: Appbar(title: "Brook"), bottomNavigationBar: NavigationBar( destinations: tabs .map( (tab) => NavigationDestination( - icon: Icon(tab.icon), + icon: Icon( + tab.icon, + ), label: tab.title, ), ) .toList(), - selectedIndex: selected.value, onDestinationSelected: (index) => selected.value = index, + selectedIndex: selected.value, ), + body: tabs[selected.value], ), ), ), - theme: AdwaitaThemeData.light().copyWith( - textTheme: const YaruThemeData().theme?.textTheme, - ), - darkTheme: AdwaitaThemeData.dark().copyWith( - textTheme: const YaruThemeData().darkTheme?.textTheme, - ), + theme: AdwaitaThemeData.light().tweaked(), + darkTheme: AdwaitaThemeData.dark(), debugShowCheckedModeBanner: false, ); } diff --git a/lib/widgets/appbar.dart b/lib/widgets/appbar.dart index ef33132..8c85dc7 100644 --- a/lib/widgets/appbar.dart +++ b/lib/widgets/appbar.dart @@ -1,7 +1,9 @@ +import 'package:adwaita_icons/adwaita_icons.dart'; import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:brook/providers/decorations_provider.dart'; -import 'package:yaru/yaru.dart'; +import 'package:brook/models/decoration_type.dart'; +import 'package:window_manager/window_manager.dart'; class Appbar extends ConsumerWidget implements PreferredSizeWidget { final String title; @@ -11,42 +13,61 @@ class Appbar extends ConsumerWidget implements PreferredSizeWidget { }); @override - Size get preferredSize => const YaruWindowTitleBar().preferredSize; + Size get preferredSize => AppBar().preferredSize; @override Widget build(BuildContext context, WidgetRef ref) { - final window = YaruWindow.of(context); - - List getControl(List types) => [ - const SizedBox(width: 6), + List getControl(List types) => [ + SizedBox(width: 6), ...types.map( - (type) => Padding( - padding: const EdgeInsets.symmetric(horizontal: 6), - child: YaruWindowControl( - type: type, - onTap: switch (type) { - YaruWindowControlType.close => window.close, - YaruWindowControlType.maximize => () => window.state().then( - (state) => state.isMaximized! - ? window.restore() - : window.maximize(), + (type) { + final decoration = switch (type) { + DecorationType.close => ( + onClick: windowManager.close, + icon: AdwaitaIcons.window_close, + ), + DecorationType.maximize => ( + onClick: windowManager.maximize, + icon: AdwaitaIcons.window_maximize, + ), + DecorationType.minimize => ( + onClick: windowManager.minimize, + icon: AdwaitaIcons.window_minimize, + ), + DecorationType.restore => ( + onClick: windowManager.restore, + icon: AdwaitaIcons.window_restore, + ), + }; + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 6), + child: SizedBox( + width: 24, + height: 24, + child: IconButton( + padding: EdgeInsets.all(4), + onPressed: decoration.onClick, + style: ButtonStyle( + backgroundColor: WidgetStatePropertyAll( + Theme.of(context).colorScheme.surface, ), - YaruWindowControlType.minimize => window.minimize, - YaruWindowControlType.restore => window.restore, - }, - ), - ), + ), + icon: AdwaitaIcon(decoration.icon), + ), + ), + ); + }, ), - const SizedBox(width: 6), + SizedBox(width: 6), ]; final decorations = ref.watch(decorationsProvider); - - return YaruWindowTitleBar( + return AppBar( backgroundColor: Colors.transparent, + surfaceTintColor: Colors.transparent, title: Text(title), leading: Row(children: [ - SizedBox(width: 12), + ...getControl(decorations.leading), if (Navigator.of(context).canPop()) BackButton( style: ButtonStyle( @@ -55,12 +76,9 @@ class Appbar extends ConsumerWidget implements PreferredSizeWidget { padding: WidgetStatePropertyAll(EdgeInsets.zero), ), ), - ...getControl(decorations.leading) ]), - buttonPadding: const EdgeInsets.symmetric(horizontal: 12), actions: getControl(decorations.trailing), - border: BorderSide.none, - style: YaruTitleBarStyle.undecorated, + centerTitle: true, ); } } diff --git a/lib/widgets/result.dart b/lib/widgets/result.dart new file mode 100644 index 0000000..ca52f85 --- /dev/null +++ b/lib/widgets/result.dart @@ -0,0 +1,35 @@ +import 'package:brook/widgets/thumbnail.dart'; +import 'package:flutter/material.dart'; + +class Result extends StatelessWidget { + final String thumb; + final String title; + final String? subtitle; + final VoidCallback onClick; + const Result({ + required this.thumb, + required this.onClick, + required this.title, + this.subtitle, + super.key, + }); + + @override + Widget build(BuildContext context) => SizedBox( + height: 64, + child: ListTile( + leading: AspectRatio( + aspectRatio: 1, + child: Thumbnail( + url: thumb, + onClick: onClick, + ), + ), + title: Text( + title, + overflow: TextOverflow.ellipsis, + ), + subtitle: subtitle == null ? null : Text(subtitle!), + ), + ); +} diff --git a/lib/widgets/select_button.dart b/lib/widgets/select_button.dart index dfbec07..1fb28ed 100644 --- a/lib/widgets/select_button.dart +++ b/lib/widgets/select_button.dart @@ -17,6 +17,10 @@ class SelectButton extends HookWidget { Widget build(BuildContext context) { final oldValue = useState({}); return SegmentedButton( + style: SegmentedButton.styleFrom( + side: BorderSide.none, + backgroundColor: Theme.of(context).colorScheme.surface, + ), segments: values .map((value) => ButtonSegment( value: value, diff --git a/lib/widgets/thumbnail.dart b/lib/widgets/thumbnail.dart index a14bd57..2c1f949 100644 --- a/lib/widgets/thumbnail.dart +++ b/lib/widgets/thumbnail.dart @@ -4,21 +4,29 @@ class Thumbnail extends StatelessWidget { final String url; final VoidCallback onClick; final double radius; + final ShapeBorder? border; + final Widget? child; const Thumbnail({ super.key, required this.url, required this.onClick, this.radius = 16, + this.border, + this.child, }); @override Widget build(BuildContext context) => ClipRRect( borderRadius: BorderRadius.all(Radius.circular(radius)), - child: InkWell( - onTap: onClick, - child: Image.network( - url, - fit: BoxFit.fill, - )), + child: Material( + child: Ink.image( + image: NetworkImage(url), + fit: BoxFit.fill, + child: InkWell( + onTap: onClick, + child: child, + ), + ), + ), ); } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 31a7a81..c8f3dcc 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,26 +6,14 @@ #include "generated_plugin_registrant.h" -#include #include #include -#include -#include void fl_register_plugins(FlPluginRegistry* registry) { - g_autoptr(FlPluginRegistrar) gtk_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "GtkPlugin"); - gtk_plugin_register_with_registrar(gtk_registrar); g_autoptr(FlPluginRegistrar) screen_retriever_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverLinuxPlugin"); screen_retriever_linux_plugin_register_with_registrar(screen_retriever_linux_registrar); g_autoptr(FlPluginRegistrar) window_manager_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin"); window_manager_plugin_register_with_registrar(window_manager_registrar); - g_autoptr(FlPluginRegistrar) window_size_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "WindowSizePlugin"); - window_size_plugin_register_with_registrar(window_size_registrar); - g_autoptr(FlPluginRegistrar) yaru_window_linux_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "YaruWindowLinuxPlugin"); - yaru_window_linux_plugin_register_with_registrar(yaru_window_linux_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 57b563b..00303ac 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,11 +3,8 @@ # list(APPEND FLUTTER_PLUGIN_LIST - gtk screen_retriever_linux window_manager - window_size - yaru_window_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/pubspec.lock b/pubspec.lock index c35b73f..48f47f7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -22,6 +22,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + adwaita_icons: + dependency: "direct main" + description: + name: adwaita_icons + sha256: "2d6f3cc7499b33375a65fe885255cd24cf77afc4726c5b0d4f185e1bb4611ba6" + url: "https://pub.dev" + source: hosted + version: "0.2.1" analyzer: dependency: transitive description: @@ -38,30 +46,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.11.3" - animated_vector: - dependency: transitive - description: - name: animated_vector - sha256: f1beb10e6fcfd8bd15abb788e20345def786d1c7391d7c1426bb2a1f2adf2132 - url: "https://pub.dev" - source: hosted - version: "0.2.2" - animated_vector_annotations: - dependency: transitive - description: - name: animated_vector_annotations - sha256: "07c1ea603a2096f7eb6f1c2b8f16c3c330c680843ea78b7782a3217c3c53f979" - url: "https://pub.dev" - source: hosted - version: "0.2.2" - archive: - dependency: transitive - description: - name: archive - sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" - url: "https://pub.dev" - source: hosted - version: "4.0.2" args: dependency: transitive description: @@ -348,6 +332,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_adaptive_scaffold: + dependency: "direct main" + description: + name: flutter_adaptive_scaffold + sha256: "8c515a2cb8abb3a567f8e77f10b33f47bb6fcadfe31f62364e0aca36280cdf93" + url: "https://pub.dev" + source: hosted + version: "0.3.1" flutter_hooks: dependency: "direct main" description: @@ -372,11 +364,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.1" - flutter_web_plugins: + flutter_svg: dependency: transitive - description: flutter - source: sdk - version: "0.0.0" + description: + name: flutter_svg + sha256: "6ff9fa12892ae074092de2fa6a9938fb21dbabfdaa2ff57dc697ff912fc8d4b2" + url: "https://pub.dev" + source: hosted + version: "1.1.6" freezed: dependency: "direct dev" description: @@ -426,14 +421,6 @@ packages: url: "https://github.com/Henry-Hiles/gsettings.dart" source: git version: "0.2.8" - gtk: - dependency: transitive - description: - name: gtk - sha256: e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c - url: "https://pub.dev" - source: hosted - version: "2.1.0" hooks_riverpod: dependency: "direct main" description: @@ -482,14 +469,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" - image: - dependency: transitive - description: - name: image - sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" - url: "https://pub.dev" - source: hosted - version: "4.5.2" intl: dependency: "direct overridden" description: @@ -602,6 +581,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_drawing: + dependency: transitive + description: + name: path_drawing + sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977 + url: "https://pub.dev" + source: hosted + version: "1.0.1" path_parsing: dependency: transitive description: @@ -618,22 +605,6 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.2" - platform: - dependency: transitive - description: - name: platform - sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" - url: "https://pub.dev" - source: hosted - version: "3.1.6" - platform_linux: - dependency: transitive - description: - name: platform_linux - sha256: "856cfc9871e3ff3df6926991729d24bba9b70d0229ae377fa08b562344baaaa8" - url: "https://pub.dev" - source: hosted - version: "0.1.2" plugin_platform_interface: dependency: transitive description: @@ -650,14 +621,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" - posix: - dependency: transitive - description: - name: posix - sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a - url: "https://pub.dev" - source: hosted - version: "6.0.1" pub_semver: dependency: transitive description: @@ -952,22 +915,13 @@ packages: source: hosted version: "3.0.1" window_manager: - dependency: transitive + dependency: "direct main" description: name: window_manager sha256: "732896e1416297c63c9e3fb95aea72d0355f61390263982a47fd519169dc5059" url: "https://pub.dev" source: hosted version: "0.4.3" - window_size: - dependency: "direct main" - description: - path: "plugins/window_size" - ref: HEAD - resolved-ref: eb3964990cf19629c89ff8cb4a37640c7b3d5601 - url: "https://github.com/google/flutter-desktop-embedding" - source: git - version: "0.1.0" xdg_directories: dependency: transitive description: @@ -992,54 +946,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.3" - yaru: - dependency: "direct main" - description: - name: yaru - sha256: b582f1d552a5c40796cd1a00dbfe2b5e075d14655103eb60d284d7b183dfbc0a - url: "https://pub.dev" - source: hosted - version: "5.1.0" - yaru_window: - dependency: transitive - description: - name: yaru_window - sha256: bc2a1df3c6f33477b47f84bf0a9325df411dbb7bd483ac88e5bc1c019d2f2560 - url: "https://pub.dev" - source: hosted - version: "0.2.1+1" - yaru_window_linux: - dependency: transitive - description: - name: yaru_window_linux - sha256: "46a1a0743dfd45794cdaf8c5b3a48771ab73632b50a693f59c83b07988e96689" - url: "https://pub.dev" - source: hosted - version: "0.2.1" - yaru_window_manager: - dependency: transitive - description: - name: yaru_window_manager - sha256: b36c909fa082a7cb6e2f259d4357e16f08d3d8ab086685b81d1916e457100d1e - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - yaru_window_platform_interface: - dependency: transitive - description: - name: yaru_window_platform_interface - sha256: "93493d7e17a9e887ffa94c518bc5a4b3eb5425c009446e3294c689cb1a87b7e1" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - yaru_window_web: - dependency: transitive - description: - name: yaru_window_web - sha256: "31468aeb515f72d5eeddcd62773094a4f48fee96f7f0494f8ce53ad3b38054f1" - url: "https://pub.dev" - source: hosted - version: "0.0.3+1" sdks: dart: ">=3.5.4 <4.0.0" - flutter: ">=3.24.3" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 147aea1..3575fd5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,14 +20,12 @@ dependencies: hooks_riverpod: ^2.5.1 json_annotation: ^4.9.0 riverpod_annotation: ^2.3.5 - yaru: ^5.1.0 - window_size: - git: - url: https://github.com/google/flutter-desktop-embedding - path: plugins/window_size dart_ytmusic_api: git: url: https://github.com/Henry-Hiles/dart_ytmusic_api + flutter_adaptive_scaffold: ^0.3.1 + window_manager: ^0.4.3 + adwaita_icons: ^0.2.1 dependency_overrides: collection: ^1.19.1 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 83a200a..c6fe39a 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,13 +8,10 @@ #include #include -#include void RegisterPlugins(flutter::PluginRegistry* registry) { ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi")); WindowManagerPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("WindowManagerPlugin")); - WindowSizePluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("WindowSizePlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 43c43d9..5e3bc3d 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -5,7 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST screen_retriever_windows window_manager - window_size ) list(APPEND FLUTTER_FFI_PLUGIN_LIST