showImagePicker function

Future<ChosenMedia?> showImagePicker(
  1. BuildContext context, {
  2. FileChanged? onChange,
  3. FilesSelected? onSelected,
  4. bool crop = true,
  5. VoidCallback? onPermissionsInitialized,
  6. bool preemptPermissions = false,
  7. bool allowThirdParties = false,
  8. dynamic extraOptions,
})

This pops the file picker/cropper and returns a single file.

Implementation

Future<ChosenMedia?> showImagePicker(
  BuildContext context, {
  FileChanged? onChange,
  FilesSelected? onSelected,
  bool crop = true,
  VoidCallback? onPermissionsInitialized,
  bool preemptPermissions = false,
  bool allowThirdParties = false,
  dynamic extraOptions,
}) async {
  try {
    final imageFn =
        // ignore: deprecated_member_use_from_same_package
        allowThirdParties ? Choosers.flutterFilePicker : Choosers.chooseImages;
    final selection = await showImageListPicker(context,
        onChange: onChange,
        maxSelections: 1,
        crop: crop,
        onSelected: onSelected,
        onPermissionsInitialized: onPermissionsInitialized,
        imageSelector: imageFn,
        preemptPermission: preemptPermissions,
        extraOptions: extraOptions);
    return selection?.firstOrNull();
  } catch (e, stack) {
    _log.severe("Image picker error: $e", e, stack);
    return null;
  }
}