Implemented openRoundView method
This commit is contained in:
@@ -105,17 +105,7 @@ class _ActiveGameViewState extends State<ActiveGameView> {
|
|||||||
: const Text('\u{23F3}',
|
: const Text('\u{23F3}',
|
||||||
style: TextStyle(fontSize: 22)),
|
style: TextStyle(fontSize: 22)),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
// ignore: unused_local_variable
|
_openRoundView(index + 1);
|
||||||
final val = await Navigator.of(context,
|
|
||||||
rootNavigator: true)
|
|
||||||
.push(
|
|
||||||
CupertinoPageRoute(
|
|
||||||
fullscreenDialog: true,
|
|
||||||
builder: (context) => RoundView(
|
|
||||||
gameSession: gameSession,
|
|
||||||
roundNumber: index + 1),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
},
|
},
|
||||||
@@ -362,4 +352,25 @@ class _ActiveGameViewState extends State<ActiveGameView> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Recursively opens the RoundView for the specified round number.
|
||||||
|
/// It starts with the given [roundNumber] and continues to open the next round
|
||||||
|
/// until the user navigates back or the round number is invalid.
|
||||||
|
void _openRoundView(int roundNumber) async {
|
||||||
|
final val = await Navigator.of(context, rootNavigator: true).push(
|
||||||
|
CupertinoPageRoute(
|
||||||
|
fullscreenDialog: true,
|
||||||
|
builder: (context) => RoundView(
|
||||||
|
gameSession: gameSession,
|
||||||
|
roundNumber: roundNumber,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
if (val != null && val >= 0) {
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
|
await Future.delayed(const Duration(milliseconds: 600));
|
||||||
|
_openRoundView(val);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ class _RoundViewState extends State<RoundView> {
|
|||||||
? () {
|
? () {
|
||||||
_finishRound();
|
_finishRound();
|
||||||
LocalStorageService.saveGameSessions();
|
LocalStorageService.saveGameSessions();
|
||||||
Navigator.pop(context, widget.gameSession);
|
Navigator.pop(context, -1);
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
child: Text(AppLocalizations.of(context).done),
|
child: Text(AppLocalizations.of(context).done),
|
||||||
@@ -301,17 +301,10 @@ class _RoundViewState extends State<RoundView> {
|
|||||||
_finishRound();
|
_finishRound();
|
||||||
LocalStorageService.saveGameSessions();
|
LocalStorageService.saveGameSessions();
|
||||||
if (widget.gameSession.isGameFinished == true) {
|
if (widget.gameSession.isGameFinished == true) {
|
||||||
Navigator.pop(context, widget.gameSession);
|
Navigator.pop(context, -1);
|
||||||
} else {
|
} else {
|
||||||
Navigator.of(context, rootNavigator: true)
|
Navigator.pop(
|
||||||
.pushReplacement(
|
context, widget.roundNumber + 1);
|
||||||
CupertinoPageRoute(
|
|
||||||
builder: (context) => RoundView(
|
|
||||||
gameSession: widget.gameSession,
|
|
||||||
roundNumber: widget.roundNumber + 1,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: cabo_counter
|
|||||||
description: "Mobile app for the card game Cabo"
|
description: "Mobile app for the card game Cabo"
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
version: 0.3.8+327
|
version: 0.3.9+330
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.5.4
|
sdk: ^3.5.4
|
||||||
|
|||||||
Reference in New Issue
Block a user