image cache patch

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-11 12:51:45 +08:00
parent 32eeef7866
commit 459f84b208
48 changed files with 260 additions and 143 deletions

View File

@@ -19,7 +19,6 @@ import 'package:PiliPlus/pages/dynamics_repost/view.dart';
import 'package:PiliPlus/pages/webview/view.dart';
import 'package:PiliPlus/utils/date_utils.dart';
import 'package:PiliPlus/utils/extension/get_ext.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/grid.dart';
import 'package:PiliPlus/utils/image_utils.dart';
import 'package:PiliPlus/utils/num_utils.dart';
@@ -274,15 +273,15 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
itemCount: length,
itemBuilder: (context, index) {
final pic = pics[index];
int? memCacheWidth, memCacheHeight;
double? memCacheWidth, memCacheHeight;
if (pic.isLongPic ?? false) {
memCacheWidth = maxWidth.cacheSize(context);
memCacheWidth = maxWidth;
} else if (pic.width != null &&
pic.height != null) {
if (pic.width! > pic.height!) {
memCacheWidth = maxWidth.cacheSize(context);
memCacheWidth = maxWidth;
} else {
memCacheHeight = height.cacheSize(context);
memCacheHeight = height;
}
}
return GestureDetector(

View File

@@ -4,7 +4,6 @@ import 'package:PiliPlus/common/style.dart';
import 'package:PiliPlus/models_new/article/article_view/ops.dart';
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/image_utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
@@ -72,7 +71,7 @@ class ArticleOpus extends StatelessWidget {
child: CachedNetworkImage(
width: width,
height: height,
memCacheWidth: width.cacheSize(context),
memCacheWidth: width,
imageUrl: ImageUtils.thumbnailUrl(
card.url,
maxQuality: 60,

View File

@@ -1,7 +1,6 @@
import 'package:PiliPlus/common/assets.dart';
import 'package:PiliPlus/common/widgets/image_viewer/hero.dart';
import 'package:PiliPlus/models/common/image_preview_type.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/image_utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
@@ -43,7 +42,7 @@ Widget htmlRender({
if (clazz?.contains('cut-off') == true || height != null) {
return CachedNetworkImage(
width: maxWidth,
memCacheWidth: maxWidth.cacheSize(context),
memCacheWidth: maxWidth,
height: height != null ? double.parse(height) : null,
imageUrl: ImageUtils.thumbnailUrl(imgUrl),
fit: BoxFit.contain,
@@ -61,7 +60,7 @@ Widget htmlRender({
child: CachedNetworkImage(
width: width,
height: isEmote ? 22.0 : null,
memCacheWidth: width.cacheSize(context),
memCacheWidth: width,
imageUrl: ImageUtils.thumbnailUrl(imgUrl, maxQuality: 60),
fadeInDuration: const Duration(milliseconds: 120),
fadeOutDuration: const Duration(milliseconds: 120),

View File

@@ -15,7 +15,6 @@ import 'package:PiliPlus/models/dynamics/article_content_model.dart'
import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/vote.dart';
import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/extension/string_ext.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/image_utils.dart';
@@ -230,7 +229,7 @@ class OpusContent extends StatelessWidget {
Widget child = CachedNetworkImage(
width: width,
height: height,
memCacheWidth: width.cacheSize(context),
memCacheWidth: width,
imageUrl: ImageUtils.thumbnailUrl(pic.url!, maxQuality: 60),
fadeInDuration: const Duration(milliseconds: 120),
fadeOutDuration: const Duration(milliseconds: 120),
@@ -270,7 +269,7 @@ class OpusContent extends StatelessWidget {
fit: .contain,
height: height,
width: maxWidth,
memCacheWidth: maxWidth.cacheSize(context),
memCacheWidth: maxWidth,
imageUrl: ImageUtils.thumbnailUrl(element.line!.pic!.url!),
placeholder: (_, _) => const SizedBox.shrink(),
);
@@ -733,7 +732,7 @@ Widget moduleBlockedItem(
: moduleBlocked.bgImg!.imgDay,
),
),
width: width.cacheSize(context),
width: width,
),
),
);
@@ -742,7 +741,7 @@ Widget moduleBlockedItem(
Widget icon(double width) {
return CachedNetworkImage(
width: width,
memCacheWidth: width.cacheSize(context),
memCacheWidth: width,
fit: BoxFit.contain,
imageUrl: ImageUtils.thumbnailUrl(
isDarkMode ? moduleBlocked.icon!.imgDark : moduleBlocked.icon!.imgDay,
@@ -778,7 +777,7 @@ Widget moduleBlockedItem(
CachedNetworkImage(
height: 16,
color: Colors.white,
memCacheHeight: 16.cacheSize(context),
memCacheHeight: 16,
placeholder: (_, _) => const SizedBox.shrink(),
imageUrl: ImageUtils.safeThumbnailUrl(moduleBlocked.button!.icon),
),