131 lines
3.8 KiB
Dart
Executable File
131 lines
3.8 KiB
Dart
Executable File
import 'dart:async';
|
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:star_lock/main/lockMian/lockList/lockList_logic.dart';
|
|
|
|
import '../../../app_settings/app_settings.dart';
|
|
import '../../../blue/blue_manage.dart';
|
|
import '../../../network/api_repository.dart';
|
|
import '../../../talk/udp/udp_help.dart';
|
|
import '../../../tools/baseGetXController.dart';
|
|
import '../../../tools/storage.dart';
|
|
import '../entity/lockListInfo_entity.dart';
|
|
import 'lockMain_state.dart';
|
|
|
|
class LockMainLogic extends BaseGetXController {
|
|
final LockMainState state = LockMainState();
|
|
|
|
Future<LockListInfoEntity> getStarLockInfo(
|
|
{bool isUnShowLoading = false}) async {
|
|
LockListInfoEntity entity = await ApiRepository.to.getStarLockListInfo(
|
|
pageNo: pageNo,
|
|
pageSize: 50,
|
|
isUnShowLoading: isUnShowLoading,
|
|
);
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
|
loadMainDataLogic(entity.data!);
|
|
Storage.saveMainListData(entity.data!);
|
|
// return entity.data!;
|
|
}
|
|
// else {
|
|
// // showToast("数据请求失败");
|
|
// // state.dataLength.value = 0;
|
|
// LockListInfoGroupEntity? lockListInfoGroupEntity = await Storage.getLockMainListData();
|
|
// loadMainDataLogic(lockListInfoGroupEntity!);
|
|
// }
|
|
return entity;
|
|
}
|
|
|
|
void loadMainDataLogic(LockListInfoGroupEntity entity) {
|
|
if (entity.groupList!.isEmpty) {
|
|
state.dataLength.value = 0;
|
|
} else if (entity.groupList!.length == 1) {
|
|
final GroupList groupList = entity.groupList![0];
|
|
if (groupList.lockList!.length > 1) {
|
|
state.dataLength.value = 2;
|
|
} else {
|
|
state.dataLength.value = 1;
|
|
}
|
|
} else {
|
|
state.dataLength.value = 2;
|
|
}
|
|
state.lockListInfoGroupEntity.value = entity;
|
|
//检测控制器是否存在
|
|
if (Get.isRegistered<LockListLogic>()) {
|
|
//设置控制器数据并刷新
|
|
Get.find<LockListLogic>().setLockListInfoGroupEntity(entity);
|
|
}
|
|
}
|
|
|
|
/// 获取联网类型
|
|
void getConnectType() async {
|
|
var connectResult = await (Connectivity().checkConnectivity());
|
|
if (connectResult == ConnectivityResult.mobile) {
|
|
// _netType = "4G";
|
|
state.networkConnectionStatus.value = 1;
|
|
AppLog.log("网络连接: 4G 4G 4G 4G 4G");
|
|
} else if (connectResult == ConnectivityResult.wifi) {
|
|
// _netType = "wifi";
|
|
state.networkConnectionStatus.value = 1;
|
|
AppLog.log("网络连接: wifi wifi wifi wifi wifi");
|
|
} else {
|
|
// _netType = "未连接";
|
|
state.networkConnectionStatus.value = 0;
|
|
AppLog.log("网络连接: 未连接 未连接 未连接 未连接 未连接");
|
|
// showToast("网络访问失败,请检查网络是否正常");
|
|
}
|
|
}
|
|
|
|
/// 判断网络是否连接
|
|
Future<bool> isConnected() async {
|
|
var connectResult = await (Connectivity().checkConnectivity());
|
|
return connectResult != ConnectivityResult.none;
|
|
}
|
|
|
|
/// 设置网络切换监听
|
|
connectListener() async {
|
|
Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
|
|
AppLog.log("设置网络切换监听:$result");
|
|
if (state.networkConnectionStatus.value == 0 &&
|
|
result != ConnectivityResult.none) {
|
|
// 从无网络到有网络
|
|
state.networkConnectionStatus.value = 1;
|
|
getStarLockInfo();
|
|
}
|
|
});
|
|
}
|
|
|
|
@override
|
|
void onReady() {
|
|
// TODO: implement onReady
|
|
super.onReady();
|
|
|
|
// 开启UDP
|
|
UdpHelp().openUDP();
|
|
|
|
BlueManage();
|
|
}
|
|
|
|
@override
|
|
void onInit() {
|
|
// TODO: implement onInit
|
|
super.onInit();
|
|
|
|
// getLockInfo();
|
|
// 设置网络变化监听
|
|
// connectListener();
|
|
// 获取网络连接状态
|
|
// getConnectType();
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
// TODO: implement onClose
|
|
super.onClose();
|
|
|
|
// refreshController.dispose();
|
|
// _teamEvent.cancel();
|
|
// state.timer.cancel();
|
|
}
|
|
}
|