@@ -32,6 +32,7 @@ import 'package:anymex/widgets/adaptive_wrapper.dart';
32
32
import 'package:anymex/widgets/animation/more_page_transitions.dart' ;
33
33
import 'package:anymex/widgets/common/glow.dart' ;
34
34
import 'package:anymex/widgets/common/navbar.dart' ;
35
+ import 'package:anymex/widgets/custom_widgets/anymex_titlebar.dart' ;
35
36
import 'package:anymex/widgets/helper/platform_builder.dart' ;
36
37
import 'package:anymex/widgets/non_widgets/settings_sheet.dart' ;
37
38
import 'package:anymex/widgets/non_widgets/snackbar.dart' ;
@@ -53,8 +54,6 @@ import 'package:media_kit/media_kit.dart';
53
54
import 'package:provider/provider.dart' ;
54
55
import 'package:super_sliver_list/super_sliver_list.dart' ;
55
56
import 'package:window_manager/window_manager.dart' ;
56
- import 'package:path_provider/path_provider.dart' ;
57
- import 'package:path/path.dart' as p;
58
57
59
58
late Isar isar;
60
59
WebViewEnvironment ? webViewEnvironment;
@@ -69,6 +68,9 @@ class MyHttpoverrides extends HttpOverrides {
69
68
70
69
class MyCustomScrollBehavior extends MaterialScrollBehavior {
71
70
@override
71
+ ScrollPhysics getScrollPhysics (BuildContext context) =>
72
+ const BouncingScrollPhysics ();
73
+ @override
72
74
Set <PointerDeviceKind > get dragDevices => {
73
75
PointerDeviceKind .touch,
74
76
PointerDeviceKind .mouse,
@@ -99,38 +101,7 @@ void main(List<String> args) async {
99
101
initializeDateFormatting ();
100
102
MediaKit .ensureInitialized ();
101
103
if (! Platform .isAndroid && ! Platform .isIOS) {
102
- await WindowManager .instance.ensureInitialized ();
103
- try {
104
- windowManager.setTitle ("AnymeX (●'◡'●)" );
105
- } catch (e) {
106
- windowManager.setTitle ("AnymeX" );
107
- }
108
- if (defaultTargetPlatform == TargetPlatform .windows) {
109
- try {
110
- final availableVersion =
111
- await WebViewEnvironment .getAvailableVersion ();
112
- if (availableVersion == null ) {
113
- snackBar (
114
- "Failed to find an installed WebView2 runtime or non-stable Microsoft Edge installation.\n\n "
115
- "Try installing WebView2 runtime from:\n "
116
- "https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section" ,
117
- );
118
- } else {
119
- final document = await getApplicationDocumentsDirectory ();
120
- webViewEnvironment = await WebViewEnvironment .create (
121
- settings: WebViewEnvironmentSettings (
122
- userDataFolder: p.join (document.path, 'flutter_inappwebview' ),
123
- ),
124
- );
125
- }
126
- } catch (e) {
127
- snackBar (
128
- "Error initializing WebView2: ${e .toString ()}\n\n "
129
- "Try reinstalling WebView2 runtime from:\n "
130
- "https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section" ,
131
- );
132
- }
133
- }
104
+ await AnymexTitleBar .initialize ();
134
105
} else {
135
106
SystemChrome .setEnabledSystemUIMode (SystemUiMode .edgeToEdge);
136
107
SystemChrome .setSystemUIOverlayStyle (const SystemUiOverlayStyle (
@@ -232,15 +203,15 @@ class MainApp extends StatelessWidget {
232
203
Navigator .pop (Get .context! );
233
204
} else if (event.logicalKey == LogicalKeyboardKey .f11) {
234
205
bool isFullScreen = await windowManager.isFullScreen ();
235
- windowManager .setFullScreen (! isFullScreen);
206
+ AnymexTitleBar .setFullScreen (! isFullScreen);
236
207
} else if (event.logicalKey == LogicalKeyboardKey .enter) {
237
208
final isAltPressed = HardwareKeyboard .instance.logicalKeysPressed
238
209
.contains (LogicalKeyboardKey .altLeft) ||
239
210
HardwareKeyboard .instance.logicalKeysPressed
240
211
.contains (LogicalKeyboardKey .altRight);
241
212
if (isAltPressed) {
242
213
bool isFullScreen = await windowManager.isFullScreen ();
243
- windowManager .setFullScreen (! isFullScreen);
214
+ AnymexTitleBar .setFullScreen (! isFullScreen);
244
215
}
245
216
}
246
217
}
@@ -257,6 +228,27 @@ class MainApp extends StatelessWidget {
257
228
? ThemeMode .light
258
229
: ThemeMode .dark,
259
230
home: const FilterScreen (),
231
+ builder: (context, child) {
232
+ final isDesktop = ! Platform .isAndroid && ! Platform .isIOS;
233
+
234
+ if (isDesktop) {
235
+ return Stack (
236
+ children: [
237
+ child! ,
238
+ Positioned (
239
+ top: 0 ,
240
+ left: 0 ,
241
+ right: 0 ,
242
+ child: Container (
243
+ color: Colors .transparent,
244
+ child: AnymexTitleBar .titleBar (),
245
+ ),
246
+ ),
247
+ ],
248
+ );
249
+ }
250
+ return child! ;
251
+ },
260
252
enableLog: true ,
261
253
logWriterCallback: (text, {isError = false }) async {
262
254
Logger .d (text);
@@ -295,7 +287,7 @@ class _FilterScreenState extends State<FilterScreen> {
295
287
const AnimeHomePage (),
296
288
const MangaHomePage (),
297
289
const MyLibrary (),
298
- const ExtensionScreen (),
290
+ const ExtensionScreen (disableGlow : true ),
299
291
];
300
292
301
293
final mobileRoutes = [
@@ -361,6 +353,8 @@ class _FilterScreenState extends State<FilterScreen> {
361
353
? ClipRRect (
362
354
borderRadius: BorderRadius .circular (59 ),
363
355
child: CachedNetworkImage (
356
+ width: 40 ,
357
+ height: 40 ,
364
358
fit: BoxFit .cover,
365
359
errorWidget: (context, url, error) =>
366
360
const Icon (IconlyBold .profile),
0 commit comments