pickImage static method

Future<String?> pickImage(
  1. ImageSource imageSource
)

Implementation

static Future<String?> pickImage(ImageSource imageSource) async {
  final PermissionStatus? status = imageSource == ImageSource.gallery
      ? await _requestPermissionsPhoto()
      : await requestPermissionsCamera();

  if (status?.isGranted ?? false) {
    try {
      final ImagePicker picker = ImagePicker();
      final XFile? image = await picker.pickImage(source: imageSource);
      if (image != null) {
        // Store the image path in the state
        return image.path;
      } else {
        // User canceled the picker
      }
    } catch (e, s) {
      mLogger.e('pickImage::e::$e', stackTrace: s, error: e);
      unawaited(mDialogConfirm('Notice'.tr, MStr.picturePermission, () async {
        await openAppSettings();
      }, tag: MAppDialogKey.confirmPicturePermission));
    }
  } else {
    unawaited(mDialogConfirm('Notice'.tr, MStr.picturePermission, () async {
      await openAppSettings();
    }, tag: MAppDialogKey.confirmPicturePermission));
  }
  return null;
}