From c3cc220729d5eed58441c457f5e57f3164754ee6 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 17 Jun 2024 10:52:06 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 12 ++++++++++++ pubspec.yaml | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index d7c56a09..94b98531 100755 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -198,6 +198,18 @@ android { } buildTypes { + debug { + // 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210) + // 为release模式设置混淆可以解决地图闪退问题 + // 真实的解决办法 + minifyEnabled false + shrinkResources false + productFlavors.local.signingConfig signingConfigs.debug + productFlavors.dev.signingConfig signingConfigs.debug + productFlavors.pre.signingConfig signingConfigs.debug + productFlavors.sky.signingConfig signingConfigs.sky + productFlavors.xhj.signingConfig signingConfigs.xhj + } release { // 高德地图导致release编译模式下应用闪退,根据:[高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法](https://blog.csdn.net/weixin_39370093/article/details/109631210) // 为release模式设置混淆可以解决地图闪退问题 diff --git a/pubspec.yaml b/pubspec.yaml index 5f636a34..1e12ca07 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -72,8 +72,9 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # 1.0.61+2024061103:xhj 线上环境,对外发布,提交测试:处理华为拒审 # 1.0.62+2024061301:xhj 线上环境,对外发布,提交测试:处理华为拒审 # 1.0.63+2024061302:xhj 线上环境,提交测试:回归 bug +# 1.0.65+2024061801:xhj 线上环境,提交测试:回归 bug -version: 1.0.63+2024061302 +version: 1.0.65+2024061801 environment: sdk: '>=2.12.0 <3.0.0' From 1681c86769c930200db33c287c92b94cdfcf566b Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 17 Jun 2024 14:13:30 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=E9=A2=86=E9=94=81=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=94=B9=E6=88=90=20v2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 8196 -> 10244 bytes .../addLock/nearbyLock/nearbyLock_logic.dart | 3 +++ lib/network/api.dart | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.DS_Store b/.DS_Store index 4b155f0ab01776fdffe0af67d2832ff00e7700f3..4647756838700ed5fc4fb31967591fb87089ac54 100755 GIT binary patch literal 10244 zcmeHMYitx%6uxI#+F3flv{D|GWmgukftGFyErlX(A3!TDAlo;^y1O&9V`pdT&g_=b zR7;Eo)CAuNzlehVBx-zM4ERViCPGBh5G9ci`62%C7k|)*o;!E8yIWd*pz_MhX6DQ} z_nv$2`R+OA?!7|@fx5UuNdz z2LT5G2LT5G2LT6xI|Tt;v+2d>G3q=W1RMk$1SSxm`N4}fr2(6cF>0j_d{|omq}eF8 zE_@g13sSF512!FF6ie^|rizrQg1yB6rjBy2T`yqMF-Dm>0ekZScF$n%P{8UP+xJ@4 z2?Q8*o(=*I0@ouz_wLzb73m`iG1K?&@Z;gm^s=bl&=6MjFv|F4o@nCq*{^Cd%cUEZ z5B8_d2DqaaQ8m@?pc!tC8)gh;Wh6+3i9t*vlPGfSL?9jMouoD%jfaCgZ=tY&68VjAoE9 zdV+$UFWnks6hjHCa#zTR$eN^ReQiUEWcGJs?$%6Yk0Qrhu6!tI z)k0BuykNn?qWc%Q-KuPi}@P^*Ce*~9dgyIi8tI)DodQxz(!c$X-(siCl}+M@L}DB9YQ zV3ym$!iRZRCw_Z~qA>=Ox$7HvUi{`U+HrHpFt-oN+Qg9R8+pFl=nuu@?L)Y{B{iCP z-kMmHQgn|ny&IMand0!wj zX3dE&u!7Bvj}byFj9qh+tWD__$W4}$YTRtKl0CS%?I$miBjf{elAI!E$T@O>TqeJh ztK<*zC%Fb$AV2{uf~8OjW#ET$SPwO@0XD)`XoWUthcFC)3Q^F(gi&}3o`(JK92|m| z;AMCf4#Qh;6pq0=a2!5{6YvRq3E#qLI0N6o1^5*%!*6f}{(@`pHt_~l$;Etkre)kP@~J?x|C(^erw%mFmd2(>gyuUw(0-at zL+ie|h4bcnm#rvUQ~glwgaa~vO}c2h>s#KQ5hIqjTOKjlQ>_>j7JJ$-9OS*JAY?(A z3`H@QhAlr%Yd;|PJmL%t7{)FaialZu1`A_XdP+SahcU`nzo$YFvoHc(mTsk|R1kq@ z%sQb)5VJ8B8M{$fEQrL#m^x2`N2HO(|JOeLJvmPO-R5H48uNn2A)M9KL7{e6?hF^hd1B|yosKE4BkdR ze;3|^_u*4G38&z5_`>q|arha2flHHoxFyqv;Y!MfCoPDX6&=n&;4VQRi;dGu&;K_~ z|NZ|ivBnvugMfp;%^(2T4Z(&w)J*<=o7@OJYxm;)INtQ4^~M;rRPaHoP`Py+j|@GI tFScd&*2F3g*s?K3Ep^nh)RD5&{Qv!9fbQ)7r#*Rd_W$;Y>Ak)G{|C%uI>!J2 literal 8196 zcmeHM&2Jk;6n~St$-1F*(teC{4(Q;HWKTKPHzUQ= zIwrLu`Pjk%apb^>6aN50;s6&A2atNIxFC@D1K`SyH#58O+DUom%AJNfz3dREuuwVLH~3uW4K&onoGy#L+he!cTheX!p9ZD8p0-_W(! zZxCD8TTvXMY#I#Mf(T-u(8SsbaPXmpJVog=)WAfYiQL;*rw~eM6D2mv+VV4vwE#aa z$aYM$@v#*fHqfHK*BeQ%I|!iuNQwp`;sQg@5a@x9aK90xquo=V%q&E#nAMJgWUaok z0^f_`nVAP<=uqMC@Q5~|jcT`zb>22&Gj2syGrTEk%bfdG%A3}TN81g3{0e8W=`k8g z2hX8sa_b$BIlNuvE#^eh*H8+rs1+OfRHt)cX69^ZZvLh1v!%|(bArEcZhO0^O_Zl! zS!!(fO~yaO@nRy$aSlgSeW&~gIk75oKAT3!e9m0qfO!Phmw|&ij%(yNk?mVJdf_{a zsz`2(7@~a@1MM9K3sLiMmpK15axc%G7s$>1OXM;$%Et8F>%ZSakTTkARMU^YxjJ0< zUPN`DMK7-Rw#Y{Iz0>!_GGzP*upUO7MYOsio-=5FdEonWveUtxIX`=`hxPgSfn9o6 zOy(iGRG`^6BhTJUB9Hu(&gfTNPh+omWb}!nPaf09j-MDCADft%d}?aqYiph^Z^w=V8@v(VK4QIYwaG9&_t4{UA2HJG7x6A23~_&bvL)@>YO0<2`|F?)8vT zCfi$BTZ?F1&+w}a{a9p&-1irG~RxMgM~n-q7@oONO$?v zSIsaqnMC$?|(;q7s&7b$MOFE8*#j1Q~&?~ diff --git a/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart b/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart index a1c8f50a..751c0e9c 100755 --- a/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart +++ b/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart @@ -285,6 +285,9 @@ class NearbyLockLogic extends BaseGetXController { index = index + 20; AppLog.log('mac地址 macAddressStr:$macAddressStr'); + //时区偏移 + state.lockInfo['timezoneOffset'] = DateTime.now().timeZoneOffset.inSeconds; + // 锁特征值字符串长度 final int featureValueLength = reply.data[index]; index = index + 1; diff --git a/lib/network/api.dart b/lib/network/api.dart index b9ff02c2..620cb749 100755 --- a/lib/network/api.dart +++ b/lib/network/api.dart @@ -23,7 +23,7 @@ abstract class Api { final String getLockNetTokenURL = '/lock/getLockNetToken'; //获取手机联网token final String updateLockUserNoURL = '/key/updateLockUserNo'; //更新锁用户NO - final String bindingBlueAdminURL = '/lock/bindAdmin'; //绑定蓝牙管理员 + final String bindingBlueAdminURL = '/v2/lock/bindAdmin'; //绑定蓝牙管理员 final String modifyKeyNameURL = '/key/modifyKeyName'; //修改锁名称 final String updateLockNameURL = '/lock/updateLockName'; //修改锁名(新) final String modifyKeyNameForAdminURL = From 3238359c541d83c3052bb55d52de950cf75ddfd7 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 17 Jun 2024 14:29:13 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=E5=A4=84=E7=90=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/lockDetail_logic.dart | 1 + .../lockDetail/lockDetail_page.dart | 62 +------------------ 2 files changed, 2 insertions(+), 61 deletions(-) diff --git a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index 22609de7..b0728bf9 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -179,6 +179,7 @@ class LockDetailLogic extends BaseGetXController { Future loadData({ required LockListInfoItemEntity lockListInfoItemEntity,required bool isOnlyOneData}) async { state.keyInfos.value = lockListInfoItemEntity; CommonDataManage().currentLockUserNo = state.keyInfos.value.lockUserNo!; + CommonDataManage().initUserNo = state.keyInfos.value.initUserNo!; CommonDataManage().currentKeyInfo = state.keyInfos.value; state.lockUserNo = state.keyInfos.value.lockUserNo!; diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 79e27ef0..9c235587 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -60,6 +60,7 @@ class _LockDetailPageState extends State _initRefreshLockDetailInfoDataEventAction(); logic.initReplySubscription(); logic.initLockSetOpenOrCloseCheckInRefreshLockDetailWithAttendanceAction(); + logic.loadData(lockListInfoItemEntity: widget.lockListInfoItemEntity, isOnlyOneData: widget.isOnlyOneData); } @override @@ -81,69 +82,8 @@ class _LockDetailPageState extends State }); } - Future loadData() async { - state.keyInfos.value = widget.lockListInfoItemEntity; - CommonDataManage().currentLockUserNo = state.keyInfos.value.lockUserNo!; - CommonDataManage().initUserNo = state.keyInfos.value.initUserNo!; - CommonDataManage().currentKeyInfo = state.keyInfos.value; - - state.lockUserNo = state.keyInfos.value.lockUserNo!; - - if (state.keyInfos.value.keyStatus == - XSConstantMacro.keyStatusWaitIneffective || - state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusFrozen || - state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusExpired || - state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusDeleted || - state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusReset) { - state.openDoorBtnisUneable.value = false; - state.bottomBtnisEable.value = false; - } else { - state.openDoorBtnisUneable.value = true; - state.bottomBtnisEable.value = true; - } - - state.isOnlyOneData = widget.isOnlyOneData; - state.senderUserId = state.keyInfos.value.senderUserId!; - state.isAttendance.value = state.keyInfos.value.lockSetting!.attendance!; - state.isOpenLockNeedOnline.value = - state.keyInfos.value.lockSetting!.appUnlockOnline!; - state.electricQuantity.value = state.keyInfos.value.electricQuantity!; - state.isOpenPassageMode.value = state.keyInfos.value.passageMode!; - state.lockAlias.value = state.keyInfos.value.lockAlias!; - Storage.setString(saveLockAlias, state.lockAlias.value); - - BlueManage().connectDeviceName = - state.keyInfos.value.bluetooth!.bluetoothDeviceName!; - - final List publicKeyData = - state.keyInfos.value.bluetooth!.publicKey!.cast(); - final List saveStrList = changeIntListToStringList(publicKeyData); - Storage.setStringList(saveBluePublicKey, saveStrList); - - // 私钥 - final List privateKeyData = - state.keyInfos.value.bluetooth!.privateKey!.cast(); - final List savePrivateKeyList = - changeIntListToStringList(privateKeyData); - Storage.setStringList(saveBluePrivateKey, savePrivateKeyList); - - // signKey - final List signKeyData = - state.keyInfos.value.bluetooth!.signKey!.cast(); - final List saveSignKeyList = changeIntListToStringList(signKeyData); - Storage.setStringList(saveBlueSignKey, saveSignKeyList); - - final bool ifHaveKey = await Storage.ifHaveKey(saveBlueToken); - if (!ifHaveKey) { - final List saveTokenList = - changeIntListToStringList([0, 0, 0, 0]); - Storage.setStringList(saveBlueToken, saveTokenList); - } - } - @override Widget build(BuildContext context) { - loadData(); return F.sw(skyCall: skWidget, xhjCall: xhjWidget); } From f9cffeb49f9318be71d4206973557c69cbc53de8 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 17 Jun 2024 15:52:21 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=E4=BF=AE=E6=94=B9=E5=BC=80=E9=94=81?= =?UTF-8?q?=E9=A1=B5=20ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/lockDetail_page.dart | 189 ++++++++++++------ .../lockSet/lockSet/lockSet_logic.dart | 16 +- 2 files changed, 132 insertions(+), 73 deletions(-) diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 9c235587..199ff1f2 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -60,7 +61,9 @@ class _LockDetailPageState extends State _initRefreshLockDetailInfoDataEventAction(); logic.initReplySubscription(); logic.initLockSetOpenOrCloseCheckInRefreshLockDetailWithAttendanceAction(); - logic.loadData(lockListInfoItemEntity: widget.lockListInfoItemEntity, isOnlyOneData: widget.isOnlyOneData); + logic.loadData( + lockListInfoItemEntity: widget.lockListInfoItemEntity, + isOnlyOneData: widget.isOnlyOneData); } @override @@ -95,35 +98,50 @@ class _LockDetailPageState extends State final String lockAlias = state.keyInfos.value.lockAlias!; return Stack( children: [ - Column( - children: [ - SizedBox( - height: 15.h, - ), - Padding( - padding: EdgeInsets.symmetric(horizontal: 24.w), - child: Text( - lockAlias, - textAlign: TextAlign.center, - style: TextStyle(fontSize: 24.sp, color: Colors.black), + SingleChildScrollView( + child: Column( + children: [ + SizedBox( + height: 15.h, ), - ), - SizedBox( - height: 35.h, - ), - xhjInfoView(), - SizedBox( - height: 35.h, - ), - labelText('images/icon_slider_horizontal.png', '功能'.tr, () { - Get.to(LockDetailListPage( - title: '功能'.tr, items: getBottomWidget())); - }), - labelText('images/icon_puzzlepiece_extension.png', '配件'.tr, () { - Get.to(LockDetailListPage( - title: '配件'.tr, items: getAttachmentWidget())); - }), - ], + Padding( + padding: EdgeInsets.symmetric(horizontal: 24.w), + child: Text( + lockAlias, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 24.sp, color: Colors.black), + ), + ), + SizedBox( + height: 35.h, + ), + xhjInfoView(), + SizedBox( + height: 35.h, + ), + labelText( + img: 'images/icon_slider_horizontal.png', + text: '功能'.tr, + child: bottomWidget()), + labelText( + img: 'images/icon_puzzlepiece_extension.png', + text: '配件'.tr, + child: attachmentWidget()), + btnText( + img: 'images/main/icon_main_set.png', + text: TranslationLoader.lanKeys!.set!.tr, + onTap: () { + if (state.openDoorBtnisUneable.value == false) { + return; + } + Get.toNamed(Routers.lockSetPage, + arguments: { + 'lockId': state.keyInfos.value.lockId, + 'isOnlyOneData': state.isOnlyOneData + }); + }), + ], + ), ), Visibility( visible: state.iSClosedUnlockSuccessfulPopup.value, @@ -139,7 +157,8 @@ class _LockDetailPageState extends State ); } - Widget labelText(String img, String text, var onTap) { + Widget btnText( + {required String img, required String text, required var onTap}) { return GestureDetector( onTap: onTap, child: Container( @@ -152,16 +171,19 @@ class _LockDetailPageState extends State BoxShadow( color: Colors.black.withOpacity(0.15), offset: const Offset(0, 0), - blurRadius: 10.r, + blurRadius: 5.r, spreadRadius: 0, ), ]), child: Row( children: [ - Image.asset( - img, - width: 32.r, - height: 32.r, + FlavorsImg( + black: true, + child: Image.asset( + img, + width: 32.r, + height: 32.r, + ), ), SizedBox( width: 15.w, @@ -181,6 +203,49 @@ class _LockDetailPageState extends State ); } + Widget labelText( + {required String img, required String text, required Widget child}) { + return Container( + margin: EdgeInsets.symmetric(horizontal: 0.05.sw, vertical: 15.h), + padding: EdgeInsets.symmetric(horizontal: 0.05.sw, vertical: 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16.r), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.15), + offset: const Offset(0, 0), + blurRadius: 5.r, + spreadRadius: 0, + ), + ]), + child: Column( + children: [ + Row( + children: [ + Image.asset( + img, + width: 32.r, + height: 32.r, + ), + SizedBox( + width: 15.w, + ), + Text( + text, + style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor), + ), + ], + ), + SizedBox( + height: 18.h, + ), + child, + ], + ), + ); + } + Widget xhjInfoView() { return Container( width: 0.9.sw, @@ -294,7 +359,7 @@ class _LockDetailPageState extends State BoxShadow( color: Colors.black.withOpacity(0.3), offset: const Offset(0, 0), - blurRadius: 10.r, + blurRadius: 15.r, spreadRadius: 0, ), ]), @@ -836,6 +901,7 @@ class _LockDetailPageState extends State // childAspectRatio: 3, crossAxisSpacing: 20.w, mainAxisSpacing: 0.h, + shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), children: getAttachmentWidget()), ); @@ -880,7 +946,8 @@ class _LockDetailPageState extends State crossAxisCount: 4, // childAspectRatio: 3, crossAxisSpacing: 25.h, - mainAxisSpacing: 0.h, + mainAxisSpacing: 5.h, + shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), children: getBottomWidget()), ); @@ -922,13 +989,15 @@ class _LockDetailPageState extends State })); // 设置 - showWidgetArr.add(bottomItem('images/main/icon_main_set.png', - TranslationLoader.lanKeys!.set!.tr, true, () { - Get.toNamed(Routers.lockSetPage, arguments: { - 'lockId': state.keyInfos.value.lockId, - 'isOnlyOneData': state.isOnlyOneData - }); - })); + if (F.isSKY) { + showWidgetArr.add(bottomItem('images/main/icon_main_set.png', + TranslationLoader.lanKeys!.set!.tr, true, () { + Get.toNamed(Routers.lockSetPage, arguments: { + 'lockId': state.keyInfos.value.lockId, + 'isOnlyOneData': state.isOnlyOneData + }); + })); + } return showWidgetArr; } @@ -1106,17 +1175,19 @@ class _LockDetailPageState extends State }), ); - endWiddget.add( - // 设置 - bottomItem('images/main/icon_main_set.png', - TranslationLoader.lanKeys!.set!.tr, true, () { - // logic.clickItemBtnAction(10); - Get.toNamed(Routers.lockSetPage, arguments: { - 'lockId': state.keyInfos.value.lockId, - 'isOnlyOneData': state.isOnlyOneData, - }); - }), - ); + if (F.isSKY) { + endWiddget.add( + // 设置 + bottomItem('images/main/icon_main_set.png', + TranslationLoader.lanKeys!.set!.tr, true, () { + // logic.clickItemBtnAction(10); + Get.toNamed(Routers.lockSetPage, arguments: { + 'lockId': state.keyInfos.value.lockId, + 'isOnlyOneData': state.isOnlyOneData, + }); + }), + ); + } showWidgetArr.addAll(endWiddget); return showWidgetArr; } @@ -1158,13 +1229,13 @@ class _LockDetailPageState extends State xhjCall: () => Container( color: Colors.white, margin: EdgeInsets.symmetric(vertical: 5.h), - padding: EdgeInsets.symmetric(vertical: 15.h, horizontal: 15.w), - child: Row( + child: Column( crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( width: 42.w, - height: 42.h, + height: 42.w, child: FlavorsImg( black: true, child: Image.asset(iconUrl, @@ -1176,7 +1247,7 @@ class _LockDetailPageState extends State fit: BoxFit.fitWidth), ), ), - SizedBox(width: 20.w), + SizedBox(height: 20.h), Text( name, style: TextStyle( diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart index ccb615d3..2d75668b 100755 --- a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart +++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart @@ -569,15 +569,10 @@ class LockSetLogic extends BaseGetXController { ); if (entity.errorCode!.codeIsSuccessful) { BlueManage().connectDeviceMacAddress = ''; - final bool isXHJ = F.isXHJ; final bool isOnlyOneData = state.isOnlyOneData.value == true; await Future.delayed(const Duration(milliseconds: 200)) .then((e) { - if (isXHJ) { - Get.close(3); - } else { - Get.close(isOnlyOneData ? 1 : 2); - } + Get.close(isOnlyOneData ? 1 : 2); }); SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent()); @@ -594,17 +589,10 @@ class LockSetLogic extends BaseGetXController { state.deleteAdministratorIsHaveAllData.value == true ? 1 : 0); if (entity.errorCode!.codeIsSuccessful) { BlueManage().connectDeviceMacAddress = ''; - - final bool isXHJ = F.isXHJ; final bool isOnlyOneData = state.isOnlyOneData.value == true; await Future.delayed(const Duration(milliseconds: 200)) .then((e) { - if (isXHJ) { - Get.close(3); - } else { - final int onlyOneDataInt = isOnlyOneData ? 1 : 2; - Get.close(onlyOneDataInt); - } + Get.close(isOnlyOneData ? 1 : 2); }); SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent()); From fa06dc6837a98d8ed091f6bec5ab822d6ecfff9b Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Mon, 17 Jun 2024 17:16:59 +0800 Subject: [PATCH 5/5] =?UTF-8?q?1=EF=BC=8C=E4=BF=AE=E5=A4=8D=E8=B6=85?= =?UTF-8?q?=E7=BA=A7=E7=AE=A1=E7=90=86=E5=91=98=E7=94=A8=E6=88=B7=E6=94=B9?= =?UTF-8?q?=E5=8F=98=E9=94=81=E8=AE=BE=E7=BD=AE=EF=BC=8C=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E5=92=8C=E6=99=AE=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9C=AA=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98=202?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E8=87=AA=E5=AE=9A=E4=B9=89=E6=B6=88?= =?UTF-8?q?=E6=81=AF--=E9=94=81=E8=AE=BE=E7=BD=AE=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=8F=8A=E7=9B=B8=E5=BA=94=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=A4=84=E7=90=86=203=EF=BC=8C=E5=BC=80=E9=94=81=E9=A1=B5-?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE-=E5=BC=80=E9=94=81=E6=97=B6=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E9=9C=80=E8=81=94=E7=BD=91=20=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=BC=80=E5=85=B3=E8=BF=94=E5=9B=9E=E5=BC=80=E9=94=81=E9=A1=B5?= =?UTF-8?q?=E7=9A=84=E6=A0=87=E5=BF=97=E6=9C=AA=E5=88=B7=E6=96=B0=E3=80=82?= =?UTF-8?q?=E5=8F=A6=E6=8E=88=E6=9D=83=E5=92=8C=E6=99=AE=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=A0=87=E5=BF=97=E5=92=8C=E4=BD=BF=E7=94=A8=E6=B2=A1?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E6=9B=B4=E6=96=B0=EF=BC=8C=E4=BC=9A=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E8=AE=BE=E7=BD=AE=E4=BA=86=E4=B8=8D=E7=94=9F=E6=95=88?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E3=80=82=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=204=EF=BC=8C=E4=BF=AE=E5=A4=8DbugID=EF=BC=9AID1002246?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main/lockDetail/lockDetail/lockDetail_page.dart | 5 +++-- lib/tools/push/message_constant.dart | 2 ++ lib/tools/push/message_management.dart | 12 ++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 79e27ef0..360b2919 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -68,6 +68,7 @@ class _LockDetailPageState extends State /// 路由订阅 AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!); + state.isOpenLockNeedOnline.refresh(); } StreamSubscription? _lockRefreshLockDetailInfoDataEvent; @@ -777,7 +778,7 @@ class _LockDetailPageState extends State child: Image.asset('images/main/icon_lockDetail_needNetwork.png', width: 24.w, height: 20.w, - color: state.keyInfos.value.appUnlockOnline == 1 + color: state.isOpenLockNeedOnline.value == 1 ? AppColors.mainColor : AppColors.btnDisableColor), ), @@ -786,7 +787,7 @@ class _LockDetailPageState extends State '手机需联网', style: TextStyle( fontSize: 20.sp, - color: state.keyInfos.value.appUnlockOnline == 1 + color: state.isOpenLockNeedOnline.value == 1 ? AppColors.mainColor : AppColors.btnDisableColor), ), diff --git a/lib/tools/push/message_constant.dart b/lib/tools/push/message_constant.dart index c2e183fb..c81dd455 100644 --- a/lib/tools/push/message_constant.dart +++ b/lib/tools/push/message_constant.dart @@ -7,4 +7,6 @@ class MessageConstant { static const int lockReceive = 30; //收到钥匙(返回指定钥匙分组+钥匙数据〉 static const int keyReceive = 40; + //锁设置变更 + static const int lockSetChange = 50; } diff --git a/lib/tools/push/message_management.dart b/lib/tools/push/message_management.dart index 9ef49c7d..df2f6c01 100644 --- a/lib/tools/push/message_management.dart +++ b/lib/tools/push/message_management.dart @@ -71,6 +71,18 @@ class MessageManagement { final int lockId = data['lockId']; eventBus.fire(RogerThatLockInfoDataEvent(keyId: keyId, lockId: lockId)); break; + case MessageConstant.lockSetChange: + final int keyId = data['keyId']; + final int lockId = data['lockId']; + final Map extra = data['updateFieldList']; + if (extra['appUnlockOnline'] != null) { + final String appUnlockOnline = extra['appUnlockOnline']; + eventBus.fire( + LockSetChangeSetRefreshLockDetailWithType(1, appUnlockOnline)); + eventBus.fire(RefreshLockInfoDataEvent(keyId: keyId, lockId: lockId)); + } + break; + default: throw Exception('无法识别eventNo 参数:$eventNo'); }