From bcc293358fec9f5dcd0fae94a247871fcd48b183 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 24 Jun 2025 09:47:34 +0530 Subject: [PATCH 1/4] chore --- mobile/lib/ui/home/memories/full_screen_memory.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/ui/home/memories/full_screen_memory.dart b/mobile/lib/ui/home/memories/full_screen_memory.dart index eb51a66f9f..eda4618716 100644 --- a/mobile/lib/ui/home/memories/full_screen_memory.dart +++ b/mobile/lib/ui/home/memories/full_screen_memory.dart @@ -326,7 +326,7 @@ class _FullScreenMemoryState extends State { return GestureDetector( onTapUp: (TapUpDetails details) { - final screenWidth = MediaQuery.of(context).size.width; + final screenWidth = MediaQuery.sizeOf(context).width; final edgeWidth = screenWidth * 0.20; if (details.localPosition.dx < edgeWidth) { _goToPrevious(inheritedData); From 2678b9443324dc0b78cd3a97b32d561080d3482d Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 24 Jun 2025 10:24:42 +0530 Subject: [PATCH 2/4] Use ImageFilterd widget to blur image instead of BackdropFilter for better performance --- .../ui/home/memories/full_screen_memory.dart | 34 +++++++------------ 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/mobile/lib/ui/home/memories/full_screen_memory.dart b/mobile/lib/ui/home/memories/full_screen_memory.dart index eda4618716..032a6f511b 100644 --- a/mobile/lib/ui/home/memories/full_screen_memory.dart +++ b/mobile/lib/ui/home/memories/full_screen_memory.dart @@ -15,6 +15,7 @@ import "package:photos/theme/text_style.dart"; import "package:photos/ui/actions/file/file_actions.dart"; import "package:photos/ui/home/memories/memory_progress_indicator.dart"; import "package:photos/ui/viewer/file/file_widget.dart"; + import "package:photos/ui/viewer/file/thumbnail_widget.dart"; import "package:photos/ui/viewer/file_details/favorite_widget.dart"; import "package:photos/utils/file_util.dart"; @@ -552,28 +553,17 @@ class MemoryBackDrop extends StatelessWidget { } return AnimatedContainer( duration: const Duration(milliseconds: 200), - child: Stack( - children: [ - Container( - width: double.infinity, - height: double.infinity, - color: Colors.transparent, - ), - ThumbnailWidget( - currentFile, - shouldShowSyncStatus: false, - shouldShowFavoriteIcon: false, - ), - BackdropFilter( - filter: ImageFilter.blur( - sigmaX: 100, - sigmaY: 100, - ), - child: Container( - color: Colors.transparent, - ), - ), - ], + child: ImageFiltered( + imageFilter: ImageFilter.blur( + sigmaX: 100, + sigmaY: 100, + ), + child: ThumbnailWidget( + currentFile, + shouldShowSyncStatus: false, + shouldShowFavoriteIcon: false, + shouldShowVideoOverlayIcon: false, + ), ), ); }, From aa4b44f8bd0515abff0e891381c0d2f6cc1a27f7 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 24 Jun 2025 11:26:35 +0530 Subject: [PATCH 3/4] Add animation between the blurred thumbnails of items of a memory as a workaround for the flash between items when transitioning --- mobile/lib/ui/home/memories/full_screen_memory.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/home/memories/full_screen_memory.dart b/mobile/lib/ui/home/memories/full_screen_memory.dart index 032a6f511b..f9e54eb519 100644 --- a/mobile/lib/ui/home/memories/full_screen_memory.dart +++ b/mobile/lib/ui/home/memories/full_screen_memory.dart @@ -551,9 +551,12 @@ class MemoryBackDrop extends StatelessWidget { currentFile.fileType == FileType.livePhoto) { return const SizedBox.shrink(); } - return AnimatedContainer( - duration: const Duration(milliseconds: 200), + return AnimatedSwitcher( + duration: const Duration(milliseconds: 750), + switchInCurve: Curves.easeOutExpo, + switchOutCurve: Curves.easeInExpo, child: ImageFiltered( + key: ValueKey(inheritedData.indexNotifier.value), imageFilter: ImageFilter.blur( sigmaX: 100, sigmaY: 100, From a3c011070a70a627b90f846b8872f7508a91f262 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 24 Jun 2025 11:51:15 +0530 Subject: [PATCH 4/4] Clip items of page view used in memories --- .../ui/home/memories/all_memories_page.dart | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/mobile/lib/ui/home/memories/all_memories_page.dart b/mobile/lib/ui/home/memories/all_memories_page.dart index 9bede1ea73..f01df12620 100644 --- a/mobile/lib/ui/home/memories/all_memories_page.dart +++ b/mobile/lib/ui/home/memories/all_memories_page.dart @@ -47,21 +47,23 @@ class _AllMemoriesPageState extends State return FullScreenMemoryDataUpdater( initialIndex: initialMemoryIndex, memories: widget.allMemories[index], - child: FullScreenMemory( - widget.allTitles[index], - initialMemoryIndex, - onNextMemory: index < widget.allMemories.length - 1 - ? () => pageController.nextPage( - duration: const Duration(milliseconds: 250), - curve: Curves.ease, - ) - : null, - onPreviousMemory: index > 0 - ? () => pageController.previousPage( - duration: const Duration(milliseconds: 250), - curve: Curves.ease, - ) - : null, + child: ClipRRect( + child: FullScreenMemory( + widget.allTitles[index], + initialMemoryIndex, + onNextMemory: index < widget.allMemories.length - 1 + ? () => pageController.nextPage( + duration: const Duration(milliseconds: 250), + curve: Curves.ease, + ) + : null, + onPreviousMemory: index > 0 + ? () => pageController.previousPage( + duration: const Duration(milliseconds: 250), + curve: Curves.ease, + ) + : null, + ), ), ); },