Enable swipe between memories when openend from widgets

This commit is contained in:
AmanRajSinghMourya
2025-06-26 16:00:45 +05:30
parent d46b27e81f
commit b8eb200295
2 changed files with 17 additions and 5 deletions

View File

@@ -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,
);

View File

@@ -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<List<Memory>> allMemories;
final List<String> 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<AllMemoriesPage>
with SingleTickerProviderStateMixin {
late PageController pageController;
bool isFirstLoad = true;
@override
void initState() {
@@ -44,7 +49,11 @@ class _AllMemoriesPageState extends State<AllMemoriesPage>
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],