statusUpdate method

void statusUpdate(
  1. String userJid,
  2. String callStatus
)

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);
    }
  }
}