fix:增加对讲通话状态类

This commit is contained in:
liyi 2024-12-09 11:37:27 +08:00
parent 661ba90f08
commit 86b985c4a4
2 changed files with 105 additions and 0 deletions

View File

@ -21,6 +21,7 @@ import 'package:star_lock/talk/startChart/entity/star_chart_register_node_entity
import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart';
import 'package:star_lock/talk/startChart/handle/scp_message_handler_factory.dart';
import 'package:star_lock/talk/startChart/proto/talk_expect.pb.dart';
import 'package:star_lock/talk/startChart/start_chart_talk_status.dart';
import 'package:star_lock/tools/deviceInfo_utils.dart';
import 'package:star_lock/tools/storage.dart';
import 'package:uuid/uuid.dart';
@ -76,6 +77,9 @@ class StartChartManage {
String relayPeerId = ''; // peerId
bool _calling = false; //
// StartChartTalkStatus
StartChartTalkStatus talkStatus = StartChartTalkStatus.instance;
//
Future<void> init() async {
if (isOnlineStartChartServer && _udpSocket != null) {
@ -170,6 +174,7 @@ class StartChartManage {
reportInformationData: data,
);
if (response.statusCode == 200) {
talkStatus.setInitializationCompleted();
//
_sendHeartbeatMessage();
// 线

View File

@ -0,0 +1,100 @@
//
enum TalkStatus {
waitingAnswer, //
duringCall, //
rejected, //
uninitialized, //
initializationCompleted, //
notTalkData, //
notTalkPing, //
error, //
}
class StartChartTalkStatus {
//
TalkStatus _status = TalkStatus.uninitialized;
//
StartChartTalkStatus._(
{TalkStatus initialStatus = TalkStatus.uninitialized}) {
_status = initialStatus;
}
//
static final StartChartTalkStatus _instance = StartChartTalkStatus._();
//
static StartChartTalkStatus get instance => _instance;
// getter
TalkStatus get status => _status;
// set
set status(TalkStatus newStatus) {
_setStatus(newStatus);
}
//
void _setStatus(TalkStatus newStatus) {
if (_status == newStatus) return; //
//
_status = newStatus;
//
_onStatusChanged(newStatus);
}
//
void _onStatusChanged(TalkStatus newStatus) {
// UI
print("对讲状态变化: ${_status.name} -> ${newStatus.name}");
}
///
void setWaitingAnswer() {
_setStatus(TalkStatus.waitingAnswer);
// "waitingAnswer"
}
///
void setDuringCall() {
_setStatus(TalkStatus.duringCall);
// "duringCall"
}
///
void setRejected() {
_setStatus(TalkStatus.rejected);
// "rejected"
}
///
void setUninitialized() {
_setStatus(TalkStatus.uninitialized);
// "uninitialized"
}
///
void setInitializationCompleted() {
_setStatus(TalkStatus.initializationCompleted);
// "initializationCompleted"
}
///
void setNotTalkData() {
_setStatus(TalkStatus.notTalkData);
// "notTalkData"
}
///
void setNotTalkPing() {
_setStatus(TalkStatus.notTalkPing);
// "notTalkPing"
}
///
void setError() {
_setStatus(TalkStatus.error);
// "error"
}
}