From 1400228a4394fe798092d9a144e28c1861d88ab9 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Thu, 4 Jun 2020 12:52:12 +0900 Subject: [PATCH] thumbnails: fade to higher quality --- lib/widgets/album/thumbnail/raster.dart | 12 +++++++++++- lib/widgets/album/thumbnail_collection.dart | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/widgets/album/thumbnail/raster.dart b/lib/widgets/album/thumbnail/raster.dart index 78ee030e9..601f44229 100644 --- a/lib/widgets/album/thumbnail/raster.dart +++ b/lib/widgets/album/thumbnail/raster.dart @@ -89,7 +89,17 @@ class _ThumbnailRasterImageState extends State { ? fastImage : Image( frameBuilder: (context, child, frame, wasSynchronouslyLoaded) { - return frame == null ? fastImage : child; + if (wasSynchronouslyLoaded) return child; + return AnimatedSwitcher( + duration: const Duration(milliseconds: 200), + transitionBuilder: (child, animation) => child == fastImage + ? child + : FadeTransition( + opacity: animation, + child: child, + ), + child: frame == null ? fastImage : child, + ); }, image: _sizedThumbnailProvider, width: extent, diff --git a/lib/widgets/album/thumbnail_collection.dart b/lib/widgets/album/thumbnail_collection.dart index 72814abbc..b515d0af1 100644 --- a/lib/widgets/album/thumbnail_collection.dart +++ b/lib/widgets/album/thumbnail_collection.dart @@ -33,7 +33,7 @@ class ThumbnailCollection extends StatelessWidget { final mqSize = mq.item1; final mqHorizontalPadding = mq.item2; TileExtentManager.applyTileExtent(mqSize, mqHorizontalPadding, _tileExtentNotifier); - final cacheExtent = TileExtentManager.extentMaxForSize(mqSize); + final cacheExtent = TileExtentManager.extentMaxForSize(mqSize) * 2; // do not replace by Provider.of // so that view updates on collection filter changes