From 1ce561a1ad0eb9ea30ad6149f57935b327c3956c Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Sat, 25 Apr 2026 12:37:41 +0200 Subject: [PATCH] perf(images): add memCacheHeight to direct CachedNetworkImage sites --- lib/screens/livetv/program_details_sheet.dart | 1 + lib/screens/media_detail_screen.dart | 6 ++++++ lib/screens/profile/user_avatar_widget.dart | 1 + 3 files changed, 8 insertions(+) diff --git a/lib/screens/livetv/program_details_sheet.dart b/lib/screens/livetv/program_details_sheet.dart index 36bd772b..eee0f4ce 100644 --- a/lib/screens/livetv/program_details_sheet.dart +++ b/lib/screens/livetv/program_details_sheet.dart @@ -167,6 +167,7 @@ class _ProgramDetailsSheetContentState extends State<_ProgramDetailsSheetContent width: 80, height: 120, fit: BoxFit.cover, + memCacheHeight: (120 * MediaQuery.devicePixelRatioOf(context)).round(), errorWidget: (_, _, _) => const SizedBox.shrink(), ), ), diff --git a/lib/screens/media_detail_screen.dart b/lib/screens/media_detail_screen.dart index 9565c320..d7e1b505 100644 --- a/lib/screens/media_detail_screen.dart +++ b/lib/screens/media_detail_screen.dart @@ -2482,11 +2482,17 @@ class _MediaDetailScreenState extends State imageType: ImageType.art, ); + final (_, memHeight) = PlexImageHelper.getMemCacheDimensions( + displayWidth: (mqSize.width * dpr).round(), + displayHeight: (mqSize.height * 0.6 * dpr).round(), + imageType: ImageType.art, + ); return blurArtwork( CachedNetworkImage( imageUrl: imageUrl, cacheManager: PlexImageCacheManager.instance, fit: BoxFit.cover, + memCacheHeight: memHeight, placeholder: (context, url) => const PlaceholderContainer(), errorWidget: (context, url, error) => const PlaceholderContainer(), ), diff --git a/lib/screens/profile/user_avatar_widget.dart b/lib/screens/profile/user_avatar_widget.dart index 5e2142e6..045a5c03 100644 --- a/lib/screens/profile/user_avatar_widget.dart +++ b/lib/screens/profile/user_avatar_widget.dart @@ -148,6 +148,7 @@ class UserAvatarWidget extends StatelessWidget { width: size, height: size, fit: BoxFit.cover, + memCacheHeight: (size * MediaQuery.devicePixelRatioOf(context)).round(), placeholder: (ctx, url) => _buildPlaceholderAvatar(theme), errorWidget: (ctx, url, error) => _buildPlaceholderAvatar(theme), ),