From b8eb20029519efcae1d479617fb772e3e224cdbe Mon Sep 17 00:00:00 2001 From: AmanRajSinghMourya Date: Thu, 26 Jun 2025 16:00:45 +0530 Subject: [PATCH] Enable swipe between memories when openend from widgets --- mobile/lib/services/memories_cache_service.dart | 11 +++++++---- mobile/lib/ui/home/memories/all_memories_page.dart | 11 ++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/mobile/lib/services/memories_cache_service.dart b/mobile/lib/services/memories_cache_service.dart index 4eed3fbba6..6f822cb943 100644 --- a/mobile/lib/services/memories_cache_service.dart +++ b/mobile/lib/services/memories_cache_service.dart @@ -24,6 +24,7 @@ import "package:photos/services/language_service.dart"; import "package:photos/services/machine_learning/face_ml/person/person_service.dart"; import "package:photos/services/notification_service.dart"; import "package:photos/services/search_service.dart"; +import "package:photos/ui/home/memories/all_memories_page.dart"; import "package:photos/ui/home/memories/full_screen_memory.dart"; import "package:photos/ui/viewer/people/people_page.dart"; import "package:photos/utils/navigation_util.dart"; @@ -492,10 +493,12 @@ class MemoriesCacheService { } await routeToPage( context, - FullScreenMemoryDataUpdater( - initialIndex: fileIdx, - memories: allMemories[memoryIdx].memories, - child: FullScreenMemory(allMemories[memoryIdx].title, fileIdx), + AllMemoriesPage( + allMemories: _cachedMemories!.map((e) => e.memories).toList(), + allTitles: _cachedMemories!.map((e) => e.title).toList(), + initialPageIndex: memoryIdx, + inititalFileIndex: fileIdx, + isFromWidgetOrNotifications: true, ), forceCustomPageRoute: true, ); diff --git a/mobile/lib/ui/home/memories/all_memories_page.dart b/mobile/lib/ui/home/memories/all_memories_page.dart index 7180ab4203..ae76ab3c04 100644 --- a/mobile/lib/ui/home/memories/all_memories_page.dart +++ b/mobile/lib/ui/home/memories/all_memories_page.dart @@ -5,14 +5,18 @@ import "package:photos/ui/home/memories/full_screen_memory.dart"; class AllMemoriesPage extends StatefulWidget { final int initialPageIndex; + final int inititalFileIndex; final List> allMemories; final List allTitles; + final bool isFromWidgetOrNotifications; const AllMemoriesPage({ super.key, required this.allMemories, required this.allTitles, required this.initialPageIndex, + this.inititalFileIndex = 0, + this.isFromWidgetOrNotifications = false, }); @override @@ -22,6 +26,7 @@ class AllMemoriesPage extends StatefulWidget { class _AllMemoriesPageState extends State with SingleTickerProviderStateMixin { late PageController pageController; + bool isFirstLoad = true; @override void initState() { @@ -44,7 +49,11 @@ class _AllMemoriesPageState extends State hitTestBehavior: HitTestBehavior.translucent, itemCount: widget.allMemories.length, itemBuilder: (context, index) { - final initialMemoryIndex = _getNextMemoryIndex(index); + final initialMemoryIndex = + widget.isFromWidgetOrNotifications && isFirstLoad + ? widget.inititalFileIndex + : _getNextMemoryIndex(index); + isFirstLoad = false; return FullScreenMemoryDataUpdater( initialIndex: initialMemoryIndex, memories: widget.allMemories[index],