pickMedia static method

Future<List<MediaFile>?> pickMedia({
  1. Config? config,
  2. bool startWithRecent = false,
  3. bool singleMedia = false,
  4. Locale? locale,
  5. PageTransitionType pageTransitionType = PageTransitionType.rightToLeft,
  6. List<MediaFile>? initSelectedMedia,
  7. List<MediaFile>? extraRecentMedia,
  8. required BuildContext context,
  9. GalleryMediaType? mediaType,
})

Implementation

static Future<List<MediaFile>?> pickMedia({
  Config? config,
  bool startWithRecent = false,
  bool singleMedia = false,
  Locale? locale,
  PageTransitionType pageTransitionType = PageTransitionType.rightToLeft,
  List<MediaFile>? initSelectedMedia,
  List<MediaFile>? extraRecentMedia,
  required BuildContext context,
  GalleryMediaType? mediaType,
}) async {
  final resolvedMediaType = mediaType ?? GalleryMediaType.all;
  final controller = _getOrCreateController();
  List<MediaFile>? media;
  controller.configuration(
    config,
    onSelect: (selectedMedias) {
      media = selectedMedias;
    },
    startWithRecent: startWithRecent,
    heroBuilder: null,
    multipleMediasBuilder: null,
    initSelectedMedias: initSelectedMedia,
    extraRecentMedia: extraRecentMedia,
    isRecent: startWithRecent,
    mediaType: resolvedMediaType,
  );
  if (!controller.isInitialized) {
    unawaited(controller.initializeAlbums(locale: locale));
  }

  await Navigator.push(
    context,
    _buildPickerRoute(
      pageTransitionType: pageTransitionType,
      child: GalleryPickerView(
        onSelect: (mediaTmp) {
          media = mediaTmp;
        },
        config: config,
        locale: locale,
        singleMedia: singleMedia,
        initSelectedMedia: initSelectedMedia,
        extraRecentMedia: extraRecentMedia,
        startWithRecent: startWithRecent,
        mediaType: resolvedMediaType,
      ),
    ),
  );
  return media;
}