File tree Expand file tree Collapse file tree 3 files changed +23
-5
lines changed Expand file tree Collapse file tree 3 files changed +23
-5
lines changed Original file line number Diff line number Diff line change 16
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
*/
18
18
19
+ import 'dart:developer' ;
20
+
19
21
import 'package:equatable/equatable.dart' ;
20
22
import 'package:json_annotation/json_annotation.dart' ;
21
23
import 'package:wger/helpers/consts.dart' ;
@@ -160,7 +162,15 @@ class Exercise extends Equatable {
160
162
equipment = baseData.equipment;
161
163
category = baseData.category;
162
164
translations = baseData.translations.map ((e) {
163
- e.language = languages.firstWhere ((l) => l.id == e.languageId);
165
+ e.language = languages.firstWhere (
166
+ (l) => l.id == e.languageId,
167
+
168
+ // workaround for https://github.com/wger-project/flutter/issues/722
169
+ orElse: () {
170
+ log ('Could not find language for translation ${e .languageId }' );
171
+ return Language (id: e.languageId, shortName: 'unknown' , fullName: 'unknown' );
172
+ },
173
+ );
164
174
return e;
165
175
}).toList ();
166
176
videos = baseData.videos;
Original file line number Diff line number Diff line change @@ -298,9 +298,17 @@ class ExercisesProvider with ChangeNotifier {
298
298
int exerciseId,
299
299
) async {
300
300
Exercise exercise;
301
- final exerciseDb = await (database.select (database.exercises)
302
- ..where ((e) => e.id.equals (exerciseId)))
303
- .getSingleOrNull ();
301
+
302
+ // TODO: this should be a .getSingleOrNull()!!! However, for some reason there
303
+ // can be duplicates in the db. Perhaps a race condition so that two
304
+ // entries are written at the same time or something?
305
+ final exerciseResult =
306
+ await (database.select (database.exercises)..where ((e) => e.id.equals (exerciseId))).get ();
307
+
308
+ ExerciseTable ? exerciseDb;
309
+ if (exerciseResult.isNotEmpty) {
310
+ exerciseDb = exerciseResult.first;
311
+ }
304
312
305
313
// Exercise is already known locally
306
314
if (exerciseDb != null ) {
Original file line number Diff line number Diff line change @@ -1576,4 +1576,4 @@ packages:
1576
1576
version: "3.1.2"
1577
1577
sdks:
1578
1578
dart: ">=3.6.0 <4.0.0"
1579
- flutter: ">=3.24 .0"
1579
+ flutter: ">=3.27 .0"
You can’t perform that action at this time.
0 commit comments