import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; import 'package:starcloud/sdk/starcloud.dart'; import 'package:starwork_flutter/api/base_api_service.dart'; import 'package:starwork_flutter/api/service/common_api_service.dart'; import 'package:starwork_flutter/api/service/team_api_service.dart'; import 'package:starwork_flutter/api/service/user_api_service.dart'; import 'package:starwork_flutter/api/starcloud/starcloud_api_service.dart'; import 'package:starwork_flutter/api/starcloud/starcloud_base_api_service.dart'; import 'package:starwork_flutter/common/utils/shared_preferences_utils.dart'; import 'package:starwork_flutter/flavors.dart'; import 'package:starwork_flutter/views/login/login_controller.dart'; import 'package:starwork_flutter/views/main/main_controller.dart'; class AppInitialization { static Future initializeApp() async { try { WidgetsFlutterBinding.ensureInitialized(); setSystemStatusBar(); await SharedPreferencesUtils.init(); initEasyLoading(); StarCloudSDK.init( clientId: F.starCloudClientId, clientSecret: F.starCloudSecret, environmentUrl: F.starCloudUrl, ); Get.put(BaseApiService()); Get.put(StarCloudBaseApiService()); Get.put(CommonApiService(Get.find())); Get.put(UserApiService(Get.find())); Get.put(TeamApiService(Get.find())); Get.put(StarCloudApiService(Get.find())); Get.put(LoginController()); Get.put(MainController()); print('✅ API services registered'); } catch (e, stack) { print('❌ Initialization failed: $e'); print(stack); rethrow; } } static void setSystemStatusBar() { if (Platform.isAndroid) { // 全局设置:状态栏图标为黑色 SystemChrome.setSystemUIOverlayStyle( const SystemUiOverlayStyle( statusBarColor: Colors.transparent, statusBarIconBrightness: Brightness.dark, ), ); } SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, ]); } static void initEasyLoading() async { await EasyLoading.instance ..displayDuration = const Duration(milliseconds: 1000) ..indicatorType = EasyLoadingIndicatorType.wanderingCubes ..loadingStyle = EasyLoadingStyle.dark ..indicatorSize = 45.0 ..radius = 10.0 ..progressColor = Colors.yellow ..backgroundColor = Colors.green ..indicatorColor = Colors.yellow ..textColor = Colors.yellow ..maskColor = Colors.blue.withOpacity(0.5) ..userInteractions = false ..dismissOnTap = true; } }