Skip to content

Commit 47d782f

Browse files
committed
Re-fetch unit data if necessary
1 parent d85ee13 commit 47d782f

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

lib/screens/home_tabs_screen.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class _HomeTabsScreenState extends State<HomeTabsScreen> with SingleTickerProvid
8686
final measurementProvider = context.read<MeasurementProvider>();
8787
final userProvider = context.read<UserProvider>();
8888

89+
//
8990
// Base data
9091
widget._logger.info('Loading base data');
9192
await Future.wait([
@@ -95,7 +96,18 @@ class _HomeTabsScreenState extends State<HomeTabsScreen> with SingleTickerProvid
9596
nutritionPlansProvider.fetchIngredientsFromCache(),
9697
exercisesProvider.fetchAndSetInitialData(),
9798
]);
99+
exercisesProvider.fetchAndSetAllExercises();
100+
101+
// Workaround for https://github.com/wger-project/flutter/issues/901
102+
// It seems that it can happen that sometimes the units were not loaded properly
103+
// so now we check and try again if necessary. We might need a better general
104+
// solution since this could potentially happen with other data as well.
105+
if (routinesProvider.repetitionUnits.isEmpty || routinesProvider.weightUnits.isEmpty) {
106+
widget._logger.info('Routine units are empty, fetching again');
107+
await routinesProvider.fetchAndSetUnits();
108+
}
98109

110+
//
99111
// Plans, weight and gallery
100112
widget._logger.info('Loading routines, weight, measurements and gallery');
101113
await Future.wait([
@@ -107,13 +119,15 @@ class _HomeTabsScreenState extends State<HomeTabsScreen> with SingleTickerProvid
107119
measurementProvider.fetchAndSetAllCategoriesAndEntries(),
108120
]);
109121

122+
//
110123
// Current nutritional plan
111124
widget._logger.info('Loading current nutritional plan');
112125
if (nutritionPlansProvider.currentPlan != null) {
113126
final plan = nutritionPlansProvider.currentPlan!;
114127
await nutritionPlansProvider.fetchAndSetPlanFull(plan.id!);
115128
}
116129

130+
//
117131
// Current routine
118132
widget._logger.info('Loading current routine');
119133
if (routinesProvider.currentRoutine != null) {

0 commit comments

Comments
 (0)