ToneSnap_FSX_Flutter/lib/main.dart

86 lines
3.0 KiB
Dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:tone_snap/components/base_easyloading.dart';
import 'package:tone_snap/data/app_config.dart';
import 'package:tone_snap/data/enum/app_side_enum.dart';
import 'package:tone_snap/data/storage/hive_storage.dart';
import 'package:tone_snap/res/themes/app_themes.dart';
import 'package:tone_snap/res/values/strings.dart';
import 'package:tone_snap/routes/app_pages.dart';
import 'package:tone_snap/routes/app_routes.dart';
import 'package:tone_snap/utils/file_util.dart';
import 'package:tone_snap/utils/local_path_util.dart';
import 'package:tone_snap/utils/permission_util.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isIOS) {
// 请求 App Tracking Transparency 权限
await PermissionUtil.checkPermission([Permission.appTrackingTransparency], showDialog: false);
}
// 初始化Hive
await initHive();
// 竖屏
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
runApp(const MyApp());
if (Platform.isAndroid) {
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
systemNavigationBarColor: Colors.black,
systemNavigationBarIconBrightness: Brightness.light,
));
}
// 删除缓存文件
FileUtil.deleteAllFilesInDirectory(await LocalPathUtil.getRecordingsDir());
FileUtil.deleteAllFilesInDirectory(await LocalPathUtil.getAssetsDir());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final easyLoading = EasyLoading.init();
return ScreenUtilInit(
// 以设计稿的尺寸为基准进行适配
designSize: const Size(375, 812),
minTextAdapt: true,
builder: (context, child) {
return GetMaterialApp(
title: appName,
debugShowCheckedModeBanner: false,
theme: AppConfig.appSideEnum == AppSideEnum.sideB ? musicooAppTheme : changeVoiceAppTheme,
darkTheme: AppConfig.appSideEnum == AppSideEnum.sideB ? musicooAppTheme : changeVoiceAppTheme,
themeMode: ThemeMode.dark,
initialRoute: AppConfig.appSideEnum == AppSideEnum.sideB ? AppRoutes.initial : AppRoutes.changeVoiceInitial,
getPages: AppPages.routes,
builder: (context, widget) {
BaseEasyLoading.initGlobalConfig();
widget = easyLoading(context, widget);
return MediaQuery(
// 设置文字大小不随系统设置改变
data: MediaQuery.of(context).copyWith(textScaler: TextScaler.noScaling),
child: widget,
);
},
);
},
);
}
}