onTakePhoto method

Future<void> onTakePhoto()

Implementation

Future<void> onTakePhoto() async {
  late int rotate;
  if (currentOrientation.value == DeviceOrientation.landscapeLeft) {
    isPortraitUpWhileTakePhoto(false);
    rotate = -90;
  } else if (currentOrientation.value == DeviceOrientation.landscapeRight) {
    isPortraitUpWhileTakePhoto(false);
    rotate = 90;
  } else {
    isPortraitUpWhileTakePhoto(true);
    rotate = 0;
  }

  ///
  if (previewFile.value == null) {
    previewFile.value = await cameraController?.takePicture();
    await cameraController?.pausePreview();
    if (previewFile.value != null) {
      isResizing.value = true;
      final resizeFile = await Utils.compressImageV2(
        previewFile.value!,
        100,
        rotate: rotate,
        imageSizeCallBack: (p0) {
          // localImageSize.value = p0;
        },
      );
      previewFile.value = resizeFile;
      isResizing.value = false;

      ///
      imageLocation = currentLocation;
      createdDateTime = DateTime.now().toUtc().toIso8601String();
      callEngine(resizeFile);
      if (savePhotoAfterShot == true) {
        await SaverGallery.saveImage(
          await resizeFile.readAsBytes(),
          fileName: resizeFile.name,
          skipIfExists: true,
        );
      }
      await cameraController?.resumePreview();
    }
  } else {
    await cameraController?.resumePreview();
  }
}