diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart index 3e32b0b..391af75 100644 --- a/lib/providers/user_provider.dart +++ b/lib/providers/user_provider.dart @@ -15,34 +15,17 @@ class UserProvider with ChangeNotifier { _initializeUser(); } -Future _initializeUser() async { + Future _initializeUser() async { SharedPreferences prefs = await SharedPreferences.getInstance(); final userId = prefs.getString('userId'); if (userId == null) { - final newUser = User( - id: Uuid().v4(), - preferences: Preferences(), - ); - user = newUser; - await _saveUser(); + user = User(id: Uuid().v4(), preferences: Preferences()); } else { final userJson = prefs.getString(userId); - if (userJson != null) { - user = User.fromJson(jsonDecode(userJson)); - } else { - final newUser = User( - id: userId, - preferences: Preferences(), - ); - user = newUser; - await _saveUser(); - } + user = userJson != null ? User.fromJson(jsonDecode(userJson)) : User(id: userId, preferences: Preferences()); } - } - - Future _saveUser() async { - SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString(user.id, jsonEncode(user.toJson())); + prefs.setString('userId', user.id); } Future markTutorialAsComplete() async { @@ -148,14 +131,10 @@ Future _initializeUser() async { return sessionData.rounds; } - Future clearCurrentSession() async { + Future deleteSessionData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.remove('${user.id}/currentSession'); - } - Future deleteSessionData() async { - SharedPreferences prefs = await SharedPreferences.getInstance(); - Set allKeys = prefs.getKeys(); Iterable sessionKeys = allKeys.where((key) => key.startsWith('${user.id}/sessions/${user.currentSessionId}/')); diff --git a/lib/screens/results_screen.dart b/lib/screens/results_screen.dart index d88b54d..fccb3af 100644 --- a/lib/screens/results_screen.dart +++ b/lib/screens/results_screen.dart @@ -41,7 +41,6 @@ class _ResultsScreenState extends State { Future _handleClose() async { final userProvider = Provider.of(context, listen: false); if (!saveProgress) { - await userProvider.clearCurrentSession(); await userProvider.deleteSessionData(); } } diff --git a/lib/screens/splash_screen.dart b/lib/screens/splash_screen.dart index 72ff324..5bd3ad3 100644 --- a/lib/screens/splash_screen.dart +++ b/lib/screens/splash_screen.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:shared_preferences/shared_preferences.dart'; import 'package:go_router/go_router.dart'; +import 'package:shared_preferences/shared_preferences.dart'; class SplashScreen extends StatefulWidget { @override @@ -8,13 +8,12 @@ class SplashScreen extends StatefulWidget { } class _SplashScreenState extends State { - - + Future _checkTutorialCompletion() async { SharedPreferences prefs = await SharedPreferences.getInstance(); - return prefs.getBool('tutorialComplete') ?? false; + final userId = prefs.getString('userId'); + return prefs.getBool('$userId/tutorialComplete') ?? false; } - @override void initState() { super.initState();