From 9e346bca458b5f00ad26e0be12e188b81535f25f Mon Sep 17 00:00:00 2001 From: ante <448468458@qq.com> Date: Fri, 12 Apr 2024 09:17:04 +0800 Subject: [PATCH 1/7] =?UTF-8?q?feat:=E8=A1=A5=E5=85=85=20debug=20=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/lib/starLockApplication/starLockApplication.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/star_lock/lib/starLockApplication/starLockApplication.dart b/star_lock/lib/starLockApplication/starLockApplication.dart index 25182df5..e0789be5 100644 --- a/star_lock/lib/starLockApplication/starLockApplication.dart +++ b/star_lock/lib/starLockApplication/starLockApplication.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/login/login/starLock_login_page.dart'; import 'package:star_lock/tools/appFirstEnterHandle.dart'; import 'package:star_lock/debug/debug_tool.dart'; @@ -20,7 +21,9 @@ class _StarLockApplicationState extends State { super.initState(); print("StarLockApplication initState"); WidgetsBinding.instance.addPostFrameCallback((_) { - DeBug.showFloatWidget(); + if (F.debug) { + DeBug.showFloatWidget(); + } }); } From 366daf69c563b7b4939b84102149dbcf28c1575d Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Fri, 12 Apr 2024 14:03:52 +0800 Subject: [PATCH 2/7] =?UTF-8?q?1=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=BD=95?= =?UTF-8?q?=E9=9F=B3=E4=B8=AD=E4=B8=8D=E6=92=AD=E6=94=BE=E9=94=81=E5=8F=91?= =?UTF-8?q?=E8=BF=87=E6=9D=A5=E7=9A=84=E5=A3=B0=E9=9F=B3=E9=80=BB=E8=BE=91?= =?UTF-8?q?=202=EF=BC=8C=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E9=A1=B5=E9=9D=A2=E7=9A=84=E9=80=BB=E8=BE=91=E5=87=8F?= =?UTF-8?q?=E5=B0=91=E7=99=BD=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitoring/lockMonitoring_logic.dart | 24 +----- .../monitoring/lockMonitoring_page.dart | 78 +++++++++++++++---- .../monitoring/lockMonitoring_state.dart | 2 + .../realTimePicture_logic.dart | 2 +- star_lock/lib/talk/call/callTalk.dart | 3 +- star_lock/lib/talk/udp/udp_reciverData.dart | 2 +- star_lock/lib/talk/udp/udp_talkClass.dart | 2 +- 7 files changed, 72 insertions(+), 41 deletions(-) diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart index be08e520..a850c251 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart @@ -21,22 +21,6 @@ class LockMonitoringLogic extends BaseGetXController { state.voiceProcessor = VoiceProcessor.instance; } - /// 收到视频流数据 - StreamSubscription? _getTVDataRefreshUIEvent; - void _getTVDataRefreshUIAction() { - // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus - _getTVDataRefreshUIEvent = - eventBus.on().listen((event) async { - if (event.tvList.isNotEmpty) { - // print('收到图片了啦啦啦啦啦啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊'); - // 预加载图片数据 - Uint8List imageData = Uint8List.fromList(event.tvList); - // 更新状态 - state.listPhotoData.value = imageData; - } - }); - } - /// 收到UDP发送的状态 StreamSubscription? _getUDPStatusRefreshUIEvent; void _getUDPStatusRefreshUIAction() { @@ -164,6 +148,7 @@ class LockMonitoringLogic extends BaseGetXController { //开始录音 Future startProcessing() async { + CallTalk().finishPcmSound(); state.isButtonDisabled.value = true; state.voiceProcessor?.addFrameListener(_onFrame); @@ -407,9 +392,7 @@ class LockMonitoringLogic extends BaseGetXController { void onReady() { // TODO: implement onReady super.onReady(); - print("onReady()"); - _getTVDataRefreshUIAction(); _getUDPStatusRefreshUIAction(); initRecorder(); @@ -425,10 +408,11 @@ class LockMonitoringLogic extends BaseGetXController { void onClose() { // TODO: implement onClose print("锁详情界面销毁了"); - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); stopProcessing(); - _getTVDataRefreshUIEvent!.cancel(); _getUDPStatusRefreshUIEvent!.cancel(); + state.getTVDataRefreshUIEvent!.cancel(); + if (state.oneMinuteTimeTimer != null) { state.oneMinuteTimeTimer.cancel(); state.oneMinuteTime.value = 0; diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart index 8d5bc8ae..bc040719 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:io'; import 'dart:ui' as ui; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; @@ -11,6 +12,7 @@ import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:path_provider/path_provider.dart'; import 'package:star_lock/talk/call/callTalk.dart'; import 'package:star_lock/talk/udp/udp_manage.dart'; +import 'package:star_lock/tools/eventBusEventManage.dart'; import '../../../../app_settings/app_colors.dart'; import '../../../../login/selectCountryRegion/common/index.dart'; @@ -32,6 +34,7 @@ class _LockMonitoringPageState extends State { void initState() { super.initState(); initAsync(); + _getTVDataRefreshUIAction(); } Future initAsync() async { @@ -50,23 +53,33 @@ class _LockMonitoringPageState extends State { // color: Colors.white, child: Stack( children: [ - Obx(() { - if (state.listPhotoData.value.isEmpty || - state.listPhotoData.value.length < 10) { + Image.memory( + state.listPhotoData.value, + gaplessPlayback: true, + width: 1.sw, + height: 1.sh, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { return Container(color: Colors.transparent); - } else { - return Image.memory( - state.listPhotoData.value, - gaplessPlayback: true, - width: 1.sw, - height: 1.sh, - fit: BoxFit.cover, - errorBuilder: (context, error, stackTrace) { - return Container(color: Colors.transparent); - }, - ); - } - }), + }, + ), + // Obx(() { + // if (state.listPhotoData.value.isEmpty || + // state.listPhotoData.value.length < 10) { + // return Container(color: Colors.transparent); + // } else { + // return Image.memory( + // state.listPhotoData.value, + // gaplessPlayback: true, + // width: 1.sw, + // height: 1.sh, + // fit: BoxFit.cover, + // errorBuilder: (context, error, stackTrace) { + // return Container(color: Colors.transparent); + // }, + // ); + // } + // }), Positioned( top: ScreenUtil().statusBarHeight + 30.h, width: 1.sw, @@ -220,7 +233,7 @@ class _LockMonitoringPageState extends State { bottomBtnItemWidget( "images/main/icon_lockDetail_hangUp.png", "挂断", Colors.red, () async { logic.stopProcessing(); - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); // 挂断 if (state.isClickHangUp.value == false) { logic.initiateUdpHangUpAction(3); @@ -387,9 +400,40 @@ class _LockMonitoringPageState extends State { } } + /// 收到视频流数据 + void _getTVDataRefreshUIAction() { + // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus + state.getTVDataRefreshUIEvent = + eventBus.on().listen((event) async { + if (event.tvList.isNotEmpty && event.tvList.length > 100) { + // 比较新旧数据是否相同 + Uint8List imageData = Uint8List.fromList(event.tvList); + + if (!listEquals(state.listPhotoData.value, imageData)) { + // 更新状态 + state.listPhotoData.value = imageData; + // 设置标志为true,表示需要更新UI + state.shouldUpdateUI.value = true; + // WidgetsBinding.instance.addPostFrameCallback((_) { + // print('addPostFrameCallback'); + // 调用setState方法之前检查标志,只有当标志为true时才更新UI + if (state.shouldUpdateUI.value) { + setState(() { + // 更新UI + }); + // 更新完UI后将标志重新设置为false + state.shouldUpdateUI.value = false; + } + // }); + } + } + }); + } + @override void dispose() { super.dispose(); logic.stopProcessing(); + state.getTVDataRefreshUIEvent!.cancel(); } } diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart index 90c14f8a..8a169677 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart @@ -12,6 +12,8 @@ class LockMonitoringState { var isOpenVoice = false.obs; int udpSendDataFrameNumber = 0; // 帧序号 // var isSenderAudioData = false.obs;// 是否要发送音频数据 + StreamSubscription? getTVDataRefreshUIEvent; //收到视频流数据 + var shouldUpdateUI = false.obs; //是否需要更新UI var userMobileIP = NetworkInfo().getWifiIP(); var userUid = Storage.getUid(); diff --git a/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart b/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart index d963ee48..8b96f863 100644 --- a/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart +++ b/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_logic.dart @@ -318,7 +318,7 @@ class RealTimePictureLogic extends BaseGetXController { void onClose() { // TODO: implement onClose print("锁详情界面销毁了"); - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); _getTVDataRefreshUIEvent!.cancel(); _getUDPStatusRefreshUIEvent!.cancel(); if (state.oneMinuteTimeTimer != null) { diff --git a/star_lock/lib/talk/call/callTalk.dart b/star_lock/lib/talk/call/callTalk.dart index 6b9c8838..e2455a54 100644 --- a/star_lock/lib/talk/call/callTalk.dart +++ b/star_lock/lib/talk/call/callTalk.dart @@ -146,11 +146,12 @@ class CallTalk { } //停止接收音频数据 - void stopPcmSound() { + void finishPcmSound() { // FlutterPcmSound.setup(sampleRate: 8000, channelCount: 1); FlutterPcmSound.pause(); FlutterPcmSound.clear(); FlutterPcmSound.stop(); + print('已停止播放声音'); iframe = IframeInfo(); iframe!.iframeIndex = 0; diff --git a/star_lock/lib/talk/udp/udp_reciverData.dart b/star_lock/lib/talk/udp/udp_reciverData.dart index 49da0cf5..631cb774 100644 --- a/star_lock/lib/talk/udp/udp_reciverData.dart +++ b/star_lock/lib/talk/udp/udp_reciverData.dart @@ -203,7 +203,7 @@ class CommandUDPReciverManager { break; case 30: { - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); // 监视结束 if ((data[7] & 0x3) == 1) { diff --git a/star_lock/lib/talk/udp/udp_talkClass.dart b/star_lock/lib/talk/udp/udp_talkClass.dart index 810b8dc6..dac2e50d 100644 --- a/star_lock/lib/talk/udp/udp_talkClass.dart +++ b/star_lock/lib/talk/udp/udp_talkClass.dart @@ -188,7 +188,7 @@ class UDPTalkClass { isBeCall = false; // isEndCall = true; // LockMonitoringState().isClickHangUp.value = false; - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); eventBus.fire(GetUDPStatusRefreshUI(UDPTalkClass().status)); Get.back(); From cbdcdab317000cb5ce3a561994e5409bd7da5be8 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Fri, 12 Apr 2024 14:06:11 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E7=9B=91=E8=A7=86=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/realTimePicture/realTimePicture_page.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart b/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart index 13af984b..13969237 100644 --- a/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart +++ b/star_lock/lib/main/lockDetail/realTimePicture/realTimePicture_page.dart @@ -261,7 +261,7 @@ class _RealTimePicturePageState extends State "images/main/icon_lockDetail_hangUp.png", "挂断", Colors.red, () async { // 挂断 logic.udpHangUpAction(); - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); Get.back(); }), bottomBtnItemWidget("images/main/icon_lockDetail_monitoringUnlock.png", @@ -401,7 +401,7 @@ class _RealTimePicturePageState extends State void _handleFailure() { // 在这里处理失败的逻辑 - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); state.realTimePicTimer.cancel(); state.autoBackTimer.cancel(); if (state.animationController != null) { @@ -414,7 +414,7 @@ class _RealTimePicturePageState extends State state.animationController.dispose(); state.realTimePicTimer.cancel(); state.autoBackTimer.cancel(); - CallTalk().stopPcmSound(); + CallTalk().finishPcmSound(); super.dispose(); } } From b51a53a9bde91400c2509c5f3eed3b52c77bbe1a Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Fri, 12 Apr 2024 15:23:04 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=B9=E8=AE=B2?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=BD=95=E9=9F=B3=E5=B8=A7=E5=BA=8F=E5=8F=B7?= =?UTF-8?q?=E4=B8=8D=E8=BF=9E=E7=BB=AD=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitoring/monitoring/lockMonitoring_logic.dart | 4 +++- .../monitoring/monitoring/lockMonitoring_state.dart | 2 +- star_lock/lib/talk/call/callTalk.dart | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart index a850c251..d4e6c733 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart @@ -202,6 +202,8 @@ class LockMonitoringLogic extends BaseGetXController { state.isButtonDisabled.value = true; try { await state.voiceProcessor?.stop(); + state.voiceProcessor?.removeFrameListener(_onFrame); + state.udpSendDataFrameNumber = 0; } on PlatformException catch (ex) { state.errorMessage.value = "Failed to stop recorder: $ex"; } finally { @@ -294,7 +296,7 @@ class LockMonitoringLogic extends BaseGetXController { topBytes[7] = ((state.udpSendDataFrameNumber & 0x0000FF00) >> 8); // print( - // "udpSendDataFrameNumber:${state.udpSendDataFrameNumber} topBytes[63]:${topBytes[6]} topBytes[64]:${topBytes[7]}"); + // "udpSendDataFrameNumber:${state.udpSendDataFrameNumber} topBytes[63]:${topBytes[6]} topBytes[64]:${topBytes[7]}"); topBytes.addAll(bytes); Get.log("G711编码后为:$topBytes"); diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart index 8a169677..7b4fdfeb 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart @@ -26,7 +26,7 @@ class LockMonitoringState { var listAudioData = [].obs; //得到的音频流字节数据 //录音相关 - late final VoiceProcessor? voiceProcessor; + late VoiceProcessor? voiceProcessor; var isProcessing = false.obs; //是否正在处理音频数据 var isButtonDisabled = false.obs; //是否禁用按钮 final int frameLength = 320; //音视频帧长度为320 diff --git a/star_lock/lib/talk/call/callTalk.dart b/star_lock/lib/talk/call/callTalk.dart index e2455a54..b71cdef2 100644 --- a/star_lock/lib/talk/call/callTalk.dart +++ b/star_lock/lib/talk/call/callTalk.dart @@ -151,7 +151,7 @@ class CallTalk { FlutterPcmSound.pause(); FlutterPcmSound.clear(); FlutterPcmSound.stop(); - print('已停止播放声音'); + // print('已停止播放声音'); iframe = IframeInfo(); iframe!.iframeIndex = 0; From dd0706c8632edf79a1ffadf032703de8ee1092a1 Mon Sep 17 00:00:00 2001 From: XieHaoLiang <806854015@qq.com> Date: Fri, 12 Apr 2024 15:24:53 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=EF=BC=9B=E4=BF=AE=E5=A4=8D=E5=8F=91=E9=80=81=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=9A=84=E7=94=A8=E6=88=B7=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/.docker/.env.example | 6 +++--- star_lock/.gitignore | 2 +- star_lock/README.md | 2 +- star_lock/flavorizr.yaml | 6 +++--- star_lock/lib/flavors.dart | 5 ++--- .../addAuthorizedAdministrator_logic.dart | 10 ++++++++-- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/star_lock/.docker/.env.example b/star_lock/.docker/.env.example index 46afd189..bc23dbeb 100644 --- a/star_lock/.docker/.env.example +++ b/star_lock/.docker/.env.example @@ -1,7 +1,7 @@ -FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter" -PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub" +FLUTTER_STORAGE_BASE_URL=https://mirrors.tuna.tsinghua.edu.cn/flutter +PUB_HOSTED_URL=https://mirrors.tuna.tsinghua.edu.cn/dart-pub -HTTP_PROXY=http://127.0.0.1:1080/``` +HTTP_PROXY=http://127.0.0.1:1080/ HTTPS_PROXY=http://127.0.0.1:1080/ # curl只支持小写 diff --git a/star_lock/.gitignore b/star_lock/.gitignore index 24476c5d..d2b4a6eb 100644 --- a/star_lock/.gitignore +++ b/star_lock/.gitignore @@ -14,7 +14,7 @@ migrate_working_dir/ *.iml *.ipr *.iws -.idea/ +.idea # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line diff --git a/star_lock/README.md b/star_lock/README.md index 43035382..480f9ba1 100644 --- a/star_lock/README.md +++ b/star_lock/README.md @@ -30,7 +30,7 @@ flutter pub get ```bash # 运行sky渠道 -flutter run --flavor sky -t lib/main_sky.dart +flutter run --flavor sky -t lib/main_sky_full.dart ``` diff --git a/star_lock/flavorizr.yaml b/star_lock/flavorizr.yaml index f45858db..e411ad41 100644 --- a/star_lock/flavorizr.yaml +++ b/star_lock/flavorizr.yaml @@ -38,12 +38,12 @@ # 下面是4个运行示例: # flutter run --flavor dev -t lib/main_dev.dart # flutter run --flavor pre -t lib/main_pre.dart -# flutter run --flavor sky -t lib/main_sky.dart +# flutter run --flavor sky -t lib/main_sky_full.dart # flutter run --flavor xhj -t lib/main_xhj.dart # 下面是安卓发布编译命令 -# flutter build apk --split-per-abi --release --flavor sky -t lib/main_sky.dart -# flutter build apk --release --flavor sky -t lib/main_sky.dart +# flutter build apk --split-per-abi --release --flavor sky -t lib/main_sky_full.dart +# flutter build apk --release --flavor sky -t lib/main_sky_full.dart # IOS编译发布 # TODO 待补充 diff --git a/star_lock/lib/flavors.dart b/star_lock/lib/flavors.dart index cfb882c4..84e28c0b 100644 --- a/star_lock/lib/flavors.dart +++ b/star_lock/lib/flavors.dart @@ -80,7 +80,8 @@ class F { static String get apiPrefix { switch (appFlavor) { case Flavor.local: - return 'https://ge.lock.star-lock.cn'; + // return 'https://ge.lock.star-lock.cn'; // 葛工 + return 'http://192.168.1.15:8022'; // 谢工 case Flavor.dev: return 'https://dev.lock.star-lock.cn'; case Flavor.pre: @@ -90,8 +91,6 @@ class F { case Flavor.xhj: return 'https://lock.xhjcn.ltd'; default: - // "http://192.168.1.15:8022"; //谢总本地 - // "https://ge.lock.star-lock.cn"; //葛工开发环境地址 throw Exception('flavor[$name] apiPrefix not found'); } } diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_logic.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_logic.dart index 1d81ccca..f7be6d8c 100644 --- a/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_logic.dart +++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator/addAuthorizedAdministrator_logic.dart @@ -1,6 +1,5 @@ import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; -import 'package:star_lock/appRouters.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/translations/trans_lib.dart'; @@ -12,6 +11,11 @@ import 'addAuthorizedAdministrator_state.dart'; class AddAuthorizedAdministratorLogic extends BaseGetXController { AddAuthorizedAdministratorState state = AddAuthorizedAdministratorState(); + bool isPhoneNumber(String input) { + // 手机号正则表达式,这里简化为11位数字 + final RegExp phoneRegExp = RegExp(r'^\d{11}$'); + return phoneRegExp.hasMatch(input); + } //发送批量授权管理员 Future addAuthorizedAdminRequest() async { if (state.emailOrPhoneController.text.isEmpty) { @@ -59,7 +63,9 @@ class AddAuthorizedAdministratorLogic extends BaseGetXController { startDate: startDate, userid: state.emailOrPhoneController.text, countryCode: state.countryCode.value, - usernameType:'1', + usernameType: isPhoneNumber(state.emailOrPhoneController.text) == true + ? '1' + : '2', ); if (entity.errorCode!.codeIsSuccessful) { print('发送电子钥匙成功'); From 6db2dd23c58c22df7ba79ff1d2cd4af1d9175fbe Mon Sep 17 00:00:00 2001 From: XieHaoLiang <806854015@qq.com> Date: Fri, 12 Apr 2024 15:26:50 +0800 Subject: [PATCH 6/7] fix --- .gitignore | 1 + .idea/.gitignore | 3 - .idea/modules.xml | 8 -- .idea/starLock.iml | 343 --------------------------------------------- .idea/vcs.xml | 6 - 5 files changed, 1 insertion(+), 360 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/modules.xml delete mode 100644 .idea/starLock.iml delete mode 100644 .idea/vcs.xml diff --git a/.gitignore b/.gitignore index 6d21af37..1146ffa9 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ doc/api/ .flutter-plugins .flutter-plugins-dependencies +.idea \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d33521..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 3ce5b9d9..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/starLock.iml b/.idea/starLock.iml deleted file mode 100644 index 43102452..00000000 --- a/.idea/starLock.iml +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 870e7ed443b7b93936a55d2f6c5eab8c2133cf60 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Fri, 12 Apr 2024 16:28:00 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=99=B9=E8=86=9C?= =?UTF-8?q?=E5=92=8C=E6=89=8B=E6=8E=8C=E7=9B=B8=E5=85=B3=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/images/main/icon_iris.png | Bin 0 -> 4794 bytes star_lock/images/main/icon_palm.png | Bin 0 -> 4475 bytes .../lockDetail/lockDetail/lockDetail_page.dart | 5 ++--- 3 files changed, 2 insertions(+), 3 deletions(-) create mode 100644 star_lock/images/main/icon_iris.png create mode 100644 star_lock/images/main/icon_palm.png diff --git a/star_lock/images/main/icon_iris.png b/star_lock/images/main/icon_iris.png new file mode 100644 index 0000000000000000000000000000000000000000..84a7c706b53f5467a2d6b00b83a54e8fdd507de4 GIT binary patch literal 4794 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 U0O&VBbN~PV07*qoM6N<$g4{_cMgRZ+ literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_palm.png b/star_lock/images/main/icon_palm.png new file mode 100644 index 0000000000000000000000000000000000000000..100b1a9e0624f8d333b9831698805700f1549784 GIT binary patch literal 4475 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 N002ovPDHLkV1m3=XmS7m literal 0 HcmV?d00001 diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 008fe933..583b288f 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -1,4 +1,3 @@ - import 'dart:async'; import 'package:flutter/material.dart'; @@ -680,7 +679,7 @@ class _LockDetailPageState extends State } showWidgetArr.add( - bottomItem('images/main/icon_face.png', '虹膜', + bottomItem('images/main/icon_iris.png', '虹膜', state.openDoorBtnisUneable.value, state.bottomBtnisEable.value, () { Get.toNamed(Routers.irisListPage, arguments: { "lockId": state.keyInfos.value.lockId, @@ -689,7 +688,7 @@ class _LockDetailPageState extends State ); showWidgetArr.add( - bottomItem('images/main/icon_face.png', '手掌', + bottomItem('images/main/icon_palm.png', '手掌', state.openDoorBtnisUneable.value, state.bottomBtnisEable.value, () { Get.toNamed(Routers.palmListPage, arguments: { "lockId": state.keyInfos.value.lockId,