Enable swipe between memories when openend from widgets
This commit is contained in:
@@ -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,
|
||||
);
|
||||
|
||||
@@ -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],
|
||||
|
||||
Reference in New Issue
Block a user