FSX-Translate/lib/main.dart
2024-08-19 15:11:49 +08:00

98 lines
3.2 KiB
Dart

import 'package:bot_toast/bot_toast.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_translate/ads/interstitial_ad_manage.dart';
import 'package:flutter_translate/common/hive/hive.dart';
import 'package:flutter_translate/common/utils/log_utils.dart';
import 'package:flutter_translate/common/utils/shared_util.dart';
import 'package:flutter_translate/facebook/facebook_manager.dart';
import 'package:flutter_translate/firebase/firebase_analytics_manager.dart';
import 'package:flutter_translate/firebase/firebase_crashlytics_manager.dart';
import 'package:flutter_translate/firebase/firebase_options.dart';
import 'package:flutter_translate/global/app_themes.dart';
import 'package:flutter_translate/manager/att.dart';
import 'package:flutter_translate/manager/translate.dart';
import 'package:flutter_translate/manager/tts.dart';
import 'package:flutter_translate/router/get_gages.dart';
import 'package:get/get.dart';
import 'global/app_config.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await initHive();
// 初始化Firebase
try {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
await FirebaseCrashlyticsManager.setEnabled();
FirebaseCrashlyticsManager.recordFlutterError();
FirebaseCrashlyticsManager.recordError();
FirebaseAnalyticsManager.logLaunch();
} catch (e) {
Log.d("Firebase initialization error: $e");
}
await FacebookManager.init();
await InterstitialAdManager().init();
SharedUtil.initShared();
await Translate().init();
await Tts().init();
Att().attRequest();
// 竖屏
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
runApp(const App());
}
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(375, 812),
minTextAdapt: true,
builder: (context, child) {
final botToastBuilder = BotToastInit();
return KeyboardDismissOnTap(
child: GetMaterialApp(
debugShowCheckedModeBanner: false,
title: appName,
theme: lightTheme,
themeMode: ThemeMode.light,
initialRoute: GetPages.launch,
getPages: GetPages.routers,
builder: (context, widget) {
widget = botToastBuilder(context, widget);
// 设置文字大小不随系统设置改变
return MediaQuery.withNoTextScaling(child: widget);
},
routingCallback: (routing) {
Log.d("当前路由 => ${routing?.current}");
if (routing?.current == GetPages.launch) {
FirebaseAnalyticsManager.logLoadingPage();
}
if (routing?.current == GetPages.home) {
FirebaseAnalyticsManager.logHomepage();
}
},
),
);
},
);
}
}