Add persistent wonderIndex for home page
This commit is contained in:
parent
6e3d94eece
commit
3ce1d3a68d
@ -54,16 +54,20 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
// Load previously saved wonderIndex if we have one
|
||||||
|
_wonderIndex = settingsLogic.prevWonderIndex.value ?? 0;
|
||||||
|
// allow 'infinite' scrolling by starting at a very high page number, add wonderIndex to start on the correct page
|
||||||
|
final initialPage = _numWonders * 100 + _wonderIndex;
|
||||||
// Create page controller,
|
// Create page controller,
|
||||||
// allow 'infinite' scrolling by starting at a very high page, or remember the previous value
|
|
||||||
final initialPage = _numWonders * 9999;
|
|
||||||
_pageController = PageController(viewportFraction: 1, initialPage: initialPage);
|
_pageController = PageController(viewportFraction: 1, initialPage: initialPage);
|
||||||
_wonderIndex = initialPage % _numWonders;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _handlePageChanged(value) {
|
void _handlePageChanged(value) {
|
||||||
|
final newIndex = value % _numWonders;
|
||||||
|
if (newIndex == _wonderIndex) return; // Exit early if we're already on this page
|
||||||
setState(() {
|
setState(() {
|
||||||
_wonderIndex = value % _numWonders;
|
_wonderIndex = newIndex;
|
||||||
|
settingsLogic.prevWonderIndex.value = _wonderIndex;
|
||||||
});
|
});
|
||||||
AppHaptics.lightImpact();
|
AppHaptics.lightImpact();
|
||||||
}
|
}
|
||||||
@ -104,7 +108,7 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
|
|||||||
|
|
||||||
void _showDetailsPage() async {
|
void _showDetailsPage() async {
|
||||||
_swipeOverride = _swipeController.swipeAmt.value;
|
_swipeOverride = _swipeController.swipeAmt.value;
|
||||||
context.go('${ScreenPaths.home}${ScreenPaths.wonderDetails(currentWonder.type)}');
|
context.go(ScreenPaths.wonderDetails(currentWonder.type, tabIndex: 0));
|
||||||
await Future.delayed(100.ms);
|
await Future.delayed(100.ms);
|
||||||
_swipeOverride = null;
|
_swipeOverride = null;
|
||||||
_fadeInOnNextBuild = true;
|
_fadeInOnNextBuild = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user