setImageWithUrl method

Future<void> setImageWithUrl(
  1. String url,
  2. String forKey, {
  3. Duration timeout = const Duration(seconds: 30),
  4. int maxBytes = 16 * 1024 * 1024,
  5. int maxPixels = 16777216,
})

Implementation

Future<void> setImageWithUrl(
  String url,
  String forKey, {
  Duration timeout = const Duration(seconds: 30),
  int maxBytes = 16 * 1024 * 1024,
  int maxPixels = 16777216,
}) async {
  _checkActive();
  final request = Object();
  _imageRequests[forKey] = request;
  try {
    final bytes = await loadNetworkBytes(
      url,
      timeout: timeout,
      maxBytes: maxBytes,
    );
    if (_disposed || _imageRequests[forKey] != request) return;
    final image = await decodeResourceImage(bytes, maxPixels: maxPixels);
    if (_disposed || _imageRequests[forKey] != request) {
      image.dispose();
      return;
    }
    _replaceImage(image, forKey);
  } catch (_) {
    if (!_disposed && _imageRequests[forKey] == request) rethrow;
  } finally {
    if (_imageRequests[forKey] == request) _imageRequests.remove(forKey);
  }
}