interCommunication method

  1. @override
Map<String, dynamic> interCommunication(
  1. bool isStart,
  2. bool isSingleChannel
)
override

Implementation

@override
Map<String, dynamic> interCommunication(bool isStart, bool isSingleChannel) {
  if (isRequestPending) {
    return {
      "isError": true,
      "message": "PENDING_PREVIOUS_REQUEST",
      "details": "Called interCommunication()"
    };
  }
  if (initializedCamera.isEmpty) {
    return {"isError": true, "message": "Invalid camera operation!"};
  }

  if (isSingleChannel) {
    if (isDualInterComStarted) {
      methodChannel.invokeMethod(
          'DUAL_INTERCOM_STOP', {"cameraId": initializedCamera});
    }

    if (isStart) {
      isSingleInterComStarted = true;
      methodChannel.invokeMethod(
          'SINGLE_INTERCOM_START', {"cameraId": initializedCamera});
    } else {
      isSingleInterComStarted = false;
      methodChannel.invokeMethod(
          'SINGLE_INTERCOM_STOP', {"cameraId": initializedCamera});
    }
  } else {
    if (isDualInterComStarted) {
      methodChannel.invokeMethod(
          'SINGLE_INTERCOM_STOP', {"cameraId": initializedCamera});
    }

    if (isStart) {
      isDualInterComStarted = true;
      methodChannel.invokeMethod(
          'DUAL_INTERCOM_START', {"cameraId": initializedCamera});
    } else {
      isDualInterComStarted = false;
      methodChannel.invokeMethod(
          'DUAL_INTERCOM_STOP', {"cameraId": initializedCamera});
    }
  }

  return {
    "isError": false,
    "message": isStart
        ? "Enabled InterCommunication!"
        : "Disabled InterCommunication!"
  };
}