1+ import 'dart:io' ;
12import 'package:flutter/material.dart' hide ThemeMode;
23import 'package:flutter/material.dart' as theme;
34import 'package:flutter_riverpod/flutter_riverpod.dart' ;
@@ -6,6 +7,9 @@ import 'package:aqloss/widgets/settings_watcher.dart';
67import 'package:window_manager/window_manager.dart' ;
78import 'screens/home_screen.dart' ;
89
10+ bool get _isDesktop =>
11+ Platform .isWindows || Platform .isLinux || Platform .isMacOS;
12+
913class AqlossApp extends ConsumerStatefulWidget {
1014 const AqlossApp ({super .key});
1115
@@ -19,19 +23,24 @@ class _AqlossAppState extends ConsumerState<AqlossApp> with WindowListener {
1923 @override
2024 void initState () {
2125 super .initState ();
22- windowManager.addListener (this );
23- _checkMaximize ();
26+ if (_isDesktop) {
27+ windowManager.addListener (this );
28+ _checkMaximize ();
29+ }
2430 }
2531
2632 @override
2733 void dispose () {
28- windowManager.removeListener (this );
34+ if (_isDesktop) windowManager.removeListener (this );
2935 super .dispose ();
3036 }
3137
3238 Future <void > _checkMaximize () async {
33- final fs = await windowManager.isMaximized ();
34- if (mounted) setState (() => _isMaximize = fs);
39+ if (! _isDesktop) return ;
40+ try {
41+ final fs = await windowManager.isMaximized ();
42+ if (mounted) setState (() => _isMaximize = fs);
43+ } catch (_) {}
3544 }
3645
3746 @override
@@ -57,12 +66,10 @@ class _AqlossAppState extends ConsumerState<AqlossApp> with WindowListener {
5766 theme: _buildLightTheme (),
5867 darkTheme: _buildDarkTheme (),
5968 builder: (context, child) {
60- return ClipRRect (
61- borderRadius: _isMaximize
62- ? BorderRadius .zero
63- : BorderRadius .circular (12.0 ),
64- child: child,
65- );
69+ final radius = _isDesktop && ! _isMaximize
70+ ? BorderRadius .circular (12.0 )
71+ : BorderRadius .zero;
72+ return ClipRRect (borderRadius: radius, child: child);
6673 },
6774 home: const SettingsWatcher (child: HomeScreen ()),
6875 );
0 commit comments