@@ -86,6 +86,7 @@ class _HomeTabsScreenState extends State<HomeTabsScreen> with SingleTickerProvid
86
86
final measurementProvider = context.read <MeasurementProvider >();
87
87
final userProvider = context.read <UserProvider >();
88
88
89
+ //
89
90
// Base data
90
91
widget._logger.info ('Loading base data' );
91
92
await Future .wait ([
@@ -95,7 +96,18 @@ class _HomeTabsScreenState extends State<HomeTabsScreen> with SingleTickerProvid
95
96
nutritionPlansProvider.fetchIngredientsFromCache (),
96
97
exercisesProvider.fetchAndSetInitialData (),
97
98
]);
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
+ }
98
109
110
+ //
99
111
// Plans, weight and gallery
100
112
widget._logger.info ('Loading routines, weight, measurements and gallery' );
101
113
await Future .wait ([
@@ -107,13 +119,15 @@ class _HomeTabsScreenState extends State<HomeTabsScreen> with SingleTickerProvid
107
119
measurementProvider.fetchAndSetAllCategoriesAndEntries (),
108
120
]);
109
121
122
+ //
110
123
// Current nutritional plan
111
124
widget._logger.info ('Loading current nutritional plan' );
112
125
if (nutritionPlansProvider.currentPlan != null ) {
113
126
final plan = nutritionPlansProvider.currentPlan! ;
114
127
await nutritionPlansProvider.fetchAndSetPlanFull (plan.id! );
115
128
}
116
129
130
+ //
117
131
// Current routine
118
132
widget._logger.info ('Loading current routine' );
119
133
if (routinesProvider.currentRoutine != null ) {
0 commit comments