import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/mine/about/debug/debug_tool.dart'; import 'package:star_lock/network/api_provider.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/bugly/bugly_tool.dart'; import 'package:star_lock/tools/device_info_service.dart'; import 'package:star_lock/tools/platform_info_services.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/tools/xs_jPhush.dart'; import 'package:star_lock/translations/trans_lib.dart'; import 'app.dart'; import 'app_settings/app_settings.dart'; import 'tools/store_service.dart'; // 该文件不可作为编译入口,请查看 flavorizr.yaml 中的说明 FutureOr main() async { WidgetsFlutterBinding.ensureInitialized(); await _setCommonServices(); // 设置国际化信息 await _initTranslation(); final bool isLogin = await getLoginStatus(); if (isLogin) { await privacySDKInitialization(); Future.delayed(const Duration(milliseconds: 500), getAppInfo); } WidgetsBinding.instance.addPostFrameCallback((_) async { final bool? openDeBug = await Storage.getBool(isOpenDeBug); if (openDeBug == true) { DeBug.showFloatWidget(); } }); runApp(MyApp(isLogin: isLogin)); if (AppPlatform.isAndroid) { const SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(statusBarColor: Colors.transparent); SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle); } } // 设置国际化信息 Future _initTranslation() async => TranslationLoader.loadTranslation( zhSource: 'images/lan/lan_zh.json', enSource: 'images/lan/lan_en.json', keySource: 'images/lan/lan_keys.json', ); // 设置包名服务设备信息 Future _setCommonServices() async { await Get.putAsync(() => StoreService().init()); Get.put(ApiProvider()); Get.put(ApiRepository(Get.find())); if (F.isLite) { //上架审核注释 获取设备信息 // await Get.putAsync(() => DeviceInfoService().init()); } else { await Get.putAsync(() => DeviceInfoService().init()); } } //关于隐私协议的初始化 Future privacySDKInitialization() async { await Get.putAsync(() => PlatformInfoService().init()); await BuglyTool.init(); await XSJPushProvider().initJPushService(); }