import 'package:flisp_app/models/calendar.dart'; import 'package:flisp_app/models/flisp.dart'; import 'package:flisp_app/provider/app_provider.dart'; import 'package:flisp_app/provider/calendar_provider.dart'; import 'package:flisp_app/provider/flisp_provider.dart'; import 'package:flisp_app/utils/notify_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:hive_flutter/adapters.dart'; import 'package:provider/provider.dart'; import 'package:syncfusion_localizations/syncfusion_localizations.dart'; import 'layout/main_screen.dart'; import 'models/todo.dart'; import 'provider/todo_provider.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // 初始化提醒服务 final notifyService = NotifyService(); await notifyService.initialize(); // 初始化Hive await Hive.initFlutter(); // 注册适配器 Hive.registerAdapter(TodoAdapter()); Hive.registerAdapter(FlispAdapter()); Hive.registerAdapter(CalendarAdapter()); // // 打开Box // if (Hive.isBoxOpen('flisps')) { // await Hive.box('flisps').close(); // } // await Hive.deleteBoxFromDisk('flisps'); final todosBox = await Hive.openBox('todos'); // todosBox.clear(); final flispBox = await Hive.openBox('flisps'); // flispBox.clear(); final calendarBox = await Hive.openBox('calendars'); // calendarBox.clear(); // notifyService.cancelAllNotifications(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => AppProvider()), ChangeNotifierProvider(create: (_) => TodoProvider()), ChangeNotifierProvider(create: (_) => FlispProvider()), ChangeNotifierProvider(create: (_) => CalendarProvider()), ], child: Consumer( builder: (context, appProvider, child) { return MaterialApp( title: '闪灵', localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, SfGlobalLocalizations.delegate, ], supportedLocales: [const Locale('zh'), const Locale('zh', 'CN')], locale: Locale('zh', 'CN'), theme: appProvider.currentThemeData, home: const MainScreen(), ); }, ), ); } }