takeCardPictureOnDialog function

Future<XFile?> takeCardPictureOnDialog(
  1. BuildContext context, {
  2. Widget? scanWidget,
  3. CameraLensDirection? direction,
  4. ResolutionPreset? resolutionPreset,
  5. bool changeCamera = true,
})

Implementation

Future<XFile?> takeCardPictureOnDialog(BuildContext context,{Widget? scanWidget,CameraLensDirection? direction,ResolutionPreset? resolutionPreset,bool changeCamera = true}){
  return showDialog<XFile>(context: context, builder: (BuildContext context){
    return Dialog(
      insetPadding: EdgeInsets.zero,
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)), //this right here
      child: SizedBox(
        height: double.maxFinite,
        width: double.maxFinite,
        child: Camera(
          cameraDirection: direction,
          resolutionPreset: resolutionPreset,
          filterBuilder: (context, controller) {
            return Stack(
              children: [
                ScanCard(
                  changeCamera: changeCamera,
                  onCapture: () async {
                    final result = await controller.takePicture();
                    if (context.mounted) {
                      Navigator.of(context).pop(result);
                    }
                  },
                  backTap: (){
                    Navigator.pop(context);
                  },
                  onChangeCamera: () {
                    final TakePictureState? state = context.findAncestorStateOfType<TakePictureState>();
                    if (state != null) {
                      state.changeCamera();
                    }
                  },
                  onFlash: (status) {
                    controller.setFlashMode(status);
                  },
                  onZoom: (zoomLevel) {
                    controller.setZoomLevel(zoomLevel);
                  },
                ),
                if(scanWidget != null)
                  scanWidget,
              ],
            );
          },
        ),
      ),
    );
  });
}