121 lines
3.4 KiB
Dart
121 lines
3.4 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:connectivity/connectivity.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_native_splash/flutter_native_splash.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../router/app_routers.dart';
|
|
import '../../util/SharedPreferencesHelper.dart';
|
|
import '../dialog/YesAgreementDialog.dart';
|
|
import '../select_circle/logic.dart';
|
|
import 'state.dart';
|
|
|
|
import '../../network/api.dart';
|
|
import '../../network/dio_manager.dart';
|
|
import '../../util/device.dart';
|
|
import '../../util/util.dart';
|
|
import '../login/login/logic.dart';
|
|
|
|
class SplashLogic extends GetxController {
|
|
final SplashState state = SplashState();
|
|
|
|
@override
|
|
void onReady() async {
|
|
// TODO: implement onReady
|
|
super.onReady();
|
|
loadConfig();
|
|
checkStatus();
|
|
}
|
|
|
|
loadConfig() async {
|
|
var data1 =
|
|
await DioManager.instance.get(url: Api.getCircleList, params: {});
|
|
var bean1 = BaseResponse<ConfigBean>.fromJson(
|
|
data1, (data1) => ConfigBean.fromJson(data1));
|
|
if (bean1.code == 200) {
|
|
configBean = bean1.data!;
|
|
|
|
configBean.genderMap.forEach((key, value) {
|
|
genderList.add(value);
|
|
});
|
|
|
|
configBean.orientationMap.forEach((key, value) {
|
|
orientationList.add(value);
|
|
});
|
|
configBean.roleMap.forEach((key, value) {
|
|
roleList.add(value);
|
|
});
|
|
}
|
|
}
|
|
|
|
checkStatus() async {
|
|
if ((await getAuthorization()).isEmpty) {
|
|
if (Platform.isIOS) {
|
|
pushLoginPage();
|
|
return;
|
|
}
|
|
bool isAgreemement = await getAgreemement();
|
|
if (!isAgreemement) {
|
|
showReportDialog();
|
|
} else {
|
|
pushLoginPage();
|
|
}
|
|
} else {
|
|
var data =
|
|
await DioManager.instance.put(url: Api.refreshToken, params: {});
|
|
var bean = BaseResponse<LoginData>.fromJson(
|
|
data, (data) => LoginData.fromJson(data));
|
|
if (bean.code == 200) {
|
|
SharedPreferencesHelper.getInstance().then((sharedPreferences) {
|
|
sharedPreferences.setString(SharedPreferencesHelper.AUTHORIZATION,
|
|
bean.data!.Authorization.toString());
|
|
});
|
|
Get.offNamed(AppRoutes.Home);
|
|
return;
|
|
} else if (bean.code == 30002) {
|
|
SharedPreferencesHelper.getInstance().then((sharedPreferences) {
|
|
sharedPreferences.setString(SharedPreferencesHelper.AUTHORIZATION,
|
|
bean.data!.Authorization.toString());
|
|
Get.offNamed(AppRoutes.Complete_materialPage);
|
|
});
|
|
|
|
return;
|
|
} else if (bean.code == 5000 ||
|
|
bean.code == 5001 ||
|
|
bean.code == 5002 ||
|
|
bean.code == 5003) {
|
|
pushLoginPage();
|
|
return;
|
|
}
|
|
showOKToast(bean.msg.toString());
|
|
if (bean.code == 500) {
|
|
await Future.delayed(Duration(seconds: 5));
|
|
onInit();
|
|
} else {
|
|
SharedPreferencesHelper sp =
|
|
await SharedPreferencesHelper.getInstance();
|
|
String token = sp.getString(SharedPreferencesHelper.AUTHORIZATION);
|
|
if (token.isNotEmpty) {
|
|
Get.offNamed(AppRoutes.Home);
|
|
} else {
|
|
pushLoginPage();
|
|
}
|
|
}
|
|
|
|
// Get.toNamed(AppRoutes.Home);
|
|
}
|
|
}
|
|
|
|
void showReportDialog() {
|
|
FlutterNativeSplash.remove();
|
|
showDialog(
|
|
context: Get.context!,
|
|
barrierDismissible: false,
|
|
builder: (BuildContext context) {
|
|
return YesAgreementDialog();
|
|
});
|
|
}
|
|
}
|