From 856ff6a33dbe576e0adbf5ab91c1012535ba15b5 Mon Sep 17 00:00:00 2001 From: J-shw <91017208+J-shw@users.noreply.github.com> Date: Wed, 8 Apr 2026 07:57:41 +0100 Subject: [PATCH 1/7] Merged update and create into saveUser method --- .../database/repositories/user_repository.dart | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) 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]); From d69f9d9f3c545c6e53b06b71f6f97ceaa9be3607 Mon Sep 17 00:00:00 2001 From: J-shw <91017208+J-shw@users.noreply.github.com> Date: Wed, 8 Apr 2026 07:58:41 +0100 Subject: [PATCH 2/7] Updated repo method calls --- app/lib/services/user_service.dart | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 From 709acf10524c32cbd4e39105d8fb025949d63b9d Mon Sep 17 00:00:00 2001 From: J-shw <91017208+J-shw@users.noreply.github.com> Date: Wed, 8 Apr 2026 08:00:27 +0100 Subject: [PATCH 3/7] Uses user service and not repo --- app/lib/screens/onboarding/onboarding_screen.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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); } From 9c154bf31f4171b86a350fd17bcab685e4fe966c Mon Sep 17 00:00:00 2001 From: J-shw <91017208+J-shw@users.noreply.github.com> Date: Wed, 8 Apr 2026 08:02:04 +0100 Subject: [PATCH 4/7] Updated app version numbers --- app/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 52a61867..862e6015 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.3+30 environment: sdk: ^3.8.1 From 9c47221a9138f65845cbf0904c5f126c3e9ee7ca Mon Sep 17 00:00:00 2001 From: J-shw <91017208+J-shw@users.noreply.github.com> Date: Wed, 8 Apr 2026 08:02:14 +0100 Subject: [PATCH 5/7] Updated app version number --- sonar-project.properties | 2 +- website/_includes/schema/schema-main.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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..96fd3c7d 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.3", "releaseNotes": "https://menstrudel.app/release%20notes/announcements/2026/04/03/announcing-menstrudel-v4.2.0.html" } \ No newline at end of file From a1a09483d8f89d4f3431052070ec4eb5500ea718 Mon Sep 17 00:00:00 2001 From: J-shw <91017208+J-shw@users.noreply.github.com> Date: Tue, 16 Jun 2026 21:30:25 +0100 Subject: [PATCH 6/7] Updated version numbers --- website/_includes/schema/schema-main.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From e0a2b295943447cd3e591ac92b764b297ead9f4a Mon Sep 17 00:00:00 2001 From: J-shw <91017208+J-shw@users.noreply.github.com> Date: Tue, 16 Jun 2026 21:30:35 +0100 Subject: [PATCH 7/7] Changed versions --- app/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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