57 lines
1.5 KiB
Dart
57 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
import 'package:hive_flutter/hive_flutter.dart';
|
|
|
|
import 'core/constants/app_constants.dart';
|
|
import 'core/services/storage_service.dart';
|
|
import 'core/utils/app_router.dart';
|
|
import 'core/utils/app_theme.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
// Initialize Hive
|
|
await Hive.initFlutter();
|
|
|
|
// Initialize Storage Service
|
|
await StorageService.init();
|
|
|
|
runApp(
|
|
ProviderScope(
|
|
child: const DramaLingApp(),
|
|
),
|
|
);
|
|
}
|
|
|
|
class DramaLingApp extends ConsumerWidget {
|
|
const DramaLingApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
final router = ref.watch(routerProvider);
|
|
|
|
return ScreenUtilInit(
|
|
designSize: const Size(375, 812),
|
|
minTextAdapt: true,
|
|
splitScreenMode: true,
|
|
builder: (context, child) {
|
|
return MaterialApp.router(
|
|
title: AppConstants.appName,
|
|
debugShowCheckedModeBanner: false,
|
|
theme: AppTheme.lightTheme,
|
|
darkTheme: AppTheme.darkTheme,
|
|
themeMode: ThemeMode.system,
|
|
routerConfig: router,
|
|
builder: (context, widget) {
|
|
return MediaQuery(
|
|
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
|
|
child: widget!,
|
|
);
|
|
},
|
|
);
|
|
},
|
|
);
|
|
}
|
|
} |