skywood/lib/main.dart

82 lines
2.3 KiB
Dart

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<void> 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());
}
}