Upgrading cached_network_image 2 to 3
Breaking2.5.1 → 3.4.1Breaking1New2Changed1Fixed1
BreakingUpgrade verdict
1 breaking change.
In plain terms
- Image loading errors are now delivered through a stream rather than thrown, so code that caught thrown errors may need updating.
Must act 1 item needs code or config changes
Dart SDK requirement changed in 3.3.0: >=2.10.0 <3.0.0 → ^3.0.0.
Flutter requirement changed in 3.3.0: >=1.20.0 → >=3.10.0.
What you must change
Breaking1
Changes how ImageLoader reports errors: emits them as a stream instead of re-throwing.
ImageLoaderAPI changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- removed:
enum ImageRenderMethodForWeb - removed:
get CachedNetworkImageProvider.cacheKey: String - removed:
get CachedNetworkImageProvider.cacheManager: BaseCacheManager - removed:
get CachedNetworkImageProvider.errorListener: ErrorListener - removed:
get CachedNetworkImageProvider.headers: Map<String, String> - removed:
get CachedNetworkImageProvider.maxHeight: int - removed:
get CachedNetworkImageProvider.maxWidth: int - removed:
get CachedNetworkImageProvider.scale: double - removed:
get CachedNetworkImageProvider.url: String - removed:
member ImageRenderMethodForWeb.HtmlImage - removed:
member ImageRenderMethodForWeb.HttpGet - removed:
method CachedNetworkImageProvider.load( CachedNetworkImageProvider key, DecoderCallback decode): ImageStreamCompleter - removed:
typedef ErrorListener = void Function() - changed:
class CachedNetworkImageProvider: abstract extends ImageProvider<CachedNetworkImageProvider> → class CachedNetworkImageProvider extends ImageProvider<CachedNetworkImageProvider> - changed:
ctor CachedNetworkImage({ Key key, @required this.imageUrl, this.httpHeaders, this.imageBuilder, this.placeholder, this.progressIndicatorBuilder, this.errorWidget, this.fadeOutDuration = …, this.fadeOutCurve = …, this.fadeInDuration = …, this.fadeInCurve = …, this.width, this.height, this.fit, this.alignment = …, this.repeat = …, this.matchTextDirection = …, this.cacheManager, this.useOldImageOnU… → ctor CachedNetworkImage({ super.key, required this.imageUrl, this.httpHeaders, this.imageBuilder, this.placeholder, this.progressIndicatorBuilder, this.errorWidget, this.fadeOutDuration = …, this.fadeOutCurve = …, this.fadeInDuration = …, this.fadeInCurve = …, this.width, this.height, this.fit, this.alignment = …, this.repeat = …, this.matchTextDirection = …, this.cacheManager, this.useOldImageOn… - changed:
ctor CachedNetworkImageProvider( String url, { int maxHeight, int maxWidth, String cacheKey, double scale, @Deprecated('ErrorListener is deprecated, use listeners on the imagestream') ErrorListener errorListener, Map<String, String> headers, BaseCacheManager cacheManager, ImageRenderMethodForWeb imageRenderMethodForWeb, }) → ctor CachedNetworkImageProvider( this.url, { this.maxHeight, this.maxWidth, this.scale = …, this.errorListener, this.headers, this.cacheManager, this.cacheKey, this.imageRenderMethodForWeb = …, }) - changed:
ctor MultiImageStreamCompleter({ @required Stream<ui.Codec> codec, @required double scale, Stream<ImageChunkEvent> chunkEvents, InformationCollector informationCollector, }) → ctor MultiImageStreamCompleter({ required Stream<ui.Codec> codec, required double scale, Stream<ImageChunkEvent>? chunkEvents, InformationCollector? informationCollector, }) - changed:
field CachedNetworkImage.alignment: final AlignmentGeometry → field CachedNetworkImage.alignment: final Alignment - changed:
field CachedNetworkImage.cacheKey: final String → field CachedNetworkImage.cacheKey: final String? - changed:
field CachedNetworkImage.cacheManager: final BaseCacheManager → field CachedNetworkImage.cacheManager: final BaseCacheManager? - changed:
field CachedNetworkImage.color: final Color → field CachedNetworkImage.color: final Color? - changed:
field CachedNetworkImage.colorBlendMode: final BlendMode → field CachedNetworkImage.colorBlendMode: final BlendMode? - changed:
field CachedNetworkImage.errorWidget: final LoadingErrorWidgetBuilder → field CachedNetworkImage.errorWidget: final LoadingErrorWidgetBuilder? - changed:
field CachedNetworkImage.fadeOutDuration: final Duration → field CachedNetworkImage.fadeOutDuration: final Duration? - changed:
field CachedNetworkImage.fit: final BoxFit → field CachedNetworkImage.fit: final BoxFit? - changed:
field CachedNetworkImage.height: final double → field CachedNetworkImage.height: final double? - changed:
field CachedNetworkImage.httpHeaders: final Map<String, String> → field CachedNetworkImage.httpHeaders: final Map<String, String>? - changed:
field CachedNetworkImage.imageBuilder: final ImageWidgetBuilder → field CachedNetworkImage.imageBuilder: final ImageWidgetBuilder? - changed:
field CachedNetworkImage.maxHeightDiskCache: final int → field CachedNetworkImage.maxHeightDiskCache: final int? - changed:
field CachedNetworkImage.maxWidthDiskCache: final int → field CachedNetworkImage.maxWidthDiskCache: final int? - changed:
field CachedNetworkImage.memCacheHeight: final int → field CachedNetworkImage.memCacheHeight: final int? - changed:
field CachedNetworkImage.memCacheWidth: final int → field CachedNetworkImage.memCacheWidth: final int? - changed:
field CachedNetworkImage.placeholder: final PlaceholderWidgetBuilder → field CachedNetworkImage.placeholder: final PlaceholderWidgetBuilder? - changed:
field CachedNetworkImage.placeholderFadeInDuration: final Duration → field CachedNetworkImage.placeholderFadeInDuration: final Duration? - changed:
field CachedNetworkImage.progressIndicatorBuilder: final ProgressIndicatorBuilder → field CachedNetworkImage.progressIndicatorBuilder: final ProgressIndicatorBuilder? - changed:
field CachedNetworkImage.width: final double → field CachedNetworkImage.width: final double? - changed:
static method CachedNetworkImage.evictFromCache( String url, { String cacheKey, BaseCacheManager cacheManager, double scale = …, }): Future → static method CachedNetworkImage.evictFromCache( String url, { String? cacheKey, BaseCacheManager? cacheManager, double scale = …, }): Future<bool> - changed:
typedef LoadingErrorWidgetBuilder = Widget Function( BuildContext context, String url, dynamic error, ) → typedef LoadingErrorWidgetBuilder = Widget Function( BuildContext context, String url, Object error, ) - added:
field CachedNetworkImage.errorListener: final ValueChanged<Object>? - added:
field CachedNetworkImageProvider.cacheKey: final String? - added:
field CachedNetworkImageProvider.cacheManager: final BaseCacheManager? - added:
field CachedNetworkImageProvider.errorListener: final ErrorListener? - added:
field CachedNetworkImageProvider.headers: final Map<String, String>? - added:
field CachedNetworkImageProvider.imageRenderMethodForWeb: final ImageRenderMethodForWeb - added:
field CachedNetworkImageProvider.maxHeight: final int? - added:
field CachedNetworkImageProvider.maxWidth: final int? - added:
field CachedNetworkImageProvider.scale: final double - added:
field CachedNetworkImageProvider.url: final String - added:
get CachedNetworkImageProvider.hashCode: int - added:
method CachedNetworkImageProvider.loadBuffer( CachedNetworkImageProvider key, DecoderBufferCallback decode, ): ImageStreamCompleter - added:
method CachedNetworkImageProvider.loadImage( CachedNetworkImageProvider key, ImageDecoderCallback decode, ): ImageStreamCompleter - added:
method CachedNetworkImageProvider.obtainKey( ImageConfiguration configuration, ): Future<CachedNetworkImageProvider> - added:
method CachedNetworkImageProvider.operator ==(Object other): bool - added:
method CachedNetworkImageProvider.toString(): String - added:
method MultiImageStreamCompleter.keepAlive(): ImageStreamCompleterHandle - added:
static field CachedNetworkImageProvider.defaultCacheManager: BaseCacheManager - added:
static get CachedNetworkImage.logLevel: CacheManagerLogLevel - added:
static set CachedNetworkImage.logLevel(CacheManagerLogLevel level)