Merge branch 'master' into feature/improve-min-app-version

This commit is contained in:
Roland Geider
2025-04-01 21:24:58 +02:00
5 changed files with 25 additions and 78 deletions

View File

@@ -25,14 +25,17 @@ jobs:
- run: dart --version
- run: flutter --version
- name: Install sqlite3-dev
run: sudo apt install libsqlite3-dev
- name: Install app dependencies
run: flutter pub get
- name: Install dependencies
run: |
sudo apt install libsqlite3-dev lcov
flutter pub get
# Removing some folders from the coverage since these files are not really
# part of the app code and just get in the way of the report
- name: Test app
run: flutter test --coverage
run: |
flutter test --coverage
lcov --remove coverage/lcov.info 'lib/l10n/generated/*' 'lib/theme/*' -o coverage/lcov.info
- name: Coveralls
uses: coverallsapp/github-action@v2

View File

@@ -1,2 +1,2 @@
tags:
golden:
golden: { }

View File

@@ -1,67 +1,11 @@
import 'dart:convert';
import 'package:drift/drift.dart';
import 'package:wger/models/exercises/alias.dart';
import 'package:wger/models/exercises/category.dart';
import 'package:wger/models/exercises/comment.dart';
import 'package:wger/models/exercises/equipment.dart';
import 'package:wger/models/exercises/exercise.dart';
import 'package:wger/models/exercises/image.dart';
import 'package:wger/models/exercises/language.dart';
import 'package:wger/models/exercises/muscle.dart';
import 'package:wger/models/exercises/translation.dart';
import 'package:wger/models/exercises/variation.dart';
import 'package:wger/models/exercises/video.dart';
class ExerciseBaseConverter extends TypeConverter<Exercise, String> {
const ExerciseBaseConverter();
@override
Exercise fromSql(String fromDb) {
final Map<String, dynamic> baseData = json.decode(fromDb);
final category = ExerciseCategory.fromJson(baseData['categories']);
final musclesPrimary = baseData['muscless'].map((e) => Muscle.fromJson(e)).toList();
final musclesSecondary = baseData['musclesSecondary'].map((e) => Muscle.fromJson(e)).toList();
final equipment = baseData['equipments'].map((e) => Equipment.fromJson(e)).toList();
final images = baseData['images'].map((e) => ExerciseImage.fromJson(e)).toList();
final videos = baseData['videos'].map((e) => Video.fromJson(e)).toList();
final List<Translation> translations = [];
for (final exerciseData in baseData['translations']) {
final translation = Translation(
id: exerciseData['id'],
name: exerciseData['name'],
description: exerciseData['description'],
exerciseId: baseData['id'],
);
translation.aliases = exerciseData['aliases'].map((e) => Alias.fromJson(e)).toList();
translation.notes = exerciseData['notes'].map((e) => Comment.fromJson(e)).toList();
translation.language = Language.fromJson(exerciseData['languageObj']);
translations.add(translation);
}
final exerciseBase = Exercise(
id: baseData['id'],
uuid: baseData['uuid'],
created: null,
//creationDate: toDate(baseData['creation_date']),
musclesSecondary: musclesSecondary.cast<Muscle>(),
muscles: musclesPrimary.cast<Muscle>(),
equipment: equipment.cast<Equipment>(),
category: category,
images: images.cast<ExerciseImage>(),
translations: translations,
videos: videos.cast<Video>(),
);
return exerciseBase;
}
@override
String toSql(Exercise value) {
return json.encode(value.toJson());
}
}
class MuscleConverter extends TypeConverter<Muscle, String> {
const MuscleConverter();

View File

@@ -558,18 +558,18 @@ packages:
dependency: "direct dev"
description:
name: freezed
sha256: "59a584c24b3acdc5250bb856d0d3e9c0b798ed14a4af1ddb7dc1c7b41df91c9c"
sha256: "7ed2ddaa47524976d5f2aa91432a79da36a76969edd84170777ac5bea82d797c"
url: "https://pub.dev"
source: hosted
version: "2.5.8"
version: "3.0.4"
freezed_annotation:
dependency: "direct main"
description:
name: freezed_annotation
sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2
sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b
url: "https://pub.dev"
source: hosted
version: "2.4.4"
version: "3.0.0"
frontend_server_client:
dependency: transitive
description:
@@ -1064,10 +1064,10 @@ packages:
dependency: "direct main"
description:
name: provider
sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
sha256: "489024f942069c2920c844ee18bb3d467c69e48955a4f32d1677f71be103e310"
url: "https://pub.dev"
source: hosted
version: "6.1.2"
version: "6.1.4"
pub_semver:
dependency: transitive
description:
@@ -1128,10 +1128,10 @@ packages:
dependency: "direct main"
description:
name: shared_preferences
sha256: "846849e3e9b68f3ef4b60c60cf4b3e02e9321bc7f4d8c4692cf87ffa82fc8a3a"
sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5"
url: "https://pub.dev"
source: hosted
version: "2.5.2"
version: "2.5.3"
shared_preferences_android:
dependency: transitive
description:
@@ -1461,10 +1461,10 @@ packages:
dependency: "direct main"
description:
name: video_player
sha256: "48941c8b05732f9582116b1c01850b74dbee1d8520cd7e34ad4609d6df666845"
sha256: "7d78f0cfaddc8c19d4cb2d3bebe1bfef11f2103b0a03e5398b303a1bf65eeb14"
url: "https://pub.dev"
source: hosted
version: "2.9.3"
version: "2.9.5"
video_player_android:
dependency: transitive
description:

View File

@@ -49,7 +49,7 @@ dependencies:
flutter_typeahead: ^5.2.0
flutter_zxing: ^1.8.2
font_awesome_flutter: ^10.8.0
freezed_annotation: ^2.4.4
freezed_annotation: ^3.0.0
get_it: ^8.0.3
http: ^1.2.2
image_picker: ^1.1.0
@@ -59,14 +59,14 @@ dependencies:
package_info_plus: ^8.3.0
path: ^1.9.0
path_provider: ^2.1.5
provider: ^6.1.2
provider: ^6.1.4
rive: ^0.13.20
shared_preferences: ^2.5.2
shared_preferences: ^2.5.3
sqlite3_flutter_libs: ^0.5.31
table_calendar: ^3.0.8
url_launcher: ^6.3.1
version: ^3.0.2
video_player: ^2.9.3
video_player: ^2.9.5
logging: ^1.3.0
flutter_riverpod: ^2.6.1
@@ -82,7 +82,7 @@ dev_dependencies:
cider: ^0.2.7
drift_dev: ^2.26.0
flutter_lints: ^5.0.0
freezed: ^2.5.7
freezed: ^3.0.4
golden_toolkit: ^0.15.0
json_serializable: ^6.9.4
mockito: ^5.4.4