mangayomi-mirror/lib/utils/cached_network.dart
NBA2K1 49f77febe4 Don't allow zooming
When these methods were used to display images (migration screen, history screen, etc) the images (anime/manga covers and extension icons) were zoomable. You could (on a touch device) pinch to zoom.
And with the mouse you could get your cursor an on image and scroll up to zoom out and scroll down to zoom in.
This was not necessary confusing for the user.
2025-06-29 20:30:16 +02:00

66 lines
1.9 KiB
Dart

import 'package:extended_image/extended_image.dart';
import 'package:flutter/material.dart';
import 'package:mangayomi/modules/widgets/custom_extended_image_provider.dart';
Widget cachedNetworkImage({
Map<String, String>? headers,
required String imageUrl,
required double? width,
required double? height,
required BoxFit? fit,
AlignmentGeometry? alignment,
bool useCustomNetworkImage = true,
Widget errorWidget = const Icon(Icons.error, size: 50),
}) {
return ExtendedImage(
image: useCustomNetworkImage
? CustomExtendedNetworkImageProvider(imageUrl, headers: headers)
: ExtendedNetworkImageProvider(imageUrl, headers: headers),
width: width,
height: height,
fit: fit,
filterQuality: FilterQuality.medium,
mode: ExtendedImageMode.none,
handleLoadingProgress: true,
loadStateChanged: (state) {
if (state.extendedImageLoadState == LoadState.failed) {
return errorWidget;
}
return null;
},
);
}
Widget cachedCompressedNetworkImage({
Map<String, String>? headers,
required String imageUrl,
required double? width,
required double? height,
required BoxFit? fit,
AlignmentGeometry? alignment,
bool useCustomNetworkImage = true,
Widget errorWidget = const Icon(Icons.error, size: 50),
int maxBytes = 5 << 10,
}) {
return ExtendedImage(
image: ExtendedResizeImage(
useCustomNetworkImage
? CustomExtendedNetworkImageProvider(imageUrl, headers: headers)
: ExtendedNetworkImageProvider(imageUrl, headers: headers),
maxBytes: maxBytes,
),
width: width,
height: height,
fit: fit,
filterQuality: FilterQuality.medium,
mode: ExtendedImageMode.none,
handleLoadingProgress: true,
clearMemoryCacheWhenDispose: true,
loadStateChanged: (state) {
if (state.extendedImageLoadState == LoadState.failed) {
return errorWidget;
}
return null;
},
);
}