import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:skywood/global/request/app_request.dart'; import 'package:skywood/global/tool/sky_routers.dart'; import 'package:skywood/main/main_root.dart'; import 'package:skywood/pages/controllers/user_controller.dart'; import 'package:skywood/utils/tools/sky_device_info.dart'; import 'package:skywood/utils/tools/token_manage.dart'; import 'global/const/common_color.dart'; import 'global/language/app_language.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await initServices(); Locale? locale = await AppLanguage.getLocale(); runApp(ComApp(home: MainRoot(), locale: locale)); } Future initServices() async { await SkyDeviceInfo.init(); await TokenManager().init(); await Get.putAsync(() async => UserController()); } class ComApp extends StatelessWidget { const ComApp({super.key, required this.home, this.locale}); final Widget home; final Locale? locale; @override Widget build(BuildContext context) { // Locale locale = await AppLanguage.getLocale(); return ScreenUtilInit( designSize: Size(375, 812), child: GetMaterialApp( debugShowCheckedModeBanner: false, translations: AppLanguage(), locale: locale ?? Get.deviceLocale, fallbackLocale: const Locale('en'), initialBinding: AppBindings(), initialRoute: SkyPages.initial, getPages: SkyPages.routes, theme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: CommonColor.primacyColor, ), appBarTheme: AppBarTheme(elevation: 0, centerTitle: true), splashColor: Colors.transparent, useMaterial3: true, scaffoldBackgroundColor: Colors.white, ), builder: FlutterSmartDialog.init( builder: (context, child) { return MediaQuery( data: MediaQuery.of( context, ).copyWith(textScaler: TextScaler.linear(1.0)), child: child!, ); }, ), onInit: () {}, ), ); } } class AppBindings extends Bindings { @override void dependencies() { // Get.lazyPut(() => UserController()); } }