82 lines
2.8 KiB
Dart
82 lines
2.8 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: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<void> 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<BaseApiService>()));
|
|
Get.put(UserApiService(Get.find<BaseApiService>()));
|
|
Get.put(TeamApiService(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() 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;
|
|
}
|
|
}
|