pickImages method

  1. @override
Future<List<Asset>> pickImages({
  1. List<Asset> selectedAssets = const [],
  2. IOSOptions iosOptions = const IOSOptions(),
  3. AndroidOptions androidOptions = const AndroidOptions(),
})
override

Implementation

@override
Future<List<Asset>> pickImages({
  List<Asset> selectedAssets = const [],
  IOSOptions iosOptions = const IOSOptions(),
  AndroidOptions androidOptions = const AndroidOptions(),
}) async {
  try {
    final List<dynamic> images = await methodChannel.invokeMethod(
      'pickImages',
      <String, dynamic>{
        'iosOptions': iosOptions.toJson(),
        'androidOptions': androidOptions.toJson(),
        'selectedAssets': selectedAssets
            .map(
              (Asset asset) => asset.identifier,
            )
            .toList(),
      },
    );
    final List<Asset> assets = <Asset>[];
    for (var item in images) {
      final Asset asset = Asset(
        item['identifier'],
        item['name'],
        item['width'],
        item['height'],
      );
      assets.add(asset);
    }
    return assets;
  } on PlatformException catch (e) {
    switch (e.code) {
      case "CANCELLED":
        throw NoImagesSelectedException(e.message ?? 'CANCELLED');
      default:
        rethrow;
    }
  }
}