Commit Graph

450 Commits

Author SHA1 Message Date
Roland Geider
54b40696da Postmerge fixes 2025-10-19 15:23:17 +02:00
Roland Geider
98f2fb0096 Merge branch 'master' into powersync
# Conflicts:
#	Gemfile.lock
#	android/settings.gradle
#	fastlane/report.xml
#	integration_test/1_dashboard.dart
#	integration_test/2_workout.dart
#	integration_test/3_gym_mode.dart
#	integration_test/5_nutritional_plan.dart
#	integration_test/6_weight.dart
#	lib/helpers/i18n.dart
#	lib/helpers/ui.dart
#	lib/main.dart
#	lib/models/nutrition/meal.g.dart
#	lib/models/nutrition/nutritional_plan.dart
#	lib/providers/auth.dart
#	lib/providers/nutrition.dart
#	lib/screens/add_exercise_screen.dart
#	lib/screens/auth_screen.dart
#	lib/screens/dashboard.dart
#	lib/screens/exercises_screen.dart
#	lib/screens/home_tabs_screen.dart
#	lib/screens/log_meal_screen.dart
#	lib/screens/log_meals_screen.dart
#	lib/screens/nutritional_plan_screen.dart
#	lib/screens/routine_list_screen.dart
#	lib/screens/workout_plan_screen.dart
#	lib/widgets/add_exercise/steps/step1basics.dart
#	lib/widgets/add_exercise/steps/step5images.dart
#	lib/widgets/add_exercise/steps/step_2_variations.dart
#	lib/widgets/add_exercise/steps/step_3_description.dart
#	lib/widgets/add_exercise/steps/step_4_translations.dart
#	lib/widgets/core/about.dart
#	lib/widgets/core/settings.dart
#	lib/widgets/dashboard/calendar.dart
#	lib/widgets/dashboard/widgets.dart
#	lib/widgets/exercises/exercises.dart
#	lib/widgets/gallery/overview.dart
#	lib/widgets/measurements/categories_card.dart
#	lib/widgets/measurements/charts.dart
#	lib/widgets/measurements/entries.dart
#	lib/widgets/measurements/forms.dart
#	lib/widgets/measurements/helpers.dart
#	lib/widgets/nutrition/charts.dart
#	lib/widgets/nutrition/forms.dart
#	lib/widgets/nutrition/helpers.dart
#	lib/widgets/nutrition/meal.dart
#	lib/widgets/nutrition/nutritional_diary_table.dart
#	lib/widgets/nutrition/nutritional_plan_detail.dart
#	lib/widgets/nutrition/nutritional_plans_list.dart
#	lib/widgets/nutrition/widgets.dart
#	lib/widgets/routines/charts.dart
#	lib/widgets/routines/workout_logs.dart
#	lib/widgets/weight/forms.dart
#	lib/widgets/weight/weight_overview.dart
#	lib/widgets/workouts/app_bar.dart
#	lib/widgets/workouts/day.dart
#	lib/widgets/workouts/forms.dart
#	lib/widgets/workouts/gym_mode.dart
#	lib/widgets/workouts/workout_plan_detail.dart
#	lib/widgets/workouts/workout_plans_list.dart
#	linux/flutter/generated_plugin_registrant.cc
#	linux/flutter/generated_plugins.cmake
#	pubspec.lock
#	pubspec.yaml
#	test/auth/auth_screen_test.dart
#	test/core/settings_test.dart
#	test/core/settings_test.mocks.dart
#	test/nutrition/nutritional_meal_form_test.mocks.dart
#	test/nutrition/nutritional_meal_item_form_test.dart
#	test/nutrition/nutritional_plan_form_test.mocks.dart
#	test/nutrition/nutritional_plan_screen_test.dart
#	test/nutrition/nutritional_plans_screen_test.dart
#	test/routine/repetition_unit_form_widget_test.dart
#	test/routine/routine_screen_test.dart
#	test/routine/routines_screen_test.dart
#	test/routine/weight_unit_form_widget_test.dart
#	test/workout/gym_mode_screen_test.dart
#	test/workout/workout_day_form_test.dart
#	test/workout/workout_form_test.dart
#	test/workout/workout_set_form_test.dart
2025-10-19 14:48:15 +02:00
Roland Geider
64dc10cdb2 Fix import for localization strings 2025-10-19 14:23:58 +02:00
Roland Geider
93a11a16e4 Recreate generated files and reformat the repo
Seems the default dart formatting rules changed recently, and this was causing
huge diffs in branches
2025-10-09 17:39:02 +02:00
Roland Geider
bb2fbc2c73 Rename files to follow naming schema of all others 2025-10-08 14:07:51 +02:00
Roland Geider
1a78011a7d Refactor image handling in the exercise submission process
Now the images are kept in a single list, instead of having two for
the files themselves and the metadata.
2025-10-08 12:45:37 +02:00
Roland Geider
a10b7eb9f7 Pass parameter to create new variation and link exercises 2025-09-28 15:03:28 +02:00
Roland Geider
960abc9bec Merge branch 'master' into feature/exercise-submission 2025-09-28 14:38:22 +02:00
Roland Geider
ccbaf0b42a Allow multiple weight entries per day 2025-09-26 12:21:50 +02:00
Roland Geider
ba34570a3d Add image upload methods
We use the "manual" way as it was before, since there were some problems
making this work and most of the errors were happening during the exercise
creation itself.
2025-09-19 22:27:04 +02:00
Roland Geider
9ea8362d20 Show an overview with the new exercise data before saving
Also, correctly parse all validation errors that might be returned by the server
2025-09-19 16:59:18 +02:00
Roland Geider
711d7c0aba Update exercise submission model and related files
This now uses the combined endpoint, which creates the different objects
itself within a transaction, ensuring that no orphans can be created.
2025-09-18 21:57:27 +02:00
Roland Geider
47d782fc43 Re-fetch unit data if necessary 2025-09-06 15:06:09 +02:00
Roland Geider
4330e51f86 Retrieve the current routine dynamically
This behaviour is now the same as the nutritional plans.
2025-09-05 22:47:27 +02:00
Roland Geider
92295c54b8 Merge branch 'master' into fix/timezone-problems 2025-08-28 22:19:31 +02:00
Roland Geider
20ff983fe6 Formatting 2025-06-23 11:40:47 +02:00
Dieter Plaetinck
8f5ce2647c log meal screen: handle "no meals defined" gracefully 2025-06-04 12:16:27 +03:00
Roland Geider
e470087f4c Move ConfigureAvailablePlates to its own widget
This makes the corresponding screen to be much clearer
2025-05-27 17:56:55 +02:00
Roland Geider
4bcc268896 Add bar weight and color options to the plate calculator provider 2025-05-27 16:56:12 +02:00
Roland Geider
70fba34f0c Better handling of time zones
We now send the current time zone to the server when serializing datetime objects.
This was causing entries to be saved some hours wrong or depending on the time, on
a different day.
2025-05-26 11:13:53 +02:00
Roland Geider
f5decaf6a5 Add some tests 2025-05-23 18:08:19 +02:00
Roland Geider
0d36fe4bc3 Polish the add plate widget 2025-05-23 17:41:08 +02:00
Roland Geider
5a8df8936e Move provider to riverpod 2025-05-23 11:52:46 +02:00
Roland Geider
ac13381bcf Some refactoring 2025-05-23 11:06:37 +02:00
Roland Geider
9934209b7c Merge branch 'master' into fork/AyushJagaty/plate-46-calc
# Conflicts:
#	AUTHORS.md
#	ios/Podfile.lock
#	lib/main.dart
#	lib/providers/user.dart
#	lib/widgets/workouts/gym_mode.dart
#	test/nutrition/goldens/nutritional_plan_1_default_view.png
#	test/nutrition/goldens/nutritional_plan_2_one_meal_with_ingredients.png
#	test/nutrition/goldens/nutritional_plan_3_both_meals_with_ingredients.png
#	test/routine/gym_mode_screen_test.dart
2025-05-22 15:27:39 +02:00
Roland Geider
0fd2154a20 Merge pull request #815 from Shininess8816/mealDateTime
Allow the logging on meals with date times #789
2025-05-16 18:35:02 +02:00
Roland Geider
a2a3384774 Remove unused parameter dateTimeOfMeal and some light cleanup of log_meal_screen.dart 2025-05-16 18:31:28 +02:00
Roland Geider
0d49030c60 Merge branch 'master' into fork/eyJhb/api-token
# Conflicts:
#	lib/screens/auth_screen.dart
#	test/nutrition/nutritional_plan_screen_test.mocks.dart
#	test/nutrition/nutritional_plans_screen_test.mocks.dart
#	test/workout/day_form_test.mocks.dart
#	test/workout/gym_mode_session_screen_test.mocks.dart
#	test/workout/repetition_unit_form_widget_test.mocks.dart
#	test/workout/routine_edit_screen_test.mocks.dart
#	test/workout/routine_edit_test.mocks.dart
#	test/workout/routine_form_test.mocks.dart
#	test/workout/routine_logs_screen_test.mocks.dart
#	test/workout/slot_entry_form_test.mocks.dart
#	test/workout/weight_unit_form_widget_test.mocks.dart
2025-05-11 18:04:09 +02:00
Roland Geider
0863b44fe6 Merge branch 'master' into feature/better-error-handling
# Conflicts:
#	lib/screens/home_tabs_screen.dart
#	test/workout/day_form_test.mocks.dart
#	test/workout/gym_mode_session_screen_test.mocks.dart
#	test/workout/repetition_unit_form_widget_test.mocks.dart
#	test/workout/routine_edit_screen_test.mocks.dart
#	test/workout/routine_edit_test.mocks.dart
#	test/workout/routine_form_test.mocks.dart
#	test/workout/routine_logs_screen_test.mocks.dart
#	test/workout/slot_entry_form_test.mocks.dart
#	test/workout/weight_unit_form_widget_test.mocks.dart
2025-05-09 14:11:17 +02:00
Roland Geider
f8000a5454 Catch and handle WgerHttpException specially
This shows the server errors directly in the form, instead of a modal dialog
(which is the default for all the other forms and places that throw the exception)
2025-05-09 13:54:58 +02:00
burny0202
0942739200 Allow the logging on meals with date times #789 2025-05-08 21:43:07 +01:00
Roland Geider
013721ba71 Refactor WgerHttpException
We can now use a widget to show any errors returned by WgerHttpException. This has
to be added on a form-by-form basis, otherwise, the general error handling shows
the results in a modal dialog
2025-05-08 22:06:48 +02:00
Roland Geider
7e0910b56b Handle network connectivity a bit different
When the server is not reachable, we show a slightly different error message
and remove the option to automatically create an issue.
2025-05-08 15:07:12 +02:00
Roland Geider
5e22d69bb1 Improve error handling and logging
Now we process and catch all errors that might happen in the application, instead
of silently ignoring them. These errors are shown in a better error dialog, that
shows the details to the user and allows to create an issue on GitHub with the
error and traceback data already filled in.
2025-05-07 18:19:15 +02:00
Roland Geider
9ebaf58fea Refactor routine handling for the dashboard widgets
This makes sure that edits to the routine (such as changing the order
of the days, etc.) are properly reflected in the dashboard.
2025-05-03 15:39:46 +02:00
Roland Geider
ecf30fe5fd Rename controller 2025-05-01 13:35:30 +02:00
Roland Geider
ece38a39d2 Refactor login screen
The api token toggle is now only visible when showing a custom server, since at
the moment this is the only time when such an auth method makes sense (plus it
keeps the rest of the UI cleaner). The different fields in the screen have been
moved to individual files, to make the structure clearer.
2025-04-30 22:50:55 +02:00
Roland Geider
38cdc9f37c Merge branch 'master' into fork/eyJhb/api-token
# Conflicts:
#	lib/providers/auth.dart
2025-04-29 19:23:55 +02:00
Roland Geider
88d66b336c Properly update the UI when deleting workout logs
The problem was that we were passing the exercises and session from the
calendar events, which wasn't being reloaded when the logs were deleted. Now
we only pass the selected date and fetch the logs from the routine.
2025-04-17 10:26:44 +02:00
Roland Geider
6742c8091a Return the actions enum directly, no need for a dict here 2025-04-01 21:39:45 +02:00
Roland Geider
61f61a64c5 Merge branch 'master' into feature/improve-min-app-version
# Conflicts:
#	lib/providers/auth.dart
2025-03-31 09:44:43 +02:00
Roland Geider
d15ef94ae2 Cleanup, the text controller is only used in another widget 2025-03-29 15:50:43 +01:00
Roland Geider
301f48a966 More renaming of exercise base to just exercise 2025-03-29 15:50:13 +01:00
Roland Geider
e4b550ab52 Refactor app version handling and update authentication flow
Previously, this was only triggered when logging in to the application. If a user
just opened the app, it would just stop working. We also now always check this min
version and have removed the option from the android manifest file since disabling
this doesn't make much sense and we have many other platforms as well (iOS, flatpak)
2025-03-28 17:22:36 +01:00
Roland Geider
90681fadd9 Split up the gym mode widgets 2025-03-19 10:33:06 +01:00
Roland Geider
d071d143df Update flutter to 3.29
The translations are not stored in a synthetic package anymore, but the
files are just copied to a specific folder so it can be more easily imported

Also, flutter_barcode_scanner was replaced by simple_barcode_scanner since
the first hasn't been updated in 3 years and was already causing problems
for some time
2025-03-18 17:28:19 +01:00
Roland Geider
4e60f14917 The dashboard can be a StatelessWidget 2025-03-11 20:44:42 +01:00
Roland Geider
929acc7938 Refresh the whole routine after modifying a day
This makes sure that all the structures are present and have the correct
content (dayData, etc.)
2025-03-11 14:06:09 +01:00
Roland Geider
883490ecd4 Juggle with the widgets so the routine form doesn't cause overflow errors
Seems this is the only form to make it work within the SingleChildScrollView
2025-03-11 13:25:30 +01:00
Roland Geider
f25e9867a2 Cleanup 2025-02-21 22:05:29 +01:00