openCamera method

Future<NEResult> openCamera(
  1. NECamera camera,
  2. int viewId
)

Implementation

Future<NEResult> openCamera(NECamera camera, int viewId) async {
  CallKitUILog.i(_tag, "openCamera camera = $camera");
  NEResult result = NEResult(code: 0, message: 'success');
  if (Platform.isAndroid) {
    CallKitUILog.i(_tag, 'CallManager openCamera');
    PermissionResult permissionResult = PermissionResult.granted;
    if (await Permission.has(permissions: [PermissionType.camera])) {
      permissionResult = await Permission.request(NECallType.video);
    }
    if (PermissionResult.granted == permissionResult) {
      var ret = await NECallEngine.instance.enableLocalVideo(true);
      result = NEResult(code: ret.code, message: ret.msg);
    } else {
      result = NEResult(code: -1, message: "Start camera permission denied.");
    }
  } else {
    var ret = await NECallEngine.instance.enableLocalVideo(true);
    result = NEResult(code: ret.code, message: ret.msg);
  }

  if (result.code == 0 &&
      NECallStatus.none != CallState.instance.selfUser.callStatus) {
    CallState.instance.isCameraOpen = true;
    CallState.instance.camera = camera;
    CallState.instance.selfUser.videoAvailable = true;
  }
  NECallKitPlatform.instance.updateCallStateToNative();
  return result;
}