From 7a9464dfa1a9f20071c933faa0be39702e6d9622 Mon Sep 17 00:00:00 2001 From: liyi Date: Mon, 9 Dec 2024 11:47:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0eventBus=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../startChart/events/talk_status_change_event.dart | 13 +++++++++++++ .../startChart/handle/scp_message_base_handle.dart | 5 +++++ lib/talk/startChart/start_chart_talk_status.dart | 5 +++++ 3 files changed, 23 insertions(+) create mode 100644 lib/talk/startChart/events/talk_status_change_event.dart diff --git a/lib/talk/startChart/events/talk_status_change_event.dart b/lib/talk/startChart/events/talk_status_change_event.dart new file mode 100644 index 00000000..aea113c2 --- /dev/null +++ b/lib/talk/startChart/events/talk_status_change_event.dart @@ -0,0 +1,13 @@ +import 'package:star_lock/talk/startChart/start_chart_talk_status.dart'; + +class TalkStatusChangeEvent { + final TalkStatus oldStatus; + final TalkStatus newStatus; + + TalkStatusChangeEvent(this.oldStatus, this.newStatus); + + @override + String toString() { + return "TalkStatusChangeEvent: ${oldStatus.name} -> ${newStatus.name}"; + } +} diff --git a/lib/talk/startChart/handle/scp_message_base_handle.dart b/lib/talk/startChart/handle/scp_message_base_handle.dart index 6274332b..5575ebcd 100644 --- a/lib/talk/startChart/handle/scp_message_base_handle.dart +++ b/lib/talk/startChart/handle/scp_message_base_handle.dart @@ -8,6 +8,7 @@ import 'package:star_lock/talk/startChart/handle/other/overtime_timer_manger.dar import 'package:star_lock/talk/startChart/proto/generic.pb.dart'; import 'package:star_lock/talk/startChart/start_chart_manage.dart'; +import 'package:star_lock/talk/startChart/start_chart_talk_status.dart'; class ScpMessageBaseHandle { final startChartManage = StartChartManage(); @@ -25,6 +26,10 @@ class ScpMessageBaseHandle { ); + // 获取 StartChartTalkStatus 的唯一实例 + StartChartTalkStatus talkStatus = StartChartTalkStatus.instance; + + bool checkGenericRespSuccess(GenericResp genericResp) { if (genericResp == null) return false; diff --git a/lib/talk/startChart/start_chart_talk_status.dart b/lib/talk/startChart/start_chart_talk_status.dart index cfa9c8d3..da24b46c 100644 --- a/lib/talk/startChart/start_chart_talk_status.dart +++ b/lib/talk/startChart/start_chart_talk_status.dart @@ -1,4 +1,7 @@ // 定义视频对讲的状态枚举 +import 'package:star_lock/blue/io_tool/manager_event_bus.dart'; +import 'package:star_lock/talk/startChart/events/talk_status_change_event.dart'; + enum TalkStatus { waitingAnswer, // 等待接听 duringCall, // 通话中 @@ -48,6 +51,8 @@ class StartChartTalkStatus { void _onStatusChanged(TalkStatus newStatus) { // 例如,可以在这里发送通知、更新 UI 或记录日志 print("对讲状态变化: ${_status.name} -> ${newStatus.name}"); + // 发布状态变化事件 + EventBusManager().eventBus!.fire(TalkStatusChangeEvent(_status, newStatus)); } /// 设置状态为等待接听