Implemented life cycle listener

This commit is contained in:
Felix Kirchner
2025-04-30 17:28:51 +02:00
parent 11f87bc198
commit 59671c353c

View File

@@ -1,4 +1,6 @@
import 'package:cabo_counter/data/game_session.dart';
import 'package:cabo_counter/utility/apptheme.dart'; import 'package:cabo_counter/utility/apptheme.dart';
import 'package:cabo_counter/utility/globals.dart';
import 'package:cabo_counter/utility/local_storage_service.dart'; import 'package:cabo_counter/utility/local_storage_service.dart';
import 'package:cabo_counter/views/main_menu_view.dart'; import 'package:cabo_counter/views/main_menu_view.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -6,7 +8,7 @@ import 'package:flutter/cupertino.dart';
void main() { void main() {
/// FIXME Just for Debugging /// FIXME Just for Debugging
/// Fills the game list with some test data. /// Fills the game list with some test data.
/*Globals.addGameSession(GameSession( Globals.addGameSession(GameSession(
gameTitle: 'Spiel am 27.02.2025', gameTitle: 'Spiel am 27.02.2025',
players: ['Clara', 'Tobias', 'Yannik', 'Lena', 'Lekaia'], players: ['Clara', 'Tobias', 'Yannik', 'Lena', 'Lekaia'],
gameHasPointLimit: true)); gameHasPointLimit: true));
@@ -39,13 +41,39 @@ void main() {
gameTitle: '5 Namen max length', gameTitle: '5 Namen max length',
players: ['Hartmuth', 'Elisabet', 'Rosalind', 'Theresia', 'Karoline'], players: ['Hartmuth', 'Elisabet', 'Rosalind', 'Theresia', 'Karoline'],
gameHasPointLimit: false)); gameHasPointLimit: false));
*/
runApp(const App()); runApp(const App());
} }
class App extends StatelessWidget { class App extends StatefulWidget {
const App({super.key}); const App({super.key});
@override
State<StatefulWidget> createState() => _AppState();
}
class _AppState extends State<App> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
LocalStorageService.loadGameSessions();
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.paused ||
state == AppLifecycleState.detached) {
LocalStorageService.saveGameSessions();
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
LocalStorageService.loadGameSessions(); LocalStorageService.loadGameSessions();
@@ -64,8 +92,4 @@ class App extends StatelessWidget {
home: const MainMenuView(), home: const MainMenuView(),
); );
} }
dispose() {
LocalStorageService.saveGameSessions();
}
} }