diff --git a/lib/models/timeline.dart b/lib/models/timeline.dart index fdf7a72..41a8b0c 100644 --- a/lib/models/timeline.dart +++ b/lib/models/timeline.dart @@ -18,7 +18,7 @@ class TimelineModel extends PropertyChangeNotifier { int _currentIndex = 0; int _memoryIndex = 0; bool _paused = false; - bool _isInitializing = true; + bool _isInitializing = false; Map> get values => _timeline; int get length => _timeline.length; diff --git a/lib/screens/timeline_screen.dart b/lib/screens/timeline_screen.dart index 30d4d49..d068ba7 100644 --- a/lib/screens/timeline_screen.dart +++ b/lib/screens/timeline_screen.dart @@ -21,6 +21,8 @@ class TimelineScreen extends StatefulWidget { this.date, }) : super(key: key); + bool get popToCalendarScreen => date == null; + @override State createState() => _TimelineScreenState(); } @@ -61,22 +63,17 @@ class _TimelineScreenState extends State with Loadable { } }, ['currentIndex']); - // Update page when initializing is done - timeline.addListener(() { - if (!mounted) { - return; - } + print("blaaa"); + WidgetsBinding.instance.addPostFrameCallback((_) async { + final initialIndex = getIndexFromDate(); - setState(() {}); + print("#" * 50); + print(initialIndex); - WidgetsBinding.instance.addPostFrameCallback((_) async { - final initialIndex = getIndexFromDate(); + await _goToPage(initialIndex); - await _goToPage(initialIndex); - - timeline.setCurrentIndex(initialIndex); - }); - }, ['isInitializing']); + timeline.setCurrentIndex(initialIndex); + }); } @override @@ -100,9 +97,13 @@ class _TimelineScreenState extends State with Loadable { Widget build(BuildContext context) { return WillPopScope( onWillPop: () async { - await Navigator.pushReplacementNamed(context, CalendarScreen.ID); + if (widget.popToCalendarScreen) { + await Navigator.pushReplacementNamed(context, CalendarScreen.ID); - return false; + return false; + } + + return true; }, child: Scaffold( body: ChangeNotifierProvider.value(