fix: 1、修复对讲收不到对讲请求bug。2、修复根据名字T9A判断是否判断设备处于长休眠状态改为支持项判断。3、修复国际化bug

This commit is contained in:
魏少阳 2024-11-25 11:07:29 +08:00
parent 99f56e95fd
commit f562eb085e
5 changed files with 31 additions and 38 deletions

View File

@ -1,5 +1,4 @@
class LockListInfoEntity { class LockListInfoEntity {
LockListInfoEntity( LockListInfoEntity(
{this.errorCode, this.description, this.errorMsg, this.data}); {this.errorCode, this.description, this.errorMsg, this.data});
@ -29,7 +28,6 @@ class LockListInfoEntity {
} }
class LockListInfoGroupEntity { class LockListInfoGroupEntity {
LockListInfoGroupEntity( LockListInfoGroupEntity(
{this.groupList, this.pageNo, this.pageSize, this.pages, this.total}); {this.groupList, this.pageNo, this.pageSize, this.pages, this.total});
@ -65,7 +63,6 @@ class LockListInfoGroupEntity {
} }
class GroupList { class GroupList {
GroupList({this.groupName, this.groupId, this.lockList}); GroupList({this.groupName, this.groupId, this.lockList});
GroupList.fromJson(Map<String, dynamic> json) { GroupList.fromJson(Map<String, dynamic> json) {
@ -98,7 +95,7 @@ class GroupList {
return data; return data;
} }
GroupList copy(){ GroupList copy() {
return GroupList( return GroupList(
groupName: groupName, groupName: groupName,
groupId: groupId, groupId: groupId,
@ -108,7 +105,6 @@ class GroupList {
} }
class LockListInfoItemEntity { class LockListInfoItemEntity {
LockListInfoItemEntity({ LockListInfoItemEntity({
this.keyId, this.keyId,
this.lockId, this.lockId,
@ -285,13 +281,12 @@ class LockListInfoItemEntity {
return isLockOwner == 1; return isLockOwner == 1;
} }
LockListInfoItemEntity copy(){ LockListInfoItemEntity copy() {
return LockListInfoItemEntity.fromJson(toJson()); return LockListInfoItemEntity.fromJson(toJson());
} }
} }
class Bluetooth { class Bluetooth {
Bluetooth( Bluetooth(
{this.bluetoothDeviceId, {this.bluetoothDeviceId,
this.bluetoothDeviceName, this.bluetoothDeviceName,
@ -324,7 +319,6 @@ class Bluetooth {
} }
class LockFeature { class LockFeature {
LockFeature({ LockFeature({
this.password, this.password,
this.icCard, this.icCard,
@ -337,6 +331,7 @@ class LockFeature {
this.videoIntercom, this.videoIntercom,
this.isSupportCatEye, this.isSupportCatEye,
this.isSupportBackupBattery, this.isSupportBackupBattery,
this.isNoSupportedBlueBroadcast,
}); });
LockFeature.fromJson(Map<String, dynamic> json) { LockFeature.fromJson(Map<String, dynamic> json) {
@ -351,6 +346,7 @@ class LockFeature {
videoIntercom = json['videoIntercom']; videoIntercom = json['videoIntercom'];
isSupportCatEye = json['isSupportCatEye']; isSupportCatEye = json['isSupportCatEye'];
isSupportBackupBattery = json['isSupportBackupBattery']; isSupportBackupBattery = json['isSupportBackupBattery'];
isNoSupportedBlueBroadcast = json['isNoSupportedBlueBroadcast'];
} }
int? password; int? password;
int? icCard; int? icCard;
@ -363,6 +359,7 @@ class LockFeature {
int? videoIntercom; int? videoIntercom;
int? isSupportCatEye; int? isSupportCatEye;
int? isSupportBackupBattery; int? isSupportBackupBattery;
int? isNoSupportedBlueBroadcast;
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{}; final Map<String, dynamic> data = <String, dynamic>{};
@ -377,12 +374,12 @@ class LockFeature {
data['videoIntercom'] = videoIntercom; data['videoIntercom'] = videoIntercom;
data['isSupportCatEye'] = isSupportCatEye; data['isSupportCatEye'] = isSupportCatEye;
data['isSupportBackupBattery'] = isSupportBackupBattery; data['isSupportBackupBattery'] = isSupportBackupBattery;
data['isNoSupportedBlueBroadcast'] = isNoSupportedBlueBroadcast;
return data; return data;
} }
} }
class LockSetting { class LockSetting {
LockSetting({ LockSetting({
this.attendance, this.attendance,
this.appUnlockOnline, this.appUnlockOnline,

View File

@ -4,6 +4,7 @@ import 'dart:io';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifiEntity.dart'; import 'package:star_lock/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifiEntity.dart';
import '../../app_settings/app_settings.dart';
import '../../network/api_repository.dart'; import '../../network/api_repository.dart';
import '../../tools/storage.dart'; import '../../tools/storage.dart';
import 'udp_manage.dart'; import 'udp_manage.dart';
@ -14,7 +15,8 @@ class UdpHelp {
openUDP() async { openUDP() async {
// ip跟端口 // ip跟端口
final ConfiguringWifiEntity entity = await ApiRepository.to.getWifiLockServiceIpAndPort(); final ConfiguringWifiEntity entity =
await ApiRepository.to.getWifiLockServiceIpAndPort();
if (entity.errorCode! == 0) { if (entity.errorCode! == 0) {
UDPManage(); UDPManage();
// UDPManage().initUdp(); // UDPManage().initUdp();
@ -50,7 +52,7 @@ class UdpHelp {
ipList: serversList, ipList: serversList,
tokenStr: 'b989fa15f75c2ac02718b7c9bb64f80e', tokenStr: 'b989fa15f75c2ac02718b7c9bb64f80e',
); );
// AppLog.log('发送心跳了'); AppLog.log('发送心跳了');
} else { } else {
timer.cancel(); timer.cancel();
} }
@ -117,13 +119,6 @@ class UdpData {
// } // }
// } // }
// import 'dart:async'; // import 'dart:async';
// //
// class UdpSendCondition { // class UdpSendCondition {
@ -169,4 +164,4 @@ class UdpData {
// await Future.delayed(Duration(seconds: 1)); // await Future.delayed(Duration(seconds: 1));
// } // }
// sendPort.send('done'); // sendPort.send('done');
// } // }

View File

@ -62,16 +62,16 @@ class UDPManage {
// AppLog.log('Udp ----> host:$host port:$port'); // AppLog.log('Udp ----> host:$host port:$port');
var addressIListenFrom = InternetAddress.anyIPv4; var addressIListenFrom = InternetAddress.anyIPv4;
int portIListenOn = 62288; int portIListenOn = 62288;
if(addressIListenFrom.address != '0.0.0.0'){ // if(addressIListenFrom.address != '0.0.0.0'){
RawDatagramSocket.bind(addressIListenFrom, portIListenOn) RawDatagramSocket.bind(addressIListenFrom, portIListenOn)
.then((RawDatagramSocket socket) { .then((RawDatagramSocket socket) {
_udpSocket = socket; _udpSocket = socket;
///广 ///广
_udpSocket!.broadcastEnabled = true; _udpSocket!.broadcastEnabled = true;
_onReceiveData(socket); _onReceiveData(socket);
}); });
} // }
} }
void _onReceiveData(RawDatagramSocket socket) { void _onReceiveData(RawDatagramSocket socket) {
@ -79,7 +79,8 @@ class UDPManage {
if (event == RawSocketEvent.read) { if (event == RawSocketEvent.read) {
Datagram? dg = socket.receive(); Datagram? dg = socket.receive();
try { try {
// AppLog.log('Did received data on the stream (length --> ${dg!.data.length}) dg!.data:${dg!.data}'); // AppLog.log(
// 'Did received data on the stream (length --> ${dg!.data.length}) dg!.data:${dg!.data}');
// EventBusManager().eventBusFir(EventReceiveModel(data: dg?.data,sendChannel: DataChannel.udp)); // EventBusManager().eventBusFir(EventReceiveModel(data: dg?.data,sendChannel: DataChannel.udp));
CommandUDPReciverManager.appDataReceive(dg!.data); CommandUDPReciverManager.appDataReceive(dg!.data);
} catch (e) { } catch (e) {

View File

@ -1,4 +1,3 @@
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
@ -21,7 +20,7 @@ class CommandUDPReciverManager {
if (dataSize < 4) { if (dataSize < 4) {
return; return;
} }
// AppLog.log("appReceiveUDPData:$data"); AppLog.log('appReceiveUDPData:$data');
final Uint8List data1 = Uint8List.fromList(data); final Uint8List data1 = Uint8List.fromList(data);
if (data1.length == 1) { if (data1.length == 1) {
@ -35,7 +34,8 @@ class CommandUDPReciverManager {
// AppLog.log("心跳包反馈 在线状态"); // AppLog.log("心跳包反馈 在线状态");
} else if (data[7] == 3) { } else if (data[7] == 3) {
// [Toast.show(msg: "您已在其他设备登录")]; // [Toast.show(msg: "您已在其他设备登录")];
EasyLoading.showToast('您的账号在异地登录,如非本人,请尽快修改密码'.tr, duration: 2000.milliseconds); EasyLoading.showToast('您的账号在异地登录,如非本人,请尽快修改密码'.tr,
duration: 2000.milliseconds);
} }
} else if (data[6] == 150) { } else if (data[6] == 150) {
// if( [Pub getApp].isBack){ // if( [Pub getApp].isBack){
@ -44,15 +44,15 @@ class CommandUDPReciverManager {
// } // }
// //
final beiCallType = data[8] & 0xff; final int beiCallType = data[8] & 0xff;
// AppLog.log("被呼叫类型$beiCallType"); AppLog.log('被呼叫类型$beiCallType');
switch (beiCallType) { switch (beiCallType) {
case 1: case 1:
{ {
// //
// lockId // lockId
final lockId = data.sublist(9, 29); final List<int> lockId = data.sublist(9, 29);
final lockIdStr = utf8String(lockId); final String lockIdStr = utf8String(lockId);
UDPManage().lockId = lockIdStr; UDPManage().lockId = lockIdStr;
UDPTalkClass().status = 0; UDPTalkClass().status = 0;
UDPTalkClass().beCallW(data: data); UDPTalkClass().beCallW(data: data);

View File

@ -13,6 +13,7 @@ import 'package:url_launcher/url_launcher.dart';
import '../common/XSConstantMacro/XSConstantMacro.dart'; import '../common/XSConstantMacro/XSConstantMacro.dart';
import '../main/lockMian/lockMain/lockMain_logic.dart'; import '../main/lockMian/lockMain/lockMain_logic.dart';
import 'NativeInteractionTool.dart'; import 'NativeInteractionTool.dart';
import 'commonDataManage.dart';
import 'dateTool.dart'; import 'dateTool.dart';
import 'manager/client_manager.dart'; import 'manager/client_manager.dart';
import 'showIosTipView.dart'; import 'showIosTipView.dart';
@ -92,9 +93,8 @@ class BaseGetXController extends GetxController {
} }
void showBlueConnetctToast() { void showBlueConnetctToast() {
bool isContains = BlueManage().connectDeviceName.contains('T9A');
showToast( showToast(
"${'操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。'.tr}${isContains == true ? "如果是全自动锁,请使屏幕变亮".tr : ""}"); "${'操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。'.tr}${CommonDataManage().currentKeyInfo.lockFeature?.isNoSupportedBlueBroadcast == 1 ? "如果是全自动锁,请使屏幕变亮".tr : ""}");
} }
void showToast(String status, void showToast(String status,