123 lines
3.3 KiB
Dart
123 lines
3.3 KiB
Dart
|
|
import 'dart:async';
|
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
|
|
import '../../../network/api_repository.dart';
|
|
import '../../../talk/udp/udp_help.dart';
|
|
import '../../../tools/baseGetXController.dart';
|
|
import '../../../tools/eventBusEventManage.dart';
|
|
import '../entity/lockListInfo_entity.dart';
|
|
import 'lockMain_state.dart';
|
|
|
|
class LockMainLogic extends BaseGetXController {
|
|
final LockMainState state = LockMainState();
|
|
|
|
Future<LockListInfoEntity> getStarLockInfo() async{
|
|
LockListInfoEntity entity = await ApiRepository.to.getStarLockListInfo(
|
|
pageNo:pageNo,
|
|
pageSize:50,
|
|
);
|
|
if(entity.errorCode!.codeIsSuccessful){
|
|
if(entity.data!.groupList!.isEmpty){
|
|
state.dataLength.value = 0;
|
|
}else if(entity.data!.groupList!.length == 1){
|
|
GroupList groupList = entity.data!.groupList![0];
|
|
if(groupList.lockList!.length > 1){
|
|
state.dataLength.value = 2;
|
|
}else{
|
|
state.dataLength.value = 1;
|
|
}
|
|
}else{
|
|
state.dataLength.value = 2;
|
|
}
|
|
state.lockListInfoEntity.value = entity;
|
|
// return entity.data!;
|
|
}else{
|
|
print("首页锁列表请求失败");
|
|
state.dataLength.value = 0;
|
|
}
|
|
return entity;
|
|
}
|
|
|
|
late StreamSubscription _teamEvent;
|
|
void _initLoadDataAction() {
|
|
_teamEvent = eventBus.on<RefreshLockListInfoDataEvent>().listen((event) {
|
|
// getLockInfo();
|
|
getStarLockInfo();
|
|
print("收到消息");
|
|
});
|
|
}
|
|
|
|
/// 获取联网类型
|
|
void getConnectType() async {
|
|
var connectResult = await (Connectivity().checkConnectivity());
|
|
|
|
if (connectResult == ConnectivityResult.mobile) {
|
|
// _netType = "4G";
|
|
state.networkConnectionStatus.value = 1;
|
|
// print("4G 4G 4G 4G 4G");
|
|
} else if (connectResult == ConnectivityResult.wifi) {
|
|
// _netType = "wifi";
|
|
state.networkConnectionStatus.value = 1;
|
|
// print("wifi wifi wifi wifi wifi");
|
|
} else {
|
|
// _netType = "未连接";
|
|
state.networkConnectionStatus.value = 0;
|
|
// print("未连接 未连接 未连接 未连接 未连接");
|
|
}
|
|
}
|
|
|
|
/// 判断网络是否连接
|
|
Future<bool> isConnected() async {
|
|
var connectResult = await (Connectivity().checkConnectivity());
|
|
return connectResult != ConnectivityResult.none;
|
|
}
|
|
|
|
/// 设置网络切换监听
|
|
connectListener() async {
|
|
Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
|
|
print("设置网络切换监听:$result");
|
|
if(state.networkConnectionStatus.value == 0 && result != ConnectivityResult.none){
|
|
// 从无网络到有网络
|
|
state.networkConnectionStatus.value = 1;
|
|
getStarLockInfo();
|
|
}
|
|
});
|
|
}
|
|
|
|
@override
|
|
void onReady() {
|
|
// TODO: implement onReady
|
|
super.onReady();
|
|
print("onReady()");
|
|
|
|
_initLoadDataAction();
|
|
|
|
// 开启UDP
|
|
UdpHelp().openUDP();
|
|
}
|
|
|
|
@override
|
|
void onInit() {
|
|
// TODO: implement onInit
|
|
super.onInit();
|
|
print("onInit()");
|
|
|
|
// getLockInfo();
|
|
// 设置网络变化监听
|
|
connectListener();
|
|
// 获取网络连接状态
|
|
getConnectType();
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
// TODO: implement onClose
|
|
super.onClose();
|
|
|
|
// refreshController.dispose();
|
|
_teamEvent.cancel();
|
|
// state.timer.cancel();
|
|
}
|
|
|
|
} |