diff --git a/lib/src/layer/tile_layer/tile_provider/network_image_with_retry.dart b/lib/src/layer/tile_layer/tile_provider/network_image_with_retry.dart index 7689413a1..64e6e339b 100644 --- a/lib/src/layer/tile_layer/tile_provider/network_image_with_retry.dart +++ b/lib/src/layer/tile_layer/tile_provider/network_image_with_retry.dart @@ -11,9 +11,12 @@ class NetworkImageWithRetry extends ImageProvider { final double scale; /// The http RetryClient that is used for the requests - final RetryClient retryClient = RetryClient(Client()); + late RetryClient retryClient; - NetworkImageWithRetry(this.url, {this.scale = 1.0}); + NetworkImageWithRetry(this.url, + {this.scale = 1.0, RetryClient? retryClient}) { + this.retryClient = retryClient ?? RetryClient(Client()); + } @override ImageStreamCompleter load(NetworkImageWithRetry key, DecoderCallback decode) { diff --git a/lib/src/layer/tile_layer/tile_provider/tile_provider.dart b/lib/src/layer/tile_layer/tile_provider/tile_provider.dart index 4ffddef66..a1698f081 100644 --- a/lib/src/layer/tile_layer/tile_provider/tile_provider.dart +++ b/lib/src/layer/tile_layer/tile_provider/tile_provider.dart @@ -1,6 +1,7 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map/src/layer/tile_layer/tile_provider/network_image_with_retry.dart'; +import 'package:http/retry.dart'; abstract class TileProvider { const TileProvider(); @@ -56,9 +57,13 @@ abstract class TileProvider { } class NetworkTileProvider extends TileProvider { + RetryClient? retryClient; + + NetworkTileProvider({this.retryClient}); @override ImageProvider getImage(Coords coords, TileLayerOptions options) { - return NetworkImageWithRetry(getTileUrl(coords, options)); + return NetworkImageWithRetry(getTileUrl(coords, options), + retryClient: retryClient); } }