diff --git a/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart b/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart index 713fddfbf..4c2646733 100644 --- a/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart +++ b/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart @@ -45,8 +45,11 @@ class InteractiveviewerGallery extends StatefulWidget { this.onDismissed, this.setStatusBar, this.onClose, + required this.quality, }); + final int quality; + final ValueChanged? onClose; final bool? setStatusBar; @@ -427,7 +430,7 @@ class _InteractiveviewerGalleryState extends State return CachedNetworkImage( fadeInDuration: Duration.zero, fadeOutDuration: Duration.zero, - imageUrl: Utils.thumbnailImgUrl(item.url), + imageUrl: Utils.thumbnailImgUrl(item.url, widget.quality), ); }, ), diff --git a/lib/pages/article/widgets/html_render.dart b/lib/pages/article/widgets/html_render.dart index 19eb92477..be9a90202 100644 --- a/lib/pages/article/widgets/html_render.dart +++ b/lib/pages/article/widgets/html_render.dart @@ -55,6 +55,7 @@ Widget htmlRender({ } else { context.imageView( imgList: [SourceModel(url: imgUrl)], + quality: 60, ); } }, diff --git a/lib/pages/article/widgets/opus_content.dart b/lib/pages/article/widgets/opus_content.dart index 5b58aef96..103c4274d 100644 --- a/lib/pages/article/widgets/opus_content.dart +++ b/lib/pages/article/widgets/opus_content.dart @@ -175,8 +175,8 @@ class OpusContent extends StatelessWidget { callback!([pic.url!], 0); } else { context.imageView( - initialPage: 0, imgList: [SourceModel(url: pic.url!)], + quality: 60, ); } }, diff --git a/lib/utils/extension.dart b/lib/utils/extension.dart index d823dee58..22190ff46 100644 --- a/lib/utils/extension.dart +++ b/lib/utils/extension.dart @@ -7,6 +7,7 @@ import 'package:PiliPlus/models/common/image_preview_type.dart'; import 'package:PiliPlus/pages/common/common_whisper_controller.dart'; import 'package:PiliPlus/pages/contact/view.dart'; import 'package:PiliPlus/pages/whisper_settings/view.dart'; +import 'package:PiliPlus/utils/global_data.dart'; import 'package:floating/floating.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; @@ -79,19 +80,20 @@ extension BuildContextExt on BuildContext { } void imageView({ - int? initialPage, + int initialPage = 0, required List imgList, ValueChanged? onDismissed, + int? quality, }) { bool isMemberPage = Get.currentRoute.startsWith('/member?'); Navigator.of(this).push( HeroDialogRoute( builder: (context) => InteractiveviewerGallery( sources: imgList, - initIndex: initialPage ?? 0, - onPageChanged: (int pageIndex) {}, + initIndex: initialPage, onDismissed: onDismissed, setStatusBar: !isMemberPage, + quality: quality ?? GlobalData().imgQuality, ), ), ); diff --git a/lib/utils/page_utils.dart b/lib/utils/page_utils.dart index 3326a71e3..b4b00eb47 100644 --- a/lib/utils/page_utils.dart +++ b/lib/utils/page_utils.dart @@ -17,6 +17,7 @@ import 'package:PiliPlus/services/shutdown_timer_service.dart'; import 'package:PiliPlus/utils/app_scheme.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/feed_back.dart'; +import 'package:PiliPlus/utils/global_data.dart'; import 'package:PiliPlus/utils/id_utils.dart'; import 'package:PiliPlus/utils/storage.dart'; import 'package:PiliPlus/utils/url_utils.dart'; @@ -524,6 +525,7 @@ class PageUtils { initIndex: index, setStatusBar: false, onClose: onClose, + quality: GlobalData().imgQuality, ), ); },