FakeTcccCall.state constructor
FakeTcccCall.state(
- TcccCallState state, {
- TcccMediaMode mediaMode = TcccMediaMode.trtc,
- bool? isInRoom,
- String callId = 'fake-call',
- String channelId = '10086',
- String? peerDisplayName = 'Service',
- String? peerSubtitle,
- bool isMuted = false,
- TcccAudioRoute audioRoute = TcccAudioRoute.earpiece,
- bool reconnecting = false,
- TcccCause endedCause = TcccCause.terminated,
- TcccOriginator endedOriginator = TcccOriginator.local,
Implementation
factory FakeTcccCall.state(
TcccCallState state, {
TcccMediaMode mediaMode = TcccMediaMode.trtc,
bool? isInRoom,
String callId = 'fake-call',
String channelId = '10086',
String? peerDisplayName = 'Service',
String? peerSubtitle,
bool isMuted = false,
TcccAudioRoute audioRoute = TcccAudioRoute.earpiece,
bool reconnecting = false,
TcccCause endedCause = TcccCause.terminated,
TcccOriginator endedOriginator = TcccOriginator.local,
}) {
final now = DateTime.now();
final startedAt = now.subtract(const Duration(seconds: 5));
final inRoom =
isInRoom ??
(mediaMode == TcccMediaMode.trtc &&
(state == TcccCallState.earlyMedia ||
state == TcccCallState.accepted));
final ringingAt =
state == TcccCallState.earlyMedia ||
state == TcccCallState.accepted ||
state == TcccCallState.ending
? now.subtract(const Duration(seconds: 3))
: null;
final connectedAt = state == TcccCallState.accepted
? now
: (state == TcccCallState.ending
? now.subtract(const Duration(seconds: 1))
: null);
final status = TcccCallSnapshot(
state: state,
callId: callId,
channelId: channelId,
peerDisplayName: peerDisplayName,
peerSubtitle: peerSubtitle,
mediaMode: mediaMode,
isIvr: mediaMode == TcccMediaMode.signalingOnly,
isInRoom: inRoom,
isMuted: isMuted,
audioRoute: audioRoute,
callStartedAt: startedAt,
ringingAt: ringingAt,
connectedAt: connectedAt,
signalingReconnecting: reconnecting,
lastCause: state == TcccCallState.ending ? endedCause : null,
lastOriginator: state == TcccCallState.ending ? endedOriginator : null,
);
TcccCallResult? result;
if (state == TcccCallState.ending) {
final endedAt = startedAt.add(const Duration(seconds: 8));
result = TcccCallResult(
callId: callId,
channelId: channelId,
cause: endedCause,
causeMessage: endedCause.value,
originator: endedOriginator,
startedAt: startedAt,
ringingAt: ringingAt,
connectedAt: connectedAt,
endedAt: endedAt,
);
}
return FakeTcccCall(
callId: callId,
channelId: channelId,
startedAt: startedAt,
status: status,
result: result,
);
}