starwork_flutter/lib/base/app_initialization.dart

73 lines
2.4 KiB
Dart

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:starwork_flutter/api/base_api_service.dart';
import 'package:starwork_flutter/api/service/common_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<void> initializeApp() async {
try {
WidgetsFlutterBinding.ensureInitialized();
setSystemStatusBar();
await SharedPreferencesUtils.init();
initEasyLoading();
Get.put(BaseApiService());
Get.put(StarCloudBaseApiService());
Get.put(CommonApiService(Get.find<BaseApiService>()));
Get.put(UserApiService(Get.find<BaseApiService>()));
Get.put(StarCloudApiService(Get.find<StarCloudBaseApiService>()));
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() {
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 = false;
}
}