fix:完善状态变更和通知

This commit is contained in:
liyi 2024-12-09 12:05:34 +08:00
parent 7a9464dfa1
commit 041c0b7775
6 changed files with 20 additions and 19 deletions

View File

@ -32,6 +32,8 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
_handleCheckTalkDataTimer(); _handleCheckTalkDataTimer();
// //
_handleStartSendTalkExpectDataRequest(); _handleStartSendTalkExpectDataRequest();
//
talkStatus.setDuringCall();
} }
} }
@ -57,7 +59,7 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
// //
startChartManage.stopTalkPingMessageTimer(); startChartManage.stopTalkPingMessageTimer();
startChartManage.stopTalkExpectMessageTimer(); startChartManage.stopTalkExpectMessageTimer();
startChartManage.changeCallingStatus(false); talkStatus.setNotTalkPing();
}); });
} }
@ -70,7 +72,7 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
EasyLoading.showToast('通话连接失败', duration: 2000.milliseconds); EasyLoading.showToast('通话连接失败', duration: 2000.milliseconds);
startChartManage.stopTalkPingMessageTimer(); startChartManage.stopTalkPingMessageTimer();
startChartManage.stopTalkExpectMessageTimer(); startChartManage.stopTalkExpectMessageTimer();
startChartManage.changeCallingStatus(false); talkStatus.setNotTalkData();
}); });
} }

View File

@ -5,6 +5,7 @@ import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart'; import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart'; import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart';
import 'package:star_lock/talk/startChart/proto/generic.pb.dart'; import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
import 'package:star_lock/talk/startChart/proto/talk_expect.pb.dart';
import '../../start_chart_manage.dart'; import '../../start_chart_manage.dart';
@ -12,7 +13,9 @@ class UdpTalkExpectHandler extends ScpMessageBaseHandle
implements ScpMessageHandler { implements ScpMessageHandler {
@override @override
void handleReq(ScpMessage scpMessage) { void handleReq(ScpMessage scpMessage) {
// TODO: //
final TalkExpect talkExpect = scpMessage.Payload;
print('收到预期音视频数据请求');
} }
@override @override

View File

@ -19,8 +19,7 @@ class UdpTalkPingHandler extends ScpMessageBaseHandle
if (checkGenericRespSuccess(genericResp)) { if (checkGenericRespSuccess(genericResp)) {
// //
talkePingOverTimeTimerManager.receiveMessage(); talkePingOverTimeTimerManager.receiveMessage();
//
startChartManage.changeCallingStatus(true);
} }
} }

View File

@ -18,7 +18,7 @@ class UdpTalkRejectHandler extends ScpMessageBaseHandle
@override @override
void handleResp(ScpMessage scpMessage) { void handleResp(ScpMessage scpMessage) {
// //
EasyLoading.showToast('对方已经拒绝接听', duration: 2000.milliseconds); talkStatus.setRejected();
} }
@override @override

View File

@ -75,7 +75,6 @@ class StartChartManage {
); );
String relayPeerId = ''; // peerId String relayPeerId = ''; // peerId
bool _calling = false; //
// StartChartTalkStatus // StartChartTalkStatus
StartChartTalkStatus talkStatus = StartChartTalkStatus.instance; StartChartTalkStatus talkStatus = StartChartTalkStatus.instance;
@ -138,16 +137,6 @@ class StartChartManage {
} }
} }
///
bool checkIsCalling() {
return _calling;
}
///
void changeCallingStatus(bool status) {
_calling = status;
}
// udp // udp
Future<void> _onlineRelayService() async { Future<void> _onlineRelayService() async {
var addressIListenFrom = InternetAddress.anyIPv4; var addressIListenFrom = InternetAddress.anyIPv4;
@ -255,6 +244,7 @@ class StartChartManage {
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
); );
await _sendMessage(message: message); await _sendMessage(message: message);
talkStatus.setWaitingAnswer();
} }
// //
@ -742,4 +732,12 @@ class StartChartManage {
void changeTalkExpectDataType({required TalkExpect talkExpect}) { void changeTalkExpectDataType({required TalkExpect talkExpect}) {
defaultTalkExpect = talkExpect; defaultTalkExpect = talkExpect;
} }
///
void destruction() {
stopTalkExpectMessageTimer();
stopTalkPingMessageTimer();
stopHeartbeat();
stopReStartOnlineStartChartServer();
}
} }

View File

@ -40,6 +40,7 @@ class StartChartTalkStatus {
// //
void _setStatus(TalkStatus newStatus) { void _setStatus(TalkStatus newStatus) {
if (_status == newStatus) return; // if (_status == newStatus) return; //
print("对讲状态变化: ${_status.name} -> ${newStatus.name}");
// //
_status = newStatus; _status = newStatus;
@ -49,8 +50,6 @@ class StartChartTalkStatus {
// //
void _onStatusChanged(TalkStatus newStatus) { void _onStatusChanged(TalkStatus newStatus) {
// UI
print("对讲状态变化: ${_status.name} -> ${newStatus.name}");
// //
EventBusManager().eventBus!.fire(TalkStatusChangeEvent(_status, newStatus)); EventBusManager().eventBus!.fire(TalkStatusChangeEvent(_status, newStatus));
} }