@@ -6,6 +6,7 @@ import 'package:iris/globals.dart';
66import 'package:iris/models/player.dart' ;
77import 'package:iris/models/storages/local.dart' ;
88import 'package:iris/models/store/app_state.dart' ;
9+ import 'package:iris/store/use_ui_store.dart' ;
910import 'package:iris/widgets/dialogs/show_open_link_dialog.dart' ;
1011import 'package:iris/widgets/dialogs/show_rate_dialog.dart' ;
1112import 'package:iris/pages/player/control_bar/control_bar_slider.dart' ;
@@ -22,7 +23,6 @@ import 'package:iris/utils/platform.dart';
2223import 'package:iris/utils/resize_window.dart' ;
2324import 'package:iris/widgets/popup.dart' ;
2425import 'package:iris/pages/storages/storages.dart' ;
25- import 'package:window_manager/window_manager.dart' ;
2626
2727class ControlBar extends HookWidget {
2828 const ControlBar ({
@@ -47,6 +47,8 @@ class ControlBar extends HookWidget {
4747 final rate = useAppStore ().select (context, (state) => state.rate);
4848 final volume = useAppStore ().select (context, (state) => state.volume);
4949 final isMuted = useAppStore ().select (context, (state) => state.isMuted);
50+ final isFullScreen =
51+ useUiStore ().select (context, (state) => state.isFullScreen);
5052 final int playQueueLength =
5153 usePlayQueueStore ().select (context, (state) => state.playQueue.length);
5254 final playQueue =
@@ -379,36 +381,25 @@ class ControlBar extends HookWidget {
379381 ),
380382 Visibility (
381383 visible: isDesktop,
382- child: FutureBuilder <bool >(
383- future: () async {
384- return (isDesktop && await windowManager.isFullScreen ());
385- }(),
386- builder:
387- (BuildContext context, AsyncSnapshot <bool > snapshot) {
388- final isFullScreen = snapshot.data ?? false ;
389- return IconButton (
390- tooltip: isFullScreen
391- ? '${t .exit_fullscreen } ( Escape, F11, Enter )'
392- : '${t .enter_fullscreen } ( F11, Enter )' ,
393- icon: Icon (
394- isFullScreen
395- ? Icons .close_fullscreen_rounded
396- : Icons .open_in_full_rounded,
397- size: 19 ,
398- color: color,
399- ),
400- onPressed: () async {
401- showControl ();
402- if (isFullScreen) {
403- await windowManager.setFullScreen (false );
404- await resizeWindow (player.aspect);
405- } else {
406- await windowManager.setFullScreen (true );
407- }
408- },
409- style: ButtonStyle (overlayColor: overlayColor),
410- );
384+ child: IconButton (
385+ tooltip: isFullScreen
386+ ? '${t .exit_fullscreen } ( Escape, F11, Enter )'
387+ : '${t .enter_fullscreen } ( F11, Enter )' ,
388+ icon: Icon (
389+ isFullScreen
390+ ? Icons .close_fullscreen_rounded
391+ : Icons .open_in_full_rounded,
392+ size: 19 ,
393+ color: color,
394+ ),
395+ onPressed: () async {
396+ showControl ();
397+ if (isFullScreen) {
398+ await resizeWindow (player.aspect);
399+ }
400+ useUiStore ().updateFullScreen (! isFullScreen);
411401 },
402+ style: ButtonStyle (overlayColor: overlayColor),
412403 ),
413404 ),
414405 PopupMenuButton (
0 commit comments