From c40a95641aa2656bdb69264f1ece8d65d72ba455 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 29 Apr 2024 17:24:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20ota=20=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E9=94=99=E8=AF=AF=E6=96=87=E4=BB=B6=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockEscalation/lockEscalation_logic.dart | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/star_lock/lib/main/lockDetail/lockSet/lockEscalation/lockEscalation_logic.dart b/star_lock/lib/main/lockDetail/lockSet/lockEscalation/lockEscalation_logic.dart index 249c884c..6203045a 100644 --- a/star_lock/lib/main/lockDetail/lockSet/lockEscalation/lockEscalation_logic.dart +++ b/star_lock/lib/main/lockDetail/lockSet/lockEscalation/lockEscalation_logic.dart @@ -161,24 +161,52 @@ class LockEscalationLogic extends BaseGetXController { // 检查文件头 Future getHeadFile(Uint8List data) async { + if (data.length <= 16) { + showToast('错误D固件,请选择正确的文件'); + return null; + } // 检查文件头 - String header = utf8.decode(data.sublist(0, 12)); + String header; + try { + header = utf8.decode(data.sublist(0, 12)); + } catch (e) { + showToast('非SYD固件,请选择正确的文件'); + return null; + } if (header != 'SYD-BIN-DATA') { showToast('非SYD固件,请选择正确的文件'); return null; } // 解析元数据长度 - Uint8List metaLenList = data.sublist(12, 16); - int metaLen = ByteData.sublistView(metaLenList).getUint32(0); + Uint8List metaLenList; + int metaLen; + try { + metaLenList = data.sublist(12, 16); + metaLen = ByteData.sublistView(metaLenList).getUint32(0); + } catch (e) { + showToast('文件校验失败 0x01'); + return null; + } if (metaLen < 2 || metaLen > 10240) { showToast('文件校验失败 0x01'); return null; } // 读取和解析元数据 - Uint8List metaStrList = data.sublist(16, 16 + metaLen); - String metaStr = utf8.decode(metaStrList); + Uint8List metaStrList; + String metaStr; + try { + metaStrList = data.sublist(16, 16 + metaLen); + metaStr = utf8.decode(metaStrList); + } catch (e) { + showToast('解析元数据失败,请选择正确的文件'); + return null; + } AppLog.log(metaStr); var meta = jsonDecode(metaStr); + if (meta is! Map) { + showToast('解析元数据失败,请选择正确的文件'); + return null; + } return meta..['metaLen'] = metaLen; } From 6f97b6812e28da711745420db2550c1401821467 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 29 Apr 2024 18:05:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E4=BF=AE=E6=94=B9=E5=BC=80=E9=94=81?= =?UTF-8?q?=E6=8C=89=E9=92=AE=20ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/images/icon_circle_dotted.png | Bin 0 -> 7454 bytes star_lock/images/icon_lock_err.png | Bin 0 -> 8473 bytes star_lock/images/icon_lock_fill.png | Bin 0 -> 3841 bytes .../lockDetail/lockDetail_page.dart | 163 ++++++++++-------- 4 files changed, 92 insertions(+), 71 deletions(-) create mode 100644 star_lock/images/icon_circle_dotted.png create mode 100644 star_lock/images/icon_lock_err.png create mode 100644 star_lock/images/icon_lock_fill.png diff --git a/star_lock/images/icon_circle_dotted.png b/star_lock/images/icon_circle_dotted.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8a7cf95f856eb3299a48dfd00423689ede390f GIT binary patch literal 7454 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/icon_lock_fill.png b/star_lock/images/icon_lock_fill.png new file mode 100644 index 0000000000000000000000000000000000000000..5945f09d9fc2ff6fd4a0461110b1a0925e28a7b7 GIT binary patch literal 3841 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 Storage.setStringList(saveBlueSignKey, saveSignKeyList); bool ifHaveKey = await Storage.ifHaveKey(saveBlueToken); - if(!ifHaveKey){ + if (!ifHaveKey) { var saveTokenList = changeIntListToStringList([0, 0, 0, 0]); Storage.setStringList(saveBlueToken, saveTokenList); } @@ -232,79 +232,78 @@ class _LockDetailPageState extends State crossAxisAlignment: CrossAxisAlignment.start, children: [ const Spacer(), - Obx(() { - return GestureDetector( - onTap: state.openDoorBtnisUneable.value == true - ? () { - setState(() { - startOpenLock(); - }); - } - : null, - onLongPressStart: state.openDoorBtnisUneable.value == true - ? (details) { - setState(() { - startUnLock(); - }); - } - : null, - child: Container( - decoration: BoxDecoration( - color: Colors.white.withOpacity(0.9), - borderRadius: BorderRadius.circular(100.w), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.3), - offset: Offset(0, 0), - blurRadius: 10.r, - spreadRadius: 0, - ), - ]), - margin: EdgeInsets.only(left: 35.w, bottom: 15.h), - child: Stack( - children: [ - FlavorsImg( - child: Image.asset( - state.openDoorBtnisUneable.value == false - ? 'images/main/icon_main_openLockBtn_grey.png' - : (state.isOpenPassageMode.value == 1 - ? 'images/main/icon_main_normallyOpenMode_center.png' - : 'images/main/icon_main_openLockBtn_center.png'), - width: 96.r, - height: 96.r, - // color: AppColors.primaryTopColor, - ), + GestureDetector( + onTap: state.openDoorBtnisUneable.value == true + ? () { + setState(() { + startOpenLock(); + }); + } + : null, + onLongPressStart: state.openDoorBtnisUneable.value == true + ? (details) { + setState(() { + startUnLock(); + }); + } + : null, + child: Container( + width: 100.r, + height: 100.r, + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.9), + borderRadius: BorderRadius.circular(100.w), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + offset: Offset(0, 0), + blurRadius: 10.r, + spreadRadius: 0, ), - state.openDoorBtnisUneable.value == false - ? Positioned( - child: FlavorsImg( + ]), + margin: EdgeInsets.only(left: 35.w, bottom: 15.h), + child: Stack( + alignment: AlignmentDirectional.center, + children: [ + state.openDoorBtnisUneable.value == false + ? Icon( + Icons.bluetooth_searching, + size: 48.r, + color: AppColors.mainColor, + ) + : Image.asset( + state.isOpenPassageMode.value == 1 + ? 'images/icon_lock_err.png' + : 'images/icon_lock_fill.png', + width: 38.r, + height: 38.r, + color: AppColors.mainColor, + ), + state.openDoorBtnisUneable.value == false + ? Positioned( + child: Icon( + Icons.bluetooth_searching, + size: 96.r, + ), + ) + : state.openLockBtnState.value == 1 + ? xhjBuildRotationTransition( + width: 88.r, + height: 88.r, + ) + : Positioned( child: Image.asset( - 'images/main/icon_main_openLockBtn_grey.png', - width: 96.r, - height: 96.r, - ), - ), - ) - : state.openLockBtnState.value == 1 - ? buildRotationTransition( - width: 96.r, - height: 96.r, - ) - : Positioned( - child: FlavorsImg( - child: Image.asset( - state.isOpenPassageMode.value == 1 - ? 'images/main/icon_main_normallyOpenMode_circle.png' - : 'images/main/icon_main_openLockBtn_circle.png', - width: 96.r, - height: 96.r, - ), - )), - ], - ), + 'images/icon_circle_dotted.png', + width: 88.r, + height: 88.r, + color: state.isOpenPassageMode.value == 1 + ? Colors.red + : AppColors.mainColor, + )), + ], ), - ); - }), + ), + ), Padding( padding: EdgeInsets.only(left: 15.w, right: 00.w, bottom: 15.h), child: Row( @@ -735,6 +734,28 @@ class _LockDetailPageState extends State ); } + //旋转动画 + Widget xhjBuildRotationTransition( + {required double width, required double height}) { + return Positioned( + child: RotationTransition( + //设置动画的旋转中心 + alignment: Alignment.center, + //动画控制器 + turns: state.animationController!, + //将要执行动画的子view + child: Image.asset( + 'images/icon_circle_dotted.png', + width: width, + height: height, + color: state.isOpenPassageMode.value == 1 + ? Colors.red + : AppColors.mainColor, + ), + ), + ); + } + //旋转动画 Widget buildRotationTransition( {required double width, required double height}) {