statusUpdate method
Implementation
void statusUpdate(String userJid, String callStatus) {
if (callList.isEmpty) {
debugPrint("skipping statusUpdate as list is empty");
return;
}
debugPrint("statusUpdate $callStatus");
// var displayStatus = CallStatus.calling;
var displayStatus = "";
switch (callStatus) {
case CallStatus.connected:
displayStatus = CallStatus.connected;
break;
case CallStatus.connecting:
case CallStatus.ringing:
displayStatus = CallStatus.ringing;
break;
case CallStatus.callTimeout:
displayStatus = "Unavailable, Try again later";
break;
case CallStatus.disconnected:
case CallStatus.calling:
displayStatus = CallStatus.calling;
break;
case CallStatus.onHold:
displayStatus = CallStatus.onHold;
break;
case CallStatus.attended:
break;
case CallStatus.inviteCallTimeout:
displayStatus = CallStatus.callTimeout;
break;
case CallStatus.reconnecting:
displayStatus = "Reconnecting…";
break;
case CallStatus.onResume:
displayStatus = "Call on Resume";
break;
case CallStatus.userJoined:
case CallStatus.userLeft:
case CallStatus.reconnected:
displayStatus = '';
break;
case CallStatus.calling10s:
case CallStatus.callingAfter10s:
displayStatus = callStatus;
break;
default:
displayStatus = '';
break;
}
if (pinnedUserJid.value == userJid && isGroupCall) {
this.callStatus(displayStatus);
} else if (isOneToOneCall) {
this.callStatus(displayStatus);
} else {
debugPrint("isOneToOneCall $isOneToOneCall");
debugPrint("isGroupCall $isGroupCall");
debugPrint("Status is not updated");
}
if (MirrorflyUikit.instance.navigationManager.getCurrentRoute() ==
Constants.onGoingCallView) {
///update the status of the user in call user list
var indexOfItem =
callList.indexWhere((element) => element.userJid!.value == userJid);
/// check the index is valid or not
if (!indexOfItem.isNegative && callStatus != CallStatus.disconnected) {
debugPrint(
"indexOfItem of call status update $indexOfItem $callStatus");
/// update the current status of the user in the list
callList[indexOfItem].callStatus?.value = (callStatus);
}
}
}