66 lines
2.2 KiB
Dart
66 lines
2.2 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:shared_preferences/shared_preferences.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/common/utils/shared_preferences_utils.dart';
|
|
import 'package:starwork_flutter/i18n/app_i18n.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(CommonApiService(Get.find<BaseApiService>()));
|
|
Get.put(UserApiService(Get.find<BaseApiService>()));
|
|
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,
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|