diff --git a/app/lib/database/repositories/user_repository.dart b/app/lib/database/repositories/user_repository.dart index 89d2c2fd..b825394b 100644 --- a/app/lib/database/repositories/user_repository.dart +++ b/app/lib/database/repositories/user_repository.dart @@ -10,11 +10,12 @@ class UserRepository { UserRepository() : manager = Manager(AppDatabase.instance); - Future createUser(UserEntry user) async { + /// Saves or updates the user data. + Future saveUser(UserEntry user) async { final db = await dbProvider.database; await db.insert( - 'user', - user.toMap(), + 'user', + user.toMap(), conflictAlgorithm: ConflictAlgorithm.replace, ); } @@ -27,16 +28,6 @@ class UserRepository { return UserEntry.fromMap(maps.first); } - Future updateUser(UserEntry user) async { - final db = await dbProvider.database; - await db.update( - 'user', - user.toMap(), - where: 'id = ?', - whereArgs: [UserEntry.singletonId], - ); - } - Future deleteUser() async { final db = await dbProvider.database; await db.delete('user', where: 'id = ?', whereArgs: [UserEntry.singletonId]); diff --git a/app/lib/screens/onboarding/onboarding_screen.dart b/app/lib/screens/onboarding/onboarding_screen.dart index 7674eed5..44c8aea8 100644 --- a/app/lib/screens/onboarding/onboarding_screen.dart +++ b/app/lib/screens/onboarding/onboarding_screen.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:menstrudel/l10n/app_localizations.dart'; import 'package:menstrudel/services/settings_service.dart'; +import 'package:menstrudel/services/user_service.dart'; import 'package:provider/provider.dart'; import 'package:menstrudel/models/app/user_entry.dart'; import 'package:menstrudel/models/app/user_goal_types_enum.dart'; @@ -32,7 +33,7 @@ class _OnboardingScreenState extends State { birthDate: _selectedDate, primaryGoal: _selectedGoal, ); - await context.read().createUser(newUser); + await context.read().updateUser(newUser); if (mounted){ await context.read().applySettingsForGoal(_selectedGoal); } diff --git a/app/lib/services/user_service.dart b/app/lib/services/user_service.dart index f54bc012..8088e50a 100644 --- a/app/lib/services/user_service.dart +++ b/app/lib/services/user_service.dart @@ -51,7 +51,7 @@ class UserService extends ChangeNotifier { Future updateUser(UserEntry user) async { _user = user; notifyListeners(); - _userRepo.updateUser(user); + _userRepo.saveUser(user); } /// Updates the user's date of birth. @@ -60,7 +60,7 @@ class UserService extends ChangeNotifier { _user = _user!.copyWith(birthDate: date); _age = AgeCalculator.age(_user!.birthDate!).years; notifyListeners(); - _userRepo.updateUser(_user!); + _userRepo.saveUser(_user!); } /// Remove date of birth. @@ -68,7 +68,7 @@ class UserService extends ChangeNotifier { if (_user == null) return; _user = _user!.copyWith(birthDate: null); notifyListeners(); - _userRepo.updateUser(_user!); + _userRepo.saveUser(_user!); } /// Updates the user's name @@ -76,7 +76,7 @@ class UserService extends ChangeNotifier { if (_user == null) return; _user = _user!.copyWith(name: name); notifyListeners(); - _userRepo.updateUser(_user!); + _userRepo.saveUser(_user!); } /// Updates the user's primary goal @@ -84,7 +84,7 @@ class UserService extends ChangeNotifier { if (_user == null) return; _user = _user!.copyWith(primaryGoal: goal); notifyListeners(); - _userRepo.updateUser(_user!); + _userRepo.saveUser(_user!); settingsService.applySettingsForGoal(goal); } } \ No newline at end of file diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 52a61867..fe273732 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -2,7 +2,7 @@ name: menstrudel description: "Your private, offline, menstrual cycle tracker." publish_to: 'none' -version: 4.2.2+29 +version: 4.2.4+31 environment: sdk: ^3.8.1 diff --git a/sonar-project.properties b/sonar-project.properties index 0e641e0a..77117f41 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -4,7 +4,7 @@ sonar.organization=j-shw # This is the name and version displayed in the SonarCloud UI. sonar.projectName=Menstrudel -sonar.projectVersion=4.2.2 +sonar.projectVersion=4.2.3 # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. diff --git a/website/_includes/schema/schema-main.html b/website/_includes/schema/schema-main.html index eb79cda3..ba2f5833 100644 --- a/website/_includes/schema/schema-main.html +++ b/website/_includes/schema/schema-main.html @@ -100,7 +100,7 @@ "caption": "Sexual Activity Tracking" } ], - "softwareVersion": "4.2.2", + "softwareVersion": "4.2.4", "releaseNotes": "https://menstrudel.app/release%20notes/announcements/2026/04/03/announcing-menstrudel-v4.2.0.html" } \ No newline at end of file