import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:making_school_asignment_app/common/config/app_config.dart';
import 'package:making_school_asignment_app/common/config/colorUtils.dart';
import 'package:making_school_asignment_app/common/store/user_store.dart';
import 'package:making_school_asignment_app/common/utils/storage.dart';
import 'package:making_school_asignment_app/common/utils/utils.dart';
import 'package:making_school_asignment_app/routes/app_pages.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';

void main() async {
// 在测试模式下运行Get
  Get.testMode = true;

  /// 初始化本地存储
  await Get.putAsync(() => StorageService().init());

  /// 初始化UserStore
  Get.put<UserStore>(UserStore().init());

  SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top, SystemUiOverlay.bottom]); // 屏幕刘海
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); // 屏幕强制竖屏
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
      designSize: const Size(AppConfig.UI_WIDTH, AppConfig.UI_HEIGHT),
      /*  minTextAdapt: true,
      splitScreenMode: true,*/
      builder: () => GetMaterialApp(
        title: '作业',
        debugShowCheckedModeBanner: false,
        theme: ThemeData(
            brightness: Brightness.light,
            primarySwatch: createMaterialColor(const Color.fromRGBO(46, 91, 255, 1)),
            primaryColor: const Color.fromRGBO(46, 91, 255, 1),
            // textTheme: Typography.englishLike2018.apply(fontSizeFactor: 1.sp,),
            primaryTextTheme: TextTheme(
              bodyLarge: TextStyle(fontSize: 14.sp, color: Colors.black87),
            ),
            useMaterial3: false,
            colorScheme: const ColorScheme.light(
              // 修改亮色主题的主题颜色
              primary: Color.fromRGBO(46, 91, 255, 1),
            )),
        enableLog: true,
        logWriterCallback: (text, {bool isError = false}) {
          // isError ? LoggerUtils.e(text) : LoggerUtils.i(text);
        },
        // 这里是国际化支持，确保添加flutter_localizations依赖
        supportedLocales: const [
          Locale('zh', 'CN'), // 中文简体
          // 其他支持的locale可以在这里添加
        ],
        localizationsDelegates: const [
          // ...其他delegates
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate,
          GlobalCupertinoLocalizations.delegate, // 如果你使用了Cupertino风格的组件
          // ...添加其他必要的delegates
        ],
        localeResolutionCallback: (locale, supportedLocales) {
          // 在这里可以实现自定义的locale解析逻辑
          // 如果需要，返回你想要的Locale对象
          return locale;
        },
        //默认专场动画
        defaultTransition: Transition.fade,
        //初始化路由页面
        initialRoute: Routes.startPage,

        /// 路由表
        getPages: AppPages.pages,
        builder: EasyLoading.init(
          builder: (context, child) {
            return MediaQuery(
              //Setting font does not change with system font size
              data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
              child: Scaffold(
                body: GestureDetector(onTap: () => Utils.hideKeyboard(), child: child),
              ),
            );
          },
        ),
        // home: const MyHomePage(title: 'Flutter Demo Home Page'),
      ),
    );
  }
}
