mirror of
https://github.com/flutter/packages.git
synced 2025-06-29 06:06:59 +08:00
Remove deprecated ImageProvider
methods (#4725)
Have to keep `loadBuffer` since `loadImage` isn't available on 3.7. Fixes https://github.com/flutter/flutter/issues/105336
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
## NEXT
|
## 4.1.7
|
||||||
|
|
||||||
* Updates minimum supported SDK version to Flutter 3.7/Dart 2.19.
|
* Updates minimum supported SDK version to Flutter 3.7/Dart 2.19.
|
||||||
|
* Migrates deprecated `ImageProvider.load` to `ImageProvider.loadBuffer`.
|
||||||
|
|
||||||
## 4.1.6
|
## 4.1.6
|
||||||
|
|
||||||
|
@ -17,6 +17,10 @@ import 'dart:ui' as ui;
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
|
|
||||||
|
// Method signature for _loadWithRetry decode callbacks.
|
||||||
|
typedef _SimpleDecoderCallback = Future<ui.Codec> Function(
|
||||||
|
ui.ImmutableBuffer buffer);
|
||||||
|
|
||||||
/// Fetches the image from the given URL, associating it with the given scale.
|
/// Fetches the image from the given URL, associating it with the given scale.
|
||||||
///
|
///
|
||||||
/// If [fetchStrategy] is specified, uses it instead of the
|
/// If [fetchStrategy] is specified, uses it instead of the
|
||||||
@ -95,10 +99,13 @@ class NetworkImageWithRetry extends ImageProvider<NetworkImageWithRetry> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
// TODO(cyanglaz): migrate to use the new APIs
|
ImageStreamCompleter loadBuffer(
|
||||||
// https://github.com/flutter/flutter/issues/105336
|
NetworkImageWithRetry key,
|
||||||
// ignore: deprecated_member_use
|
// TODO(LongCatIsLooong): migrate to use new `loadImage` API.
|
||||||
ImageStreamCompleter load(NetworkImageWithRetry key, DecoderCallback decode) {
|
// https://github.com/flutter/flutter/issues/132856
|
||||||
|
// ignore: deprecated_member_use
|
||||||
|
DecoderBufferCallback decode,
|
||||||
|
) {
|
||||||
return OneFrameImageStreamCompleter(_loadWithRetry(key, decode),
|
return OneFrameImageStreamCompleter(_loadWithRetry(key, decode),
|
||||||
informationCollector: () sync* {
|
informationCollector: () sync* {
|
||||||
yield ErrorDescription('Image provider: $this');
|
yield ErrorDescription('Image provider: $this');
|
||||||
@ -126,12 +133,7 @@ class NetworkImageWithRetry extends ImageProvider<NetworkImageWithRetry> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<ImageInfo> _loadWithRetry(
|
Future<ImageInfo> _loadWithRetry(
|
||||||
// TODO(cyanglaz): migrate to use the new APIs
|
NetworkImageWithRetry key, _SimpleDecoderCallback decode) async {
|
||||||
// https://github.com/flutter/flutter/issues/105336
|
|
||||||
// ignore: deprecated_member_use
|
|
||||||
NetworkImageWithRetry key,
|
|
||||||
// ignore: deprecated_member_use
|
|
||||||
DecoderCallback decode) async {
|
|
||||||
assert(key == this);
|
assert(key == this);
|
||||||
|
|
||||||
final Stopwatch stopwatch = Stopwatch()..start();
|
final Stopwatch stopwatch = Stopwatch()..start();
|
||||||
@ -181,7 +183,8 @@ class NetworkImageWithRetry extends ImageProvider<NetworkImageWithRetry> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final ui.Codec codec = await decode(bytes);
|
final ui.Codec codec =
|
||||||
|
await decode(await ui.ImmutableBuffer.fromUint8List(bytes));
|
||||||
final ui.Image image = (await codec.getNextFrame()).image;
|
final ui.Image image = (await codec.getNextFrame()).image;
|
||||||
return ImageInfo(
|
return ImageInfo(
|
||||||
image: image,
|
image: image,
|
||||||
|
@ -3,7 +3,7 @@ description: >
|
|||||||
Image utilities for Flutter: improved network providers, effects, etc.
|
Image utilities for Flutter: improved network providers, effects, etc.
|
||||||
repository: https://github.com/flutter/packages/tree/main/packages/flutter_image
|
repository: https://github.com/flutter/packages/tree/main/packages/flutter_image
|
||||||
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_image%22
|
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_image%22
|
||||||
version: 4.1.6
|
version: 4.1.7
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.19.0 <4.0.0"
|
sdk: ">=2.19.0 <4.0.0"
|
||||||
|
@ -140,12 +140,12 @@ void assertThatImageLoadingFails(
|
|||||||
NetworkImageWithRetry subject,
|
NetworkImageWithRetry subject,
|
||||||
List<FlutterErrorDetails> errorLog,
|
List<FlutterErrorDetails> errorLog,
|
||||||
) {
|
) {
|
||||||
final ImageStreamCompleter completer = subject.load(
|
final ImageStreamCompleter completer = subject.loadBuffer(
|
||||||
subject,
|
subject,
|
||||||
// TODO(cyanglaz): migrate to use the new APIs
|
// TODO(LongCatIsLooong): migrate to use new `instantiateImageCodecWithSize` API.
|
||||||
// https://github.com/flutter/flutter/issues/105336
|
// https://github.com/flutter/flutter/issues/132856
|
||||||
// ignore: deprecated_member_use
|
// ignore: deprecated_member_use
|
||||||
PaintingBinding.instance.instantiateImageCodec,
|
PaintingBinding.instance.instantiateImageCodecFromBuffer,
|
||||||
);
|
);
|
||||||
completer.addListener(ImageStreamListener(
|
completer.addListener(ImageStreamListener(
|
||||||
(ImageInfo image, bool synchronousCall) {},
|
(ImageInfo image, bool synchronousCall) {},
|
||||||
@ -160,12 +160,12 @@ void assertThatImageLoadingFails(
|
|||||||
void assertThatImageLoadingSucceeds(
|
void assertThatImageLoadingSucceeds(
|
||||||
NetworkImageWithRetry subject,
|
NetworkImageWithRetry subject,
|
||||||
) {
|
) {
|
||||||
final ImageStreamCompleter completer = subject.load(
|
final ImageStreamCompleter completer = subject.loadBuffer(
|
||||||
subject,
|
subject,
|
||||||
// TODO(cyanglaz): migrate to use the new APIs
|
// TODO(LongCatIsLooong): migrate to use new `instantiateImageCodecWithSize` API.
|
||||||
// https://github.com/flutter/flutter/issues/105336
|
// https://github.com/flutter/flutter/issues/132856
|
||||||
// ignore: deprecated_member_use
|
// ignore: deprecated_member_use
|
||||||
PaintingBinding.instance.instantiateImageCodec,
|
PaintingBinding.instance.instantiateImageCodecFromBuffer,
|
||||||
);
|
);
|
||||||
completer.addListener(ImageStreamListener(
|
completer.addListener(ImageStreamListener(
|
||||||
expectAsync2((ImageInfo image, bool synchronousCall) {
|
expectAsync2((ImageInfo image, bool synchronousCall) {
|
||||||
|
Reference in New Issue
Block a user