diff --git a/ios/Runner/RunnerRelease-xhj.entitlements b/ios/Runner/RunnerRelease-xhj.entitlements index d7b50f42..66cd751d 100755 --- a/ios/Runner/RunnerRelease-xhj.entitlements +++ b/ios/Runner/RunnerRelease-xhj.entitlements @@ -6,7 +6,7 @@ development com.apple.developer.associated-domains - applinks:lock.skychip.top + applinks:lock.xhjcn.ltd com.apple.external-accessory.wireless-configuration diff --git a/ios/Runner/info_xhj.plist b/ios/Runner/info_xhj.plist index f6cc0fca..a21ee95c 100755 --- a/ios/Runner/info_xhj.plist +++ b/ios/Runner/info_xhj.plist @@ -30,10 +30,10 @@ CFBundleURLIconFile CFBundleURLName - com.sky.skysmartlock + com.xhj.xhjsmartlock CFBundleURLSchemes - skysmartlock + xhjsmartlock @@ -45,7 +45,7 @@ weixin CFBundleURLSchemes - wxbe340095d2b8fd51 + wx8e48112e22343817 diff --git a/lib/flavors.dart b/lib/flavors.dart index 145d2bf5..0d4fbe8f 100755 --- a/lib/flavors.dart +++ b/lib/flavors.dart @@ -39,6 +39,13 @@ class UmengKey { typedef dynamic fCallFunction(); +class WechatAppInfo { + WechatAppInfo({required this.wechatAppId, required this.universalLink}); + + String wechatAppId; + String universalLink; +} + class F { static Flavor? appFlavor; @@ -281,6 +288,37 @@ class F { } } + static WechatAppInfo get wechatAppInfo { + switch (appFlavor) { + case Flavor.local: + return WechatAppInfo( + wechatAppId: 'wxbe340095d2b8fd51', + universalLink: 'https://apt.skychip.top/'); + case Flavor.dev: + return WechatAppInfo( + wechatAppId: 'wxbe340095d2b8fd51', + universalLink: 'https://apt.skychip.top/'); + case Flavor.pre: + case Flavor.sky_pre: + case Flavor.xhj_pre: + return WechatAppInfo( + wechatAppId: 'wxbe340095d2b8fd51', + universalLink: 'https://apt.skychip.top/'); + case Flavor.sky: + return WechatAppInfo( + wechatAppId: 'wxbe340095d2b8fd51', + universalLink: 'https://lock.skychip.top/'); + case Flavor.xhj: + case Flavor.xhj_bundle: + return WechatAppInfo( + wechatAppId: 'wx8e48112e22343817', + universalLink: 'https://lock.xhjcn.ltd/'); + default: + return WechatAppInfo( + wechatAppId: 'wxbe340095d2b8fd51', universalLink: ''); + } + } + // 是否是生产环境 static bool get isProductionEnv { switch (appFlavor) { diff --git a/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart b/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart index e4dc25a9..fc79f79e 100755 --- a/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart +++ b/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart @@ -146,13 +146,48 @@ class CatEyeSetLogic extends BaseGetXController { _getConfigAndGenerateBleData() async { // 假设 state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode 是一个整数 - int originalCatEyeMode = state - .lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode!; - int recordMode = state.lockSetInfoData.value.lockSettingInfo! - .catEyeConfig![0].catEyeModeConfig!.recordMode == - 0 - ? 1 - : 0; + + int originalCatEyeMode = 0; + int recordMode = 0; + int recordStartTime = 0; + int recordEndTime = 0; + int recordTime = 0; + int detectionDistance = 0; + int realTimeMode = 0; + if (state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig != null && + state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig!.length > 0) { + originalCatEyeMode = state + .lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode!; + recordMode = state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0] + .catEyeModeConfig!.recordMode == + 0 + ? 1 + : 0; + recordStartTime = _handleTimeToM(state + .lockSetInfoData + .value + .lockSettingInfo! + .catEyeConfig![0] + .catEyeModeConfig! + .recordStartTime!); + recordEndTime = _handleTimeToM(state.lockSetInfoData.value + .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordEndTime!); + recordTime = _handleGetIntNumber(state.lockSetInfoData.value + .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordTime!); + if (state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0]! + .catEyeModeConfig!.detectionDistance != + null) { + detectionDistance = _handleDetectionDistance(state + .lockSetInfoData + .value + .lockSettingInfo! + .catEyeConfig![0] + .catEyeModeConfig! + .detectionDistance!); + } + realTimeMode = state.lockSetInfoData.value.lockSettingInfo! + .catEyeConfig![0].catEyeModeConfig!.realTimeMode!; + } int stayWarn = state.lockSetInfoData.value.lockSettingInfo!.stayWarn!; int abnormalWarn = @@ -160,30 +195,6 @@ class CatEyeSetLogic extends BaseGetXController { int autoLightScreen = state.lockSetInfoData.value.lockSettingInfo!.autoLightScreen!; - int recordStartTime = _handleTimeToM(state.lockSetInfoData.value - .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordStartTime!); - int recordEndTime = _handleTimeToM(state.lockSetInfoData.value - .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordEndTime!); - - int recordTime = _handleGetIntNumber(state.lockSetInfoData.value - .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordTime!); - - int detectionDistance = 0; - if (state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0]! - .catEyeModeConfig!.detectionDistance != - null) { - detectionDistance = _handleDetectionDistance(state - .lockSetInfoData - .value - .lockSettingInfo! - .catEyeConfig![0] - .catEyeModeConfig! - .detectionDistance!); - } - - int realTimeMode = state.lockSetInfoData.value.lockSettingInfo! - .catEyeConfig![0].catEyeModeConfig!.realTimeMode!; - // 根据需要调整 catEyeMode 的值 int adjustedCatEyeMode = originalCatEyeMode > 0 ? originalCatEyeMode - 1 : originalCatEyeMode; diff --git a/lib/mine/mine/starLockMine_page.dart b/lib/mine/mine/starLockMine_page.dart index fad1ad1d..aae1828c 100755 --- a/lib/mine/mine/starLockMine_page.dart +++ b/lib/mine/mine/starLockMine_page.dart @@ -49,7 +49,7 @@ class StarLockMinePageState extends State with BaseWidget { onTap: () { WechatManageTool.getAppInfo(() { WxPushWeChatMiniProgramTool.pushWeChatMiniProgram( - 'wxbe340095d2b8fd51'); + F.wechatAppInfo.wechatAppId, F.wechatAppInfo.universalLink); }); }, child: Padding( diff --git a/lib/mine/mineSet/mineSet/mineSet_page.dart b/lib/mine/mineSet/mineSet/mineSet_page.dart index e0835c62..0f277f3a 100755 --- a/lib/mine/mineSet/mineSet/mineSet_page.dart +++ b/lib/mine/mineSet/mineSet/mineSet_page.dart @@ -86,7 +86,8 @@ class _MineSetPageState extends State onTap: () { WechatManageTool.getAppInfo(() { WxPushWeChatMiniProgramTool.pushWeChatMiniProgram( - 'wxbe340095d2b8fd51'); + F.wechatAppInfo.wechatAppId, + F.wechatAppInfo.universalLink); }); }, child: ClipRRect( diff --git a/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart b/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart index 7e3bc531..ede0e3b8 100644 --- a/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart @@ -59,10 +59,15 @@ class UdpRbcuInfoHandler extends ScpMessageBaseHandle @override void handleResp(ScpMessage scpMessage) { + final RbcuInfo rbcuInfo = scpMessage.Payload; final GenericResp genericResp = scpMessage.Payload; if (checkGenericRespSuccess(genericResp)) { // 收到回复之后停止重发 startChartManage.stopSendingRbcuInfoMessages(); + if (rbcuInfo.isResp) { + // 如果是回复的消息 + _handleResultRbcuInfo(rbcuInfo); + } } } @@ -70,5 +75,6 @@ class UdpRbcuInfoHandler extends ScpMessageBaseHandle void _handleResultRbcuInfo(RbcuInfo rbcuInfo) { startChartManage.rbcuInfo = rbcuInfo; startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.startSendingRbcuProbeTMessages(); } } diff --git a/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart index 0f145cd4..39745372 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart @@ -40,6 +40,9 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle // 同意接听之后,停止对讲请求超时监听定时器 talkeRequestOverTimeTimerManager.renew(); talkeRequestOverTimeTimerManager.cancel(); + // 启动发送rbcuInfo数据 + startChartManage.startSendingRbcuInfoMessages( + ToPeerId: startChartManage.lockPeerId); } } diff --git a/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart index 4308fc3d..c5b6b7cd 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart @@ -15,7 +15,9 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle factory UdpTalkDataHandler() { return _instance; } + UdpTalkDataHandler._internal(); + static final UdpTalkDataHandler _instance = UdpTalkDataHandler._internal(); int _recentRecvDataRate = 0; @@ -157,7 +159,7 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle final TalkDataH264Frame talkDataH264Frame = TalkDataH264Frame(); talkDataH264Frame.mergeFromBuffer(talkData.content); // AppLog.log('H264 TalkData :$talkDataH264Frame'); - talkDataRepository.addTalkData(talkData); + // talkDataRepository.addTalkData(talkData); } /// 处理图片数据 diff --git a/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart index 89d984d4..686b8bc3 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart @@ -34,6 +34,8 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle talkDataOverTimeTimerManager.cancel(); EasyLoading.showToast('已挂断'.tr); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); Get.back(); } } @@ -49,6 +51,8 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle talkeRequestOverTimeTimerManager.cancel(); talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); } @override diff --git a/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart index b12cf70a..b1fbcb15 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart @@ -31,6 +31,8 @@ class UdpTalkRejectHandler extends ScpMessageBaseHandle talkeRequestOverTimeTimerManager.cancel(); talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); } @override @@ -43,6 +45,8 @@ class UdpTalkRejectHandler extends ScpMessageBaseHandle talkeRequestOverTimeTimerManager.cancel(); talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); } @override diff --git a/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart b/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart index 4223f441..3fe67456 100644 --- a/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart +++ b/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart @@ -33,6 +33,8 @@ class TalkDataOverTimeTimerManager { StartChartManage().sendTalkHangupMessage(); StartChartManage().stopTalkPingMessageTimer(); StartChartManage().stopTalkExpectMessageTimer(); + StartChartManage().stopSendingRbcuInfoMessages(); + StartChartManage().stopSendingRbcuProBeMessages(); talkStatus.setNotTalkData(); talkStatus.setEnd(); AudioPlayerManager().stopRingtone(); diff --git a/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart b/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart index ac86f94b..4fa9b85a 100644 --- a/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart +++ b/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart @@ -37,6 +37,8 @@ class TalkePingOverTimeTimerManager { StartChartManage().stopTalkExpectMessageTimer(); // 如果通话异常,则发送通话中挂断 StartChartManage().sendTalkHangupMessage(); + StartChartManage().stopSendingRbcuInfoMessages(); + StartChartManage().stopSendingRbcuProBeMessages(); talkStatus.setNotTalkPing(); talkStatus.setEnd(); Get.back(); diff --git a/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart b/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart index 035b098a..2ec529f6 100644 --- a/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart +++ b/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart @@ -32,6 +32,8 @@ class TalkeRequestOverTimeTimerManager { EasyLoading.showToast('通话未接通,已挂断'.tr, duration: 2000.milliseconds); // 超时未接听,发送挂断请求 StartChartManage().sendTalkRejectMessage(); + StartChartManage().stopSendingRbcuInfoMessages(); + StartChartManage().stopSendingRbcuProBeMessages(); talkStatus.setInitializationCompleted(); Get.back(); } diff --git a/lib/talk/starChart/star_chart_manage.dart b/lib/talk/starChart/star_chart_manage.dart index 10a94cb8..75e11da7 100644 --- a/lib/talk/starChart/star_chart_manage.dart +++ b/lib/talk/starChart/star_chart_manage.dart @@ -314,9 +314,10 @@ class StartChartManage { ); } - final info = rbcuInfo = RbcuInfo(address: ['119.137.55.161:62289']); - if (info != null && info.address != null && info.address.length > 0) { - info.address.forEach((element) { + if (rbcuInfo != null && + rbcuInfo!.address != null && + rbcuInfo!.address.length > 0) { + rbcuInfo!.address.forEach((element) { // 拆分 element 字符串 final parts = element.split(':'); final host = parts[0]; // IP 地址 @@ -345,6 +346,7 @@ class StartChartManage { rbcuInfoTimer ??= Timer.periodic(Duration(seconds: _defaultIntervalTime), (timer) { // 发送RbcuInfo 地址交换消息 + _log(text: '发送RbcuInfo 地址交换消息'); _sendRbcuInfoMessage(ToPeerId: ToPeerId); }); } @@ -585,6 +587,8 @@ class StartChartManage { stopTalkExpectMessageTimer(); stopTalkPingMessageTimer(); stopCallRequestMessageTimer(); + stopSendingRbcuInfoMessages(); + stopSendingRbcuProBeMessages(); // 取消定时器 talkePingOverTimeTimerManager.cancel(); @@ -665,6 +669,8 @@ class StartChartManage { stopTalkExpectMessageTimer(); stopTalkPingMessageTimer(); stopCallRequestMessageTimer(); + stopSendingRbcuInfoMessages(); + stopSendingRbcuProBeMessages(); // 取消定时器 talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); @@ -1101,7 +1107,7 @@ class StartChartManage { bluetoothDeviceName: bluetoothDeviceName, bleStructData: bleStructData, ); - await _sendMessage(message: message); + await _sendMessage(message: message); } /// 销毁资源 diff --git a/lib/talk/starChart/views/talkView/talk_view_page.dart b/lib/talk/starChart/views/talkView/talk_view_page.dart index f4c3bd23..2059d0ac 100644 --- a/lib/talk/starChart/views/talkView/talk_view_page.dart +++ b/lib/talk/starChart/views/talkView/talk_view_page.dart @@ -58,6 +58,7 @@ class _TalkViewPageState extends State // _latencyStream = measureServerLatencyStream(F.apiPrefix); // 替换为你的服务器地址 } + // // Stream measureServerLatencyStream(String url) async* { // while (true) { @@ -155,7 +156,7 @@ class _TalkViewPageState extends State ), Obx(() => state.listData.value.isEmpty ? Positioned( - bottom: 300.h, + bottom: 310.h, child: Text( '正在创建安全连接...'.tr, style: TextStyle(color: Colors.black, fontSize: 26.sp), @@ -509,13 +510,17 @@ class _TalkViewPageState extends State onLongPress: longPress, onLongPressUp: longPressUp, child: SizedBox( - height: 140.h, + height: 160.w, + width: 140.w, child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( width: wh, height: wh, + constraints: BoxConstraints( + minWidth: wh, + ), decoration: BoxDecoration( color: backgroundColor, borderRadius: BorderRadius.circular((wh + 10.w * 2) / 2), @@ -524,10 +529,11 @@ class _TalkViewPageState extends State child: Image.asset(iconUrl, fit: BoxFit.fitWidth), ), SizedBox(height: 20.w), - Expanded( - child: Text(name, - style: TextStyle(fontSize: 20.sp, color: Colors.white), - textAlign: TextAlign.center), + Text( + name, + style: TextStyle(fontSize: 20.sp, color: Colors.white), + textAlign: TextAlign.center, // 当文本超出指定行数时,使用省略号表示 + maxLines: 2, // 设置最大行数为1 ) ], ), diff --git a/lib/tools/wechat/wx_push_miniProgram/wx_push_miniProgram.dart b/lib/tools/wechat/wx_push_miniProgram/wx_push_miniProgram.dart index e877bae0..43a16561 100644 --- a/lib/tools/wechat/wx_push_miniProgram/wx_push_miniProgram.dart +++ b/lib/tools/wechat/wx_push_miniProgram/wx_push_miniProgram.dart @@ -23,10 +23,9 @@ class WxPushWeChatMiniProgramTool { doOnIOS: true); } - static Future pushWeChatMiniProgram(String appId) async { + static Future pushWeChatMiniProgram(String appId,String _associationUrl) async { if (!isInit) { isInit = true; - final String _associationUrl = await Storage.getAssociationUrl(); await initWeChatMiniProgram(appId, _associationUrl); final MiniProgram miniProgram = MiniProgram( diff --git a/pubspec.yaml b/pubspec.yaml index 6b4ab3c9..048f8ae5 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -109,12 +109,12 @@ version: 1.0.85+2025010802 environment: sdk: '>=2.12.0 <3.0.0' -fluwx: - app_id: 'wxbe340095d2b8fd51' - debug_logging: true - android: - ios: - universal_link: https://lock.skychip.top/apple-app-site-association.json +#fluwx: +# app_id: 'wxbe340095d2b8fd51' +# debug_logging: true +# android: +# ios: +# universal_link: https://lock.skychip.top/apple-app-site-association.json # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions