import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'dart:io'; import 'package:image_picker/image_picker.dart'; import 'package:permission_handler/permission_handler.dart'; import '../services/navigation_service.dart'; class ImagePick{ // Future pick(String source) async { // if(source=="camera"){ // var cameraStatus = await Permission.camera.status; // if (!cameraStatus.isGranted) { // await Permission.camera.request(); // final img= await pickImage(ImageSource.camera); // if(img!=null){ // return img; // }else{ // //dialog " please try again" // Navigator.pop( NavigatorService.navigatorKey.currentContext!); // return null; // } // } else { // final img= await pickImage(ImageSource.camera); // if(img!=null){ // return img; // }else{ // //dialog " please try again" // Navigator.pop( NavigatorService.navigatorKey.currentContext!); // return img; // } // } // }else{ // var storageStatus = // await Permission.storage.status; // if (!storageStatus.isGranted) { // await Permission.storage.request(); // final img=await pickImage(ImageSource.gallery); // if(img!=null){ // return img; // }else{ // //dialog " please try again" // Navigator.pop( NavigatorService.navigatorKey.currentContext!); // } // } else { // final img= await pickImage(ImageSource.gallery); // if(img!=null){ // return img; // }else{ // //dialog " please try again" // Navigator.pop( NavigatorService.navigatorKey.currentContext!); // } // } // } // return null; // } Future pick(String source, BuildContext context) async { if (source == "camera") { var cameraStatus = await Permission.camera.status; if (!cameraStatus.isGranted) { await Permission.camera.request(); final img = await pickImage(ImageSource.camera); return img; } else { final img = await pickImage(ImageSource.camera); return img; } } else { var storageStatus = await Permission.storage.status; if (!storageStatus.isGranted) { await Permission.storage.request(); final img = await pickImage(ImageSource.gallery); return img; } else { final img = await pickImage(ImageSource.gallery); return img; } } } Future pickImage(imageSource) async { try { final image = await ImagePicker().pickImage(source: imageSource); if (image == null) return null; final imageTemporary = File(image.path); return imageTemporary; } on PlatformException catch (e) { if (kDebugMode) { print("failed : $e"); } return null; } } }