From d98f39721ded957e9e51f0fcd351103e695320bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CDaisyWu=E2=80=9D?= <“18682150237@163.com”> Date: Tue, 16 Jul 2024 15:45:36 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=8Cfix=E6=8F=90=E6=B5=8B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9A=E8=93=9D=E7=89=99APP=E4=BE=A7=E6=BB=91?= =?UTF-8?q?=E5=88=A0=E9=99=A4=EF=BC=8C=E9=BB=98=E8=AE=A4=E6=9C=89=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=AF=86=E7=A0=81=E5=AD=98=E5=9C=A8=E5=B7=B2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=202=EF=BC=8Cfix=E6=8F=90=E6=B5=8B=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=9A=E4=BF=AE=E6=94=B9=E4=BA=BA=E8=84=B8=E5=A7=93=E5=90=8D?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=90=8D=E5=AD=97=E8=B7=9F=E6=97=B6=E6=95=88?= =?UTF-8?q?=E4=B8=80=E8=B5=B7=E4=BF=AE=E6=94=B9=E5=90=8E=EF=BC=8C=E9=80=80?= =?UTF-8?q?=E5=87=BA=E5=86=8D=E8=BF=9B=E5=85=A5=EF=BC=8C=E5=A7=93=E5=90=8D?= =?UTF-8?q?=E6=9C=AA=E4=BF=AE=E6=94=B9=E8=BF=87=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../face/faceDetail/faceDetail_logic.dart | 111 ++++++++++-------- .../lockSet/lockSet/lockSet_page.dart | 16 ++- 2 files changed, 73 insertions(+), 54 deletions(-) diff --git a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart index b4f75049..623643ae 100755 --- a/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart +++ b/lib/main/lockDetail/face/faceDetail/faceDetail_logic.dart @@ -1,4 +1,3 @@ - import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; @@ -32,7 +31,8 @@ class FaceDetailLogic extends BaseGetXController { _replySubscription = EventBusManager().eventBus!.on().listen((Reply reply) { // 添加人脸开始(此处用作删除人脸) - if ((reply is SenderAddFaceReply) && (state.ifCurrentScreen.value == true)) { + if ((reply is SenderAddFaceReply) && + (state.ifCurrentScreen.value == true)) { _replyAddFaceBegin(reply); } }); @@ -48,18 +48,21 @@ class FaceDetailLogic extends BaseGetXController { state.sureBtnState.value = 0; cancelBlueConnetctToastTimer(); dismissEasyLoading(); - if(state.isDeletFace.value == true){ + if (state.isDeletFace.value == true) { deletFaceData(); - }else{ + } else { editFaceData(); } break; case 0x06: //无权限 - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); - final List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = + changeStringListToIntList(privateKey!); - final List? signKey = await Storage.getStringList(saveBlueSignKey); + final List? signKey = + await Storage.getStringList(saveBlueSignKey); final List signKeyDataList = changeStringListToIntList(signKey!); final List token = reply.data.sublist(5, 9); @@ -67,25 +70,25 @@ class FaceDetailLogic extends BaseGetXController { Storage.setStringList(saveBlueToken, saveStrList); IoSenderManage.senderAddFaceCommand( - keyID:state.keyId.value.toString(), - userID:await Storage.getUid(), - faceNo:int.parse(state.typeNumber.value), - useCountLimit:0xffff, - operate:state.isDeletFace.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 - isAdmin:state.isAdministrator.value == true ? 1 : 0, - isForce:state.isStressFace.value == true ? 1 : 0, // 是否是胁迫 - isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 - weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 - startDate: int.parse(state.startDate.value)~/1000, - endDate: int.parse(state.endDate.value)~/1000, - startTime:DateTool().dateToHNString(state.startTime.value), - endTime:DateTool().dateToHNString(state.endTime.value), - needAuthor:1, - signKey:signKeyDataList, - privateKey:getPrivateKeyList, - token: token, - isBeforeAddUser: false - ); + keyID: state.keyId.value.toString(), + userID: await Storage.getUid(), + faceNo: int.parse(state.typeNumber.value), + useCountLimit: 0xffff, + operate: state.isDeletFace.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin: state.isAdministrator.value == true ? 1 : 0, + isForce: state.isStressFace.value == true ? 1 : 0, // 是否是胁迫 + isRound: state.keyType.value == 4 ? 1 : 0, // 是否是循环 + weekRound: DateTool().accordingTheCycleIntoTheCorrespondingNumber( + state.weekDay.value), // 周循环 + startDate: int.parse(state.startDate.value) ~/ 1000, + endDate: int.parse(state.endDate.value) ~/ 1000, + startTime: DateTool().dateToHNString(state.startTime.value), + endTime: DateTool().dateToHNString(state.endTime.value), + needAuthor: 1, + signKey: signKeyDataList, + privateKey: getPrivateKeyList, + token: token, + isBeforeAddUser: false); break; default: //失败 @@ -108,35 +111,38 @@ class FaceDetailLogic extends BaseGetXController { BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected) { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); - final List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = + changeStringListToIntList(privateKey!); final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); - final List? signKey = await Storage.getStringList(saveBlueSignKey); + final List? signKey = + await Storage.getStringList(saveBlueSignKey); final List signKeyDataList = changeStringListToIntList(signKey!); IoSenderManage.senderAddFaceCommand( - keyID:state.keyId.value.toString(), - userID:await Storage.getUid(), - faceNo:int.parse(state.typeNumber.value), - useCountLimit:0xffff, - operate:state.isDeletFace.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 - isAdmin:state.isAdministrator.value == true ? 1 : 0, - isForce:state.isStressFace.value == true ? 1 : 0, // 是否是胁迫 - isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 - weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 - startDate: int.parse(state.startDate.value)~/1000, - endDate: int.parse(state.endDate.value)~/1000, - startTime:DateTool().dateToHNString(state.startTime.value), - endTime:DateTool().dateToHNString(state.endTime.value), - needAuthor:1, - signKey:signKeyDataList, - privateKey:getPrivateKeyList, - token: getTokenList, - isBeforeAddUser: false - ); + keyID: state.keyId.value.toString(), + userID: await Storage.getUid(), + faceNo: int.parse(state.typeNumber.value), + useCountLimit: 0xffff, + operate: state.isDeletFace.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin: state.isAdministrator.value == true ? 1 : 0, + isForce: state.isStressFace.value == true ? 1 : 0, // 是否是胁迫 + isRound: state.keyType.value == 4 ? 1 : 0, // 是否是循环 + weekRound: DateTool().accordingTheCycleIntoTheCorrespondingNumber( + state.weekDay.value), // 周循环 + startDate: int.parse(state.startDate.value) ~/ 1000, + endDate: int.parse(state.endDate.value) ~/ 1000, + startTime: DateTool().dateToHNString(state.startTime.value), + endTime: DateTool().dateToHNString(state.endTime.value), + needAuthor: 1, + signKey: signKeyDataList, + privateKey: getPrivateKeyList, + token: getTokenList, + isBeforeAddUser: false); } else if (deviceConnectionState == BluetoothConnectionState.disconnected) { dismissEasyLoading(); @@ -170,11 +176,11 @@ class FaceDetailLogic extends BaseGetXController { faceName: state.changeNameController.text, ); if (entity.errorCode!.codeIsSuccessful) { - state.faceItemData.value.fingerprintName = state.changeNameController.text; + state.faceItemData.value.faceName = state.changeNameController.text; showToast('修改成功', something: () { Get.back(result: 'addScuess'); }); - }else{ + } else { Get.back(); } } @@ -210,13 +216,14 @@ class FaceDetailLogic extends BaseGetXController { useDateStr = '永久'.tr; } else if (state.keyType.value == 2) { useDateStr = - '${DateTool().dateToYMDHNString(state.startDate.value)}\n${DateTool().dateToYMDHNString(state.endDate.value)}'; + '${DateTool().dateToYMDHNString(state.startDate.value)}\n${DateTool().dateToYMDHNString(state.endDate.value)}'; } else if (state.keyType.value == 4) { useDateStr = - '${DateTool().dateToYMDString(state.startDate.value)}\n${DateTool().dateToYMDString(state.endDate.value)}'; + '${DateTool().dateToYMDString(state.startDate.value)}\n${DateTool().dateToYMDString(state.endDate.value)}'; } return useDateStr; } + @override void onReady() { super.onReady(); diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart index 5258cf72..d943e667 100755 --- a/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart +++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart @@ -27,7 +27,8 @@ class LockSetPage extends StatefulWidget { State createState() => _LockSetPageState(); } -class _LockSetPageState extends State with RouteAware { +class _LockSetPageState extends State + with WidgetsBindingObserver, RouteAware { final LockSetLogic logic = Get.put(LockSetLogic()); final LockSetState state = Get.find().state; @@ -41,6 +42,8 @@ class _LockSetPageState extends State with RouteAware { void initState() { super.initState(); + WidgetsBinding.instance.addObserver(this); + logic.initLoadDataAction(() { setState(() {}); }); @@ -646,7 +649,7 @@ class _LockSetPageState extends State with RouteAware { } Widget rightText(String rightTitle) { - return Text(rightTitle ?? '', + return Text(rightTitle, textAlign: TextAlign.end, style: TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor)); } @@ -771,10 +774,19 @@ class _LockSetPageState extends State with RouteAware { AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!); } + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state == AppLifecycleState.paused) { + // 应用程序推入后台时清空输入框内容 + logic.state.passwordTF.clear(); + } + } + @override void dispose() { /// 取消路由订阅 AppRouteObserver().routeObserver.unsubscribe(this); + WidgetsBinding.instance.removeObserver(this); super.dispose(); }