mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-06-06 05:49:03 +08:00
Fix image cache cause copy image not works
This commit is contained in:
@@ -29,7 +29,7 @@ class DioImage extends ImageProvider<DioImage> {
|
||||
/// The arguments [url] and [scale] must not be null.
|
||||
/// [dio] will be the default [Dio] if not set.
|
||||
DioImage.string(String url,
|
||||
{this.scale = 1.0, this.headers, this.onData, Dio? dio})
|
||||
{this.scale = 1.0, this.headers, this.onData, Dio? dio, this.key})
|
||||
: dio = dio ?? defaultDio,
|
||||
url = Uri.parse(url);
|
||||
|
||||
@@ -37,7 +37,8 @@ class DioImage extends ImageProvider<DioImage> {
|
||||
///
|
||||
/// The arguments [url] and [scale] must not be null.
|
||||
/// [dio] will be the default [Dio] if not set.
|
||||
DioImage(this.url, {this.scale = 1.0, this.headers, this.onData, Dio? dio})
|
||||
DioImage(this.url,
|
||||
{this.scale = 1.0, this.headers, this.onData, this.key, Dio? dio})
|
||||
: dio = dio ?? defaultDio;
|
||||
|
||||
/// The URL from which the image will be fetched.
|
||||
@@ -56,6 +57,8 @@ class DioImage extends ImageProvider<DioImage> {
|
||||
|
||||
final void Function(Uint8List, Headers, String)? onData;
|
||||
|
||||
final Key? key;
|
||||
|
||||
@override
|
||||
Future<DioImage> obtainKey(ImageConfiguration configuration) {
|
||||
return SynchronousFuture<DioImage>(this);
|
||||
@@ -164,11 +167,14 @@ class DioImage extends ImageProvider<DioImage> {
|
||||
if (other.runtimeType != runtimeType) {
|
||||
return false;
|
||||
}
|
||||
return other is DioImage && other.url == url && other.scale == scale;
|
||||
return other is DioImage &&
|
||||
other.url == url &&
|
||||
other.scale == scale &&
|
||||
other.key == key;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(url, scale);
|
||||
int get hashCode => Object.hash(url, scale, key);
|
||||
|
||||
@override
|
||||
String toString() =>
|
||||
|
||||
@@ -47,6 +47,7 @@ class SinglePageViewer extends StatefulWidget {
|
||||
|
||||
class _SinglePageViewer extends State<SinglePageViewer>
|
||||
with ThemeModeWidget, IsTopWidget2 {
|
||||
final Key _key = GlobalKey();
|
||||
late PageController _pageController;
|
||||
late int _index;
|
||||
late GalleryData? _data;
|
||||
@@ -143,8 +144,8 @@ class _SinglePageViewer extends State<SinglePageViewer>
|
||||
_photoViewController.reset();
|
||||
}
|
||||
return PhotoViewGalleryPageOptions(
|
||||
imageProvider: DioImage.string(api.getFileUrl(f.id), dio: dio,
|
||||
onData: (data, headers, url) {
|
||||
imageProvider: DioImage.string(api.getFileUrl(f.id),
|
||||
dio: dio, key: _key, onData: (data, headers, url) {
|
||||
_imgData[index] = (data, headers.value("content-type"), url);
|
||||
}),
|
||||
initialScale: PhotoViewComputedScale.contained,
|
||||
|
||||
Reference in New Issue
Block a user