From a4436481c39873c002f34de86137855280632a1b Mon Sep 17 00:00:00 2001 From: Roman Laptev Date: Fri, 15 Sep 2023 10:35:06 +0300 Subject: [PATCH] Add typedef for ErrorListener --- .../lib/src/image_provider/_image_loader.dart | 11 +++++----- .../cached_network_image_provider.dart | 5 +++-- .../test/image_provider_test.dart | 2 +- ...ched_network_image_platform_interface.dart | 6 +++++- .../lib/cached_network_image_web.dart | 20 +++++++++---------- 5 files changed, 23 insertions(+), 21 deletions(-) diff --git a/cached_network_image/lib/src/image_provider/_image_loader.dart b/cached_network_image/lib/src/image_provider/_image_loader.dart index 26e63aa1..e1cf3244 100644 --- a/cached_network_image/lib/src/image_provider/_image_loader.dart +++ b/cached_network_image/lib/src/image_provider/_image_loader.dart @@ -23,6 +23,7 @@ class ImageLoader implements platform.ImageLoader { int? maxHeight, int? maxWidth, Map? headers, + VoidCallback? errorListener, ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) { @@ -38,7 +39,7 @@ class ImageLoader implements platform.ImageLoader { maxHeight, maxWidth, headers, - (_) {}, + (_) => errorListener?.call(), imageRenderMethodForWeb, evictImage, ); @@ -54,7 +55,7 @@ class ImageLoader implements platform.ImageLoader { int? maxHeight, int? maxWidth, Map? headers, - ValueChanged? errorListener, + ErrorListener? errorListener, ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) { @@ -80,12 +81,12 @@ class ImageLoader implements platform.ImageLoader { String url, String? cacheKey, StreamController chunkEvents, - _FileDecoderCallback decode, + Future Function(Uint8List) decode, BaseCacheManager cacheManager, int? maxHeight, int? maxWidth, Map? headers, - ValueChanged? errorListener, + ErrorListener? errorListener, ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) async* { @@ -143,5 +144,3 @@ class ImageLoader implements platform.ImageLoader { await chunkEvents.close(); } } - -typedef _FileDecoderCallback = Future Function(Uint8List); diff --git a/cached_network_image/lib/src/image_provider/cached_network_image_provider.dart b/cached_network_image/lib/src/image_provider/cached_network_image_provider.dart index 775e83c2..48136e0a 100644 --- a/cached_network_image/lib/src/image_provider/cached_network_image_provider.dart +++ b/cached_network_image/lib/src/image_provider/cached_network_image_provider.dart @@ -3,7 +3,7 @@ import 'dart:ui' as ui show Codec; import 'package:cached_network_image/src/image_provider/multi_image_stream_completer.dart'; import 'package:cached_network_image_platform_interface/cached_network_image_platform_interface.dart' - show ImageRenderMethodForWeb; + show ErrorListener, ImageRenderMethodForWeb; import 'package:cached_network_image_platform_interface/cached_network_image_platform_interface.dart' if (dart.library.io) '_image_loader.dart' if (dart.library.html) 'package:cached_network_image_web/cached_network_image_web.dart' @@ -44,7 +44,7 @@ class CachedNetworkImageProvider final double scale; /// Listener to be called when images fails to load. - final ValueChanged? errorListener; + final ErrorListener? errorListener; /// Set headers for the image provider, for example for authentication final Map? headers; @@ -104,6 +104,7 @@ class CachedNetworkImageProvider maxHeight, maxWidth, headers, + () => errorListener, imageRenderMethodForWeb, () => PaintingBinding.instance.imageCache.evict(key), ); diff --git a/cached_network_image/test/image_provider_test.dart b/cached_network_image/test/image_provider_test.dart index 57542d40..5bf9c465 100644 --- a/cached_network_image/test/image_provider_test.dart +++ b/cached_network_image/test/image_provider_test.dart @@ -142,7 +142,7 @@ void main() { events.add(event); }, onError: (Object error, StackTrace? stackTrace) { - imageAvailable.completeError(error as Object, stackTrace); + imageAvailable.completeError(error, stackTrace); }, ), ); diff --git a/cached_network_image_platform_interface/lib/cached_network_image_platform_interface.dart b/cached_network_image_platform_interface/lib/cached_network_image_platform_interface.dart index 70962c43..6b5320a5 100644 --- a/cached_network_image_platform_interface/lib/cached_network_image_platform_interface.dart +++ b/cached_network_image_platform_interface/lib/cached_network_image_platform_interface.dart @@ -7,6 +7,9 @@ import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart'; +/// Listener for errors +typedef ErrorListener = void Function(Object); + /// Render options for images on the web platform. enum ImageRenderMethodForWeb { /// HtmlImage uses a default web image including default browser caching. @@ -32,6 +35,7 @@ class ImageLoader { int? maxHeight, int? maxWidth, Map? headers, + VoidCallback? errorListener, ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) { @@ -49,7 +53,7 @@ class ImageLoader { int? maxHeight, int? maxWidth, Map? headers, - ValueChanged? errorListener, + ErrorListener? errorListener, ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) { diff --git a/cached_network_image_web/lib/cached_network_image_web.dart b/cached_network_image_web/lib/cached_network_image_web.dart index 19cec9cd..dfdd7708 100644 --- a/cached_network_image_web/lib/cached_network_image_web.dart +++ b/cached_network_image_web/lib/cached_network_image_web.dart @@ -7,10 +7,7 @@ import 'dart:ui' as ui; import 'package:cached_network_image_platform_interface' '/cached_network_image_platform_interface.dart' as platform - show ImageLoader; -import 'package:cached_network_image_platform_interface' - '/cached_network_image_platform_interface.dart' - show ImageRenderMethodForWeb; + show ImageLoader, ErrorListener, ImageRenderMethodForWeb; import 'package:flutter/material.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart'; @@ -27,7 +24,8 @@ class ImageLoader implements platform.ImageLoader { int? maxHeight, int? maxWidth, Map? headers, - ImageRenderMethodForWeb imageRenderMethodForWeb, + VoidCallback? errorListener, + platform.ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) { return _load( @@ -59,7 +57,7 @@ class ImageLoader implements platform.ImageLoader { int? maxWidth, Map? headers, ValueChanged? errorListener, - ImageRenderMethodForWeb imageRenderMethodForWeb, + platform.ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) { return _load( @@ -89,12 +87,12 @@ class ImageLoader implements platform.ImageLoader { int? maxHeight, int? maxWidth, Map? headers, - ValueChanged? errorListener, - ImageRenderMethodForWeb imageRenderMethodForWeb, + platform.ErrorListener? errorListener, + platform.ImageRenderMethodForWeb imageRenderMethodForWeb, VoidCallback evictImage, ) { switch (imageRenderMethodForWeb) { - case ImageRenderMethodForWeb.HttpGet: + case platform.ImageRenderMethodForWeb.HttpGet: return _loadAsyncHttpGet( url, cacheKey, @@ -107,7 +105,7 @@ class ImageLoader implements platform.ImageLoader { errorListener, evictImage, ); - case ImageRenderMethodForWeb.HtmlImage: + case platform.ImageRenderMethodForWeb.HtmlImage: return _loadAsyncHtmlImage(url, chunkEvents).asStream(); } } @@ -121,7 +119,7 @@ class ImageLoader implements platform.ImageLoader { int? maxHeight, int? maxWidth, Map? headers, - ValueChanged? errorListener, + platform.ErrorListener? errorListener, VoidCallback evictImage, ) async* { try {