appImagePick method
Implementation
appImagePick(
{ImageSource source = ImageSource.gallery,
required BuildContext context}) async {
final isPermissionGranted = source == ImageSource.camera
? await Permission.camera.isGranted
: (await Permission.photos.isGranted ||
await Permission.photos.isLimited);
debugPrint(isPermissionGranted.toString());
Permission.photos.status
.then((value) => debugPrint(' photos permission ${value.toString()}'));
Permission.camera.status
.then((value) => debugPrint(' camera permission ${value.toString()}'));
if (Platform.isAndroid) {
if (!isPermissionGranted) {
if (source == ImageSource.camera) {
await Permission.camera.request();
if (await Permission.camera.isPermanentlyDenied ||
await Permission.camera.isDenied) {
showPermissionDialog('camera', context);
}
} else if (source == ImageSource.gallery) {
await Permission.photos.request();
if (await Permission.photos.isPermanentlyDenied ||
await Permission.photos.isDenied) {
showPermissionDialog('photos', context);
}
}
}
} else if (Platform.isIOS) {
if (source == ImageSource.camera) {
await Permission.camera.request();
if (await Permission.camera.isPermanentlyDenied ||
await Permission.camera.isDenied ||
await Permission.camera.isRestricted) {
showPermissionDialog('camera', context);
}
} else if (source == ImageSource.gallery) {
await Permission.photos.request();
if (await Permission.photos.isPermanentlyDenied ||
await Permission.photos.isDenied ||
await Permission.photos.isRestricted) {
showPermissionDialog('photos', context);
}
}
}
if (isPermissionGranted) {
final pickedFile = await _picker.pickImage(source: source);
if (pickedFile != null) {
file = File(pickedFile.path);
}
Navigator.of(context).pop();
}
return file;
}