47 lines
1.1 KiB
Dart
47 lines
1.1 KiB
Dart
|
|
enum CallState { idle, ringing, connecting, connected, disconnected }
|
||
|
|
|
||
|
|
class CallInfo {
|
||
|
|
final CallState state;
|
||
|
|
final String? callSid;
|
||
|
|
final String? callerNumber;
|
||
|
|
final Duration duration;
|
||
|
|
final bool isMuted;
|
||
|
|
final bool isSpeakerOn;
|
||
|
|
final bool isOnHold;
|
||
|
|
|
||
|
|
const CallInfo({
|
||
|
|
this.state = CallState.idle,
|
||
|
|
this.callSid,
|
||
|
|
this.callerNumber,
|
||
|
|
this.duration = Duration.zero,
|
||
|
|
this.isMuted = false,
|
||
|
|
this.isSpeakerOn = false,
|
||
|
|
this.isOnHold = false,
|
||
|
|
});
|
||
|
|
|
||
|
|
CallInfo copyWith({
|
||
|
|
CallState? state,
|
||
|
|
String? callSid,
|
||
|
|
String? callerNumber,
|
||
|
|
Duration? duration,
|
||
|
|
bool? isMuted,
|
||
|
|
bool? isSpeakerOn,
|
||
|
|
bool? isOnHold,
|
||
|
|
}) {
|
||
|
|
return CallInfo(
|
||
|
|
state: state ?? this.state,
|
||
|
|
callSid: callSid ?? this.callSid,
|
||
|
|
callerNumber: callerNumber ?? this.callerNumber,
|
||
|
|
duration: duration ?? this.duration,
|
||
|
|
isMuted: isMuted ?? this.isMuted,
|
||
|
|
isSpeakerOn: isSpeakerOn ?? this.isSpeakerOn,
|
||
|
|
isOnHold: isOnHold ?? this.isOnHold,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
bool get isActive =>
|
||
|
|
state == CallState.ringing ||
|
||
|
|
state == CallState.connecting ||
|
||
|
|
state == CallState.connected;
|
||
|
|
}
|