import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:flutter/material.dart'; import 'package:dynamic_color/dynamic_color.dart'; import 'package:pilipala/common/widgets/custom_toast.dart'; import 'package:pilipala/http/init.dart'; import 'package:pilipala/pages/search/index.dart'; import 'package:pilipala/pages/video/detail/index.dart'; import 'package:pilipala/router/app_pages.dart'; import 'package:pilipala/pages/main/view.dart'; import 'package:pilipala/utils/data.dart'; import 'package:pilipala/utils/storage.dart'; import 'package:media_kit/media_kit.dart'; // Provides [Player], [Media], [Playlist] etc. void main() async { WidgetsFlutterBinding.ensureInitialized(); MediaKit.ensureInitialized(); await GStrorage.init(); runApp(const MyApp()); await Request.setCookie(); await Data.init(); await GStrorage.lazyInit(); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return DynamicColorBuilder( builder: ((lightDynamic, darkDynamic) { // 图片缓存 // PaintingBinding.instance.imageCache.maximumSizeBytes = 1000 << 20; return GetMaterialApp( title: 'PiLiPaLa', theme: ThemeData( fontFamily: 'HarmonyOS', colorScheme: lightDynamic ?? ColorScheme.fromSeed( seedColor: Colors.green, brightness: Brightness.light, ), useMaterial3: true, ), darkTheme: ThemeData( fontFamily: 'HarmonyOS', colorScheme: darkDynamic ?? ColorScheme.fromSeed( seedColor: Colors.green, brightness: Brightness.dark, ), useMaterial3: true, ), localizationsDelegates: const [ GlobalCupertinoLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], locale: const Locale("zh", "CN"), supportedLocales: const [Locale("zh", "CN"), Locale("en", "US")], fallbackLocale: const Locale("zh", "CN"), getPages: Routes.getPages, home: const MainApp(), builder: FlutterSmartDialog.init( toastBuilder: (String msg) => CustomToast(msg: msg), ), navigatorObservers: [ VideoDetailPage.routeObserver, SearchPage.routeObserver ], ); }), ); } }