diff --git a/coverage/html/amber.png b/coverage/html/amber.png new file mode 100644 index 000000000..2cab170d8 Binary files /dev/null and b/coverage/html/amber.png differ diff --git a/coverage/html/core/data/data_source/config_data_source.dart.func-sort-c.html b/coverage/html/core/data/data_source/config_data_source.dart.func-sort-c.html new file mode 100644 index 000000000..ddfbd1e76 --- /dev/null +++ b/coverage/html/core/data/data_source/config_data_source.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/config_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - config_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/config_data_source.dart.func.html b/coverage/html/core/data/data_source/config_data_source.dart.func.html new file mode 100644 index 000000000..e73caf31b --- /dev/null +++ b/coverage/html/core/data/data_source/config_data_source.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/config_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - config_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/config_data_source.dart.gcov.html b/coverage/html/core/data/data_source/config_data_source.dart.gcov.html new file mode 100644 index 000000000..e665d7edb --- /dev/null +++ b/coverage/html/core/data/data_source/config_data_source.dart.gcov.html @@ -0,0 +1,177 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/config_data_source.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - config_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:logging/logging.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/app_theme_dbo.dart';
+       4             : import 'package:opennutritracker/core/data/dbo/config_dbo.dart';
+       5             : 
+       6             : class ConfigDataSource {
+       7             :   static const _configKey = "ConfigKey";
+       8             : 
+       9             :   final _log = Logger('ConfigDataSource');
+      10             :   final Box<ConfigDBO> _configBox;
+      11             : 
+      12           0 :   ConfigDataSource(this._configBox);
+      13             : 
+      14           0 :   Future<bool> configInitialized() async => _configBox.containsKey(_configKey);
+      15             : 
+      16           0 :   Future<void> initializeConfig() async =>
+      17           0 :       _configBox.put(_configKey, ConfigDBO.empty());
+      18             : 
+      19           0 :   Future<void> addConfig(ConfigDBO configDBO) async {
+      20           0 :     _log.fine('Adding new config item to db');
+      21           0 :     _configBox.put(_configKey, configDBO);
+      22             :   }
+      23             : 
+      24           0 :   Future<void> setConfigDisclaimer(bool hasAcceptedDisclaimer) async {
+      25           0 :     _log.fine(
+      26           0 :         'Updating config hasAcceptedDisclaimer to $hasAcceptedDisclaimer');
+      27           0 :     final config = _configBox.get(_configKey);
+      28           0 :     config?.hasAcceptedDisclaimer = hasAcceptedDisclaimer;
+      29           0 :     config?.save();
+      30             :   }
+      31             : 
+      32           0 :   Future<void> setConfigAcceptedAnonymousData(
+      33             :       bool hasAcceptedAnonymousData) async {
+      34           0 :     _log.fine(
+      35           0 :         'Updating config hasAcceptedAnonymousData to $hasAcceptedAnonymousData');
+      36           0 :     final config = _configBox.get(_configKey);
+      37           0 :     config?.hasAcceptedSendAnonymousData = hasAcceptedAnonymousData;
+      38           0 :     config?.save();
+      39             :   }
+      40             : 
+      41           0 :   Future<AppThemeDBO> getAppTheme() async {
+      42           0 :     final config = _configBox.get(_configKey);
+      43           0 :     return config?.selectedAppTheme ?? AppThemeDBO.defaultTheme;
+      44             :   }
+      45             : 
+      46           0 :   Future<void> setConfigAppTheme(AppThemeDBO appTheme) async {
+      47           0 :     _log.fine('Updating config appTheme to $appTheme');
+      48           0 :     final config = _configBox.get(_configKey);
+      49           0 :     config?.selectedAppTheme = appTheme;
+      50           0 :     config?.save();
+      51             :   }
+      52             : 
+      53           0 :   Future<void> setConfigUsesImperialUnits(bool usesImperialUnits) async {
+      54           0 :     _log.fine('Updating config usesImperialUnits to $usesImperialUnits');
+      55           0 :     final config = _configBox.get(_configKey);
+      56           0 :     config?.usesImperialUnits = usesImperialUnits;
+      57           0 :     config?.save();
+      58             :   }
+      59             : 
+      60           0 :   Future<double> getKcalAdjustment() async {
+      61           0 :     final config = _configBox.get(_configKey);
+      62           0 :     return config?.userKcalAdjustment ?? 0;
+      63             :   }
+      64             : 
+      65           0 :   Future<void> setConfigKcalAdjustment(double kcalAdjustment) async {
+      66           0 :     _log.fine('Updating config kcalAdjustment to $kcalAdjustment');
+      67           0 :     final config = _configBox.get(_configKey);
+      68           0 :     config?.userKcalAdjustment = kcalAdjustment;
+      69           0 :     config?.save();
+      70             :   }
+      71             : 
+      72           0 :   Future<void> setConfigCarbGoalPct(double carbGoalPct) async {
+      73           0 :     _log.fine('Updating config carbGoalPct to $carbGoalPct');
+      74           0 :     final config = _configBox.get(_configKey);
+      75           0 :     config?.userCarbGoalPct = carbGoalPct;
+      76           0 :     config?.save();
+      77             :   }
+      78             : 
+      79           0 :   Future<void> setConfigProteinGoalPct(double proteinGoalPct) async {
+      80           0 :     _log.fine('Updating config proteinGoalPct to $proteinGoalPct');
+      81           0 :     final config = _configBox.get(_configKey);
+      82           0 :     config?.userProteinGoalPct = proteinGoalPct;
+      83           0 :     config?.save();
+      84             :   }
+      85             : 
+      86           0 :   Future<void> setConfigFatGoalPct(double fatGoalPct) async {
+      87           0 :     _log.fine('Updating config fatGoalPct to $fatGoalPct');
+      88           0 :     final config = _configBox.get(_configKey);
+      89           0 :     config?.userFatGoalPct = fatGoalPct;
+      90           0 :     config?.save();
+      91             :   }
+      92             : 
+      93           0 :   Future<ConfigDBO> getConfig() async {
+      94           0 :     return _configBox.get(_configKey) ?? ConfigDBO.empty();
+      95             :   }
+      96             : 
+      97           0 :   Future<bool> getHasAcceptedAnonymousData() async {
+      98           0 :     final config = _configBox.get(_configKey);
+      99           0 :     return config?.hasAcceptedSendAnonymousData ?? false;
+     100             :   }
+     101             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/index-sort-f.html b/coverage/html/core/data/data_source/index-sort-f.html new file mode 100644 index 000000000..aa0f3c52f --- /dev/null +++ b/coverage/html/core/data/data_source/index-sort-f.html @@ -0,0 +1,153 @@ + + + + + + + LCOV - lcov.info - core/data/data_source + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_sourceHitTotalCoverage
Test:lcov.infoLines:112764.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
user_data_source.dart +
0.0%
+
0.0 %0 / 9-0 / 0
user_activity_dbo.g.dart +
0.0%
+
0.0 %0 / 43-0 / 0
user_activity_dbo.dart +
0.0%
+
0.0 %0 / 12-0 / 0
intake_data_source.dart +
27.5%27.5%
+
27.5 %11 / 40-0 / 0
config_data_source.dart +
0.0%
+
0.0 %0 / 60-0 / 0
tracked_day_data_source.dart +
0.0%
+
0.0 %0 / 82-0 / 0
user_activity_data_source.dart +
0.0%
+
0.0 %0 / 30-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/index-sort-l.html b/coverage/html/core/data/data_source/index-sort-l.html new file mode 100644 index 000000000..e1fe335a8 --- /dev/null +++ b/coverage/html/core/data/data_source/index-sort-l.html @@ -0,0 +1,153 @@ + + + + + + + LCOV - lcov.info - core/data/data_source + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_sourceHitTotalCoverage
Test:lcov.infoLines:112764.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
user_data_source.dart +
0.0%
+
0.0 %0 / 9-0 / 0
user_activity_dbo.dart +
0.0%
+
0.0 %0 / 12-0 / 0
user_activity_data_source.dart +
0.0%
+
0.0 %0 / 30-0 / 0
user_activity_dbo.g.dart +
0.0%
+
0.0 %0 / 43-0 / 0
config_data_source.dart +
0.0%
+
0.0 %0 / 60-0 / 0
tracked_day_data_source.dart +
0.0%
+
0.0 %0 / 82-0 / 0
intake_data_source.dart +
27.5%27.5%
+
27.5 %11 / 40-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/index.html b/coverage/html/core/data/data_source/index.html new file mode 100644 index 000000000..02d34fbe8 --- /dev/null +++ b/coverage/html/core/data/data_source/index.html @@ -0,0 +1,153 @@ + + + + + + + LCOV - lcov.info - core/data/data_source + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_sourceHitTotalCoverage
Test:lcov.infoLines:112764.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
config_data_source.dart +
0.0%
+
0.0 %0 / 60-0 / 0
intake_data_source.dart +
27.5%27.5%
+
27.5 %11 / 40-0 / 0
tracked_day_data_source.dart +
0.0%
+
0.0 %0 / 82-0 / 0
user_activity_data_source.dart +
0.0%
+
0.0 %0 / 30-0 / 0
user_activity_dbo.dart +
0.0%
+
0.0 %0 / 12-0 / 0
user_activity_dbo.g.dart +
0.0%
+
0.0 %0 / 43-0 / 0
user_data_source.dart +
0.0%
+
0.0 %0 / 9-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/intake_data_source.dart.func-sort-c.html b/coverage/html/core/data/data_source/intake_data_source.dart.func-sort-c.html new file mode 100644 index 000000000..cbde1e9f5 --- /dev/null +++ b/coverage/html/core/data/data_source/intake_data_source.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/intake_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - intake_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:114027.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/intake_data_source.dart.func.html b/coverage/html/core/data/data_source/intake_data_source.dart.func.html new file mode 100644 index 000000000..9c60289ff --- /dev/null +++ b/coverage/html/core/data/data_source/intake_data_source.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/intake_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - intake_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:114027.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/intake_data_source.dart.gcov.html b/coverage/html/core/data/data_source/intake_data_source.dart.gcov.html new file mode 100644 index 000000000..d9b5f7f96 --- /dev/null +++ b/coverage/html/core/data/data_source/intake_data_source.dart.gcov.html @@ -0,0 +1,157 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/intake_data_source.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - intake_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:114027.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:collection/collection.dart';
+       2             : import 'package:flutter/material.dart';
+       3             : import 'package:hive_flutter/hive_flutter.dart';
+       4             : import 'package:logging/logging.dart';
+       5             : import 'package:opennutritracker/core/data/dbo/intake_dbo.dart';
+       6             : import 'package:opennutritracker/core/data/dbo/intake_type_dbo.dart';
+       7             : 
+       8             : class IntakeDataSource {
+       9             :   final log = Logger('IntakeDataSource');
+      10             :   final Box<IntakeDBO> _intakeBox;
+      11             : 
+      12           1 :   IntakeDataSource(this._intakeBox);
+      13             : 
+      14           1 :   Future<void> addIntake(IntakeDBO intakeDBO) async {
+      15           2 :     log.fine('Adding new intake item to db');
+      16           2 :     _intakeBox.add(intakeDBO);
+      17             :   }
+      18             : 
+      19           0 :   Future<void> addAllIntakes(List<IntakeDBO> intakeDBOList) async {
+      20           0 :     log.fine('Adding new intake items to db');
+      21           0 :     _intakeBox.addAll(intakeDBOList);
+      22             :   }
+      23             : 
+      24           0 :   Future<void> deleteIntakeFromId(String intakeId) async {
+      25           0 :     log.fine('Deleting intake item from db');
+      26           0 :     _intakeBox.values
+      27           0 :         .where((dbo) => dbo.id == intakeId)
+      28           0 :         .toList()
+      29           0 :         .forEach((element) {
+      30           0 :       element.delete();
+      31             :     });
+      32             :   }
+      33             : 
+      34           0 :   Future<IntakeDBO?> updateIntake(String intakeId, Map<String, dynamic> fields) async {
+      35           0 :     log.fine('Updating intake $intakeId with fields ${fields.toString()} in db');
+      36           0 :     var intakeObject = _intakeBox.values.indexed
+      37           0 :       .where((indexedDbo) => indexedDbo.$2.id == intakeId).firstOrNull;
+      38             :     if(intakeObject == null) {
+      39           0 :       log.fine('Cannot update intake $intakeId as it is non existent');
+      40             :       return null;
+      41             :     }
+      42           0 :     intakeObject.$2.amount = fields['amount'] ?? intakeObject.$2.amount;
+      43           0 :     _intakeBox.putAt(intakeObject.$1, intakeObject.$2);
+      44           0 :     return _intakeBox.getAt(intakeObject.$1);
+      45             :   }
+      46             : 
+      47           0 :   Future<IntakeDBO?> getIntakeById(String intakeId) async {
+      48           0 :     return _intakeBox.values.firstWhereOrNull(
+      49           0 :             (intake) => intake.id == intakeId
+      50             :     );
+      51             :   }
+      52             : 
+      53           0 :   Future<List<IntakeDBO>> getAllIntakes() async {
+      54           0 :     return _intakeBox.values.toList();
+      55             :   }
+      56             : 
+      57           0 :   Future<List<IntakeDBO>> getAllIntakesByDate(
+      58             :       IntakeTypeDBO intakeType, DateTime dateTime) async {
+      59           0 :     return _intakeBox.values
+      60           0 :         .where((intake) =>
+      61           0 :             DateUtils.isSameDay(dateTime, intake.dateTime) &&
+      62           0 :             intake.type == intakeType)
+      63           0 :         .toList();
+      64             :   }
+      65             : 
+      66           1 :   Future<List<IntakeDBO>> getRecentlyAddedIntake({int number = 100}) async {
+      67           3 :     final intakeList = _intakeBox.values.toList();
+      68             : 
+      69             :     //  sort list by date (newest first) and filter unique intake
+      70             :     intakeList
+      71           7 :         .sort((a, b) =>  (-1) * a.dateTime.compareTo(b.dateTime));
+      72             : 
+      73             :     final filterCodes = <String>{};
+      74             :     final uniqueIntake = intakeList
+      75           2 :         .where((intake) =>
+      76           3 :             filterCodes.add(intake.meal.code ?? intake.meal.name ?? ""))
+      77           1 :         .toList();
+      78             : 
+      79           2 :     return uniqueIntake.take(number).toList();
+      80             :   }
+      81             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/tracked_day_data_source.dart.func-sort-c.html b/coverage/html/core/data/data_source/tracked_day_data_source.dart.func-sort-c.html new file mode 100644 index 000000000..5e76ed017 --- /dev/null +++ b/coverage/html/core/data/data_source/tracked_day_data_source.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/tracked_day_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - tracked_day_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0820.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/tracked_day_data_source.dart.func.html b/coverage/html/core/data/data_source/tracked_day_data_source.dart.func.html new file mode 100644 index 000000000..8981bf22a --- /dev/null +++ b/coverage/html/core/data/data_source/tracked_day_data_source.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/tracked_day_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - tracked_day_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0820.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/tracked_day_data_source.dart.gcov.html b/coverage/html/core/data/data_source/tracked_day_data_source.dart.gcov.html new file mode 100644 index 000000000..10f221fd3 --- /dev/null +++ b/coverage/html/core/data/data_source/tracked_day_data_source.dart.gcov.html @@ -0,0 +1,269 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/tracked_day_data_source.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - tracked_day_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0820.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:logging/logging.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/tracked_day_dbo.dart';
+       4             : import 'package:opennutritracker/core/utils/extensions.dart';
+       5             : 
+       6             : class TrackedDayDataSource {
+       7             :   final log = Logger('TrackedDayDataSource');
+       8             :   final Box<TrackedDayDBO> _trackedDayBox;
+       9             : 
+      10           0 :   TrackedDayDataSource(this._trackedDayBox);
+      11             : 
+      12           0 :   Future<void> saveTrackedDay(TrackedDayDBO trackedDayDBO) async {
+      13           0 :     log.fine('Updating tracked day in db');
+      14           0 :     _trackedDayBox.put(trackedDayDBO.day.toParsedDay(), trackedDayDBO);
+      15             :   }
+      16             : 
+      17           0 :   Future<void> saveAllTrackedDays(List<TrackedDayDBO> trackedDayDBOList) async {
+      18           0 :     log.fine('Updating tracked days in db');
+      19           0 :     _trackedDayBox.putAll({
+      20           0 :       for (var trackedDayDBO in trackedDayDBOList)
+      21           0 :         trackedDayDBO.day.toParsedDay(): trackedDayDBO
+      22             :     });
+      23             :   }
+      24             : 
+      25           0 :   Future<List<TrackedDayDBO>> getAllTrackedDays() async {
+      26           0 :     return _trackedDayBox.values.toList();
+      27             :   }
+      28             : 
+      29           0 :   Future<TrackedDayDBO?> getTrackedDay(DateTime day) async {
+      30           0 :     return _trackedDayBox.get(day.toParsedDay());
+      31             :   }
+      32             : 
+      33           0 :   Future<List<TrackedDayDBO>> getTrackedDaysInRange(
+      34             :       DateTime start, DateTime end) async {
+      35           0 :     List<TrackedDayDBO> trackedDays = _trackedDayBox.values
+      36           0 :         .where((trackedDay) =>
+      37           0 :             (trackedDay.day.isAfter(start) && trackedDay.day.isBefore(end)))
+      38           0 :         .toList();
+      39             :     return trackedDays;
+      40             :   }
+      41             : 
+      42           0 :   Future<bool> hasTrackedDay(DateTime day) async =>
+      43           0 :       _trackedDayBox.get(day.toParsedDay()) != null;
+      44             : 
+      45           0 :   Future<void> updateDayCalorieGoal(DateTime day, double calorieGoal) async {
+      46           0 :     log.fine('Updating tracked day total calories');
+      47           0 :     final updateDay = await getTrackedDay(day);
+      48             : 
+      49             :     if (updateDay != null) {
+      50           0 :       updateDay.calorieGoal = calorieGoal;
+      51           0 :       updateDay.save();
+      52             :     }
+      53             :   }
+      54             : 
+      55           0 :   Future<void> increaseDayCalorieGoal(DateTime day, double amount) async {
+      56           0 :     log.fine('Increasing tracked day total calories');
+      57           0 :     final updateDay = await getTrackedDay(day);
+      58             : 
+      59             :     if (updateDay != null) {
+      60           0 :       updateDay.calorieGoal += amount;
+      61           0 :       updateDay.save();
+      62             :     }
+      63             :   }
+      64             : 
+      65           0 :   Future<void> reduceDayCalorieGoal(DateTime day, double amount) async {
+      66           0 :     log.fine('Reducing tracked day total calories');
+      67           0 :     final updateDay = await getTrackedDay(day);
+      68             : 
+      69             :     if (updateDay != null) {
+      70           0 :       updateDay.calorieGoal -= amount;
+      71           0 :       updateDay.save();
+      72             :     }
+      73             :   }
+      74             : 
+      75           0 :   Future<void> addDayCaloriesTracked(DateTime day, double addCalories) async {
+      76           0 :     log.fine('Adding new tracked day calories');
+      77           0 :     final updateDay = await getTrackedDay(day);
+      78             : 
+      79             :     if (updateDay != null) {
+      80           0 :       updateDay.caloriesTracked += addCalories;
+      81           0 :       updateDay.save();
+      82             :     }
+      83             :   }
+      84             : 
+      85           0 :   Future<void> decreaseDayCaloriesTracked(
+      86             :       DateTime day, double addCalories) async {
+      87           0 :     log.fine('Decreasing tracked day calories');
+      88           0 :     final updateDay = await getTrackedDay(day);
+      89             : 
+      90             :     if (updateDay != null) {
+      91           0 :       updateDay.caloriesTracked -= addCalories;
+      92           0 :       updateDay.save();
+      93             :     }
+      94             :   }
+      95             : 
+      96           0 :   Future<void> updateDayMacroGoals(DateTime day,
+      97             :       {double? carbsGoal, double? fatGoal, double? proteinGoal}) async {
+      98           0 :     log.fine('Updating tracked day macro goals');
+      99             : 
+     100           0 :     final updateDay = await getTrackedDay(day);
+     101             : 
+     102             :     if (updateDay != null) {
+     103             :       if (carbsGoal != null) {
+     104           0 :         updateDay.carbsGoal = carbsGoal;
+     105             :       }
+     106             :       if (fatGoal != null) {
+     107           0 :         updateDay.fatGoal = fatGoal;
+     108             :       }
+     109             :       if (proteinGoal != null) {
+     110           0 :         updateDay.proteinGoal = proteinGoal;
+     111             :       }
+     112           0 :       updateDay.save();
+     113             :     }
+     114             :   }
+     115             : 
+     116           0 :   Future<void> increaseDayMacroGoal(DateTime day,
+     117             :       {double? carbsAmount, double? fatAmount, double? proteinAmount}) async {
+     118           0 :     log.fine('Increasing tracked day macro goals');
+     119           0 :     final updateDay = await getTrackedDay(day);
+     120             : 
+     121             :     if (updateDay != null) {
+     122             :       if (carbsAmount != null) {
+     123           0 :         updateDay.carbsGoal = (updateDay.carbsGoal ?? 0) + carbsAmount;
+     124             :       }
+     125             :       if (fatAmount != null) {
+     126           0 :         updateDay.fatGoal = (updateDay.fatGoal ?? 0) + fatAmount;
+     127             :       }
+     128             :       if (proteinAmount != null) {
+     129           0 :         updateDay.proteinGoal = (updateDay.proteinGoal ?? 0) + proteinAmount;
+     130             :       }
+     131           0 :       updateDay.save();
+     132             :     }
+     133             :   }
+     134             : 
+     135           0 :   Future<void> reduceDayMacroGoal(DateTime day,
+     136             :       {double? carbsAmount, double? fatAmount, double? proteinAmount}) async {
+     137           0 :     log.fine('Reducing tracked day macro goals');
+     138           0 :     final updateDay = await getTrackedDay(day);
+     139             : 
+     140             :     if (updateDay != null) {
+     141             :       if (carbsAmount != null) {
+     142           0 :         updateDay.carbsGoal = (updateDay.carbsGoal ?? 0) - carbsAmount;
+     143             :       }
+     144             :       if (fatAmount != null) {
+     145           0 :         updateDay.fatGoal = (updateDay.fatGoal ?? 0) - fatAmount;
+     146             :       }
+     147             :       if (proteinAmount != null) {
+     148           0 :         updateDay.proteinGoal = (updateDay.proteinGoal ?? 0) - proteinAmount;
+     149             :       }
+     150           0 :       updateDay.save();
+     151             :     }
+     152             :   }
+     153             : 
+     154           0 :   Future<void> addDayMacroTracked(DateTime day,
+     155             :       {double? carbsAmount, double? fatAmount, double? proteinAmount}) async {
+     156           0 :     log.fine('Adding new tracked day macro');
+     157           0 :     final updateDay = await getTrackedDay(day);
+     158             : 
+     159             :     if (updateDay != null) {
+     160             :       if (carbsAmount != null) {
+     161           0 :         updateDay.carbsTracked = (updateDay.carbsTracked ?? 0) + carbsAmount;
+     162             :       }
+     163             :       if (fatAmount != null) {
+     164           0 :         updateDay.fatTracked = (updateDay.fatTracked ?? 0) + fatAmount;
+     165             :       }
+     166             :       if (proteinAmount != null) {
+     167           0 :         updateDay.proteinTracked =
+     168           0 :             (updateDay.proteinTracked ?? 0) + proteinAmount;
+     169             :       }
+     170           0 :       updateDay.save();
+     171             :     }
+     172             :   }
+     173             : 
+     174           0 :   Future<void> removeDayMacroTracked(DateTime day,
+     175             :       {double? carbsAmount, double? fatAmount, double? proteinAmount}) async {
+     176           0 :     log.fine('Removing tracked day macro');
+     177           0 :     final updateDay = await getTrackedDay(day);
+     178             : 
+     179             :     if (updateDay != null) {
+     180             :       if (carbsAmount != null) {
+     181           0 :         updateDay.carbsTracked = (updateDay.carbsTracked ?? 0) - carbsAmount;
+     182             :       }
+     183             :       if (fatAmount != null) {
+     184           0 :         updateDay.fatTracked = (updateDay.fatTracked ?? 0) - fatAmount;
+     185             :       }
+     186             :       if (proteinAmount != null) {
+     187           0 :         updateDay.proteinTracked =
+     188           0 :             (updateDay.proteinTracked ?? 0) - proteinAmount;
+     189             :       }
+     190           0 :       updateDay.save();
+     191             :     }
+     192             :   }
+     193             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_data_source.dart.func-sort-c.html b/coverage/html/core/data/data_source/user_activity_data_source.dart.func-sort-c.html new file mode 100644 index 000000000..471744ca5 --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_data_source.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0300.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_data_source.dart.func.html b/coverage/html/core/data/data_source/user_activity_data_source.dart.func.html new file mode 100644 index 000000000..85875b257 --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_data_source.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0300.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_data_source.dart.gcov.html b/coverage/html/core/data/data_source/user_activity_data_source.dart.gcov.html new file mode 100644 index 000000000..99a7d2eae --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_data_source.dart.gcov.html @@ -0,0 +1,141 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_data_source.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0300.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/material.dart';
+       2             : import 'package:hive_flutter/hive_flutter.dart';
+       3             : import 'package:logging/logging.dart';
+       4             : import 'package:opennutritracker/core/data/data_source/user_activity_dbo.dart';
+       5             : 
+       6             : class UserActivityDataSource {
+       7             :   final log = Logger('UserActivityDataSource');
+       8             :   final Box<UserActivityDBO> _userActivityBox;
+       9             : 
+      10           0 :   UserActivityDataSource(this._userActivityBox);
+      11             : 
+      12           0 :   Future<void> addUserActivity(UserActivityDBO userActivityDBO) async {
+      13           0 :     log.fine('Adding new user activity to db');
+      14           0 :     _userActivityBox.add(userActivityDBO);
+      15             :   }
+      16             : 
+      17           0 :   Future<void> addAllUserActivities(
+      18             :       List<UserActivityDBO> userActivityDBOList) async {
+      19           0 :     log.fine('Adding new user activities to db');
+      20           0 :     _userActivityBox.addAll(userActivityDBOList);
+      21             :   }
+      22             : 
+      23           0 :   Future<void> deleteIntakeFromId(String activityId) async {
+      24           0 :     log.fine('Deleting activity item from db');
+      25           0 :     _userActivityBox.values
+      26           0 :         .where((dbo) => dbo.id == activityId)
+      27           0 :         .toList()
+      28           0 :         .forEach((element) {
+      29           0 :       element.delete();
+      30             :     });
+      31             :   }
+      32             : 
+      33           0 :   Future<List<UserActivityDBO>> getAllUserActivities() async {
+      34           0 :     return _userActivityBox.values.toList();
+      35             :   }
+      36           0 :   Future<List<UserActivityDBO>> getAllUserActivitiesByDate(
+      37             :       DateTime dateTime) async {
+      38           0 :     return _userActivityBox.values
+      39           0 :         .where((activity) => DateUtils.isSameDay(dateTime, activity.date))
+      40           0 :         .toList();
+      41             :   }
+      42             : 
+      43           0 :   Future<List<UserActivityDBO>> getRecentlyAddedUserActivity(
+      44             :       {int number = 20}) async {
+      45           0 :     final userActivities = _userActivityBox.values.toList().reversed;
+      46             : 
+      47             :     //  sort list by date and filter unique activities
+      48             :     userActivities
+      49           0 :         .toList()
+      50           0 :         .sort((a, b) => a.date.toString().compareTo(b.date.toString()));
+      51             : 
+      52             :     final filterActivityCodes = <String>{};
+      53             :     final uniqueUserActivities = userActivities
+      54           0 :         .where((activity) =>
+      55           0 :             filterActivityCodes.add(activity.physicalActivityDBO.code))
+      56           0 :         .toList();
+      57             : 
+      58             :     // return range or full list
+      59             :     try {
+      60           0 :       return uniqueUserActivities.getRange(0, number).toList();
+      61           0 :     } on RangeError catch (_) {
+      62           0 :       return uniqueUserActivities.toList();
+      63             :     }
+      64             :   }
+      65             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_dbo.dart.func-sort-c.html b/coverage/html/core/data/data_source/user_activity_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..eab1413e3 --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_dbo.dart.func.html b/coverage/html/core/data/data_source/user_activity_dbo.dart.func.html new file mode 100644 index 000000000..d2eb7fae7 --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_dbo.dart.gcov.html b/coverage/html/core/data/data_source/user_activity_dbo.dart.gcov.html new file mode 100644 index 000000000..88ec8616c --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_dbo.dart.gcov.html @@ -0,0 +1,117 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/physical_activity_dbo.dart';
+       4             : import 'package:opennutritracker/core/domain/entity/user_activity_entity.dart';
+       5             : 
+       6             : part 'user_activity_dbo.g.dart';
+       7             : 
+       8             : @HiveType(typeId: 10)
+       9             : @JsonSerializable()
+      10             : class UserActivityDBO extends HiveObject {
+      11             :   @HiveField(0)
+      12             :   final String id;
+      13             :   @HiveField(1)
+      14             :   final double duration;
+      15             :   @HiveField(2)
+      16             :   final double burnedKcal;
+      17             :   @HiveField(3)
+      18             :   final DateTime date;
+      19             : 
+      20             :   @HiveField(4)
+      21             :   final PhysicalActivityDBO physicalActivityDBO;
+      22             : 
+      23           0 :   UserActivityDBO(this.id, this.duration, this.burnedKcal, this.date,
+      24             :       this.physicalActivityDBO);
+      25             : 
+      26           0 :   factory UserActivityDBO.fromUserActivityEntity(
+      27             :       UserActivityEntity userActivityEntity) {
+      28           0 :     return UserActivityDBO(
+      29           0 :         userActivityEntity.id,
+      30           0 :         userActivityEntity.duration,
+      31           0 :         userActivityEntity.burnedKcal,
+      32           0 :         userActivityEntity.date,
+      33           0 :         PhysicalActivityDBO.fromPhysicalActivityEntity(
+      34           0 :             userActivityEntity.physicalActivityEntity));
+      35             :   }
+      36             : 
+      37           0 :   factory UserActivityDBO.fromJson(Map<String, dynamic> json) =>
+      38           0 :       _$UserActivityDBOFromJson(json);
+      39             : 
+      40           0 :   Map<String, dynamic> toJson() => _$UserActivityDBOToJson(this);
+      41             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/data_source/user_activity_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..3eca3cf0e --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0430.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_dbo.g.dart.func.html b/coverage/html/core/data/data_source/user_activity_dbo.g.dart.func.html new file mode 100644 index 000000000..88f6e2086 --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0430.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_activity_dbo.g.dart.gcov.html b/coverage/html/core/data/data_source/user_activity_dbo.g.dart.gcov.html new file mode 100644 index 000000000..0e3d12b35 --- /dev/null +++ b/coverage/html/core/data/data_source/user_activity_dbo.g.dart.gcov.html @@ -0,0 +1,152 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_activity_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_activity_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0430.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'user_activity_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class UserActivityDBOAdapter extends TypeAdapter<UserActivityDBO> {
+      10             :   @override
+      11             :   final int typeId = 10;
+      12             : 
+      13           0 :   @override
+      14             :   UserActivityDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return UserActivityDBO(
+      20           0 :       fields[0] as String,
+      21           0 :       fields[1] as double,
+      22           0 :       fields[2] as double,
+      23           0 :       fields[3] as DateTime,
+      24           0 :       fields[4] as PhysicalActivityDBO,
+      25             :     );
+      26             :   }
+      27             : 
+      28           0 :   @override
+      29             :   void write(BinaryWriter writer, UserActivityDBO obj) {
+      30             :     writer
+      31           0 :       ..writeByte(5)
+      32           0 :       ..writeByte(0)
+      33           0 :       ..write(obj.id)
+      34           0 :       ..writeByte(1)
+      35           0 :       ..write(obj.duration)
+      36           0 :       ..writeByte(2)
+      37           0 :       ..write(obj.burnedKcal)
+      38           0 :       ..writeByte(3)
+      39           0 :       ..write(obj.date)
+      40           0 :       ..writeByte(4)
+      41           0 :       ..write(obj.physicalActivityDBO);
+      42             :   }
+      43             : 
+      44           0 :   @override
+      45           0 :   int get hashCode => typeId.hashCode;
+      46             : 
+      47           0 :   @override
+      48             :   bool operator ==(Object other) =>
+      49             :       identical(this, other) ||
+      50           0 :       other is UserActivityDBOAdapter &&
+      51           0 :           runtimeType == other.runtimeType &&
+      52           0 :           typeId == other.typeId;
+      53             : }
+      54             : 
+      55             : // **************************************************************************
+      56             : // JsonSerializableGenerator
+      57             : // **************************************************************************
+      58             : 
+      59           0 : UserActivityDBO _$UserActivityDBOFromJson(Map<String, dynamic> json) =>
+      60           0 :     UserActivityDBO(
+      61           0 :       json['id'] as String,
+      62           0 :       (json['duration'] as num).toDouble(),
+      63           0 :       (json['burnedKcal'] as num).toDouble(),
+      64           0 :       DateTime.parse(json['date'] as String),
+      65           0 :       PhysicalActivityDBO.fromJson(
+      66           0 :           json['physicalActivityDBO'] as Map<String, dynamic>),
+      67             :     );
+      68             : 
+      69           0 : Map<String, dynamic> _$UserActivityDBOToJson(UserActivityDBO instance) =>
+      70           0 :     <String, dynamic>{
+      71           0 :       'id': instance.id,
+      72           0 :       'duration': instance.duration,
+      73           0 :       'burnedKcal': instance.burnedKcal,
+      74           0 :       'date': instance.date.toIso8601String(),
+      75           0 :       'physicalActivityDBO': instance.physicalActivityDBO,
+      76             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_data_source.dart.func-sort-c.html b/coverage/html/core/data/data_source/user_data_source.dart.func-sort-c.html new file mode 100644 index 000000000..88e825cc1 --- /dev/null +++ b/coverage/html/core/data/data_source/user_data_source.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_data_source.dart.func.html b/coverage/html/core/data/data_source/user_data_source.dart.func.html new file mode 100644 index 000000000..2dd625842 --- /dev/null +++ b/coverage/html/core/data/data_source/user_data_source.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_data_source.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/data_source/user_data_source.dart.gcov.html b/coverage/html/core/data/data_source/user_data_source.dart.gcov.html new file mode 100644 index 000000000..fbfe128f5 --- /dev/null +++ b/coverage/html/core/data/data_source/user_data_source.dart.gcov.html @@ -0,0 +1,109 @@ + + + + + + + LCOV - lcov.info - core/data/data_source/user_data_source.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/data_source - user_data_source.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:logging/logging.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/user_dbo.dart';
+       4             : import 'package:opennutritracker/core/data/dbo/user_gender_dbo.dart';
+       5             : import 'package:opennutritracker/core/data/dbo/user_pal_dbo.dart';
+       6             : import 'package:opennutritracker/core/data/dbo/user_weight_goal_dbo.dart';
+       7             : 
+       8             : class UserDataSource {
+       9             :   static const _userKey = "UserKey";
+      10             :   final log = Logger('UserDataSource');
+      11             :   final Box<UserDBO> _userBox;
+      12             : 
+      13           0 :   UserDataSource(this._userBox);
+      14             : 
+      15           0 :   Future<void> saveUserData(UserDBO userDBO) async {
+      16           0 :     log.fine('Updating user in db');
+      17           0 :     _userBox.put(_userKey, userDBO);
+      18             :   }
+      19             : 
+      20           0 :   Future<bool> hasUserData() async => _userBox.containsKey(_userKey);
+      21             : 
+      22             :   // TODO remove dummy data
+      23           0 :   Future<UserDBO> getUserData() async {
+      24           0 :     return _userBox.get(_userKey) ??
+      25           0 :         UserDBO(
+      26           0 :             birthday: DateTime(2000, 1, 1),
+      27             :             heightCM: 180,
+      28             :             weightKG: 80,
+      29             :             gender: UserGenderDBO.male,
+      30             :             goal: UserWeightGoalDBO.maintainWeight,
+      31             :             pal: UserPALDBO.active);
+      32             :   }
+      33             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/app_theme_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/app_theme_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..e05091651 --- /dev/null +++ b/coverage/html/core/data/dbo/app_theme_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/app_theme_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - app_theme_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:050.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/app_theme_dbo.dart.func.html b/coverage/html/core/data/dbo/app_theme_dbo.dart.func.html new file mode 100644 index 000000000..2c30922c4 --- /dev/null +++ b/coverage/html/core/data/dbo/app_theme_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/app_theme_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - app_theme_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:050.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/app_theme_dbo.dart.gcov.html b/coverage/html/core/data/dbo/app_theme_dbo.dart.gcov.html new file mode 100644 index 000000000..503ea3b59 --- /dev/null +++ b/coverage/html/core/data/dbo/app_theme_dbo.dart.gcov.html @@ -0,0 +1,108 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/app_theme_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - app_theme_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:050.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/app_theme_entity.dart';
+       3             : 
+       4             : part 'app_theme_dbo.g.dart';
+       5             : 
+       6             : @HiveType(typeId: 15)
+       7             : enum AppThemeDBO {
+       8             :   @HiveField(0)
+       9             :   light,
+      10             :   @HiveField(1)
+      11             :   dark,
+      12             :   @HiveField(2)
+      13             :   system;
+      14             : 
+      15           0 :   static AppThemeDBO get defaultTheme => AppThemeDBO.system;
+      16             : 
+      17           0 :   factory AppThemeDBO.fromAppThemeEntity(AppThemeEntity entity) {
+      18             :     AppThemeDBO dbo;
+      19             :     switch (entity) {
+      20           0 :       case AppThemeEntity.light:
+      21             :         dbo = AppThemeDBO.light;
+      22             :         break;
+      23           0 :       case AppThemeEntity.dark:
+      24             :         dbo = AppThemeDBO.dark;
+      25             :         break;
+      26           0 :       case AppThemeEntity.system:
+      27             :         dbo = AppThemeDBO.system;
+      28             :         break;
+      29             :       }
+      30             :     return dbo;
+      31             :   }
+      32             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/app_theme_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/app_theme_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..afea87dc9 --- /dev/null +++ b/coverage/html/core/data/dbo/app_theme_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/app_theme_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - app_theme_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/app_theme_dbo.g.dart.func.html b/coverage/html/core/data/dbo/app_theme_dbo.g.dart.func.html new file mode 100644 index 000000000..b3ba0f3df --- /dev/null +++ b/coverage/html/core/data/dbo/app_theme_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/app_theme_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - app_theme_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/app_theme_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/app_theme_dbo.g.dart.gcov.html new file mode 100644 index 000000000..dbf6fc4eb --- /dev/null +++ b/coverage/html/core/data/dbo/app_theme_dbo.g.dart.gcov.html @@ -0,0 +1,127 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/app_theme_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - app_theme_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'app_theme_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class AppThemeDBOAdapter extends TypeAdapter<AppThemeDBO> {
+      10             :   @override
+      11             :   final int typeId = 15;
+      12             : 
+      13           0 :   @override
+      14             :   AppThemeDBO read(BinaryReader reader) {
+      15           0 :     switch (reader.readByte()) {
+      16           0 :       case 0:
+      17             :         return AppThemeDBO.light;
+      18           0 :       case 1:
+      19             :         return AppThemeDBO.dark;
+      20           0 :       case 2:
+      21             :         return AppThemeDBO.system;
+      22             :       default:
+      23             :         return AppThemeDBO.light;
+      24             :     }
+      25             :   }
+      26             : 
+      27           0 :   @override
+      28             :   void write(BinaryWriter writer, AppThemeDBO obj) {
+      29             :     switch (obj) {
+      30           0 :       case AppThemeDBO.light:
+      31           0 :         writer.writeByte(0);
+      32             :         break;
+      33           0 :       case AppThemeDBO.dark:
+      34           0 :         writer.writeByte(1);
+      35             :         break;
+      36           0 :       case AppThemeDBO.system:
+      37           0 :         writer.writeByte(2);
+      38             :         break;
+      39             :     }
+      40             :   }
+      41             : 
+      42           0 :   @override
+      43           0 :   int get hashCode => typeId.hashCode;
+      44             : 
+      45           0 :   @override
+      46             :   bool operator ==(Object other) =>
+      47             :       identical(this, other) ||
+      48           0 :       other is AppThemeDBOAdapter &&
+      49           0 :           runtimeType == other.runtimeType &&
+      50           0 :           typeId == other.typeId;
+      51             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/config_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/config_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..d39209a2e --- /dev/null +++ b/coverage/html/core/data/dbo/config_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/config_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - config_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/config_dbo.dart.func.html b/coverage/html/core/data/dbo/config_dbo.dart.func.html new file mode 100644 index 000000000..d66e07a98 --- /dev/null +++ b/coverage/html/core/data/dbo/config_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/config_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - config_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/config_dbo.dart.gcov.html b/coverage/html/core/data/dbo/config_dbo.dart.gcov.html new file mode 100644 index 000000000..ae8c1a1e5 --- /dev/null +++ b/coverage/html/core/data/dbo/config_dbo.dart.gcov.html @@ -0,0 +1,124 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/config_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - config_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/app_theme_dbo.dart';
+       4             : import 'package:opennutritracker/core/domain/entity/config_entity.dart';
+       5             : 
+       6             : part 'config_dbo.g.dart';
+       7             : 
+       8             : @HiveType(typeId: 13)
+       9             : @JsonSerializable() // Used for exporting to JSON
+      10             : class ConfigDBO extends HiveObject {
+      11             :   @HiveField(0)
+      12             :   bool hasAcceptedDisclaimer;
+      13             :   @HiveField(1)
+      14             :   bool hasAcceptedPolicy;
+      15             :   @HiveField(2)
+      16             :   bool hasAcceptedSendAnonymousData;
+      17             :   @HiveField(3)
+      18             :   AppThemeDBO selectedAppTheme;
+      19             :   @HiveField(4)
+      20             :   bool? usesImperialUnits;
+      21             :   @HiveField(5)
+      22             :   double? userKcalAdjustment;
+      23             :   @HiveField(6)
+      24             :   double? userCarbGoalPct;
+      25             :   @HiveField(7)
+      26             :   double? userProteinGoalPct;
+      27             :   @HiveField(8)
+      28             :   double? userFatGoalPct;
+      29             : 
+      30           0 :   ConfigDBO(this.hasAcceptedDisclaimer, this.hasAcceptedPolicy,
+      31             :       this.hasAcceptedSendAnonymousData, this.selectedAppTheme,
+      32             :       {this.usesImperialUnits = false, this.userKcalAdjustment});
+      33             : 
+      34           0 :   factory ConfigDBO.empty() =>
+      35           0 :       ConfigDBO(false, false, false, AppThemeDBO.system);
+      36             : 
+      37           0 :   factory ConfigDBO.fromConfigEntity(ConfigEntity entity) => ConfigDBO(
+      38           0 :       entity.hasAcceptedDisclaimer,
+      39           0 :       entity.hasAcceptedPolicy,
+      40           0 :       entity.hasAcceptedSendAnonymousData,
+      41           0 :       AppThemeDBO.fromAppThemeEntity(entity.appTheme),
+      42           0 :       usesImperialUnits: entity.usesImperialUnits);
+      43             : 
+      44           0 :   factory ConfigDBO.fromJson(Map<String, dynamic> json) =>
+      45           0 :       _$ConfigDBOFromJson(json);
+      46             : 
+      47           0 :   Map<String, dynamic> toJson() => _$ConfigDBOToJson(this);
+      48             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/config_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/config_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..397e2a9cb --- /dev/null +++ b/coverage/html/core/data/dbo/config_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/config_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - config_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/config_dbo.g.dart.func.html b/coverage/html/core/data/dbo/config_dbo.g.dart.func.html new file mode 100644 index 000000000..83565a691 --- /dev/null +++ b/coverage/html/core/data/dbo/config_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/config_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - config_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/config_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/config_dbo.g.dart.gcov.html new file mode 100644 index 000000000..fc6974a07 --- /dev/null +++ b/coverage/html/core/data/dbo/config_dbo.g.dart.gcov.html @@ -0,0 +1,175 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/config_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - config_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'config_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class ConfigDBOAdapter extends TypeAdapter<ConfigDBO> {
+      10             :   @override
+      11             :   final int typeId = 13;
+      12             : 
+      13           0 :   @override
+      14             :   ConfigDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return ConfigDBO(
+      20           0 :       fields[0] as bool,
+      21           0 :       fields[1] as bool,
+      22           0 :       fields[2] as bool,
+      23           0 :       fields[3] as AppThemeDBO,
+      24           0 :       usesImperialUnits: fields[4] as bool?,
+      25           0 :       userKcalAdjustment: fields[5] as double?,
+      26             :     )
+      27           0 :       ..userCarbGoalPct = fields[6] as double?
+      28           0 :       ..userProteinGoalPct = fields[7] as double?
+      29           0 :       ..userFatGoalPct = fields[8] as double?;
+      30             :   }
+      31             : 
+      32           0 :   @override
+      33             :   void write(BinaryWriter writer, ConfigDBO obj) {
+      34             :     writer
+      35           0 :       ..writeByte(9)
+      36           0 :       ..writeByte(0)
+      37           0 :       ..write(obj.hasAcceptedDisclaimer)
+      38           0 :       ..writeByte(1)
+      39           0 :       ..write(obj.hasAcceptedPolicy)
+      40           0 :       ..writeByte(2)
+      41           0 :       ..write(obj.hasAcceptedSendAnonymousData)
+      42           0 :       ..writeByte(3)
+      43           0 :       ..write(obj.selectedAppTheme)
+      44           0 :       ..writeByte(4)
+      45           0 :       ..write(obj.usesImperialUnits)
+      46           0 :       ..writeByte(5)
+      47           0 :       ..write(obj.userKcalAdjustment)
+      48           0 :       ..writeByte(6)
+      49           0 :       ..write(obj.userCarbGoalPct)
+      50           0 :       ..writeByte(7)
+      51           0 :       ..write(obj.userProteinGoalPct)
+      52           0 :       ..writeByte(8)
+      53           0 :       ..write(obj.userFatGoalPct);
+      54             :   }
+      55             : 
+      56           0 :   @override
+      57           0 :   int get hashCode => typeId.hashCode;
+      58             : 
+      59           0 :   @override
+      60             :   bool operator ==(Object other) =>
+      61             :       identical(this, other) ||
+      62           0 :       other is ConfigDBOAdapter &&
+      63           0 :           runtimeType == other.runtimeType &&
+      64           0 :           typeId == other.typeId;
+      65             : }
+      66             : 
+      67             : // **************************************************************************
+      68             : // JsonSerializableGenerator
+      69             : // **************************************************************************
+      70             : 
+      71           0 : ConfigDBO _$ConfigDBOFromJson(Map<String, dynamic> json) => ConfigDBO(
+      72           0 :       json['hasAcceptedDisclaimer'] as bool,
+      73           0 :       json['hasAcceptedPolicy'] as bool,
+      74           0 :       json['hasAcceptedSendAnonymousData'] as bool,
+      75           0 :       $enumDecode(_$AppThemeDBOEnumMap, json['selectedAppTheme']),
+      76           0 :       usesImperialUnits: json['usesImperialUnits'] as bool? ?? false,
+      77           0 :       userKcalAdjustment: (json['userKcalAdjustment'] as num?)?.toDouble(),
+      78             :     )
+      79           0 :       ..userCarbGoalPct = (json['userCarbGoalPct'] as num?)?.toDouble()
+      80           0 :       ..userProteinGoalPct = (json['userProteinGoalPct'] as num?)?.toDouble()
+      81           0 :       ..userFatGoalPct = (json['userFatGoalPct'] as num?)?.toDouble();
+      82             : 
+      83           0 : Map<String, dynamic> _$ConfigDBOToJson(ConfigDBO instance) => <String, dynamic>{
+      84           0 :       'hasAcceptedDisclaimer': instance.hasAcceptedDisclaimer,
+      85           0 :       'hasAcceptedPolicy': instance.hasAcceptedPolicy,
+      86           0 :       'hasAcceptedSendAnonymousData': instance.hasAcceptedSendAnonymousData,
+      87           0 :       'selectedAppTheme': _$AppThemeDBOEnumMap[instance.selectedAppTheme]!,
+      88           0 :       'usesImperialUnits': instance.usesImperialUnits,
+      89           0 :       'userKcalAdjustment': instance.userKcalAdjustment,
+      90           0 :       'userCarbGoalPct': instance.userCarbGoalPct,
+      91           0 :       'userProteinGoalPct': instance.userProteinGoalPct,
+      92           0 :       'userFatGoalPct': instance.userFatGoalPct,
+      93             :     };
+      94             : 
+      95             : const _$AppThemeDBOEnumMap = {
+      96             :   AppThemeDBO.light: 'light',
+      97             :   AppThemeDBO.dark: 'dark',
+      98             :   AppThemeDBO.system: 'system',
+      99             : };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/index-sort-f.html b/coverage/html/core/data/dbo/index-sort-f.html new file mode 100644 index 000000000..ac7f9bbd3 --- /dev/null +++ b/coverage/html/core/data/dbo/index-sort-f.html @@ -0,0 +1,323 @@ + + + + + + + LCOV - lcov.info - core/data/dbo + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dboHitTotalCoverage
Test:lcov.infoLines:10464816.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
config_dbo.g.dart +
0.0%
+
0.0 %0 / 60-0 / 0
meal_nutriments_dbo.dart +
76.9%76.9%
+
76.9 %10 / 13-0 / 0
physical_activity_dbo.g.dart +
0.0%
+
0.0 %0 / 77-0 / 0
user_dbo.dart +
0.0%
+
0.0 %0 / 9-0 / 0
meal_dbo.g.dart +
31.4%31.4%
+
31.4 %32 / 102-0 / 0
user_gender_dbo.dart +
0.0%
+
0.0 %0 / 3-0 / 0
app_theme_dbo.dart +
0.0%
+
0.0 %0 / 5-0 / 0
meal_dbo.dart +
78.3%78.3%
+
78.3 %18 / 23-0 / 0
user_dbo.g.dart +
0.0%
+
0.0 %0 / 31-0 / 0
physical_activity_dbo.dart +
0.0%
+
0.0 %0 / 20-0 / 0
config_dbo.dart +
0.0%
+
0.0 %0 / 12-0 / 0
intake_type_dbo.g.dart +
14.3%14.3%
+
14.3 %3 / 21-0 / 0
tracked_day_dbo.g.dart +
0.0%
+
0.0 %0 / 62-0 / 0
intake_dbo.g.dart +
31.1%31.1%
+
31.1 %14 / 45-0 / 0
user_weight_goal_dbo.dart +
0.0%
+
0.0 %0 / 4-0 / 0
meal_nutriments_dbo.g.dart +
30.8%30.8%
+
30.8 %16 / 52-0 / 0
user_pal_dbo.dart +
0.0%
+
0.0 %0 / 5-0 / 0
user_pal_dbo.g.dart +
0.0%
+
0.0 %0 / 21-0 / 0
app_theme_dbo.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
tracked_day_dbo.dart +
0.0%
+
0.0 %0 / 15-0 / 0
intake_type_dbo.dart +
40.0%40.0%
+
40.0 %2 / 5-0 / 0
user_weight_goal_dbo.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
intake_dbo.dart +
75.0%75.0%
+
75.0 %9 / 12-0 / 0
user_gender_dbo.g.dart +
0.0%
+
0.0 %0 / 15-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/index-sort-l.html b/coverage/html/core/data/dbo/index-sort-l.html new file mode 100644 index 000000000..60ce38d00 --- /dev/null +++ b/coverage/html/core/data/dbo/index-sort-l.html @@ -0,0 +1,323 @@ + + + + + + + LCOV - lcov.info - core/data/dbo + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dboHitTotalCoverage
Test:lcov.infoLines:10464816.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
user_gender_dbo.dart +
0.0%
+
0.0 %0 / 3-0 / 0
user_weight_goal_dbo.dart +
0.0%
+
0.0 %0 / 4-0 / 0
app_theme_dbo.dart +
0.0%
+
0.0 %0 / 5-0 / 0
user_pal_dbo.dart +
0.0%
+
0.0 %0 / 5-0 / 0
user_dbo.dart +
0.0%
+
0.0 %0 / 9-0 / 0
config_dbo.dart +
0.0%
+
0.0 %0 / 12-0 / 0
tracked_day_dbo.dart +
0.0%
+
0.0 %0 / 15-0 / 0
user_gender_dbo.g.dart +
0.0%
+
0.0 %0 / 15-0 / 0
app_theme_dbo.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
user_weight_goal_dbo.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
physical_activity_dbo.dart +
0.0%
+
0.0 %0 / 20-0 / 0
user_pal_dbo.g.dart +
0.0%
+
0.0 %0 / 21-0 / 0
user_dbo.g.dart +
0.0%
+
0.0 %0 / 31-0 / 0
config_dbo.g.dart +
0.0%
+
0.0 %0 / 60-0 / 0
tracked_day_dbo.g.dart +
0.0%
+
0.0 %0 / 62-0 / 0
physical_activity_dbo.g.dart +
0.0%
+
0.0 %0 / 77-0 / 0
intake_type_dbo.g.dart +
14.3%14.3%
+
14.3 %3 / 21-0 / 0
meal_nutriments_dbo.g.dart +
30.8%30.8%
+
30.8 %16 / 52-0 / 0
intake_dbo.g.dart +
31.1%31.1%
+
31.1 %14 / 45-0 / 0
meal_dbo.g.dart +
31.4%31.4%
+
31.4 %32 / 102-0 / 0
intake_type_dbo.dart +
40.0%40.0%
+
40.0 %2 / 5-0 / 0
intake_dbo.dart +
75.0%75.0%
+
75.0 %9 / 12-0 / 0
meal_nutriments_dbo.dart +
76.9%76.9%
+
76.9 %10 / 13-0 / 0
meal_dbo.dart +
78.3%78.3%
+
78.3 %18 / 23-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/index.html b/coverage/html/core/data/dbo/index.html new file mode 100644 index 000000000..94ac68b9b --- /dev/null +++ b/coverage/html/core/data/dbo/index.html @@ -0,0 +1,323 @@ + + + + + + + LCOV - lcov.info - core/data/dbo + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dboHitTotalCoverage
Test:lcov.infoLines:10464816.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
app_theme_dbo.dart +
0.0%
+
0.0 %0 / 5-0 / 0
app_theme_dbo.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
config_dbo.dart +
0.0%
+
0.0 %0 / 12-0 / 0
config_dbo.g.dart +
0.0%
+
0.0 %0 / 60-0 / 0
intake_dbo.dart +
75.0%75.0%
+
75.0 %9 / 12-0 / 0
intake_dbo.g.dart +
31.1%31.1%
+
31.1 %14 / 45-0 / 0
intake_type_dbo.dart +
40.0%40.0%
+
40.0 %2 / 5-0 / 0
intake_type_dbo.g.dart +
14.3%14.3%
+
14.3 %3 / 21-0 / 0
meal_dbo.dart +
78.3%78.3%
+
78.3 %18 / 23-0 / 0
meal_dbo.g.dart +
31.4%31.4%
+
31.4 %32 / 102-0 / 0
meal_nutriments_dbo.dart +
76.9%76.9%
+
76.9 %10 / 13-0 / 0
meal_nutriments_dbo.g.dart +
30.8%30.8%
+
30.8 %16 / 52-0 / 0
physical_activity_dbo.dart +
0.0%
+
0.0 %0 / 20-0 / 0
physical_activity_dbo.g.dart +
0.0%
+
0.0 %0 / 77-0 / 0
tracked_day_dbo.dart +
0.0%
+
0.0 %0 / 15-0 / 0
tracked_day_dbo.g.dart +
0.0%
+
0.0 %0 / 62-0 / 0
user_dbo.dart +
0.0%
+
0.0 %0 / 9-0 / 0
user_dbo.g.dart +
0.0%
+
0.0 %0 / 31-0 / 0
user_gender_dbo.dart +
0.0%
+
0.0 %0 / 3-0 / 0
user_gender_dbo.g.dart +
0.0%
+
0.0 %0 / 15-0 / 0
user_pal_dbo.dart +
0.0%
+
0.0 %0 / 5-0 / 0
user_pal_dbo.g.dart +
0.0%
+
0.0 %0 / 21-0 / 0
user_weight_goal_dbo.dart +
0.0%
+
0.0 %0 / 4-0 / 0
user_weight_goal_dbo.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/intake_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..e4c27075f --- /dev/null +++ b/coverage/html/core/data/dbo/intake_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91275.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_dbo.dart.func.html b/coverage/html/core/data/dbo/intake_dbo.dart.func.html new file mode 100644 index 000000000..aa5fc3355 --- /dev/null +++ b/coverage/html/core/data/dbo/intake_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91275.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_dbo.dart.gcov.html b/coverage/html/core/data/dbo/intake_dbo.dart.gcov.html new file mode 100644 index 000000000..4878fe586 --- /dev/null +++ b/coverage/html/core/data/dbo/intake_dbo.dart.gcov.html @@ -0,0 +1,125 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91275.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive/hive.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/intake_type_dbo.dart';
+       4             : import 'package:opennutritracker/core/data/dbo/meal_dbo.dart';
+       5             : import 'package:opennutritracker/core/domain/entity/intake_entity.dart';
+       6             : 
+       7             : part 'intake_dbo.g.dart';
+       8             : 
+       9             : @HiveType(typeId: 0)
+      10             : @JsonSerializable()
+      11             : class IntakeDBO extends HiveObject {
+      12             :   @HiveField(0)
+      13             :   String id;
+      14             :   @HiveField(1)
+      15             :   String unit;
+      16             :   @HiveField(2)
+      17             :   double amount;
+      18             :   @HiveField(3)
+      19             :   IntakeTypeDBO type;
+      20             : 
+      21             :   @HiveField(4)
+      22             :   MealDBO meal;
+      23             : 
+      24             :   @HiveField(5)
+      25             :   DateTime dateTime;
+      26             : 
+      27           1 :   IntakeDBO(
+      28             :       {required this.id,
+      29             :       required this.unit,
+      30             :       required this.amount,
+      31             :       required this.type,
+      32             :       required this.meal,
+      33             :       required this.dateTime});
+      34             : 
+      35           1 :   factory IntakeDBO.fromIntakeEntity(IntakeEntity entity) {
+      36           1 :     return IntakeDBO(
+      37           1 :         id: entity.id,
+      38           1 :         unit: entity.unit,
+      39           1 :         amount: entity.amount,
+      40           2 :         type: IntakeTypeDBO.fromIntakeTypeEntity(entity.type),
+      41           2 :         meal: MealDBO.fromMealEntity(entity.meal),
+      42           1 :         dateTime: entity.dateTime);
+      43             :   }
+      44             : 
+      45           0 :   factory IntakeDBO.fromJson(Map<String, dynamic> json) =>
+      46           0 :       _$IntakeDBOFromJson(json);
+      47             : 
+      48           0 :   Map<String, dynamic> toJson() => _$IntakeDBOToJson(this);
+      49             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/intake_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..1c483cbda --- /dev/null +++ b/coverage/html/core/data/dbo/intake_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:144531.1 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_dbo.g.dart.func.html b/coverage/html/core/data/dbo/intake_dbo.g.dart.func.html new file mode 100644 index 000000000..f7c55fc89 --- /dev/null +++ b/coverage/html/core/data/dbo/intake_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:144531.1 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/intake_dbo.g.dart.gcov.html new file mode 100644 index 000000000..be75d38c5 --- /dev/null +++ b/coverage/html/core/data/dbo/intake_dbo.g.dart.gcov.html @@ -0,0 +1,161 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:144531.1 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'intake_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class IntakeDBOAdapter extends TypeAdapter<IntakeDBO> {
+      10             :   @override
+      11             :   final int typeId = 0;
+      12             : 
+      13           0 :   @override
+      14             :   IntakeDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return IntakeDBO(
+      20           0 :       id: fields[0] as String,
+      21           0 :       unit: fields[1] as String,
+      22           0 :       amount: fields[2] as double,
+      23           0 :       type: fields[3] as IntakeTypeDBO,
+      24           0 :       meal: fields[4] as MealDBO,
+      25           0 :       dateTime: fields[5] as DateTime,
+      26             :     );
+      27             :   }
+      28             : 
+      29           1 :   @override
+      30             :   void write(BinaryWriter writer, IntakeDBO obj) {
+      31             :     writer
+      32           1 :       ..writeByte(6)
+      33           1 :       ..writeByte(0)
+      34           2 :       ..write(obj.id)
+      35           1 :       ..writeByte(1)
+      36           2 :       ..write(obj.unit)
+      37           1 :       ..writeByte(2)
+      38           2 :       ..write(obj.amount)
+      39           1 :       ..writeByte(3)
+      40           2 :       ..write(obj.type)
+      41           1 :       ..writeByte(4)
+      42           2 :       ..write(obj.meal)
+      43           1 :       ..writeByte(5)
+      44           2 :       ..write(obj.dateTime);
+      45             :   }
+      46             : 
+      47           0 :   @override
+      48           0 :   int get hashCode => typeId.hashCode;
+      49             : 
+      50           0 :   @override
+      51             :   bool operator ==(Object other) =>
+      52             :       identical(this, other) ||
+      53           0 :       other is IntakeDBOAdapter &&
+      54           0 :           runtimeType == other.runtimeType &&
+      55           0 :           typeId == other.typeId;
+      56             : }
+      57             : 
+      58             : // **************************************************************************
+      59             : // JsonSerializableGenerator
+      60             : // **************************************************************************
+      61             : 
+      62           0 : IntakeDBO _$IntakeDBOFromJson(Map<String, dynamic> json) => IntakeDBO(
+      63           0 :       id: json['id'] as String,
+      64           0 :       unit: json['unit'] as String,
+      65           0 :       amount: (json['amount'] as num).toDouble(),
+      66           0 :       type: $enumDecode(_$IntakeTypeDBOEnumMap, json['type']),
+      67           0 :       meal: MealDBO.fromJson(json['meal'] as Map<String, dynamic>),
+      68           0 :       dateTime: DateTime.parse(json['dateTime'] as String),
+      69             :     );
+      70             : 
+      71           0 : Map<String, dynamic> _$IntakeDBOToJson(IntakeDBO instance) => <String, dynamic>{
+      72           0 :       'id': instance.id,
+      73           0 :       'unit': instance.unit,
+      74           0 :       'amount': instance.amount,
+      75           0 :       'type': _$IntakeTypeDBOEnumMap[instance.type]!,
+      76           0 :       'meal': instance.meal,
+      77           0 :       'dateTime': instance.dateTime.toIso8601String(),
+      78             :     };
+      79             : 
+      80             : const _$IntakeTypeDBOEnumMap = {
+      81             :   IntakeTypeDBO.breakfast: 'breakfast',
+      82             :   IntakeTypeDBO.lunch: 'lunch',
+      83             :   IntakeTypeDBO.dinner: 'dinner',
+      84             :   IntakeTypeDBO.snack: 'snack',
+      85             : };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_type_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/intake_type_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..2ea5b42e8 --- /dev/null +++ b/coverage/html/core/data/dbo/intake_type_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_type_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_type_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:2540.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_type_dbo.dart.func.html b/coverage/html/core/data/dbo/intake_type_dbo.dart.func.html new file mode 100644 index 000000000..443fcea5f --- /dev/null +++ b/coverage/html/core/data/dbo/intake_type_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_type_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_type_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:2540.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_type_dbo.dart.gcov.html b/coverage/html/core/data/dbo/intake_type_dbo.dart.gcov.html new file mode 100644 index 000000000..e152f479d --- /dev/null +++ b/coverage/html/core/data/dbo/intake_type_dbo.dart.gcov.html @@ -0,0 +1,111 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_type_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_type_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:2540.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/intake_type_entity.dart';
+       3             : 
+       4             : part 'intake_type_dbo.g.dart';
+       5             : 
+       6             : @HiveType(typeId: 4)
+       7             : enum IntakeTypeDBO {
+       8             :   @HiveField(0)
+       9             :   breakfast,
+      10             :   @HiveField(1)
+      11             :   lunch,
+      12             :   @HiveField(2)
+      13             :   dinner,
+      14             :   @HiveField(3)
+      15             :   snack;
+      16             : 
+      17           1 :   factory IntakeTypeDBO.fromIntakeTypeEntity(IntakeTypeEntity entityType) {
+      18             :     IntakeTypeDBO intakeDBOType;
+      19             :     switch (entityType) {
+      20           1 :       case IntakeTypeEntity.breakfast:
+      21             :         intakeDBOType = IntakeTypeDBO.breakfast;
+      22             :         break;
+      23           0 :       case IntakeTypeEntity.lunch:
+      24             :         intakeDBOType = IntakeTypeDBO.lunch;
+      25             :         break;
+      26           0 :       case IntakeTypeEntity.dinner:
+      27             :         intakeDBOType = IntakeTypeDBO.dinner;
+      28             :         break;
+      29           0 :       case IntakeTypeEntity.snack:
+      30             :         intakeDBOType = IntakeTypeDBO.snack;
+      31             :         break;
+      32             :     }
+      33             :     return intakeDBOType;
+      34             :   }
+      35             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_type_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/intake_type_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..594efff67 --- /dev/null +++ b/coverage/html/core/data/dbo/intake_type_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_type_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_type_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:32114.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_type_dbo.g.dart.func.html b/coverage/html/core/data/dbo/intake_type_dbo.g.dart.func.html new file mode 100644 index 000000000..fa368b64e --- /dev/null +++ b/coverage/html/core/data/dbo/intake_type_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_type_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_type_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:32114.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/intake_type_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/intake_type_dbo.g.dart.gcov.html new file mode 100644 index 000000000..2cf08a8cd --- /dev/null +++ b/coverage/html/core/data/dbo/intake_type_dbo.g.dart.gcov.html @@ -0,0 +1,132 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/intake_type_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - intake_type_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:32114.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'intake_type_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class IntakeTypeDBOAdapter extends TypeAdapter<IntakeTypeDBO> {
+      10             :   @override
+      11             :   final int typeId = 4;
+      12             : 
+      13           0 :   @override
+      14             :   IntakeTypeDBO read(BinaryReader reader) {
+      15           0 :     switch (reader.readByte()) {
+      16           0 :       case 0:
+      17             :         return IntakeTypeDBO.breakfast;
+      18           0 :       case 1:
+      19             :         return IntakeTypeDBO.lunch;
+      20           0 :       case 2:
+      21             :         return IntakeTypeDBO.dinner;
+      22           0 :       case 3:
+      23             :         return IntakeTypeDBO.snack;
+      24             :       default:
+      25             :         return IntakeTypeDBO.breakfast;
+      26             :     }
+      27             :   }
+      28             : 
+      29           1 :   @override
+      30             :   void write(BinaryWriter writer, IntakeTypeDBO obj) {
+      31             :     switch (obj) {
+      32           1 :       case IntakeTypeDBO.breakfast:
+      33           1 :         writer.writeByte(0);
+      34             :         break;
+      35           0 :       case IntakeTypeDBO.lunch:
+      36           0 :         writer.writeByte(1);
+      37             :         break;
+      38           0 :       case IntakeTypeDBO.dinner:
+      39           0 :         writer.writeByte(2);
+      40             :         break;
+      41           0 :       case IntakeTypeDBO.snack:
+      42           0 :         writer.writeByte(3);
+      43             :         break;
+      44             :     }
+      45             :   }
+      46             : 
+      47           0 :   @override
+      48           0 :   int get hashCode => typeId.hashCode;
+      49             : 
+      50           0 :   @override
+      51             :   bool operator ==(Object other) =>
+      52             :       identical(this, other) ||
+      53           0 :       other is IntakeTypeDBOAdapter &&
+      54           0 :           runtimeType == other.runtimeType &&
+      55           0 :           typeId == other.typeId;
+      56             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/meal_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..263e73200 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:182378.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_dbo.dart.func.html b/coverage/html/core/data/dbo/meal_dbo.dart.func.html new file mode 100644 index 000000000..02eafe1dc --- /dev/null +++ b/coverage/html/core/data/dbo/meal_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:182378.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_dbo.dart.gcov.html b/coverage/html/core/data/dbo/meal_dbo.dart.gcov.html new file mode 100644 index 000000000..5654b7c86 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_dbo.dart.gcov.html @@ -0,0 +1,188 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:182378.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/meal_nutriments_dbo.dart';
+       4             : import 'package:opennutritracker/features/add_meal/domain/entity/meal_entity.dart';
+       5             : 
+       6             : part 'meal_dbo.g.dart';
+       7             : 
+       8             : @HiveType(typeId: 1)
+       9             : @JsonSerializable()
+      10             : class MealDBO extends HiveObject {
+      11             :   @HiveField(0)
+      12             :   final String? code;
+      13             :   @HiveField(1)
+      14             :   final String? name;
+      15             : 
+      16             :   @HiveField(2)
+      17             :   final String? brands;
+      18             : 
+      19             :   @HiveField(3)
+      20             :   final String? thumbnailImageUrl;
+      21             :   @HiveField(4)
+      22             :   final String? mainImageUrl;
+      23             : 
+      24             :   @HiveField(5)
+      25             :   final String? url;
+      26             : 
+      27             :   @HiveField(6)
+      28             :   final String? mealQuantity;
+      29             :   @HiveField(7)
+      30             :   final String? mealUnit;
+      31             :   @HiveField(8)
+      32             :   final double? servingQuantity;
+      33             :   @HiveField(9)
+      34             :   final String? servingUnit;
+      35             : 
+      36             :   @HiveField(12)
+      37             :   final String? servingSize;
+      38             : 
+      39             :   @HiveField(10)
+      40             :   final MealSourceDBO source;
+      41             : 
+      42             :   @HiveField(11)
+      43             :   final MealNutrimentsDBO nutriments;
+      44             : 
+      45           1 :   MealDBO(
+      46             :       {required this.code,
+      47             :       required this.name,
+      48             :       required this.brands,
+      49             :       required this.thumbnailImageUrl,
+      50             :       required this.mainImageUrl,
+      51             :       required this.url,
+      52             :       required this.mealQuantity,
+      53             :       required this.mealUnit,
+      54             :       required this.servingQuantity,
+      55             :       required this.servingUnit,
+      56             :       required this.servingSize,
+      57             :       required this.nutriments,
+      58             :       required this.source});
+      59             : 
+      60           2 :   factory MealDBO.fromMealEntity(MealEntity mealEntity) => MealDBO(
+      61           1 :       code: mealEntity.code,
+      62           1 :       name: mealEntity.name,
+      63           1 :       brands: mealEntity.brands,
+      64           1 :       thumbnailImageUrl: mealEntity.thumbnailImageUrl,
+      65           1 :       mainImageUrl: mealEntity.mainImageUrl,
+      66           1 :       url: mealEntity.url,
+      67           1 :       mealQuantity: mealEntity.mealQuantity,
+      68           1 :       mealUnit: mealEntity.mealUnit,
+      69           1 :       servingQuantity: mealEntity.servingQuantity,
+      70           1 :       servingUnit: mealEntity.servingUnit,
+      71           1 :       servingSize: mealEntity.servingSize,
+      72             :       nutriments:
+      73           2 :           MealNutrimentsDBO.fromProductNutrimentsEntity(mealEntity.nutriments),
+      74           2 :       source: MealSourceDBO.fromMealSourceEntity(mealEntity.source),
+      75             :   );
+      76             : 
+      77           0 :   factory MealDBO.fromJson(Map<String, dynamic> json) =>
+      78           0 :       _$MealDBOFromJson(json);
+      79             : 
+      80           0 :   Map<String, dynamic> toJson() => _$MealDBOToJson(this);
+      81             : }
+      82             : 
+      83             : @HiveType(typeId: 14)
+      84             : enum MealSourceDBO {
+      85             :   @HiveField(0)
+      86             :   unknown,
+      87             :   @HiveField(1)
+      88             :   custom,
+      89             :   @HiveField(2)
+      90             :   off,
+      91             :   @HiveField(3)
+      92             :   fdc;
+      93             : 
+      94           1 :   factory MealSourceDBO.fromMealSourceEntity(MealSourceEntity entity) {
+      95             :     MealSourceDBO mealSourceDBO;
+      96             :     switch (entity) {
+      97           1 :       case MealSourceEntity.unknown:
+      98             :         mealSourceDBO = MealSourceDBO.unknown;
+      99             :         break;
+     100           1 :       case MealSourceEntity.custom:
+     101             :         mealSourceDBO = MealSourceDBO.custom;
+     102             :         break;
+     103           0 :       case MealSourceEntity.off:
+     104             :         mealSourceDBO = MealSourceDBO.off;
+     105             :         break;
+     106           0 :       case MealSourceEntity.fdc:
+     107             :         mealSourceDBO = MealSourceDBO.fdc;
+     108             :         break;
+     109             :     }
+     110             :     return mealSourceDBO;
+     111             :   }
+     112             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/meal_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..039c38dd6 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:3210231.4 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_dbo.g.dart.func.html b/coverage/html/core/data/dbo/meal_dbo.g.dart.func.html new file mode 100644 index 000000000..652c980be --- /dev/null +++ b/coverage/html/core/data/dbo/meal_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:3210231.4 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/meal_dbo.g.dart.gcov.html new file mode 100644 index 000000000..10fc77242 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_dbo.g.dart.gcov.html @@ -0,0 +1,246 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:3210231.4 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'meal_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class MealDBOAdapter extends TypeAdapter<MealDBO> {
+      10             :   @override
+      11             :   final int typeId = 1;
+      12             : 
+      13           0 :   @override
+      14             :   MealDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return MealDBO(
+      20           0 :       code: fields[0] as String?,
+      21           0 :       name: fields[1] as String?,
+      22           0 :       brands: fields[2] as String?,
+      23           0 :       thumbnailImageUrl: fields[3] as String?,
+      24           0 :       mainImageUrl: fields[4] as String?,
+      25           0 :       url: fields[5] as String?,
+      26           0 :       mealQuantity: fields[6] as String?,
+      27           0 :       mealUnit: fields[7] as String?,
+      28           0 :       servingQuantity: fields[8] as double?,
+      29           0 :       servingUnit: fields[9] as String?,
+      30           0 :       servingSize: fields[12] as String?,
+      31           0 :       nutriments: fields[11] as MealNutrimentsDBO,
+      32           0 :       source: fields[10] as MealSourceDBO,
+      33             :     );
+      34             :   }
+      35             : 
+      36           1 :   @override
+      37             :   void write(BinaryWriter writer, MealDBO obj) {
+      38             :     writer
+      39           1 :       ..writeByte(13)
+      40           1 :       ..writeByte(0)
+      41           2 :       ..write(obj.code)
+      42           1 :       ..writeByte(1)
+      43           2 :       ..write(obj.name)
+      44           1 :       ..writeByte(2)
+      45           2 :       ..write(obj.brands)
+      46           1 :       ..writeByte(3)
+      47           2 :       ..write(obj.thumbnailImageUrl)
+      48           1 :       ..writeByte(4)
+      49           2 :       ..write(obj.mainImageUrl)
+      50           1 :       ..writeByte(5)
+      51           2 :       ..write(obj.url)
+      52           1 :       ..writeByte(6)
+      53           2 :       ..write(obj.mealQuantity)
+      54           1 :       ..writeByte(7)
+      55           2 :       ..write(obj.mealUnit)
+      56           1 :       ..writeByte(8)
+      57           2 :       ..write(obj.servingQuantity)
+      58           1 :       ..writeByte(9)
+      59           2 :       ..write(obj.servingUnit)
+      60           1 :       ..writeByte(12)
+      61           2 :       ..write(obj.servingSize)
+      62           1 :       ..writeByte(10)
+      63           2 :       ..write(obj.source)
+      64           1 :       ..writeByte(11)
+      65           2 :       ..write(obj.nutriments);
+      66             :   }
+      67             : 
+      68           0 :   @override
+      69           0 :   int get hashCode => typeId.hashCode;
+      70             : 
+      71           0 :   @override
+      72             :   bool operator ==(Object other) =>
+      73             :       identical(this, other) ||
+      74           0 :       other is MealDBOAdapter &&
+      75           0 :           runtimeType == other.runtimeType &&
+      76           0 :           typeId == other.typeId;
+      77             : }
+      78             : 
+      79             : class MealSourceDBOAdapter extends TypeAdapter<MealSourceDBO> {
+      80             :   @override
+      81             :   final int typeId = 14;
+      82             : 
+      83           0 :   @override
+      84             :   MealSourceDBO read(BinaryReader reader) {
+      85           0 :     switch (reader.readByte()) {
+      86           0 :       case 0:
+      87             :         return MealSourceDBO.unknown;
+      88           0 :       case 1:
+      89             :         return MealSourceDBO.custom;
+      90           0 :       case 2:
+      91             :         return MealSourceDBO.off;
+      92           0 :       case 3:
+      93             :         return MealSourceDBO.fdc;
+      94             :       default:
+      95             :         return MealSourceDBO.unknown;
+      96             :     }
+      97             :   }
+      98             : 
+      99           1 :   @override
+     100             :   void write(BinaryWriter writer, MealSourceDBO obj) {
+     101             :     switch (obj) {
+     102           1 :       case MealSourceDBO.unknown:
+     103           0 :         writer.writeByte(0);
+     104             :         break;
+     105           1 :       case MealSourceDBO.custom:
+     106           1 :         writer.writeByte(1);
+     107             :         break;
+     108           0 :       case MealSourceDBO.off:
+     109           0 :         writer.writeByte(2);
+     110             :         break;
+     111           0 :       case MealSourceDBO.fdc:
+     112           0 :         writer.writeByte(3);
+     113             :         break;
+     114             :     }
+     115             :   }
+     116             : 
+     117           0 :   @override
+     118           0 :   int get hashCode => typeId.hashCode;
+     119             : 
+     120           0 :   @override
+     121             :   bool operator ==(Object other) =>
+     122             :       identical(this, other) ||
+     123           0 :       other is MealSourceDBOAdapter &&
+     124           0 :           runtimeType == other.runtimeType &&
+     125           0 :           typeId == other.typeId;
+     126             : }
+     127             : 
+     128             : // **************************************************************************
+     129             : // JsonSerializableGenerator
+     130             : // **************************************************************************
+     131             : 
+     132           0 : MealDBO _$MealDBOFromJson(Map<String, dynamic> json) => MealDBO(
+     133           0 :       code: json['code'] as String?,
+     134           0 :       name: json['name'] as String?,
+     135           0 :       brands: json['brands'] as String?,
+     136           0 :       thumbnailImageUrl: json['thumbnailImageUrl'] as String?,
+     137           0 :       mainImageUrl: json['mainImageUrl'] as String?,
+     138           0 :       url: json['url'] as String?,
+     139           0 :       mealQuantity: json['mealQuantity'] as String?,
+     140           0 :       mealUnit: json['mealUnit'] as String?,
+     141           0 :       servingQuantity: (json['servingQuantity'] as num?)?.toDouble(),
+     142           0 :       servingUnit: json['servingUnit'] as String?,
+     143           0 :       servingSize: json['servingSize'] as String?,
+     144           0 :       nutriments: MealNutrimentsDBO.fromJson(
+     145           0 :           json['nutriments'] as Map<String, dynamic>),
+     146           0 :       source: $enumDecode(_$MealSourceDBOEnumMap, json['source']),
+     147             :     );
+     148             : 
+     149           0 : Map<String, dynamic> _$MealDBOToJson(MealDBO instance) => <String, dynamic>{
+     150           0 :       'code': instance.code,
+     151           0 :       'name': instance.name,
+     152           0 :       'brands': instance.brands,
+     153           0 :       'thumbnailImageUrl': instance.thumbnailImageUrl,
+     154           0 :       'mainImageUrl': instance.mainImageUrl,
+     155           0 :       'url': instance.url,
+     156           0 :       'mealQuantity': instance.mealQuantity,
+     157           0 :       'mealUnit': instance.mealUnit,
+     158           0 :       'servingQuantity': instance.servingQuantity,
+     159           0 :       'servingUnit': instance.servingUnit,
+     160           0 :       'servingSize': instance.servingSize,
+     161           0 :       'source': _$MealSourceDBOEnumMap[instance.source]!,
+     162           0 :       'nutriments': instance.nutriments,
+     163             :     };
+     164             : 
+     165             : const _$MealSourceDBOEnumMap = {
+     166             :   MealSourceDBO.unknown: 'unknown',
+     167             :   MealSourceDBO.custom: 'custom',
+     168             :   MealSourceDBO.off: 'off',
+     169             :   MealSourceDBO.fdc: 'fdc',
+     170             : };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..caf432615 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_nutriments_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_nutriments_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:101376.9 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.func.html b/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.func.html new file mode 100644 index 000000000..a92049c13 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_nutriments_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_nutriments_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:101376.9 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.gcov.html b/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.gcov.html new file mode 100644 index 000000000..75940d033 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_nutriments_dbo.dart.gcov.html @@ -0,0 +1,126 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_nutriments_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_nutriments_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:101376.9 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/features/add_meal/domain/entity/meal_nutriments_entity.dart';
+       4             : 
+       5             : part 'meal_nutriments_dbo.g.dart';
+       6             : 
+       7             : @HiveType(typeId: 3)
+       8             : @JsonSerializable()
+       9             : class MealNutrimentsDBO extends HiveObject {
+      10             :   @HiveField(0)
+      11             :   final double? energyKcal100;
+      12             :   @HiveField(1)
+      13             :   final double? carbohydrates100;
+      14             :   @HiveField(2)
+      15             :   final double? fat100;
+      16             :   @HiveField(3)
+      17             :   final double? proteins100;
+      18             :   @HiveField(4)
+      19             :   final double? sugars100;
+      20             :   @HiveField(5)
+      21             :   final double? saturatedFat100;
+      22             :   @HiveField(6)
+      23             :   final double? fiber100;
+      24             : 
+      25           1 :   MealNutrimentsDBO(
+      26             :       {required this.energyKcal100,
+      27             :       required this.carbohydrates100,
+      28             :       required this.fat100,
+      29             :       required this.proteins100,
+      30             :       required this.sugars100,
+      31             :       required this.saturatedFat100,
+      32             :       required this.fiber100});
+      33             : 
+      34           1 :   factory MealNutrimentsDBO.fromProductNutrimentsEntity(
+      35             :       MealNutrimentsEntity nutriments) {
+      36           1 :     return MealNutrimentsDBO(
+      37           1 :         energyKcal100: nutriments.energyKcal100,
+      38           1 :         carbohydrates100: nutriments.carbohydrates100,
+      39           1 :         fat100: nutriments.fat100,
+      40           1 :         proteins100: nutriments.proteins100,
+      41           1 :         sugars100: nutriments.sugars100,
+      42           1 :         saturatedFat100: nutriments.saturatedFat100,
+      43           1 :         fiber100: nutriments.fiber100);
+      44             :   }
+      45             : 
+      46           0 :   factory MealNutrimentsDBO.fromJson(Map<String, dynamic> json) =>
+      47           0 :       _$MealNutrimentsDBOFromJson(json);
+      48             : 
+      49           0 :   Map<String, dynamic> toJson() => _$MealNutrimentsDBOToJson(this);
+      50             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..7fae22bc0 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_nutriments_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_nutriments_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:165230.8 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.func.html b/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.func.html new file mode 100644 index 000000000..0f871ed5d --- /dev/null +++ b/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_nutriments_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_nutriments_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:165230.8 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.gcov.html new file mode 100644 index 000000000..bb21ebd83 --- /dev/null +++ b/coverage/html/core/data/dbo/meal_nutriments_dbo.g.dart.gcov.html @@ -0,0 +1,161 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/meal_nutriments_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - meal_nutriments_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:165230.8 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'meal_nutriments_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class MealNutrimentsDBOAdapter extends TypeAdapter<MealNutrimentsDBO> {
+      10             :   @override
+      11             :   final int typeId = 3;
+      12             : 
+      13           0 :   @override
+      14             :   MealNutrimentsDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return MealNutrimentsDBO(
+      20           0 :       energyKcal100: fields[0] as double?,
+      21           0 :       carbohydrates100: fields[1] as double?,
+      22           0 :       fat100: fields[2] as double?,
+      23           0 :       proteins100: fields[3] as double?,
+      24           0 :       sugars100: fields[4] as double?,
+      25           0 :       saturatedFat100: fields[5] as double?,
+      26           0 :       fiber100: fields[6] as double?,
+      27             :     );
+      28             :   }
+      29             : 
+      30           1 :   @override
+      31             :   void write(BinaryWriter writer, MealNutrimentsDBO obj) {
+      32             :     writer
+      33           1 :       ..writeByte(7)
+      34           1 :       ..writeByte(0)
+      35           2 :       ..write(obj.energyKcal100)
+      36           1 :       ..writeByte(1)
+      37           2 :       ..write(obj.carbohydrates100)
+      38           1 :       ..writeByte(2)
+      39           2 :       ..write(obj.fat100)
+      40           1 :       ..writeByte(3)
+      41           2 :       ..write(obj.proteins100)
+      42           1 :       ..writeByte(4)
+      43           2 :       ..write(obj.sugars100)
+      44           1 :       ..writeByte(5)
+      45           2 :       ..write(obj.saturatedFat100)
+      46           1 :       ..writeByte(6)
+      47           2 :       ..write(obj.fiber100);
+      48             :   }
+      49             : 
+      50           0 :   @override
+      51           0 :   int get hashCode => typeId.hashCode;
+      52             : 
+      53           0 :   @override
+      54             :   bool operator ==(Object other) =>
+      55             :       identical(this, other) ||
+      56           0 :       other is MealNutrimentsDBOAdapter &&
+      57           0 :           runtimeType == other.runtimeType &&
+      58           0 :           typeId == other.typeId;
+      59             : }
+      60             : 
+      61             : // **************************************************************************
+      62             : // JsonSerializableGenerator
+      63             : // **************************************************************************
+      64             : 
+      65           0 : MealNutrimentsDBO _$MealNutrimentsDBOFromJson(Map<String, dynamic> json) =>
+      66           0 :     MealNutrimentsDBO(
+      67           0 :       energyKcal100: (json['energyKcal100'] as num?)?.toDouble(),
+      68           0 :       carbohydrates100: (json['carbohydrates100'] as num?)?.toDouble(),
+      69           0 :       fat100: (json['fat100'] as num?)?.toDouble(),
+      70           0 :       proteins100: (json['proteins100'] as num?)?.toDouble(),
+      71           0 :       sugars100: (json['sugars100'] as num?)?.toDouble(),
+      72           0 :       saturatedFat100: (json['saturatedFat100'] as num?)?.toDouble(),
+      73           0 :       fiber100: (json['fiber100'] as num?)?.toDouble(),
+      74             :     );
+      75             : 
+      76           0 : Map<String, dynamic> _$MealNutrimentsDBOToJson(MealNutrimentsDBO instance) =>
+      77           0 :     <String, dynamic>{
+      78           0 :       'energyKcal100': instance.energyKcal100,
+      79           0 :       'carbohydrates100': instance.carbohydrates100,
+      80           0 :       'fat100': instance.fat100,
+      81           0 :       'proteins100': instance.proteins100,
+      82           0 :       'sugars100': instance.sugars100,
+      83           0 :       'saturatedFat100': instance.saturatedFat100,
+      84           0 :       'fiber100': instance.fiber100,
+      85             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/physical_activity_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/physical_activity_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..b340d2567 --- /dev/null +++ b/coverage/html/core/data/dbo/physical_activity_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/physical_activity_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - physical_activity_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0200.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/physical_activity_dbo.dart.func.html b/coverage/html/core/data/dbo/physical_activity_dbo.dart.func.html new file mode 100644 index 000000000..f3934dc6c --- /dev/null +++ b/coverage/html/core/data/dbo/physical_activity_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/physical_activity_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - physical_activity_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0200.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/physical_activity_dbo.dart.gcov.html b/coverage/html/core/data/dbo/physical_activity_dbo.dart.gcov.html new file mode 100644 index 000000000..03638024b --- /dev/null +++ b/coverage/html/core/data/dbo/physical_activity_dbo.dart.gcov.html @@ -0,0 +1,170 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/physical_activity_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - physical_activity_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0200.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive/hive.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/physical_activity_entity.dart';
+       4             : 
+       5             : part 'physical_activity_dbo.g.dart';
+       6             : 
+       7             : /// A physical activity with it's measured MET value by the
+       8             : /// '2011 Compendium of Physical Activities'
+       9             : /// https://pubmed.ncbi.nlm.nih.gov/21681120/
+      10             : /// by Ainsworth et al.
+      11             : @HiveType(typeId: 11)
+      12             : @JsonSerializable()
+      13             : class PhysicalActivityDBO {
+      14             :   @HiveField(1)
+      15             :   final String code;
+      16             :   @HiveField(2)
+      17             :   final String specificActivity;
+      18             :   @HiveField(3)
+      19             :   final String description;
+      20             :   @HiveField(4)
+      21             :   final double mets;
+      22             : 
+      23             :   @HiveField(5)
+      24             :   final List<String> tags;
+      25             : 
+      26             :   @HiveField(6)
+      27             :   final PhysicalActivityTypeDBO type;
+      28             : 
+      29           0 :   PhysicalActivityDBO(this.code, this.specificActivity, this.description,
+      30             :       this.mets, this.tags, this.type);
+      31             : 
+      32           0 :   factory PhysicalActivityDBO.fromPhysicalActivityEntity(
+      33             :       PhysicalActivityEntity entity) {
+      34           0 :     return PhysicalActivityDBO(
+      35           0 :         entity.code,
+      36           0 :         entity.specificActivity,
+      37           0 :         entity.description,
+      38           0 :         entity.mets,
+      39           0 :         entity.tags,
+      40           0 :         PhysicalActivityTypeDBO.fromPhysicalActivityTypeEntity(entity.type));
+      41             :   }
+      42             : 
+      43           0 :   factory PhysicalActivityDBO.fromJson(Map<String, dynamic> json) =>
+      44           0 :       _$PhysicalActivityDBOFromJson(json);
+      45             : 
+      46           0 :   Map<String, dynamic> toJson() => _$PhysicalActivityDBOToJson(this);
+      47             : }
+      48             : 
+      49             : @HiveType(typeId: 12)
+      50             : enum PhysicalActivityTypeDBO {
+      51             :   @HiveField(1)
+      52             :   bicycling,
+      53             :   @HiveField(2)
+      54             :   conditioningExercise,
+      55             :   @HiveField(3)
+      56             :   dancing,
+      57             :   @HiveField(4)
+      58             :   running,
+      59             :   @HiveField(5)
+      60             :   sport,
+      61             :   @HiveField(6)
+      62             :   waterActivities,
+      63             :   @HiveField(7)
+      64             :   winterActivities;
+      65             : 
+      66           0 :   factory PhysicalActivityTypeDBO.fromPhysicalActivityTypeEntity(
+      67             :       PhysicalActivityTypeEntity entityType) {
+      68             :     PhysicalActivityTypeDBO typeDBO;
+      69             :     switch (entityType) {
+      70           0 :       case PhysicalActivityTypeEntity.bicycling:
+      71             :         typeDBO = PhysicalActivityTypeDBO.bicycling;
+      72             :         break;
+      73           0 :       case PhysicalActivityTypeEntity.conditioningExercise:
+      74             :         typeDBO = PhysicalActivityTypeDBO.conditioningExercise;
+      75             :         break;
+      76           0 :       case PhysicalActivityTypeEntity.dancing:
+      77             :         typeDBO = PhysicalActivityTypeDBO.dancing;
+      78             :         break;
+      79           0 :       case PhysicalActivityTypeEntity.running:
+      80             :         typeDBO = PhysicalActivityTypeDBO.running;
+      81             :         break;
+      82           0 :       case PhysicalActivityTypeEntity.sport:
+      83             :         typeDBO = PhysicalActivityTypeDBO.sport;
+      84             :         break;
+      85           0 :       case PhysicalActivityTypeEntity.waterActivities:
+      86             :         typeDBO = PhysicalActivityTypeDBO.waterActivities;
+      87             :         break;
+      88           0 :       case PhysicalActivityTypeEntity.winterActivities:
+      89             :         typeDBO = PhysicalActivityTypeDBO.winterActivities;
+      90             :         break;
+      91             :     }
+      92             :     return typeDBO;
+      93             :   }
+      94             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..9aae8e19a --- /dev/null +++ b/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/physical_activity_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - physical_activity_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0770.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.func.html b/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.func.html new file mode 100644 index 000000000..1bc9a0349 --- /dev/null +++ b/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/physical_activity_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - physical_activity_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0770.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.gcov.html new file mode 100644 index 000000000..9ed01368c --- /dev/null +++ b/coverage/html/core/data/dbo/physical_activity_dbo.g.dart.gcov.html @@ -0,0 +1,232 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/physical_activity_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - physical_activity_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0770.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'physical_activity_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class PhysicalActivityDBOAdapter extends TypeAdapter<PhysicalActivityDBO> {
+      10             :   @override
+      11             :   final int typeId = 11;
+      12             : 
+      13           0 :   @override
+      14             :   PhysicalActivityDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return PhysicalActivityDBO(
+      20           0 :       fields[1] as String,
+      21           0 :       fields[2] as String,
+      22           0 :       fields[3] as String,
+      23           0 :       fields[4] as double,
+      24           0 :       (fields[5] as List).cast<String>(),
+      25           0 :       fields[6] as PhysicalActivityTypeDBO,
+      26             :     );
+      27             :   }
+      28             : 
+      29           0 :   @override
+      30             :   void write(BinaryWriter writer, PhysicalActivityDBO obj) {
+      31             :     writer
+      32           0 :       ..writeByte(6)
+      33           0 :       ..writeByte(1)
+      34           0 :       ..write(obj.code)
+      35           0 :       ..writeByte(2)
+      36           0 :       ..write(obj.specificActivity)
+      37           0 :       ..writeByte(3)
+      38           0 :       ..write(obj.description)
+      39           0 :       ..writeByte(4)
+      40           0 :       ..write(obj.mets)
+      41           0 :       ..writeByte(5)
+      42           0 :       ..write(obj.tags)
+      43           0 :       ..writeByte(6)
+      44           0 :       ..write(obj.type);
+      45             :   }
+      46             : 
+      47           0 :   @override
+      48           0 :   int get hashCode => typeId.hashCode;
+      49             : 
+      50           0 :   @override
+      51             :   bool operator ==(Object other) =>
+      52             :       identical(this, other) ||
+      53           0 :       other is PhysicalActivityDBOAdapter &&
+      54           0 :           runtimeType == other.runtimeType &&
+      55           0 :           typeId == other.typeId;
+      56             : }
+      57             : 
+      58             : class PhysicalActivityTypeDBOAdapter
+      59             :     extends TypeAdapter<PhysicalActivityTypeDBO> {
+      60             :   @override
+      61             :   final int typeId = 12;
+      62             : 
+      63           0 :   @override
+      64             :   PhysicalActivityTypeDBO read(BinaryReader reader) {
+      65           0 :     switch (reader.readByte()) {
+      66           0 :       case 1:
+      67             :         return PhysicalActivityTypeDBO.bicycling;
+      68           0 :       case 2:
+      69             :         return PhysicalActivityTypeDBO.conditioningExercise;
+      70           0 :       case 3:
+      71             :         return PhysicalActivityTypeDBO.dancing;
+      72           0 :       case 4:
+      73             :         return PhysicalActivityTypeDBO.running;
+      74           0 :       case 5:
+      75             :         return PhysicalActivityTypeDBO.sport;
+      76           0 :       case 6:
+      77             :         return PhysicalActivityTypeDBO.waterActivities;
+      78           0 :       case 7:
+      79             :         return PhysicalActivityTypeDBO.winterActivities;
+      80             :       default:
+      81             :         return PhysicalActivityTypeDBO.bicycling;
+      82             :     }
+      83             :   }
+      84             : 
+      85           0 :   @override
+      86             :   void write(BinaryWriter writer, PhysicalActivityTypeDBO obj) {
+      87             :     switch (obj) {
+      88           0 :       case PhysicalActivityTypeDBO.bicycling:
+      89           0 :         writer.writeByte(1);
+      90             :         break;
+      91           0 :       case PhysicalActivityTypeDBO.conditioningExercise:
+      92           0 :         writer.writeByte(2);
+      93             :         break;
+      94           0 :       case PhysicalActivityTypeDBO.dancing:
+      95           0 :         writer.writeByte(3);
+      96             :         break;
+      97           0 :       case PhysicalActivityTypeDBO.running:
+      98           0 :         writer.writeByte(4);
+      99             :         break;
+     100           0 :       case PhysicalActivityTypeDBO.sport:
+     101           0 :         writer.writeByte(5);
+     102             :         break;
+     103           0 :       case PhysicalActivityTypeDBO.waterActivities:
+     104           0 :         writer.writeByte(6);
+     105             :         break;
+     106           0 :       case PhysicalActivityTypeDBO.winterActivities:
+     107           0 :         writer.writeByte(7);
+     108             :         break;
+     109             :     }
+     110             :   }
+     111             : 
+     112           0 :   @override
+     113           0 :   int get hashCode => typeId.hashCode;
+     114             : 
+     115           0 :   @override
+     116             :   bool operator ==(Object other) =>
+     117             :       identical(this, other) ||
+     118           0 :       other is PhysicalActivityTypeDBOAdapter &&
+     119           0 :           runtimeType == other.runtimeType &&
+     120           0 :           typeId == other.typeId;
+     121             : }
+     122             : 
+     123             : // **************************************************************************
+     124             : // JsonSerializableGenerator
+     125             : // **************************************************************************
+     126             : 
+     127           0 : PhysicalActivityDBO _$PhysicalActivityDBOFromJson(Map<String, dynamic> json) =>
+     128           0 :     PhysicalActivityDBO(
+     129           0 :       json['code'] as String,
+     130           0 :       json['specificActivity'] as String,
+     131           0 :       json['description'] as String,
+     132           0 :       (json['mets'] as num).toDouble(),
+     133           0 :       (json['tags'] as List<dynamic>).map((e) => e as String).toList(),
+     134           0 :       $enumDecode(_$PhysicalActivityTypeDBOEnumMap, json['type']),
+     135             :     );
+     136             : 
+     137           0 : Map<String, dynamic> _$PhysicalActivityDBOToJson(
+     138             :         PhysicalActivityDBO instance) =>
+     139           0 :     <String, dynamic>{
+     140           0 :       'code': instance.code,
+     141           0 :       'specificActivity': instance.specificActivity,
+     142           0 :       'description': instance.description,
+     143           0 :       'mets': instance.mets,
+     144           0 :       'tags': instance.tags,
+     145           0 :       'type': _$PhysicalActivityTypeDBOEnumMap[instance.type]!,
+     146             :     };
+     147             : 
+     148             : const _$PhysicalActivityTypeDBOEnumMap = {
+     149             :   PhysicalActivityTypeDBO.bicycling: 'bicycling',
+     150             :   PhysicalActivityTypeDBO.conditioningExercise: 'conditioningExercise',
+     151             :   PhysicalActivityTypeDBO.dancing: 'dancing',
+     152             :   PhysicalActivityTypeDBO.running: 'running',
+     153             :   PhysicalActivityTypeDBO.sport: 'sport',
+     154             :   PhysicalActivityTypeDBO.waterActivities: 'waterActivities',
+     155             :   PhysicalActivityTypeDBO.winterActivities: 'winterActivities',
+     156             : };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/tracked_day_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/tracked_day_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..8f6dd9ca7 --- /dev/null +++ b/coverage/html/core/data/dbo/tracked_day_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/tracked_day_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - tracked_day_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0150.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/tracked_day_dbo.dart.func.html b/coverage/html/core/data/dbo/tracked_day_dbo.dart.func.html new file mode 100644 index 000000000..607b1c653 --- /dev/null +++ b/coverage/html/core/data/dbo/tracked_day_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/tracked_day_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - tracked_day_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0150.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/tracked_day_dbo.dart.gcov.html b/coverage/html/core/data/dbo/tracked_day_dbo.dart.gcov.html new file mode 100644 index 000000000..141c5b8c4 --- /dev/null +++ b/coverage/html/core/data/dbo/tracked_day_dbo.dart.gcov.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/tracked_day_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - tracked_day_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0150.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/tracked_day_entity.dart';
+       4             : 
+       5             : part 'tracked_day_dbo.g.dart';
+       6             : 
+       7             : @HiveType(typeId: 9)
+       8             : @JsonSerializable()
+       9             : class TrackedDayDBO extends HiveObject {
+      10             :   @HiveField(0)
+      11             :   DateTime day;
+      12             :   @HiveField(1)
+      13             :   double calorieGoal;
+      14             :   @HiveField(2)
+      15             :   double caloriesTracked;
+      16             :   @HiveField(3)
+      17             :   double? carbsGoal;
+      18             :   @HiveField(4)
+      19             :   double? carbsTracked;
+      20             :   @HiveField(5)
+      21             :   double? fatGoal;
+      22             :   @HiveField(6)
+      23             :   double? fatTracked;
+      24             :   @HiveField(7)
+      25             :   double? proteinGoal;
+      26             :   @HiveField(8)
+      27             :   double? proteinTracked;
+      28             : 
+      29           0 :   TrackedDayDBO(
+      30             :       {required this.day,
+      31             :       required this.calorieGoal,
+      32             :       required this.caloriesTracked,
+      33             :       this.carbsGoal,
+      34             :       this.carbsTracked,
+      35             :       this.fatGoal,
+      36             :       this.fatTracked,
+      37             :       this.proteinGoal,
+      38             :       this.proteinTracked});
+      39             : 
+      40           0 :   factory TrackedDayDBO.fromTrackedDayEntity(TrackedDayEntity entity) {
+      41           0 :     return TrackedDayDBO(
+      42           0 :         day: entity.day,
+      43           0 :         calorieGoal: entity.calorieGoal,
+      44           0 :         caloriesTracked: entity.caloriesTracked,
+      45           0 :         carbsGoal: entity.carbsGoal,
+      46           0 :         carbsTracked: entity.carbsTracked,
+      47           0 :         fatGoal: entity.fatGoal,
+      48           0 :         fatTracked: entity.fatTracked,
+      49           0 :         proteinGoal: entity.proteinGoal,
+      50           0 :         proteinTracked: entity.proteinTracked);
+      51             :   }
+      52             : 
+      53           0 :   factory TrackedDayDBO.fromJson(Map<String, dynamic> json) =>
+      54           0 :       _$TrackedDayDBOFromJson(json);
+      55             : 
+      56           0 :   Map<String, dynamic> toJson() => _$TrackedDayDBOToJson(this);
+      57             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..f4a366051 --- /dev/null +++ b/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/tracked_day_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - tracked_day_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0620.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.func.html b/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.func.html new file mode 100644 index 000000000..9ab38f767 --- /dev/null +++ b/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/tracked_day_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - tracked_day_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0620.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.gcov.html new file mode 100644 index 000000000..7c2aabda9 --- /dev/null +++ b/coverage/html/core/data/dbo/tracked_day_dbo.g.dart.gcov.html @@ -0,0 +1,171 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/tracked_day_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - tracked_day_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0620.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'tracked_day_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class TrackedDayDBOAdapter extends TypeAdapter<TrackedDayDBO> {
+      10             :   @override
+      11             :   final int typeId = 9;
+      12             : 
+      13           0 :   @override
+      14             :   TrackedDayDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return TrackedDayDBO(
+      20           0 :       day: fields[0] as DateTime,
+      21           0 :       calorieGoal: fields[1] as double,
+      22           0 :       caloriesTracked: fields[2] as double,
+      23           0 :       carbsGoal: fields[3] as double?,
+      24           0 :       carbsTracked: fields[4] as double?,
+      25           0 :       fatGoal: fields[5] as double?,
+      26           0 :       fatTracked: fields[6] as double?,
+      27           0 :       proteinGoal: fields[7] as double?,
+      28           0 :       proteinTracked: fields[8] as double?,
+      29             :     );
+      30             :   }
+      31             : 
+      32           0 :   @override
+      33             :   void write(BinaryWriter writer, TrackedDayDBO obj) {
+      34             :     writer
+      35           0 :       ..writeByte(9)
+      36           0 :       ..writeByte(0)
+      37           0 :       ..write(obj.day)
+      38           0 :       ..writeByte(1)
+      39           0 :       ..write(obj.calorieGoal)
+      40           0 :       ..writeByte(2)
+      41           0 :       ..write(obj.caloriesTracked)
+      42           0 :       ..writeByte(3)
+      43           0 :       ..write(obj.carbsGoal)
+      44           0 :       ..writeByte(4)
+      45           0 :       ..write(obj.carbsTracked)
+      46           0 :       ..writeByte(5)
+      47           0 :       ..write(obj.fatGoal)
+      48           0 :       ..writeByte(6)
+      49           0 :       ..write(obj.fatTracked)
+      50           0 :       ..writeByte(7)
+      51           0 :       ..write(obj.proteinGoal)
+      52           0 :       ..writeByte(8)
+      53           0 :       ..write(obj.proteinTracked);
+      54             :   }
+      55             : 
+      56           0 :   @override
+      57           0 :   int get hashCode => typeId.hashCode;
+      58             : 
+      59           0 :   @override
+      60             :   bool operator ==(Object other) =>
+      61             :       identical(this, other) ||
+      62           0 :       other is TrackedDayDBOAdapter &&
+      63           0 :           runtimeType == other.runtimeType &&
+      64           0 :           typeId == other.typeId;
+      65             : }
+      66             : 
+      67             : // **************************************************************************
+      68             : // JsonSerializableGenerator
+      69             : // **************************************************************************
+      70             : 
+      71           0 : TrackedDayDBO _$TrackedDayDBOFromJson(Map<String, dynamic> json) =>
+      72           0 :     TrackedDayDBO(
+      73           0 :       day: DateTime.parse(json['day'] as String),
+      74           0 :       calorieGoal: (json['calorieGoal'] as num).toDouble(),
+      75           0 :       caloriesTracked: (json['caloriesTracked'] as num).toDouble(),
+      76           0 :       carbsGoal: (json['carbsGoal'] as num?)?.toDouble(),
+      77           0 :       carbsTracked: (json['carbsTracked'] as num?)?.toDouble(),
+      78           0 :       fatGoal: (json['fatGoal'] as num?)?.toDouble(),
+      79           0 :       fatTracked: (json['fatTracked'] as num?)?.toDouble(),
+      80           0 :       proteinGoal: (json['proteinGoal'] as num?)?.toDouble(),
+      81           0 :       proteinTracked: (json['proteinTracked'] as num?)?.toDouble(),
+      82             :     );
+      83             : 
+      84           0 : Map<String, dynamic> _$TrackedDayDBOToJson(TrackedDayDBO instance) =>
+      85           0 :     <String, dynamic>{
+      86           0 :       'day': instance.day.toIso8601String(),
+      87           0 :       'calorieGoal': instance.calorieGoal,
+      88           0 :       'caloriesTracked': instance.caloriesTracked,
+      89           0 :       'carbsGoal': instance.carbsGoal,
+      90           0 :       'carbsTracked': instance.carbsTracked,
+      91           0 :       'fatGoal': instance.fatGoal,
+      92           0 :       'fatTracked': instance.fatTracked,
+      93           0 :       'proteinGoal': instance.proteinGoal,
+      94           0 :       'proteinTracked': instance.proteinTracked,
+      95             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..9d36b21ca --- /dev/null +++ b/coverage/html/core/data/dbo/user_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_dbo.dart.func.html b/coverage/html/core/data/dbo/user_dbo.dart.func.html new file mode 100644 index 000000000..28541c820 --- /dev/null +++ b/coverage/html/core/data/dbo/user_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_dbo.dart.gcov.html b/coverage/html/core/data/dbo/user_dbo.dart.gcov.html new file mode 100644 index 000000000..d95cfd0b0 --- /dev/null +++ b/coverage/html/core/data/dbo/user_dbo.dart.gcov.html @@ -0,0 +1,117 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive_flutter/hive_flutter.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/user_gender_dbo.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/user_pal_dbo.dart';
+       4             : import 'package:opennutritracker/core/data/dbo/user_weight_goal_dbo.dart';
+       5             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       6             : 
+       7             : part 'user_dbo.g.dart';
+       8             : 
+       9             : @HiveType(typeId: 5)
+      10             : class UserDBO extends HiveObject {
+      11             :   @HiveField(0)
+      12             :   DateTime birthday;
+      13             :   @HiveField(1)
+      14             :   double heightCM;
+      15             :   @HiveField(2)
+      16             :   double weightKG;
+      17             :   @HiveField(3)
+      18             :   UserGenderDBO gender;
+      19             :   @HiveField(4)
+      20             :   UserWeightGoalDBO goal;
+      21             :   @HiveField(5)
+      22             :   UserPALDBO pal;
+      23             : 
+      24           0 :   UserDBO(
+      25             :       {required this.birthday,
+      26             :       required this.heightCM,
+      27             :       required this.weightKG,
+      28             :       required this.gender,
+      29             :       required this.goal,
+      30             :       required this.pal});
+      31             : 
+      32           0 :   factory UserDBO.fromUserEntity(UserEntity entity) {
+      33           0 :     return UserDBO(
+      34           0 :         birthday: entity.birthday,
+      35           0 :         heightCM: entity.heightCM,
+      36           0 :         weightKG: entity.weightKG,
+      37           0 :         gender: UserGenderDBO.fromUserGenderEntity(entity.gender),
+      38           0 :         goal: UserWeightGoalDBO.fromUserWeightGoalEntity(entity.goal),
+      39           0 :         pal: UserPALDBO.fromUserPALEntity(entity.pal));
+      40             :   }
+      41             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..37e852801 --- /dev/null +++ b/coverage/html/core/data/dbo/user_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0310.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_dbo.g.dart.func.html b/coverage/html/core/data/dbo/user_dbo.g.dart.func.html new file mode 100644 index 000000000..1d33bcea5 --- /dev/null +++ b/coverage/html/core/data/dbo/user_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0310.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/user_dbo.g.dart.gcov.html new file mode 100644 index 000000000..f222e9091 --- /dev/null +++ b/coverage/html/core/data/dbo/user_dbo.g.dart.gcov.html @@ -0,0 +1,132 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0310.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'user_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class UserDBOAdapter extends TypeAdapter<UserDBO> {
+      10             :   @override
+      11             :   final int typeId = 5;
+      12             : 
+      13           0 :   @override
+      14             :   UserDBO read(BinaryReader reader) {
+      15           0 :     final numOfFields = reader.readByte();
+      16           0 :     final fields = <int, dynamic>{
+      17           0 :       for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
+      18             :     };
+      19           0 :     return UserDBO(
+      20           0 :       birthday: fields[0] as DateTime,
+      21           0 :       heightCM: fields[1] as double,
+      22           0 :       weightKG: fields[2] as double,
+      23           0 :       gender: fields[3] as UserGenderDBO,
+      24           0 :       goal: fields[4] as UserWeightGoalDBO,
+      25           0 :       pal: fields[5] as UserPALDBO,
+      26             :     );
+      27             :   }
+      28             : 
+      29           0 :   @override
+      30             :   void write(BinaryWriter writer, UserDBO obj) {
+      31             :     writer
+      32           0 :       ..writeByte(6)
+      33           0 :       ..writeByte(0)
+      34           0 :       ..write(obj.birthday)
+      35           0 :       ..writeByte(1)
+      36           0 :       ..write(obj.heightCM)
+      37           0 :       ..writeByte(2)
+      38           0 :       ..write(obj.weightKG)
+      39           0 :       ..writeByte(3)
+      40           0 :       ..write(obj.gender)
+      41           0 :       ..writeByte(4)
+      42           0 :       ..write(obj.goal)
+      43           0 :       ..writeByte(5)
+      44           0 :       ..write(obj.pal);
+      45             :   }
+      46             : 
+      47           0 :   @override
+      48           0 :   int get hashCode => typeId.hashCode;
+      49             : 
+      50           0 :   @override
+      51             :   bool operator ==(Object other) =>
+      52             :       identical(this, other) ||
+      53           0 :       other is UserDBOAdapter &&
+      54           0 :           runtimeType == other.runtimeType &&
+      55           0 :           typeId == other.typeId;
+      56             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_gender_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_gender_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..7e0bea15f --- /dev/null +++ b/coverage/html/core/data/dbo/user_gender_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_gender_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_gender_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_gender_dbo.dart.func.html b/coverage/html/core/data/dbo/user_gender_dbo.dart.func.html new file mode 100644 index 000000000..0f88e2e58 --- /dev/null +++ b/coverage/html/core/data/dbo/user_gender_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_gender_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_gender_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_gender_dbo.dart.gcov.html b/coverage/html/core/data/dbo/user_gender_dbo.dart.gcov.html new file mode 100644 index 000000000..9de0b4ce9 --- /dev/null +++ b/coverage/html/core/data/dbo/user_gender_dbo.dart.gcov.html @@ -0,0 +1,101 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_gender_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_gender_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive/hive.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_gender_entity.dart';
+       3             : 
+       4             : part 'user_gender_dbo.g.dart';
+       5             : 
+       6             : @HiveType(typeId: 6)
+       7             : enum UserGenderDBO {
+       8             :   @HiveField(0)
+       9             :   male,
+      10             :   @HiveField(1)
+      11             :   female;
+      12             : 
+      13           0 :   factory UserGenderDBO.fromUserGenderEntity(UserGenderEntity genderEntity) {
+      14             :     UserGenderDBO gender;
+      15             :     switch (genderEntity) {
+      16           0 :       case UserGenderEntity.male:
+      17             :         gender = UserGenderDBO.male;
+      18             :         break;
+      19           0 :       case UserGenderEntity.female:
+      20             :         gender = UserGenderDBO.female;
+      21             :         break;
+      22             :     }
+      23             :     return gender;
+      24             :   }
+      25             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_gender_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_gender_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..2cc69dc07 --- /dev/null +++ b/coverage/html/core/data/dbo/user_gender_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_gender_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_gender_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0150.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_gender_dbo.g.dart.func.html b/coverage/html/core/data/dbo/user_gender_dbo.g.dart.func.html new file mode 100644 index 000000000..013145b79 --- /dev/null +++ b/coverage/html/core/data/dbo/user_gender_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_gender_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_gender_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0150.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_gender_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/user_gender_dbo.g.dart.gcov.html new file mode 100644 index 000000000..62505e9c7 --- /dev/null +++ b/coverage/html/core/data/dbo/user_gender_dbo.g.dart.gcov.html @@ -0,0 +1,122 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_gender_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_gender_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0150.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'user_gender_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class UserGenderDBOAdapter extends TypeAdapter<UserGenderDBO> {
+      10             :   @override
+      11             :   final int typeId = 6;
+      12             : 
+      13           0 :   @override
+      14             :   UserGenderDBO read(BinaryReader reader) {
+      15           0 :     switch (reader.readByte()) {
+      16           0 :       case 0:
+      17             :         return UserGenderDBO.male;
+      18           0 :       case 1:
+      19             :         return UserGenderDBO.female;
+      20             :       default:
+      21             :         return UserGenderDBO.male;
+      22             :     }
+      23             :   }
+      24             : 
+      25           0 :   @override
+      26             :   void write(BinaryWriter writer, UserGenderDBO obj) {
+      27             :     switch (obj) {
+      28           0 :       case UserGenderDBO.male:
+      29           0 :         writer.writeByte(0);
+      30             :         break;
+      31           0 :       case UserGenderDBO.female:
+      32           0 :         writer.writeByte(1);
+      33             :         break;
+      34             :     }
+      35             :   }
+      36             : 
+      37           0 :   @override
+      38           0 :   int get hashCode => typeId.hashCode;
+      39             : 
+      40           0 :   @override
+      41             :   bool operator ==(Object other) =>
+      42             :       identical(this, other) ||
+      43           0 :       other is UserGenderDBOAdapter &&
+      44           0 :           runtimeType == other.runtimeType &&
+      45           0 :           typeId == other.typeId;
+      46             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_pal_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_pal_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..59f7dcfec --- /dev/null +++ b/coverage/html/core/data/dbo/user_pal_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_pal_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_pal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:050.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_pal_dbo.dart.func.html b/coverage/html/core/data/dbo/user_pal_dbo.dart.func.html new file mode 100644 index 000000000..1ee4f5905 --- /dev/null +++ b/coverage/html/core/data/dbo/user_pal_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_pal_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_pal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:050.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_pal_dbo.dart.gcov.html b/coverage/html/core/data/dbo/user_pal_dbo.dart.gcov.html new file mode 100644 index 000000000..908359e9e --- /dev/null +++ b/coverage/html/core/data/dbo/user_pal_dbo.dart.gcov.html @@ -0,0 +1,111 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_pal_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_pal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:050.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive/hive.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_pal_entity.dart';
+       3             : 
+       4             : part 'user_pal_dbo.g.dart';
+       5             : 
+       6             : @HiveType(typeId: 8)
+       7             : enum UserPALDBO {
+       8             :   @HiveField(0)
+       9             :   sedentary,
+      10             :   @HiveField(1)
+      11             :   lowActive,
+      12             :   @HiveField(2)
+      13             :   active,
+      14             :   @HiveField(3)
+      15             :   veryActive;
+      16             : 
+      17           0 :   factory UserPALDBO.fromUserPALEntity(UserPALEntity palEntity) {
+      18             :     UserPALDBO palDBO;
+      19             :     switch (palEntity) {
+      20           0 :       case UserPALEntity.sedentary:
+      21             :         palDBO = UserPALDBO.sedentary;
+      22             :         break;
+      23           0 :       case UserPALEntity.lowActive:
+      24             :         palDBO = UserPALDBO.lowActive;
+      25             :         break;
+      26           0 :       case UserPALEntity.active:
+      27             :         palDBO = UserPALDBO.active;
+      28             :         break;
+      29           0 :       case UserPALEntity.veryActive:
+      30             :         palDBO = UserPALDBO.veryActive;
+      31             :         break;
+      32             :     }
+      33             :     return palDBO;
+      34             :   }
+      35             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_pal_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_pal_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..ca5b6c854 --- /dev/null +++ b/coverage/html/core/data/dbo/user_pal_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_pal_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_pal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0210.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_pal_dbo.g.dart.func.html b/coverage/html/core/data/dbo/user_pal_dbo.g.dart.func.html new file mode 100644 index 000000000..ac3e56b19 --- /dev/null +++ b/coverage/html/core/data/dbo/user_pal_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_pal_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_pal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0210.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_pal_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/user_pal_dbo.g.dart.gcov.html new file mode 100644 index 000000000..10c99eb4b --- /dev/null +++ b/coverage/html/core/data/dbo/user_pal_dbo.g.dart.gcov.html @@ -0,0 +1,132 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_pal_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_pal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0210.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'user_pal_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class UserPALDBOAdapter extends TypeAdapter<UserPALDBO> {
+      10             :   @override
+      11             :   final int typeId = 8;
+      12             : 
+      13           0 :   @override
+      14             :   UserPALDBO read(BinaryReader reader) {
+      15           0 :     switch (reader.readByte()) {
+      16           0 :       case 0:
+      17             :         return UserPALDBO.sedentary;
+      18           0 :       case 1:
+      19             :         return UserPALDBO.lowActive;
+      20           0 :       case 2:
+      21             :         return UserPALDBO.active;
+      22           0 :       case 3:
+      23             :         return UserPALDBO.veryActive;
+      24             :       default:
+      25             :         return UserPALDBO.sedentary;
+      26             :     }
+      27             :   }
+      28             : 
+      29           0 :   @override
+      30             :   void write(BinaryWriter writer, UserPALDBO obj) {
+      31             :     switch (obj) {
+      32           0 :       case UserPALDBO.sedentary:
+      33           0 :         writer.writeByte(0);
+      34             :         break;
+      35           0 :       case UserPALDBO.lowActive:
+      36           0 :         writer.writeByte(1);
+      37             :         break;
+      38           0 :       case UserPALDBO.active:
+      39           0 :         writer.writeByte(2);
+      40             :         break;
+      41           0 :       case UserPALDBO.veryActive:
+      42           0 :         writer.writeByte(3);
+      43             :         break;
+      44             :     }
+      45             :   }
+      46             : 
+      47           0 :   @override
+      48           0 :   int get hashCode => typeId.hashCode;
+      49             : 
+      50           0 :   @override
+      51             :   bool operator ==(Object other) =>
+      52             :       identical(this, other) ||
+      53           0 :       other is UserPALDBOAdapter &&
+      54           0 :           runtimeType == other.runtimeType &&
+      55           0 :           typeId == other.typeId;
+      56             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.func-sort-c.html new file mode 100644 index 000000000..c0c29e829 --- /dev/null +++ b/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_weight_goal_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_weight_goal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.func.html b/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.func.html new file mode 100644 index 000000000..1c5e3b17c --- /dev/null +++ b/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_weight_goal_dbo.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_weight_goal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.gcov.html b/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.gcov.html new file mode 100644 index 000000000..c62c0dd87 --- /dev/null +++ b/coverage/html/core/data/dbo/user_weight_goal_dbo.dart.gcov.html @@ -0,0 +1,107 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_weight_goal_dbo.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_weight_goal_dbo.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:hive/hive.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_weight_goal_entity.dart';
+       3             : 
+       4             : part 'user_weight_goal_dbo.g.dart';
+       5             : 
+       6             : @HiveType(typeId: 7)
+       7             : enum UserWeightGoalDBO {
+       8             :   @HiveField(0)
+       9             :   loseWeight,
+      10             :   @HiveField(1)
+      11             :   maintainWeight,
+      12             :   @HiveField(2)
+      13             :   gainWeight;
+      14             : 
+      15           0 :   factory UserWeightGoalDBO.fromUserWeightGoalEntity(
+      16             :       UserWeightGoalEntity goalEntity) {
+      17             :     UserWeightGoalDBO weightGoalDBO;
+      18             :     switch (goalEntity) {
+      19           0 :       case UserWeightGoalEntity.loseWeight:
+      20             :         weightGoalDBO = UserWeightGoalDBO.loseWeight;
+      21             :         break;
+      22           0 :       case UserWeightGoalEntity.maintainWeight:
+      23             :         weightGoalDBO = UserWeightGoalDBO.maintainWeight;
+      24             :         break;
+      25           0 :       case UserWeightGoalEntity.gainWeight:
+      26             :         weightGoalDBO = UserWeightGoalDBO.gainWeight;
+      27             :         break;
+      28             :     }
+      29             :     return weightGoalDBO;
+      30             :   }
+      31             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.func-sort-c.html b/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.func-sort-c.html new file mode 100644 index 000000000..f6e31410d --- /dev/null +++ b/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_weight_goal_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_weight_goal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.func.html b/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.func.html new file mode 100644 index 000000000..d525e068b --- /dev/null +++ b/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_weight_goal_dbo.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_weight_goal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.gcov.html b/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.gcov.html new file mode 100644 index 000000000..585708a60 --- /dev/null +++ b/coverage/html/core/data/dbo/user_weight_goal_dbo.g.dart.gcov.html @@ -0,0 +1,127 @@ + + + + + + + LCOV - lcov.info - core/data/dbo/user_weight_goal_dbo.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/dbo - user_weight_goal_dbo.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'user_weight_goal_dbo.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // TypeAdapterGenerator
+       7             : // **************************************************************************
+       8             : 
+       9             : class UserWeightGoalDBOAdapter extends TypeAdapter<UserWeightGoalDBO> {
+      10             :   @override
+      11             :   final int typeId = 7;
+      12             : 
+      13           0 :   @override
+      14             :   UserWeightGoalDBO read(BinaryReader reader) {
+      15           0 :     switch (reader.readByte()) {
+      16           0 :       case 0:
+      17             :         return UserWeightGoalDBO.loseWeight;
+      18           0 :       case 1:
+      19             :         return UserWeightGoalDBO.maintainWeight;
+      20           0 :       case 2:
+      21             :         return UserWeightGoalDBO.gainWeight;
+      22             :       default:
+      23             :         return UserWeightGoalDBO.loseWeight;
+      24             :     }
+      25             :   }
+      26             : 
+      27           0 :   @override
+      28             :   void write(BinaryWriter writer, UserWeightGoalDBO obj) {
+      29             :     switch (obj) {
+      30           0 :       case UserWeightGoalDBO.loseWeight:
+      31           0 :         writer.writeByte(0);
+      32             :         break;
+      33           0 :       case UserWeightGoalDBO.maintainWeight:
+      34           0 :         writer.writeByte(1);
+      35             :         break;
+      36           0 :       case UserWeightGoalDBO.gainWeight:
+      37           0 :         writer.writeByte(2);
+      38             :         break;
+      39             :     }
+      40             :   }
+      41             : 
+      42           0 :   @override
+      43           0 :   int get hashCode => typeId.hashCode;
+      44             : 
+      45           0 :   @override
+      46             :   bool operator ==(Object other) =>
+      47             :       identical(this, other) ||
+      48           0 :       other is UserWeightGoalDBOAdapter &&
+      49           0 :           runtimeType == other.runtimeType &&
+      50           0 :           typeId == other.typeId;
+      51             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/config_repository.dart.func-sort-c.html b/coverage/html/core/data/repository/config_repository.dart.func-sort-c.html new file mode 100644 index 000000000..5eed2cb79 --- /dev/null +++ b/coverage/html/core/data/repository/config_repository.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/config_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - config_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0310.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/config_repository.dart.func.html b/coverage/html/core/data/repository/config_repository.dart.func.html new file mode 100644 index 000000000..63179d841 --- /dev/null +++ b/coverage/html/core/data/repository/config_repository.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/config_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - config_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0310.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/config_repository.dart.gcov.html b/coverage/html/core/data/repository/config_repository.dart.gcov.html new file mode 100644 index 000000000..6b7806949 --- /dev/null +++ b/coverage/html/core/data/repository/config_repository.dart.gcov.html @@ -0,0 +1,142 @@ + + + + + + + LCOV - lcov.info - core/data/repository/config_repository.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - config_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0310.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/data_source/config_data_source.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/app_theme_dbo.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/config_dbo.dart';
+       4             : import 'package:opennutritracker/core/domain/entity/app_theme_entity.dart';
+       5             : import 'package:opennutritracker/core/domain/entity/config_entity.dart';
+       6             : 
+       7             : class ConfigRepository {
+       8             :   final ConfigDataSource _configDataSource;
+       9             : 
+      10           0 :   ConfigRepository(this._configDataSource);
+      11             : 
+      12           0 :   Future<void> updateConfig(ConfigEntity configEntity) async {
+      13           0 :     final configDBO = ConfigDBO.fromConfigEntity(configEntity);
+      14           0 :     _configDataSource.addConfig(configDBO);
+      15             :   }
+      16             : 
+      17           0 :   Future<void> setConfigDisclaimer(bool hasAcceptedDisclaimer) async {
+      18           0 :     _configDataSource.setConfigDisclaimer(hasAcceptedDisclaimer);
+      19             :   }
+      20             : 
+      21           0 :   Future<void> setConfigHasAcceptedAnonymousData(
+      22             :       bool hasAcceptedAnonymousData) async {
+      23           0 :     _configDataSource.setConfigAcceptedAnonymousData(hasAcceptedAnonymousData);
+      24             :   }
+      25             : 
+      26           0 :   Future<bool> getConfigHasAcceptedAnonymousData() async {
+      27           0 :     return await _configDataSource.getHasAcceptedAnonymousData();
+      28             :   }
+      29             : 
+      30           0 :   Future<AppThemeEntity> getConfigAppTheme() async {
+      31           0 :     final appThemeDBO = await _configDataSource.getAppTheme();
+      32           0 :     return AppThemeEntity.fromAppThemeDBO(appThemeDBO);
+      33             :   }
+      34             : 
+      35           0 :   Future<void> setConfigAppTheme(AppThemeEntity appTheme) async {
+      36           0 :     await _configDataSource
+      37           0 :         .setConfigAppTheme(AppThemeDBO.fromAppThemeEntity(appTheme));
+      38             :   }
+      39             : 
+      40           0 :   Future<ConfigEntity> getConfig() async {
+      41           0 :     final configDBO = await _configDataSource.getConfig();
+      42           0 :     return ConfigEntity.fromConfigDBO(configDBO);
+      43             :   }
+      44             : 
+      45           0 :   Future<ConfigDBO> getConfigDBO() async {
+      46           0 :     final configDBO = await _configDataSource.getConfig();
+      47             :     return configDBO;
+      48             :   }
+      49           0 :   Future<void> setConfigUsesImperialUnits(bool usesImperialUnits) async {
+      50           0 :     _configDataSource.setConfigUsesImperialUnits(usesImperialUnits);
+      51             :   }
+      52             : 
+      53           0 :   Future<double> getConfigKcalAdjustment() async {
+      54           0 :     return await _configDataSource.getKcalAdjustment();
+      55             :   }
+      56             : 
+      57           0 :   Future<void> setConfigKcalAdjustment(double kcalAdjustment) async {
+      58           0 :     _configDataSource.setConfigKcalAdjustment(kcalAdjustment);
+      59             :   }
+      60             : 
+      61           0 :   Future<void> setUserMacroPct(double carbs, double protein, double fat) async {
+      62           0 :     _configDataSource.setConfigCarbGoalPct(carbs);
+      63           0 :     _configDataSource.setConfigProteinGoalPct(protein);
+      64           0 :     _configDataSource.setConfigFatGoalPct(fat);
+      65             :   }
+      66             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/index-sort-f.html b/coverage/html/core/data/repository/index-sort-f.html new file mode 100644 index 000000000..4d353d4e9 --- /dev/null +++ b/coverage/html/core/data/repository/index-sort-f.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - core/data/repository + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repositoryHitTotalCoverage
Test:lcov.infoLines:81256.4 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
intake_repository.dart +
32.0%32.0%
+
32.0 %8 / 25-0 / 0
user_activity_repository.dart +
0.0%
+
0.0 %0 / 20-0 / 0
user_repository.dart +
0.0%
+
0.0 %0 / 10-0 / 0
tracked_day_repository.dart +
0.0%
+
0.0 %0 / 39-0 / 0
config_repository.dart +
0.0%
+
0.0 %0 / 31-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/index-sort-l.html b/coverage/html/core/data/repository/index-sort-l.html new file mode 100644 index 000000000..dcf4f84b2 --- /dev/null +++ b/coverage/html/core/data/repository/index-sort-l.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - core/data/repository + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repositoryHitTotalCoverage
Test:lcov.infoLines:81256.4 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
user_repository.dart +
0.0%
+
0.0 %0 / 10-0 / 0
user_activity_repository.dart +
0.0%
+
0.0 %0 / 20-0 / 0
config_repository.dart +
0.0%
+
0.0 %0 / 31-0 / 0
tracked_day_repository.dart +
0.0%
+
0.0 %0 / 39-0 / 0
intake_repository.dart +
32.0%32.0%
+
32.0 %8 / 25-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/index.html b/coverage/html/core/data/repository/index.html new file mode 100644 index 000000000..99f4134fa --- /dev/null +++ b/coverage/html/core/data/repository/index.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - core/data/repository + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repositoryHitTotalCoverage
Test:lcov.infoLines:81256.4 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
config_repository.dart +
0.0%
+
0.0 %0 / 31-0 / 0
intake_repository.dart +
32.0%32.0%
+
32.0 %8 / 25-0 / 0
tracked_day_repository.dart +
0.0%
+
0.0 %0 / 39-0 / 0
user_activity_repository.dart +
0.0%
+
0.0 %0 / 20-0 / 0
user_repository.dart +
0.0%
+
0.0 %0 / 10-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/intake_repository.dart.func-sort-c.html b/coverage/html/core/data/repository/intake_repository.dart.func-sort-c.html new file mode 100644 index 000000000..4d52c48c0 --- /dev/null +++ b/coverage/html/core/data/repository/intake_repository.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/intake_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - intake_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:82532.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/intake_repository.dart.func.html b/coverage/html/core/data/repository/intake_repository.dart.func.html new file mode 100644 index 000000000..9dd1f6bab --- /dev/null +++ b/coverage/html/core/data/repository/intake_repository.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/intake_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - intake_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:82532.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/intake_repository.dart.gcov.html b/coverage/html/core/data/repository/intake_repository.dart.gcov.html new file mode 100644 index 000000000..8b74643b5 --- /dev/null +++ b/coverage/html/core/data/repository/intake_repository.dart.gcov.html @@ -0,0 +1,134 @@ + + + + + + + LCOV - lcov.info - core/data/repository/intake_repository.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - intake_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:82532.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/data_source/intake_data_source.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/intake_dbo.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/intake_type_dbo.dart';
+       4             : import 'package:opennutritracker/core/domain/entity/intake_entity.dart';
+       5             : import 'package:opennutritracker/core/domain/entity/intake_type_entity.dart';
+       6             : 
+       7             : class IntakeRepository {
+       8             :   final IntakeDataSource _intakeDataSource;
+       9             : 
+      10           1 :   IntakeRepository(this._intakeDataSource);
+      11             : 
+      12           1 :   Future<void> addIntake(IntakeEntity intakeEntity) async {
+      13           1 :     final intakeDBO = IntakeDBO.fromIntakeEntity(intakeEntity);
+      14             : 
+      15           2 :     await _intakeDataSource.addIntake(intakeDBO);
+      16             :   }
+      17             : 
+      18           0 :   Future<void> addAllIntakeDBOs(List<IntakeDBO> intakeDBOs) async {
+      19           0 :     await _intakeDataSource.addAllIntakes(intakeDBOs);
+      20             :   }
+      21             : 
+      22           0 :   Future<void> deleteIntake(IntakeEntity intakeEntity) async {
+      23           0 :     await _intakeDataSource.deleteIntakeFromId(intakeEntity.id);
+      24             :   }
+      25             : 
+      26           0 :   Future<IntakeEntity?> updateIntake(
+      27             :       String intakeId, Map<String, dynamic> fields) async {
+      28           0 :     var result = await _intakeDataSource.updateIntake(intakeId, fields);
+      29           0 :     return result == null ? null : IntakeEntity.fromIntakeDBO(result);
+      30             :   }
+      31             : 
+      32           0 :   Future<List<IntakeDBO>> getAllIntakesDBO() async {
+      33           0 :     return await _intakeDataSource.getAllIntakes();
+      34             :   }
+      35             : 
+      36           0 :   Future<List<IntakeEntity>> getIntakeByDateAndType(
+      37             :       IntakeTypeEntity intakeType, DateTime date) async {
+      38           0 :     final intakeDBOList = await _intakeDataSource.getAllIntakesByDate(
+      39           0 :         IntakeTypeDBO.fromIntakeTypeEntity(intakeType), date);
+      40             : 
+      41             :     return intakeDBOList
+      42           0 :         .map((intakeDBO) => IntakeEntity.fromIntakeDBO(intakeDBO))
+      43           0 :         .toList();
+      44             :   }
+      45             : 
+      46           1 :   Future<List<IntakeEntity>> getRecentIntake() async {
+      47           2 :     final intakeList = await _intakeDataSource.getRecentlyAddedIntake();
+      48             : 
+      49             :     return intakeList
+      50           3 :         .map((intakeDBO) => IntakeEntity.fromIntakeDBO(intakeDBO))
+      51           1 :         .toList();
+      52             :   }
+      53             : 
+      54           0 :   Future<IntakeEntity?> getIntakeById(String intakeId) async {
+      55           0 :     final result = await _intakeDataSource.getIntakeById(intakeId);
+      56           0 :     return result == null ? null : IntakeEntity.fromIntakeDBO(result);
+      57             :   }
+      58             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/tracked_day_repository.dart.func-sort-c.html b/coverage/html/core/data/repository/tracked_day_repository.dart.func-sort-c.html new file mode 100644 index 000000000..744c0005a --- /dev/null +++ b/coverage/html/core/data/repository/tracked_day_repository.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/tracked_day_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - tracked_day_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0390.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/tracked_day_repository.dart.func.html b/coverage/html/core/data/repository/tracked_day_repository.dart.func.html new file mode 100644 index 000000000..9e253feb7 --- /dev/null +++ b/coverage/html/core/data/repository/tracked_day_repository.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/tracked_day_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - tracked_day_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0390.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/tracked_day_repository.dart.gcov.html b/coverage/html/core/data/repository/tracked_day_repository.dart.gcov.html new file mode 100644 index 000000000..6b67536d9 --- /dev/null +++ b/coverage/html/core/data/repository/tracked_day_repository.dart.gcov.html @@ -0,0 +1,203 @@ + + + + + + + LCOV - lcov.info - core/data/repository/tracked_day_repository.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - tracked_day_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0390.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/data_source/tracked_day_data_source.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/tracked_day_dbo.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/tracked_day_entity.dart';
+       4             : 
+       5             : class TrackedDayRepository {
+       6             :   final TrackedDayDataSource _trackedDayDataSource;
+       7             : 
+       8           0 :   TrackedDayRepository(this._trackedDayDataSource);
+       9             : 
+      10           0 :   Future<List<TrackedDayDBO>> getAllTrackedDaysDBO() async {
+      11           0 :     return await _trackedDayDataSource.getAllTrackedDays();
+      12             :   }
+      13             : 
+      14           0 :   Future<TrackedDayEntity?> getTrackedDay(DateTime day) async {
+      15           0 :     final trackedDay = await _trackedDayDataSource.getTrackedDay(day);
+      16             :     if (trackedDay != null) {
+      17           0 :       return TrackedDayEntity.fromTrackedDayDBO(trackedDay);
+      18             :     } else {
+      19             :       return null;
+      20             :     }
+      21             :   }
+      22             : 
+      23           0 :   Future<bool> hasTrackedDay(DateTime day) async {
+      24           0 :     final trackedDay = await getTrackedDay(day);
+      25             :     if (trackedDay != null) {
+      26             :       return true;
+      27             :     } else {
+      28             :       return false;
+      29             :     }
+      30             :   }
+      31             : 
+      32           0 :   Future<List<TrackedDayEntity>> getTrackedDayByRange(
+      33             :       DateTime start, DateTime end) async {
+      34             :     final List<TrackedDayDBO> trackedDaysDBO =
+      35           0 :         await _trackedDayDataSource.getTrackedDaysInRange(start, end);
+      36             : 
+      37             :     return trackedDaysDBO
+      38           0 :         .map((trackedDayDBO) =>
+      39           0 :             TrackedDayEntity.fromTrackedDayDBO(trackedDayDBO))
+      40           0 :         .toList();
+      41             :   }
+      42             : 
+      43           0 :   Future<void> updateDayCalorieGoal(DateTime day, double calorieGoal) async {
+      44           0 :     _trackedDayDataSource.updateDayCalorieGoal(day, calorieGoal);
+      45             :   }
+      46             : 
+      47           0 :   Future<void> increaseDayCalorieGoal(DateTime day, double amount) async {
+      48           0 :     _trackedDayDataSource.increaseDayCalorieGoal(day, amount);
+      49             :   }
+      50             : 
+      51           0 :   Future<void> reduceDayCalorieGoal(DateTime day, double amount) async {
+      52           0 :     _trackedDayDataSource.reduceDayCalorieGoal(day, amount);
+      53             :   }
+      54             : 
+      55           0 :   Future<void> addNewTrackedDay(
+      56             :       DateTime day,
+      57             :       double totalKcalGoal,
+      58             :       double totalCarbsGoal,
+      59             :       double totalFatGoal,
+      60             :       double totalProteinGoal) async {
+      61           0 :     _trackedDayDataSource.saveTrackedDay(TrackedDayDBO(
+      62             :         day: day,
+      63             :         calorieGoal: totalKcalGoal,
+      64             :         caloriesTracked: 0,
+      65             :         carbsGoal: totalCarbsGoal,
+      66             :         carbsTracked: 0,
+      67             :         fatGoal: totalFatGoal,
+      68             :         fatTracked: 0,
+      69             :         proteinGoal: totalProteinGoal,
+      70             :         proteinTracked: 0));
+      71             :   }
+      72             : 
+      73           0 :   Future<void> addAllTrackedDays(List<TrackedDayDBO> trackedDaysDBO) async {
+      74           0 :     await _trackedDayDataSource.saveAllTrackedDays(trackedDaysDBO);
+      75             :   }
+      76             : 
+      77           0 :   Future<void> addDayTrackedCalories(DateTime day, double addCalories) async {
+      78           0 :     if (await _trackedDayDataSource.hasTrackedDay(day)) {
+      79           0 :       _trackedDayDataSource.addDayCaloriesTracked(day, addCalories);
+      80             :     }
+      81             :   }
+      82             : 
+      83           0 :   Future<void> removeDayTrackedCalories(
+      84             :       DateTime day, double addCalories) async {
+      85           0 :     if (await _trackedDayDataSource.hasTrackedDay(day)) {
+      86           0 :       _trackedDayDataSource.decreaseDayCaloriesTracked(day, addCalories);
+      87             :     }
+      88             :   }
+      89             : 
+      90           0 :   Future<void> updateDayMacroGoal(DateTime day,
+      91             :       {double? carbGoal, double? fatGoal, double? proteinGoal}) async {
+      92           0 :     _trackedDayDataSource.updateDayMacroGoals(day,
+      93             :         carbsGoal: carbGoal, fatGoal: fatGoal, proteinGoal: proteinGoal);
+      94             :   }
+      95             : 
+      96           0 :   Future<void> increaseDayMacroGoal(DateTime day,
+      97             :       {double? carbGoal, double? fatGoal, double? proteinGoal}) async {
+      98           0 :     _trackedDayDataSource.increaseDayMacroGoal(day,
+      99             :         carbsAmount: carbGoal, fatAmount: fatGoal, proteinAmount: proteinGoal);
+     100             :   }
+     101             : 
+     102           0 :   Future<void> reduceDayMacroGoal(DateTime day,
+     103             :       {double? carbGoal, double? fatGoal, double? proteinGoal}) async {
+     104           0 :     _trackedDayDataSource.reduceDayMacroGoal(day,
+     105             :         carbsAmount: carbGoal, fatAmount: fatGoal, proteinAmount: proteinGoal);
+     106             :   }
+     107             : 
+     108           0 :   Future<void> addDayMacrosTracked(DateTime day,
+     109             :       {double? carbsTracked,
+     110             :       double? fatTracked,
+     111             :       double? proteinTracked}) async {
+     112           0 :     _trackedDayDataSource.addDayMacroTracked(day,
+     113             :         carbsAmount: carbsTracked,
+     114             :         fatAmount: fatTracked,
+     115             :         proteinAmount: proteinTracked);
+     116             :   }
+     117             : 
+     118           0 :   Future<void> removeDayMacrosTracked(DateTime day,
+     119             :       {double? carbsTracked,
+     120             :       double? fatTracked,
+     121             :       double? proteinTracked}) async {
+     122           0 :     _trackedDayDataSource.removeDayMacroTracked(day,
+     123             :         carbsAmount: carbsTracked,
+     124             :         fatAmount: fatTracked,
+     125             :         proteinAmount: proteinTracked);
+     126             :   }
+     127             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/user_activity_repository.dart.func-sort-c.html b/coverage/html/core/data/repository/user_activity_repository.dart.func-sort-c.html new file mode 100644 index 000000000..ff95d6210 --- /dev/null +++ b/coverage/html/core/data/repository/user_activity_repository.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/user_activity_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - user_activity_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0200.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/user_activity_repository.dart.func.html b/coverage/html/core/data/repository/user_activity_repository.dart.func.html new file mode 100644 index 000000000..1b2a8cc07 --- /dev/null +++ b/coverage/html/core/data/repository/user_activity_repository.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/user_activity_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - user_activity_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0200.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/user_activity_repository.dart.gcov.html b/coverage/html/core/data/repository/user_activity_repository.dart.gcov.html new file mode 100644 index 000000000..768c3331a --- /dev/null +++ b/coverage/html/core/data/repository/user_activity_repository.dart.gcov.html @@ -0,0 +1,124 @@ + + + + + + + LCOV - lcov.info - core/data/repository/user_activity_repository.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - user_activity_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0200.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/data_source/user_activity_data_source.dart';
+       2             : import 'package:opennutritracker/core/data/data_source/user_activity_dbo.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/user_activity_entity.dart';
+       4             : 
+       5             : class UserActivityRepository {
+       6             :   final UserActivityDataSource _userActivityDataSource;
+       7             : 
+       8           0 :   UserActivityRepository(this._userActivityDataSource);
+       9             : 
+      10           0 :   Future<void> addUserActivity(UserActivityEntity activityEntity) async {
+      11           0 :     final activityDBO = UserActivityDBO.fromUserActivityEntity(activityEntity);
+      12             : 
+      13           0 :     _userActivityDataSource.addUserActivity(activityDBO);
+      14             :   }
+      15             : 
+      16           0 :   Future<void> addAllUserActivityDBOs(
+      17             :       List<UserActivityDBO> userActivityDBOs) async {
+      18           0 :     await _userActivityDataSource.addAllUserActivities(userActivityDBOs);
+      19             :   }
+      20             : 
+      21           0 :   Future<void> deleteUserActivity(UserActivityEntity userActivityEntity) async {
+      22           0 :     await _userActivityDataSource.deleteIntakeFromId(userActivityEntity.id);
+      23             :   }
+      24             : 
+      25           0 :   Future<List<UserActivityDBO>> getAllUserActivityDBO() async {
+      26           0 :     return await _userActivityDataSource.getAllUserActivities();
+      27             :   }
+      28             : 
+      29           0 :   Future<List<UserActivityEntity>> getAllUserActivityByDate(
+      30             :       DateTime dateTime) async {
+      31             :     final userActivityDBOList =
+      32           0 :         await _userActivityDataSource.getAllUserActivitiesByDate(dateTime);
+      33             : 
+      34             :     return userActivityDBOList
+      35           0 :         .map((userActivityDBO) =>
+      36           0 :             UserActivityEntity.fromUserActivityDBO(userActivityDBO))
+      37           0 :         .toList();
+      38             :   }
+      39             : 
+      40           0 :   Future<List<UserActivityEntity>> getRecentUserActivity() async {
+      41             :     final userActivityDBOList =
+      42           0 :         await _userActivityDataSource.getRecentlyAddedUserActivity();
+      43             :     return userActivityDBOList
+      44           0 :         .map((userActivityDBO) =>
+      45           0 :             UserActivityEntity.fromUserActivityDBO(userActivityDBO))
+      46           0 :         .toList();
+      47             :   }
+      48             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/user_repository.dart.func-sort-c.html b/coverage/html/core/data/repository/user_repository.dart.func-sort-c.html new file mode 100644 index 000000000..3b00c78a1 --- /dev/null +++ b/coverage/html/core/data/repository/user_repository.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/user_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - user_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/user_repository.dart.func.html b/coverage/html/core/data/repository/user_repository.dart.func.html new file mode 100644 index 000000000..a5e821dd0 --- /dev/null +++ b/coverage/html/core/data/repository/user_repository.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/data/repository/user_repository.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - user_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/data/repository/user_repository.dart.gcov.html b/coverage/html/core/data/repository/user_repository.dart.gcov.html new file mode 100644 index 000000000..d55eeac4b --- /dev/null +++ b/coverage/html/core/data/repository/user_repository.dart.gcov.html @@ -0,0 +1,102 @@ + + + + + + + LCOV - lcov.info - core/data/repository/user_repository.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/data/repository - user_repository.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/data_source/user_data_source.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/user_dbo.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       4             : 
+       5             : class UserRepository {
+       6             :   final UserDataSource _userDataSource;
+       7             : 
+       8           0 :   UserRepository(this._userDataSource);
+       9             : 
+      10           0 :   Future<void> updateUserData(UserEntity userEntity) async {
+      11           0 :     final userDBO = UserDBO.fromUserEntity(userEntity);
+      12           0 :     _userDataSource.saveUserData(userDBO);
+      13             :   }
+      14             : 
+      15           0 :   Future<bool> hasUserData() async => await _userDataSource.hasUserData();
+      16             : 
+      17           0 :   Future<UserEntity> getUserData() async {
+      18           0 :     final userDBO = await _userDataSource.getUserData();
+      19           0 :     return UserEntity.fromUserDBO(userDBO);
+      20             :   }
+      21             : 
+      22           0 :   Future<UserDBO> getUserDBO() async {
+      23           0 :     final userDBO = await _userDataSource.getUserData();
+      24             :     return userDBO;
+      25             :   }
+      26             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/app_theme_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/app_theme_entity.dart.func-sort-c.html new file mode 100644 index 000000000..02b5b1666 --- /dev/null +++ b/coverage/html/core/domain/entity/app_theme_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/app_theme_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - app_theme_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/app_theme_entity.dart.func.html b/coverage/html/core/domain/entity/app_theme_entity.dart.func.html new file mode 100644 index 000000000..070cfd857 --- /dev/null +++ b/coverage/html/core/domain/entity/app_theme_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/app_theme_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - app_theme_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/app_theme_entity.dart.gcov.html b/coverage/html/core/domain/entity/app_theme_entity.dart.gcov.html new file mode 100644 index 000000000..390033d05 --- /dev/null +++ b/coverage/html/core/domain/entity/app_theme_entity.dart.gcov.html @@ -0,0 +1,116 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/app_theme_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - app_theme_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/material.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/app_theme_dbo.dart';
+       3             : 
+       4             : enum AppThemeEntity {
+       5             :   light,
+       6             :   dark,
+       7             :   system;
+       8             : 
+       9           0 :   factory AppThemeEntity.fromAppThemeDBO(AppThemeDBO dbo) {
+      10             :     AppThemeEntity entity;
+      11             :     switch (dbo) {
+      12           0 :       case AppThemeDBO.light:
+      13             :         entity = AppThemeEntity.light;
+      14             :         break;
+      15           0 :       case AppThemeDBO.dark:
+      16             :         entity = AppThemeEntity.dark;
+      17             :         break;
+      18           0 :       case AppThemeDBO.system:
+      19             :         entity = AppThemeEntity.system;
+      20             :         break;
+      21             :       }
+      22             :     return entity;
+      23             :   }
+      24             : 
+      25           0 :   ThemeMode toThemeMode() {
+      26             :     ThemeMode mode;
+      27             :     switch (this) {
+      28           0 :       case AppThemeEntity.light:
+      29             :         mode = ThemeMode.light;
+      30             :         break;
+      31           0 :       case AppThemeEntity.dark:
+      32             :         mode = ThemeMode.dark;
+      33             :         break;
+      34           0 :       case AppThemeEntity.system:
+      35             :         mode = ThemeMode.system;
+      36             :         break;
+      37             :     }
+      38             :     return mode;
+      39             :   }
+      40             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/config_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/config_entity.dart.func-sort-c.html new file mode 100644 index 000000000..1e1d46a78 --- /dev/null +++ b/coverage/html/core/domain/entity/config_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/config_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - config_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0210.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/config_entity.dart.func.html b/coverage/html/core/domain/entity/config_entity.dart.func.html new file mode 100644 index 000000000..a437ed7c5 --- /dev/null +++ b/coverage/html/core/domain/entity/config_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/config_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - config_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0210.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/config_entity.dart.gcov.html b/coverage/html/core/domain/entity/config_entity.dart.gcov.html new file mode 100644 index 000000000..59a26e406 --- /dev/null +++ b/coverage/html/core/domain/entity/config_entity.dart.gcov.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/config_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - config_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0210.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:equatable/equatable.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/config_dbo.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/app_theme_entity.dart';
+       4             : 
+       5             : class ConfigEntity extends Equatable {
+       6             :   final bool hasAcceptedDisclaimer;
+       7             :   final bool hasAcceptedPolicy;
+       8             :   final bool hasAcceptedSendAnonymousData;
+       9             :   final AppThemeEntity appTheme;
+      10             :   final bool usesImperialUnits;
+      11             :   final double? userKcalAdjustment;
+      12             :   final double? userCarbGoalPct;
+      13             :   final double? userProteinGoalPct;
+      14             :   final double? userFatGoalPct;
+      15             : 
+      16           0 :   const ConfigEntity(this.hasAcceptedDisclaimer, this.hasAcceptedPolicy,
+      17             :       this.hasAcceptedSendAnonymousData, this.appTheme,
+      18             :       {this.usesImperialUnits = false,
+      19             :       this.userKcalAdjustment,
+      20             :       this.userCarbGoalPct,
+      21             :       this.userProteinGoalPct,
+      22             :       this.userFatGoalPct});
+      23             : 
+      24           0 :   factory ConfigEntity.fromConfigDBO(ConfigDBO dbo) => ConfigEntity(
+      25           0 :         dbo.hasAcceptedDisclaimer,
+      26           0 :         dbo.hasAcceptedPolicy,
+      27           0 :         dbo.hasAcceptedSendAnonymousData,
+      28           0 :         AppThemeEntity.fromAppThemeDBO(dbo.selectedAppTheme),
+      29           0 :         usesImperialUnits: dbo.usesImperialUnits ?? false,
+      30           0 :         userKcalAdjustment: dbo.userKcalAdjustment,
+      31           0 :         userCarbGoalPct: dbo.userCarbGoalPct,
+      32           0 :         userProteinGoalPct: dbo.userProteinGoalPct,
+      33           0 :         userFatGoalPct: dbo.userFatGoalPct,
+      34             :       );
+      35             : 
+      36           0 :   @override
+      37           0 :   List<Object?> get props => [
+      38           0 :         hasAcceptedDisclaimer,
+      39           0 :         hasAcceptedPolicy,
+      40           0 :         hasAcceptedSendAnonymousData,
+      41           0 :         usesImperialUnits,
+      42           0 :         userKcalAdjustment,
+      43           0 :         userCarbGoalPct,
+      44           0 :         userProteinGoalPct,
+      45           0 :         userFatGoalPct,
+      46             :       ];
+      47             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/index-sort-f.html b/coverage/html/core/domain/entity/index-sort-f.html new file mode 100644 index 000000000..eeecf0b98 --- /dev/null +++ b/coverage/html/core/domain/entity/index-sort-f.html @@ -0,0 +1,193 @@ + + + + + + + LCOV - lcov.info - core/domain/entity + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entityHitTotalCoverage
Test:lcov.infoLines:144733.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
intake_entity.dart +
52.9%52.9%
+
52.9 %9 / 17-0 / 0
tracked_day_entity.dart +
0.0%
+
0.0 %0 / 40-0 / 0
intake_type_entity.dart +
20.0%20.0%
+
20.0 %2 / 10-0 / 0
user_entity.dart +
20.0%20.0%
+
20.0 %2 / 10-0 / 0
user_pal_entity.dart +
0.0%
+
0.0 %0 / 14-0 / 0
user_weight_goal_entity.dart +
0.0%
+
0.0 %0 / 11-0 / 0
config_entity.dart +
0.0%
+
0.0 %0 / 21-0 / 0
user_gender_entity.dart +
0.0%
+
0.0 %0 / 11-0 / 0
physical_activity_entity.dart +
0.3%0.3%
+
0.3 %1 / 319-0 / 0
user_activity_entity.dart +
0.0%
+
0.0 %0 / 12-0 / 0
app_theme_entity.dart +
0.0%
+
0.0 %0 / 8-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/index-sort-l.html b/coverage/html/core/domain/entity/index-sort-l.html new file mode 100644 index 000000000..7779309a4 --- /dev/null +++ b/coverage/html/core/domain/entity/index-sort-l.html @@ -0,0 +1,193 @@ + + + + + + + LCOV - lcov.info - core/domain/entity + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entityHitTotalCoverage
Test:lcov.infoLines:144733.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
app_theme_entity.dart +
0.0%
+
0.0 %0 / 8-0 / 0
user_weight_goal_entity.dart +
0.0%
+
0.0 %0 / 11-0 / 0
user_gender_entity.dart +
0.0%
+
0.0 %0 / 11-0 / 0
user_activity_entity.dart +
0.0%
+
0.0 %0 / 12-0 / 0
user_pal_entity.dart +
0.0%
+
0.0 %0 / 14-0 / 0
config_entity.dart +
0.0%
+
0.0 %0 / 21-0 / 0
tracked_day_entity.dart +
0.0%
+
0.0 %0 / 40-0 / 0
physical_activity_entity.dart +
0.3%0.3%
+
0.3 %1 / 319-0 / 0
intake_type_entity.dart +
20.0%20.0%
+
20.0 %2 / 10-0 / 0
user_entity.dart +
20.0%20.0%
+
20.0 %2 / 10-0 / 0
intake_entity.dart +
52.9%52.9%
+
52.9 %9 / 17-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/index.html b/coverage/html/core/domain/entity/index.html new file mode 100644 index 000000000..76ac8cf31 --- /dev/null +++ b/coverage/html/core/domain/entity/index.html @@ -0,0 +1,193 @@ + + + + + + + LCOV - lcov.info - core/domain/entity + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entityHitTotalCoverage
Test:lcov.infoLines:144733.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
app_theme_entity.dart +
0.0%
+
0.0 %0 / 8-0 / 0
config_entity.dart +
0.0%
+
0.0 %0 / 21-0 / 0
intake_entity.dart +
52.9%52.9%
+
52.9 %9 / 17-0 / 0
intake_type_entity.dart +
20.0%20.0%
+
20.0 %2 / 10-0 / 0
physical_activity_entity.dart +
0.3%0.3%
+
0.3 %1 / 319-0 / 0
tracked_day_entity.dart +
0.0%
+
0.0 %0 / 40-0 / 0
user_activity_entity.dart +
0.0%
+
0.0 %0 / 12-0 / 0
user_entity.dart +
20.0%20.0%
+
20.0 %2 / 10-0 / 0
user_gender_entity.dart +
0.0%
+
0.0 %0 / 11-0 / 0
user_pal_entity.dart +
0.0%
+
0.0 %0 / 14-0 / 0
user_weight_goal_entity.dart +
0.0%
+
0.0 %0 / 11-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/intake_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/intake_entity.dart.func-sort-c.html new file mode 100644 index 000000000..4eb134d72 --- /dev/null +++ b/coverage/html/core/domain/entity/intake_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/intake_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - intake_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91752.9 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/intake_entity.dart.func.html b/coverage/html/core/domain/entity/intake_entity.dart.func.html new file mode 100644 index 000000000..5299d54d9 --- /dev/null +++ b/coverage/html/core/domain/entity/intake_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/intake_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - intake_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91752.9 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/intake_entity.dart.gcov.html b/coverage/html/core/domain/entity/intake_entity.dart.gcov.html new file mode 100644 index 000000000..6b56a423d --- /dev/null +++ b/coverage/html/core/domain/entity/intake_entity.dart.gcov.html @@ -0,0 +1,121 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/intake_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - intake_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91752.9 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:equatable/equatable.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/intake_dbo.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/intake_type_entity.dart';
+       4             : import 'package:opennutritracker/features/add_meal/domain/entity/meal_entity.dart';
+       5             : 
+       6             : class IntakeEntity extends Equatable {
+       7             :   final String id;
+       8             :   final String unit;
+       9             :   final double amount;
+      10             :   final IntakeTypeEntity type;
+      11             :   final DateTime dateTime;
+      12             : 
+      13             :   final MealEntity meal;
+      14             : 
+      15           1 :   const IntakeEntity(
+      16             :       {required this.id,
+      17             :       required this.unit,
+      18             :       required this.amount,
+      19             :       required this.type,
+      20             :       required this.meal,
+      21             :       required this.dateTime});
+      22             : 
+      23           1 :   factory IntakeEntity.fromIntakeDBO(IntakeDBO intakeDBO) {
+      24           1 :     return IntakeEntity(
+      25           1 :         id: intakeDBO.id,
+      26           1 :         unit: intakeDBO.unit,
+      27           1 :         amount: intakeDBO.amount,
+      28           2 :         type: IntakeTypeEntity.fromIntakeTypeDBO(intakeDBO.type),
+      29           2 :         meal: MealEntity.fromMealDBO(intakeDBO.meal),
+      30           1 :         dateTime: intakeDBO.dateTime);
+      31             :   }
+      32             : 
+      33           0 :   double get totalKcal => amount * (meal.nutriments.energyPerUnit ?? 0);
+      34             : 
+      35           0 :   double get totalCarbsGram =>
+      36           0 :       amount * (meal.nutriments.carbohydratesPerUnit ?? 0);
+      37             : 
+      38           0 :   double get totalFatsGram => amount * (meal.nutriments.fatPerUnit ?? 0);
+      39             : 
+      40           0 :   double get totalProteinsGram =>
+      41           0 :       amount * (meal.nutriments.proteinsPerUnit ?? 0);
+      42             : 
+      43           0 :   @override
+      44           0 :   List<Object?> get props => [id, unit, amount, type, dateTime];
+      45             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/intake_type_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/intake_type_entity.dart.func-sort-c.html new file mode 100644 index 000000000..f59457688 --- /dev/null +++ b/coverage/html/core/domain/entity/intake_type_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/intake_type_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - intake_type_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:21020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/intake_type_entity.dart.func.html b/coverage/html/core/domain/entity/intake_type_entity.dart.func.html new file mode 100644 index 000000000..5459b8b2f --- /dev/null +++ b/coverage/html/core/domain/entity/intake_type_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/intake_type_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - intake_type_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:21020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/intake_type_entity.dart.gcov.html b/coverage/html/core/domain/entity/intake_type_entity.dart.gcov.html new file mode 100644 index 000000000..933e44a00 --- /dev/null +++ b/coverage/html/core/domain/entity/intake_type_entity.dart.gcov.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/intake_type_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - intake_type_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:21020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/material.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/intake_type_dbo.dart';
+       3             : import 'package:opennutritracker/core/utils/custom_icons.dart';
+       4             : 
+       5             : enum IntakeTypeEntity {
+       6             :   breakfast,
+       7             :   lunch,
+       8             :   dinner,
+       9             :   snack;
+      10             : 
+      11           1 :   factory IntakeTypeEntity.fromIntakeTypeDBO(IntakeTypeDBO intakeTypeDBO) {
+      12             :     IntakeTypeEntity intakeTypeEntity;
+      13             :     switch (intakeTypeDBO) {
+      14           1 :       case IntakeTypeDBO.breakfast:
+      15             :         intakeTypeEntity = IntakeTypeEntity.breakfast;
+      16             :         break;
+      17           0 :       case IntakeTypeDBO.lunch:
+      18             :         intakeTypeEntity = IntakeTypeEntity.lunch;
+      19             :         break;
+      20           0 :       case IntakeTypeDBO.dinner:
+      21             :         intakeTypeEntity = IntakeTypeEntity.dinner;
+      22             :         break;
+      23           0 :       case IntakeTypeDBO.snack:
+      24             :         intakeTypeEntity = IntakeTypeEntity.snack;
+      25             :         break;
+      26             :     }
+      27             :     return intakeTypeEntity;
+      28             :   }
+      29             : 
+      30           0 :   IconData getIconData() {
+      31             :     IconData icon;
+      32             :     switch (this) {
+      33           0 :       case IntakeTypeEntity.breakfast:
+      34             :         icon = Icons.bakery_dining_outlined;
+      35             :         break;
+      36           0 :       case IntakeTypeEntity.lunch:
+      37             :         icon = Icons.lunch_dining_outlined;
+      38             :         break;
+      39           0 :       case IntakeTypeEntity.dinner:
+      40             :         icon = Icons.dinner_dining_outlined;
+      41             :         break;
+      42           0 :       case IntakeTypeEntity.snack:
+      43             :         icon = CustomIcons.food_apple_outline;
+      44             :     }
+      45             :     return icon;
+      46             :   }
+      47             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/physical_activity_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/physical_activity_entity.dart.func-sort-c.html new file mode 100644 index 000000000..87695759b --- /dev/null +++ b/coverage/html/core/domain/entity/physical_activity_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/physical_activity_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - physical_activity_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:13190.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/physical_activity_entity.dart.func.html b/coverage/html/core/domain/entity/physical_activity_entity.dart.func.html new file mode 100644 index 000000000..7124b214b --- /dev/null +++ b/coverage/html/core/domain/entity/physical_activity_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/physical_activity_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - physical_activity_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:13190.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/physical_activity_entity.dart.gcov.html b/coverage/html/core/domain/entity/physical_activity_entity.dart.gcov.html new file mode 100644 index 000000000..266203fa3 --- /dev/null +++ b/coverage/html/core/domain/entity/physical_activity_entity.dart.gcov.html @@ -0,0 +1,669 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/physical_activity_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - physical_activity_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:13190.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:equatable/equatable.dart';
+       2             : import 'package:flutter/material.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/physical_activity_dbo.dart';
+       4             : import 'package:opennutritracker/core/utils/custom_icons.dart';
+       5             : import 'package:opennutritracker/generated/l10n.dart';
+       6             : 
+       7             : /// A physical activity with it's measured MET value by the
+       8             : /// '2011 Compendium of Physical Activities'
+       9             : /// https://pubmed.ncbi.nlm.nih.gov/21681120/
+      10             : /// by Ainsworth et al.
+      11             : class PhysicalActivityEntity extends Equatable {
+      12             :   final String code;
+      13             :   final String specificActivity;
+      14             :   final String description;
+      15             :   final double mets;
+      16             : 
+      17           0 :   get displayIcon => getDisplayIcon();
+      18             : 
+      19             :   final List<String> tags;
+      20             : 
+      21             :   final PhysicalActivityTypeEntity type;
+      22             : 
+      23           1 :   const PhysicalActivityEntity(this.code, this.specificActivity,
+      24             :       this.description, this.mets, this.tags, this.type);
+      25             : 
+      26           0 :   @override
+      27           0 :   List<Object?> get props => [code, specificActivity, description, mets];
+      28             : 
+      29           0 :   String getName(BuildContext context) {
+      30           0 :     final physicalActivityMap = {
+      31           0 :       "01015": S.of(context).paBicyclingGeneral,
+      32           0 :       "01009": S.of(context).paBicyclingMountainGeneral,
+      33           0 :       "01070": S.of(context).paUnicyclingGeneral,
+      34           0 :       "02010": S.of(context).paBicyclingStationaryGeneral,
+      35           0 :       "02030": S.of(context).paCalisthenicsGeneral,
+      36           0 :       "02050": S.of(context).paResistanceTraining,
+      37           0 :       "02068": S.of(context).paRopeSkippingGeneral,
+      38           0 :       "02120": S.of(context).paWaterAerobics,
+      39           0 :       "03015": S.of(context).paDancingAerobicGeneral,
+      40           0 :       "12020": S.of(context).paJoggingGeneral,
+      41           0 :       "12150": S.of(context).paRunningGeneral,
+      42           0 :       "15010": S.of(context).paArcheryGeneral,
+      43           0 :       "15030": S.of(context).paBadmintonGeneral,
+      44           0 :       "15055": S.of(context).paBasketballGeneral,
+      45           0 :       "15080": S.of(context).paBilliardsGeneral,
+      46           0 :       "15090": S.of(context).paBowlingGeneral,
+      47           0 :       "15100": S.of(context).paBoxingGeneral,
+      48           0 :       "15110": S.of(context).paBoxingBag,
+      49           0 :       "15130": S.of(context).paBroomball,
+      50           0 :       "15135": S.of(context).paChildrenGame,
+      51           0 :       "15138": S.of(context).paCheerleading,
+      52           0 :       "15150": S.of(context).paCricket,
+      53           0 :       "15160": S.of(context).paCroquet,
+      54           0 :       "15170": S.of(context).paCurling,
+      55           0 :       "15180": S.of(context).paDartsWall,
+      56           0 :       "15192": S.of(context).paAutoRacing,
+      57           0 :       "15200": S.of(context).paFencing,
+      58           0 :       "15230": S.of(context).paAmericanFootballGeneral,
+      59           0 :       "15235": S.of(context).paCatch,
+      60           0 :       "15240": S.of(context).paFrisbee,
+      61           0 :       "15255": S.of(context).paGolfGeneral,
+      62           0 :       "15300": S.of(context).paGymnasticsGeneral,
+      63           0 :       "15310": S.of(context).paHackySack,
+      64           0 :       "15320": S.of(context).paHandballGeneral,
+      65           0 :       "15340": S.of(context).paHangGliding,
+      66           0 :       "15350": S.of(context).paHockeyField,
+      67           0 :       "15360": S.of(context).paIceHockeyGeneral,
+      68           0 :       "15370": S.of(context).paHorseRidingGeneral,
+      69           0 :       "15420": S.of(context).paJaiAlai,
+      70           0 :       "15425": S.of(context).paMartialArtsSlower,
+      71           0 :       "15430": S.of(context).paMartialArtsModerate,
+      72           0 :       "15440": S.of(context).paJuggling,
+      73           0 :       "15460": S.of(context).paLacrosse,
+      74           0 :       "15465": S.of(context).paLawnBowling,
+      75           0 :       "15470": S.of(context).paMotoCross,
+      76           0 :       "15480": S.of(context).paOrienteering,
+      77           0 :       "15500": S.of(context).paPaddleball,
+      78           0 :       "15510": S.of(context).paPoloHorse,
+      79           0 :       "15530": S.of(context).paRacquetball,
+      80           0 :       "15533": S.of(context).paMountainClimbing,
+      81           0 :       "15544": S.of(context).paRodeoSportGeneralModerate,
+      82           0 :       "15551": S.of(context).paRopeJumpingGeneral,
+      83           0 :       "15560": S.of(context).paRugbyCompetitive,
+      84           0 :       "15562": S.of(context).paRugbyNonCompetitive,
+      85           0 :       "15570": S.of(context).paShuffleboard,
+      86           0 :       "15580": S.of(context).paSkateboardingGeneral,
+      87           0 :       "15590": S.of(context).paSkatingRoller,
+      88           0 :       "15592": S.of(context).paRollerbladingLight,
+      89           0 :       "15600": S.of(context).paSkydiving,
+      90           0 :       "15610": S.of(context).paSoccerGeneral,
+      91           0 :       "15620": S.of(context).paSoftballBaseballGeneral,
+      92           0 :       "15652": S.of(context).paSquashGeneral,
+      93           0 :       "15660": S.of(context).paTableTennisGeneral,
+      94           0 :       "15670": S.of(context).paTaiChiQiGongGeneral,
+      95           0 :       "15675": S.of(context).paTennisGeneral,
+      96           0 :       "15700": S.of(context).paTrampolineLight,
+      97           0 :       "15710": S.of(context).paVolleyballGeneral,
+      98           0 :       "15730": S.of(context).paWrestling,
+      99           0 :       "15731": S.of(context).paWallyball,
+     100           0 :       "15732": S.of(context).paTrackField,
+     101           0 :       "15733": S.of(context).paTrackField,
+     102           0 :       "15734": S.of(context).paTrackField,
+     103           0 :       "17010": S.of(context).paBackpackingGeneral,
+     104           0 :       "17080": S.of(context).paHikingCrossCountry,
+     105           0 :       "17160": S.of(context).paWalkingForPleasure,
+     106           0 :       "17165": S.of(context).paWalkingTheDog,
+     107           0 :       "18070": S.of(context).paCanoeingGeneral,
+     108           0 :       "18090": S.of(context).paDivingSpringboardPlatform,
+     109           0 :       "18100": S.of(context).paKayakingModerate,
+     110           0 :       "18110": S.of(context).paPaddleBoat,
+     111           0 :       "18120": S.of(context).paSailingGeneral,
+     112           0 :       "18150": S.of(context).paSkiingWaterWakeboarding,
+     113           0 :       "18200": S.of(context).paDivingGeneral,
+     114           0 :       "18210": S.of(context).paSnorkeling,
+     115           0 :       "18220": S.of(context).paSurfing,
+     116           0 :       "18225": S.of(context).paPaddleBoarding,
+     117           0 :       "18350": S.of(context).paSwimmingGeneral,
+     118           0 :       "18355": S.of(context).paWaterAerobics,
+     119           0 :       "18360": S.of(context).paWaterPolo,
+     120           0 :       "19030": S.of(context).paIceSkatingGeneral,
+     121           0 :       "19075": S.of(context).paSkiingGeneral,
+     122           0 :       "19252": S.of(context).paSnowShovingModerate
+     123             :     };
+     124           0 :     return physicalActivityMap[code] ?? type.getName(context);
+     125             :   }
+     126             : 
+     127           0 :   String getDescription(BuildContext context) {
+     128           0 :     final physicalActivityMap = {
+     129           0 :       "01009": S.of(context).paBicyclingMountainGeneralDesc,
+     130           0 :       "01015": S.of(context).paBicyclingGeneralDesc,
+     131           0 :       "01070": S.of(context).paUnicyclingGeneralDesc,
+     132           0 :       "02010": S.of(context).paBicyclingStationaryGeneralDesc,
+     133           0 :       "02030": S.of(context).paCalisthenicsGeneralDesc,
+     134           0 :       "02050": S.of(context).paResistanceTrainingDesc,
+     135           0 :       "02068": S.of(context).paRopeSkippingGeneralDesc,
+     136           0 :       "02120": S.of(context).paWaterAerobicsDesc,
+     137           0 :       "03015": S.of(context).paDancingAerobicGeneralDesc,
+     138           0 :       "12020": S.of(context).paJoggingGeneralDesc,
+     139           0 :       "12150": S.of(context).paRunningGeneralDesc,
+     140           0 :       "15010": S.of(context).paArcheryGeneralDesc,
+     141           0 :       "15030": S.of(context).paBadmintonGeneralDesc,
+     142           0 :       "15055": S.of(context).paBasketballGeneralDesc,
+     143           0 :       "15080": S.of(context).paBilliardsGeneralDesc,
+     144           0 :       "15090": S.of(context).paBowlingGeneralDesc,
+     145           0 :       "15100": S.of(context).paBoxingGeneralDesc,
+     146           0 :       "15110": S.of(context).paBoxingBagDesc,
+     147           0 :       "15130": S.of(context).paBroomballDesc,
+     148           0 :       "15135": S.of(context).paChildrenGameDesc,
+     149           0 :       "15138": S.of(context).paCheerleadingDesc,
+     150           0 :       "15150": S.of(context).paCricketDesc,
+     151           0 :       "15160": S.of(context).paCroquetDesc,
+     152           0 :       "15180": S.of(context).paDartsWallDesc,
+     153           0 :       "15170": S.of(context).paCurlingDesc,
+     154           0 :       "15192": S.of(context).paAutoRacingDesc,
+     155           0 :       "15200": S.of(context).paFencingDesc,
+     156           0 :       "15230": S.of(context).paAmericanFootballGeneralDesc,
+     157           0 :       "15235": S.of(context).paCatchDesc,
+     158           0 :       "15240": S.of(context).paFrisbeeDesc,
+     159           0 :       "15255": S.of(context).paGolfGeneralDesc,
+     160           0 :       "15300": S.of(context).paGymnasticsGeneralDesc,
+     161           0 :       "15310": S.of(context).paHackySackDesc,
+     162           0 :       "15320": S.of(context).paHandballGeneralDesc,
+     163           0 :       "15340": S.of(context).paHangGlidingDesc,
+     164           0 :       "15350": S.of(context).paHockeyFieldDesc,
+     165           0 :       "15360": S.of(context).paIceHockeyGeneralDesc,
+     166           0 :       "15370": S.of(context).paHorseRidingGeneralDesc,
+     167           0 :       "15420": S.of(context).paJaiAlaiDesc,
+     168           0 :       "15425": S.of(context).paMartialArtsSlowerDesc,
+     169           0 :       "15430": S.of(context).paMartialArtsModerateDesc,
+     170           0 :       "15440": S.of(context).paJugglingDesc,
+     171           0 :       "15460": S.of(context).paLacrosseDesc,
+     172           0 :       "15465": S.of(context).paLawnBowlingDesc,
+     173           0 :       "15470": S.of(context).paMotoCrossDesc,
+     174           0 :       "15480": S.of(context).paOrienteeringDesc,
+     175           0 :       "15500": S.of(context).paPaddleballDesc,
+     176           0 :       "15510": S.of(context).paPoloHorseDesc,
+     177           0 :       "15530": S.of(context).paRacquetballDesc,
+     178           0 :       "15533": S.of(context).paMountainClimbingDesc,
+     179           0 :       "15544": S.of(context).paRodeoSportGeneralModerateDesc,
+     180           0 :       "15551": S.of(context).paRopeJumpingGeneralDesc,
+     181           0 :       "15560": S.of(context).paRugbyCompetitiveDesc,
+     182           0 :       "15562": S.of(context).paRugbyNonCompetitiveDesc,
+     183           0 :       "15570": S.of(context).paShuffleboardDesc,
+     184           0 :       "15580": S.of(context).paSkateboardingGeneralDesc,
+     185           0 :       "15590": S.of(context).paSkatingRollerDesc,
+     186           0 :       "15592": S.of(context).paRollerbladingLightDesc,
+     187           0 :       "15600": S.of(context).paSkydivingDesc,
+     188           0 :       "15610": S.of(context).paSoccerGeneralDesc,
+     189           0 :       "15620": S.of(context).paSoftballBaseballGeneralDesc,
+     190           0 :       "15652": S.of(context).paSquashGeneralDesc,
+     191           0 :       "15660": S.of(context).paTableTennisGeneralDesc,
+     192           0 :       "15670": S.of(context).paTaiChiQiGongGeneralDesc,
+     193           0 :       "15675": S.of(context).paTennisGeneralDesc,
+     194           0 :       "15700": S.of(context).paTrampolineLightDesc,
+     195           0 :       "15710": S.of(context).paVolleyballGeneralDesc,
+     196           0 :       "15730": S.of(context).paWrestlingDesc,
+     197           0 :       "15731": S.of(context).paWallyballDesc,
+     198           0 :       "15732": S.of(context).paTrackField1Desc,
+     199           0 :       "15733": S.of(context).paTrackField2Desc,
+     200           0 :       "15734": S.of(context).paTrackField3Desc,
+     201           0 :       "17010": S.of(context).paBackpackingGeneralDesc,
+     202           0 :       "17080": S.of(context).paHikingCrossCountryDesc,
+     203           0 :       "17160": S.of(context).paWalkingForPleasureDesc,
+     204           0 :       "17165": S.of(context).paWalkingTheDogDesc,
+     205           0 :       "18070": S.of(context).paCanoeingGeneralDesc,
+     206           0 :       "18090": S.of(context).paDivingSpringboardPlatformDesc,
+     207           0 :       "18100": S.of(context).paKayakingModerateDesc,
+     208           0 :       "18110": S.of(context).paPaddleBoatDesc,
+     209           0 :       "18120": S.of(context).paSailingGeneralDesc,
+     210           0 :       "18150": S.of(context).paSkiingWaterWakeboardingDesc,
+     211           0 :       "18200": S.of(context).paDivingGeneralDesc,
+     212           0 :       "18210": S.of(context).paSnorkelingDesc,
+     213           0 :       "18220": S.of(context).paSurfingDesc,
+     214           0 :       "18225": S.of(context).paPaddleBoardingDesc,
+     215           0 :       "18350": S.of(context).paSwimmingGeneralDesc,
+     216           0 :       "18355": S.of(context).paWaterAerobicsDesc,
+     217           0 :       "18360": S.of(context).paWaterPoloDesc,
+     218           0 :       "19030": S.of(context).paIceSkatingGeneralDesc,
+     219           0 :       "19075": S.of(context).paSkiingGeneralDesc,
+     220           0 :       "19252": S.of(context).paSnowShovingModerateDesc
+     221             :     };
+     222           0 :     return physicalActivityMap[code] ?? type.getName(context);
+     223             :   }
+     224             : 
+     225           0 :   IconData getDisplayIcon() {
+     226             :     IconData iconData;
+     227           0 :     switch (code) {
+     228           0 :       case "01015":
+     229             :         iconData = Icons.directions_bike_outlined;
+     230             :         break;
+     231           0 :       case "01009":
+     232             :         iconData = Icons.directions_bike_outlined;
+     233             :         break;
+     234           0 :       case "01070":
+     235             :         iconData = CustomIcons.unicycle;
+     236             :         break;
+     237           0 :       case "02010":
+     238             :         iconData = CustomIcons.bike_pedal;
+     239             :         break;
+     240           0 :       case "02030":
+     241             :         iconData = Icons.sports_gymnastics;
+     242             :         break;
+     243           0 :       case "02050":
+     244             :         iconData = CustomIcons.kettlebell;
+     245             :         break;
+     246           0 :       case "02068":
+     247             :         iconData = CustomIcons.jump_rope;
+     248             :         break;
+     249           0 :       case "02120":
+     250             :         iconData = Icons.water;
+     251             :         break;
+     252           0 :       case "03015":
+     253             :         iconData = Icons.music_note;
+     254             :         break;
+     255           0 :       case "12020":
+     256             :         iconData = Icons.directions_run;
+     257             :         break;
+     258           0 :       case "12150":
+     259             :         iconData = CustomIcons.run_fast;
+     260             :         break;
+     261           0 :       case "15010":
+     262             :         iconData = CustomIcons.bow_arrow;
+     263             :         break;
+     264           0 :       case "15030":
+     265             :         iconData = CustomIcons.badminton;
+     266             :         break;
+     267           0 :       case "15055":
+     268             :         iconData = Icons.sports_basketball;
+     269             :         break;
+     270           0 :       case "15080":
+     271             :         iconData = CustomIcons.billiards;
+     272             :         break;
+     273           0 :       case "15090":
+     274             :         iconData = CustomIcons.bowling;
+     275             :         break;
+     276           0 :       case "15100":
+     277             :         iconData = CustomIcons.boxing_glove;
+     278             :         break;
+     279           0 :       case "15110":
+     280             :         iconData = CustomIcons.boxing_glove;
+     281             :         break;
+     282           0 :       case "15130":
+     283             :         iconData = Icons.snowshoeing;
+     284             :         break;
+     285           0 :       case "15135":
+     286             :         iconData = CustomIcons.seesaw;
+     287             :         break;
+     288           0 :       case "15138":
+     289             :         iconData = CustomIcons.podium;
+     290             :         break;
+     291           0 :       case "15150":
+     292             :         iconData = Icons.sports_cricket;
+     293             :         break;
+     294           0 :       case "15160":
+     295             :         iconData = CustomIcons.trophy;
+     296             :         break;
+     297           0 :       case "15170":
+     298             :         iconData = CustomIcons.curling;
+     299             :         break;
+     300           0 :       case "15180":
+     301             :         iconData = CustomIcons.bullseye_arrow;
+     302             :         break;
+     303           0 :       case "15192":
+     304             :         iconData = Icons.directions_car;
+     305             :         break;
+     306           0 :       case "15200":
+     307             :         iconData = CustomIcons.fencing;
+     308             :         break;
+     309           0 :       case "15230":
+     310             :         iconData = Icons.sports_football;
+     311             :         break;
+     312           0 :       case "15235":
+     313             :         iconData = Icons.sports_baseball;
+     314             :         break;
+     315           0 :       case "15255":
+     316             :         iconData = Icons.sports_golf;
+     317             :         break;
+     318           0 :       case "15300":
+     319             :         iconData = Icons.sports_gymnastics;
+     320             :         break;
+     321           0 :       case "15320":
+     322             :         iconData = Icons.sports_handball;
+     323             :         break;
+     324           0 :       case "15350":
+     325             :         iconData = Icons.sports_hockey;
+     326             :         break;
+     327           0 :       case "15360":
+     328             :         iconData = CustomIcons.hockey_puck;
+     329             :         break;
+     330           0 :       case "15370":
+     331             :         iconData = CustomIcons.horseshoe;
+     332             :         break;
+     333           0 :       case "15425":
+     334             :         iconData = Icons.sports_martial_arts;
+     335             :         break;
+     336           0 :       case "15430":
+     337             :         iconData = Icons.sports_martial_arts;
+     338             :         break;
+     339           0 :       case "15460":
+     340             :         iconData = CustomIcons.racquetball;
+     341             :         break;
+     342           0 :       case "15465":
+     343             :         iconData = Icons.grass;
+     344             :         break;
+     345           0 :       case "15470":
+     346             :         iconData = Icons.sports_motorsports;
+     347             :         break;
+     348           0 :       case "15480":
+     349             :         iconData = CustomIcons.compass;
+     350             :         break;
+     351           0 :       case "15510":
+     352             :         iconData = CustomIcons.polo;
+     353             :         break;
+     354           0 :       case "15530":
+     355             :         iconData = CustomIcons.racquetball;
+     356             :         break;
+     357           0 :       case "15533":
+     358             :         iconData = CustomIcons.carabiner;
+     359             :         break;
+     360           0 :       case "15544":
+     361             :         iconData = CustomIcons.horseshoe;
+     362             :         break;
+     363           0 :       case "15551":
+     364             :         iconData = CustomIcons.jump_rope;
+     365             :         break;
+     366           0 :       case "15560":
+     367             :         iconData = Icons.sports_rugby;
+     368             :         break;
+     369           0 :       case "15562":
+     370             :         iconData = Icons.sports_rugby;
+     371             :         break;
+     372           0 :       case "15580":
+     373             :         iconData = Icons.skateboarding;
+     374             :         break;
+     375           0 :       case "15590":
+     376             :         iconData = Icons.roller_skating;
+     377             :         break;
+     378           0 :       case "15592":
+     379             :         iconData = CustomIcons.rollerblade;
+     380             :         break;
+     381           0 :       case "15600":
+     382             :         iconData = CustomIcons.parachute;
+     383             :         break;
+     384           0 :       case "15610":
+     385             :         iconData = Icons.sports_soccer;
+     386             :         break;
+     387           0 :       case "15620":
+     388             :         iconData = Icons.sports_baseball;
+     389             :         break;
+     390           0 :       case "15652":
+     391             :         iconData = CustomIcons.racquetball;
+     392             :         break;
+     393           0 :       case "15660":
+     394             :         iconData = CustomIcons.table_tennis;
+     395             :         break;
+     396           0 :       case "15670":
+     397             :         iconData = CustomIcons.karate;
+     398             :         break;
+     399           0 :       case "15675":
+     400             :         iconData = CustomIcons.tennis;
+     401             :         break;
+     402           0 :       case "15710":
+     403             :         iconData = Icons.sports_volleyball;
+     404             :         break;
+     405           0 :       case "15730":
+     406             :         iconData = Icons.sports_kabaddi;
+     407             :         break;
+     408           0 :       case "15732":
+     409             :         iconData = Icons.stadium;
+     410             :         break;
+     411           0 :       case "15733":
+     412             :         iconData = Icons.stadium;
+     413             :         break;
+     414           0 :       case "15734":
+     415             :         iconData = Icons.stadium;
+     416             :         break;
+     417           0 :       case "17010":
+     418             :         iconData = Icons.hiking;
+     419             :         break;
+     420           0 :       case "17080":
+     421             :         iconData = Icons.hiking;
+     422             :         break;
+     423           0 :       case "17160":
+     424             :         iconData = Icons.directions_walk;
+     425             :         break;
+     426           0 :       case "17165":
+     427             :         iconData = CustomIcons.dog;
+     428             :         break;
+     429           0 :       case "18070":
+     430             :         iconData = Icons.water;
+     431             :         break;
+     432           0 :       case "18090":
+     433             :         iconData = CustomIcons.diving;
+     434             :         break;
+     435           0 :       case "18100":
+     436             :         iconData = Icons.kayaking;
+     437             :         break;
+     438           0 :       case "18110":
+     439             :         iconData = Icons.water;
+     440             :         break;
+     441           0 :       case "18120":
+     442             :         iconData = Icons.sailing;
+     443             :         break;
+     444           0 :       case "18150":
+     445             :         iconData = CustomIcons.ski_water;
+     446             :         break;
+     447           0 :       case "18200":
+     448             :         iconData = CustomIcons.diving_scuba;
+     449             :         break;
+     450           0 :       case "18210":
+     451             :         iconData = CustomIcons.diving_snorkel;
+     452             :         break;
+     453           0 :       case "18220":
+     454             :         iconData = Icons.surfing;
+     455             :         break;
+     456           0 :       case "18225":
+     457             :         iconData = Icons.water;
+     458             :         break;
+     459           0 :       case "18350":
+     460             :         iconData = CustomIcons.swim;
+     461             :         break;
+     462           0 :       case "18355":
+     463             :         iconData = Icons.water;
+     464             :         break;
+     465           0 :       case "18360":
+     466             :         iconData = CustomIcons.water_polo;
+     467             :         break;
+     468           0 :       case "19030":
+     469             :         iconData = Icons.ice_skating;
+     470             :         break;
+     471           0 :       case "19075":
+     472             :         iconData = Icons.downhill_skiing;
+     473             :         break;
+     474           0 :       case "19252":
+     475             :         iconData = CustomIcons.snowflake;
+     476             :         break;
+     477             :       default:
+     478             :         iconData = CustomIcons.medal;
+     479             :     }
+     480             :     return iconData;
+     481             :   }
+     482             : 
+     483           0 :   factory PhysicalActivityEntity.fromPhysicalActivityDBO(
+     484             :           PhysicalActivityDBO activityDBO) =>
+     485           0 :       PhysicalActivityEntity(
+     486           0 :           activityDBO.code,
+     487           0 :           activityDBO.specificActivity,
+     488           0 :           activityDBO.description,
+     489           0 :           activityDBO.mets,
+     490           0 :           activityDBO.tags,
+     491           0 :           PhysicalActivityTypeEntity.fromPhysicalActivityTypeDBO(
+     492           0 :               activityDBO.type));
+     493             : }
+     494             : 
+     495             : extension ActivityIcon on PhysicalActivityTypeEntity {
+     496           0 :   String getName(BuildContext context) {
+     497             :     String name;
+     498             :     switch (this) {
+     499           0 :       case PhysicalActivityTypeEntity.bicycling:
+     500           0 :         name = S.of(context).paHeadingBicycling;
+     501             :         break;
+     502           0 :       case PhysicalActivityTypeEntity.conditioningExercise:
+     503           0 :         name = S.of(context).paHeadingConditionalExercise;
+     504             :         break;
+     505           0 :       case PhysicalActivityTypeEntity.dancing:
+     506           0 :         name = S.of(context).paHeadingDancing;
+     507             :         break;
+     508           0 :       case PhysicalActivityTypeEntity.running:
+     509           0 :         name = S.of(context).paHeadingRunning;
+     510             :         break;
+     511           0 :       case PhysicalActivityTypeEntity.sport:
+     512           0 :         name = S.of(context).paHeadingSports;
+     513             :         break;
+     514           0 :       case PhysicalActivityTypeEntity.waterActivities:
+     515           0 :         name = S.of(context).paHeadingWaterActivities;
+     516             :         break;
+     517           0 :       case PhysicalActivityTypeEntity.winterActivities:
+     518           0 :         name = S.of(context).paHeadingWinterActivities;
+     519             :         break;
+     520             :     }
+     521             :     return name;
+     522             :   }
+     523             : 
+     524           0 :   IconData getTypeIcon() {
+     525             :     IconData icon;
+     526             :     switch (this) {
+     527           0 :       case PhysicalActivityTypeEntity.bicycling:
+     528             :         icon = Icons.directions_bike_outlined;
+     529             :         break;
+     530           0 :       case PhysicalActivityTypeEntity.conditioningExercise:
+     531             :         icon = Icons.sports_gymnastics_outlined;
+     532             :         break;
+     533           0 :       case PhysicalActivityTypeEntity.dancing:
+     534             :         icon = Icons.music_note_outlined;
+     535             :         break;
+     536           0 :       case PhysicalActivityTypeEntity.running:
+     537             :         icon = Icons.directions_run_outlined;
+     538             :         break;
+     539           0 :       case PhysicalActivityTypeEntity.sport:
+     540             :         icon = Icons.sports_outlined;
+     541             :         break;
+     542           0 :       case PhysicalActivityTypeEntity.waterActivities:
+     543             :         icon = Icons.water_outlined;
+     544             :         break;
+     545           0 :       case PhysicalActivityTypeEntity.winterActivities:
+     546             :         icon = Icons.ac_unit_outlined;
+     547             :         break;
+     548             :     }
+     549             :     return icon;
+     550             :   }
+     551             : }
+     552             : 
+     553             : enum PhysicalActivityTypeEntity {
+     554             :   bicycling,
+     555             :   conditioningExercise,
+     556             :   dancing,
+     557             :   running,
+     558             :   sport,
+     559             :   waterActivities,
+     560             :   winterActivities;
+     561             : 
+     562           0 :   factory PhysicalActivityTypeEntity.fromPhysicalActivityTypeDBO(
+     563             :       PhysicalActivityTypeDBO typeDBO) {
+     564             :     PhysicalActivityTypeEntity typeEntity;
+     565             :     switch (typeDBO) {
+     566           0 :       case PhysicalActivityTypeDBO.bicycling:
+     567             :         typeEntity = PhysicalActivityTypeEntity.bicycling;
+     568             :         break;
+     569           0 :       case PhysicalActivityTypeDBO.conditioningExercise:
+     570             :         typeEntity = PhysicalActivityTypeEntity.conditioningExercise;
+     571             :         break;
+     572           0 :       case PhysicalActivityTypeDBO.dancing:
+     573             :         typeEntity = PhysicalActivityTypeEntity.dancing;
+     574             :         break;
+     575           0 :       case PhysicalActivityTypeDBO.running:
+     576             :         typeEntity = PhysicalActivityTypeEntity.running;
+     577             :         break;
+     578           0 :       case PhysicalActivityTypeDBO.sport:
+     579             :         typeEntity = PhysicalActivityTypeEntity.sport;
+     580             :         break;
+     581           0 :       case PhysicalActivityTypeDBO.waterActivities:
+     582             :         typeEntity = PhysicalActivityTypeEntity.waterActivities;
+     583             :         break;
+     584           0 :       case PhysicalActivityTypeDBO.winterActivities:
+     585             :         typeEntity = PhysicalActivityTypeEntity.winterActivities;
+     586             :         break;
+     587             :     }
+     588             :     return typeEntity;
+     589             :   }
+     590             : }
+     591             : 
+     592             : // TODO GROUP activities in effort categories (light, moderate, vigorous)
+     593             : enum PhysicalActivityEffort { light, moderate, vigorous }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/tracked_day_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/tracked_day_entity.dart.func-sort-c.html new file mode 100644 index 000000000..dc74eadab --- /dev/null +++ b/coverage/html/core/domain/entity/tracked_day_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/tracked_day_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - tracked_day_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0400.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/tracked_day_entity.dart.func.html b/coverage/html/core/domain/entity/tracked_day_entity.dart.func.html new file mode 100644 index 000000000..eebcbd664 --- /dev/null +++ b/coverage/html/core/domain/entity/tracked_day_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/tracked_day_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - tracked_day_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0400.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/tracked_day_entity.dart.gcov.html b/coverage/html/core/domain/entity/tracked_day_entity.dart.gcov.html new file mode 100644 index 000000000..dc9deb581 --- /dev/null +++ b/coverage/html/core/domain/entity/tracked_day_entity.dart.gcov.html @@ -0,0 +1,167 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/tracked_day_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - tracked_day_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0400.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:equatable/equatable.dart';
+       2             : import 'package:flutter/material.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/tracked_day_dbo.dart';
+       4             : 
+       5             : class TrackedDayEntity extends Equatable {
+       6             :   static const maxKcalDifferenceOverGoal = 500;
+       7             :   static const maxKcalDifferenceUnderGoal = 1000;
+       8             : 
+       9             :   final DateTime day;
+      10             :   final double calorieGoal;
+      11             :   final double caloriesTracked;
+      12             :   final double? carbsGoal;
+      13             :   final double? carbsTracked;
+      14             :   final double? fatGoal;
+      15             :   final double? fatTracked;
+      16             :   final double? proteinGoal;
+      17             :   final double? proteinTracked;
+      18             : 
+      19           0 :   const TrackedDayEntity(
+      20             :       {required this.day,
+      21             :       required this.calorieGoal,
+      22             :       required this.caloriesTracked,
+      23             :       this.carbsGoal,
+      24             :       this.carbsTracked,
+      25             :       this.fatGoal,
+      26             :       this.fatTracked,
+      27             :       this.proteinGoal,
+      28             :       this.proteinTracked});
+      29             : 
+      30           0 :   factory TrackedDayEntity.fromTrackedDayDBO(TrackedDayDBO trackedDayDBO) {
+      31           0 :     return TrackedDayEntity(
+      32           0 :         day: trackedDayDBO.day,
+      33           0 :         calorieGoal: trackedDayDBO.calorieGoal,
+      34           0 :         caloriesTracked: trackedDayDBO.caloriesTracked,
+      35           0 :         carbsGoal: trackedDayDBO.carbsGoal,
+      36           0 :         carbsTracked: trackedDayDBO.carbsTracked,
+      37           0 :         fatGoal: trackedDayDBO.fatGoal,
+      38           0 :         fatTracked: trackedDayDBO.fatTracked,
+      39           0 :         proteinGoal: trackedDayDBO.proteinGoal,
+      40           0 :         proteinTracked: trackedDayDBO.proteinTracked);
+      41             :   }
+      42             : 
+      43             :   // TODO: make enum class for rating
+      44           0 :   Color getCalendarDayRatingColor(BuildContext context) {
+      45           0 :     if (_hasExceededMaxKcalDifferenceGoal(calorieGoal, caloriesTracked)) {
+      46           0 :       return Theme.of(context).colorScheme.primary;
+      47             :     } else {
+      48           0 :       return Theme.of(context).colorScheme.error;
+      49             :     }
+      50             :   }
+      51             : 
+      52           0 :   Color getRatingDayTextColor(BuildContext context) {
+      53           0 :     if (_hasExceededMaxKcalDifferenceGoal(calorieGoal, caloriesTracked)) {
+      54           0 :       return Theme.of(context).colorScheme.onSecondaryContainer;
+      55             :     } else {
+      56           0 :       return Theme.of(context).colorScheme.onErrorContainer;
+      57             :     }
+      58             :   }
+      59             : 
+      60           0 :   Color getRatingDayTextBackgroundColor(BuildContext context) {
+      61           0 :     if (_hasExceededMaxKcalDifferenceGoal(calorieGoal, caloriesTracked)) {
+      62           0 :       return Theme.of(context).colorScheme.secondaryContainer;
+      63             :     } else {
+      64           0 :       return Theme.of(context).colorScheme.errorContainer;
+      65             :     }
+      66             :   }
+      67             : 
+      68           0 :   bool _hasExceededMaxKcalDifferenceGoal(
+      69             :       double calorieGoal, caloriesTracked) {
+      70           0 :     double difference = calorieGoal - caloriesTracked;
+      71             : 
+      72           0 :     if (calorieGoal < caloriesTracked) {
+      73           0 :       return difference.abs() < maxKcalDifferenceOverGoal;
+      74             :     } else {
+      75           0 :       return difference < maxKcalDifferenceUnderGoal;
+      76             :     }
+      77             :   }
+      78             : 
+      79           0 :   @override
+      80           0 :   List<Object?> get props => [
+      81           0 :         day,
+      82           0 :         calorieGoal,
+      83           0 :         caloriesTracked,
+      84           0 :         carbsGoal,
+      85           0 :         carbsTracked,
+      86           0 :         fatGoal,
+      87           0 :         fatTracked,
+      88           0 :         proteinGoal,
+      89           0 :         proteinTracked
+      90             :       ];
+      91             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_activity_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/user_activity_entity.dart.func-sort-c.html new file mode 100644 index 000000000..b12ba6b9e --- /dev/null +++ b/coverage/html/core/domain/entity/user_activity_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_activity_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_activity_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_activity_entity.dart.func.html b/coverage/html/core/domain/entity/user_activity_entity.dart.func.html new file mode 100644 index 000000000..e8e41cd9d --- /dev/null +++ b/coverage/html/core/domain/entity/user_activity_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_activity_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_activity_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_activity_entity.dart.gcov.html b/coverage/html/core/domain/entity/user_activity_entity.dart.gcov.html new file mode 100644 index 000000000..b8270d54a --- /dev/null +++ b/coverage/html/core/domain/entity/user_activity_entity.dart.gcov.html @@ -0,0 +1,107 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_activity_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_activity_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0120.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:equatable/equatable.dart';
+       2             : import 'package:flutter/material.dart';
+       3             : import 'package:opennutritracker/core/data/data_source/user_activity_dbo.dart';
+       4             : import 'package:opennutritracker/core/domain/entity/physical_activity_entity.dart';
+       5             : 
+       6             : class UserActivityEntity extends Equatable {
+       7             :   final String id;
+       8             :   final double duration;
+       9             :   final double burnedKcal;
+      10             :   final DateTime date;
+      11             : 
+      12             :   final PhysicalActivityEntity physicalActivityEntity;
+      13             : 
+      14           0 :   const UserActivityEntity(this.id, this.duration, this.burnedKcal, this.date,
+      15             :       this.physicalActivityEntity);
+      16             : 
+      17           0 :   factory UserActivityEntity.fromUserActivityDBO(UserActivityDBO activityDBO) {
+      18           0 :     return UserActivityEntity(
+      19           0 :         activityDBO.id,
+      20           0 :         activityDBO.duration,
+      21           0 :         activityDBO.burnedKcal,
+      22           0 :         activityDBO.date,
+      23           0 :         PhysicalActivityEntity.fromPhysicalActivityDBO(
+      24           0 :             activityDBO.physicalActivityDBO));
+      25             :   }
+      26             : 
+      27           0 :   @override
+      28           0 :   List<Object?> get props => [id, duration, burnedKcal, date];
+      29             : 
+      30           0 :   static getIconData() => Icons.directions_run_outlined;
+      31             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/user_entity.dart.func-sort-c.html new file mode 100644 index 000000000..2f6092ce7 --- /dev/null +++ b/coverage/html/core/domain/entity/user_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:21020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_entity.dart.func.html b/coverage/html/core/domain/entity/user_entity.dart.func.html new file mode 100644 index 000000000..14f683034 --- /dev/null +++ b/coverage/html/core/domain/entity/user_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:21020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_entity.dart.gcov.html b/coverage/html/core/domain/entity/user_entity.dart.gcov.html new file mode 100644 index 000000000..a7971a31a --- /dev/null +++ b/coverage/html/core/domain/entity/user_entity.dart.gcov.html @@ -0,0 +1,109 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:21020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/dbo/user_dbo.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_gender_entity.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/user_pal_entity.dart';
+       4             : import 'package:opennutritracker/core/domain/entity/user_weight_goal_entity.dart';
+       5             : 
+       6             : class UserEntity {
+       7             :   DateTime birthday;
+       8             :   double heightCM;
+       9             :   double weightKG;
+      10             :   UserGenderEntity gender;
+      11             :   UserWeightGoalEntity goal;
+      12             :   UserPALEntity pal;
+      13             : 
+      14           3 :   UserEntity(
+      15             :       {required this.birthday,
+      16             :       required this.heightCM,
+      17             :       required this.weightKG,
+      18             :       required this.gender,
+      19             :       required this.goal,
+      20             :       required this.pal});
+      21             : 
+      22           0 :   factory UserEntity.fromUserDBO(UserDBO userDBO) {
+      23           0 :     return UserEntity(
+      24           0 :         birthday: userDBO.birthday,
+      25           0 :         heightCM: userDBO.heightCM,
+      26           0 :         weightKG: userDBO.weightKG,
+      27           0 :         gender: UserGenderEntity.fromUserGenderDBO(userDBO.gender),
+      28           0 :         goal: UserWeightGoalEntity.fromUserWeightGoalDBO(userDBO.goal),
+      29           0 :         pal: UserPALEntity.fromUserPALDBO(userDBO.pal));
+      30             :   }
+      31             : 
+      32          12 :   int get age => DateTime.now().difference(birthday).inDays~/365;
+      33             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_gender_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/user_gender_entity.dart.func-sort-c.html new file mode 100644 index 000000000..cf1e2637d --- /dev/null +++ b/coverage/html/core/domain/entity/user_gender_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_gender_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_gender_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_gender_entity.dart.func.html b/coverage/html/core/domain/entity/user_gender_entity.dart.func.html new file mode 100644 index 000000000..fac2dc4f3 --- /dev/null +++ b/coverage/html/core/domain/entity/user_gender_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_gender_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_gender_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_gender_entity.dart.gcov.html b/coverage/html/core/domain/entity/user_gender_entity.dart.gcov.html new file mode 100644 index 000000000..273827def --- /dev/null +++ b/coverage/html/core/domain/entity/user_gender_entity.dart.gcov.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_gender_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_gender_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/material.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/user_gender_dbo.dart';
+       3             : import 'package:opennutritracker/generated/l10n.dart';
+       4             : 
+       5             : enum UserGenderEntity {
+       6             :   male,
+       7             :   female;
+       8             : 
+       9           0 :   factory UserGenderEntity.fromUserGenderDBO(UserGenderDBO genderDBO) {
+      10             :     UserGenderEntity genderEntity;
+      11             :     switch (genderDBO) {
+      12           0 :       case UserGenderDBO.male:
+      13             :         genderEntity = UserGenderEntity.male;
+      14             :         break;
+      15           0 :       case UserGenderDBO.female:
+      16             :         genderEntity = UserGenderEntity.female;
+      17             :         break;
+      18             :     }
+      19             :     return genderEntity;
+      20             :   }
+      21             : 
+      22           0 :   String getName(BuildContext context) {
+      23             :     String name;
+      24             :     switch (this) {
+      25           0 :       case UserGenderEntity.male:
+      26           0 :         name = S.of(context).genderMaleLabel;
+      27             :         break;
+      28           0 :       case UserGenderEntity.female:
+      29           0 :         name = S.of(context).genderFemaleLabel;
+      30             :         break;
+      31             :     }
+      32             :     return name;
+      33             :   }
+      34             : 
+      35           0 :   IconData getIcon() {
+      36             :     IconData icon;
+      37             :     switch (this) {
+      38           0 :       case UserGenderEntity.male:
+      39             :         icon = Icons.male_outlined;
+      40             :         break;
+      41           0 :       case UserGenderEntity.female:
+      42             :         icon = Icons.female_outlined;
+      43             :         break;
+      44             :     }
+      45             :     return icon;
+      46             :   }
+      47             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_pal_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/user_pal_entity.dart.func-sort-c.html new file mode 100644 index 000000000..1c24691e5 --- /dev/null +++ b/coverage/html/core/domain/entity/user_pal_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_pal_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_pal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0140.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_pal_entity.dart.func.html b/coverage/html/core/domain/entity/user_pal_entity.dart.func.html new file mode 100644 index 000000000..ea3cf9b02 --- /dev/null +++ b/coverage/html/core/domain/entity/user_pal_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_pal_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_pal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0140.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_pal_entity.dart.gcov.html b/coverage/html/core/domain/entity/user_pal_entity.dart.gcov.html new file mode 100644 index 000000000..a95e9e578 --- /dev/null +++ b/coverage/html/core/domain/entity/user_pal_entity.dart.gcov.html @@ -0,0 +1,124 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_pal_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_pal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0140.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/material.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/user_pal_dbo.dart';
+       3             : import 'package:opennutritracker/generated/l10n.dart';
+       4             : 
+       5             : enum UserPALEntity {
+       6             :   sedentary,
+       7             :   lowActive,
+       8             :   active,
+       9             :   veryActive;
+      10             : 
+      11           0 :   factory UserPALEntity.fromUserPALDBO(UserPALDBO palDBO) {
+      12             :     UserPALEntity palEntity;
+      13             :     switch (palDBO) {
+      14           0 :       case UserPALDBO.sedentary:
+      15             :         palEntity = UserPALEntity.sedentary;
+      16             :         break;
+      17           0 :       case UserPALDBO.lowActive:
+      18             :         palEntity = UserPALEntity.lowActive;
+      19             :         break;
+      20           0 :       case UserPALDBO.active:
+      21             :         palEntity = UserPALEntity.active;
+      22             :         break;
+      23           0 :       case UserPALDBO.veryActive:
+      24             :         palEntity = UserPALEntity.veryActive;
+      25             :         break;
+      26             :     }
+      27             :     return palEntity;
+      28             :   }
+      29             : 
+      30           0 :   String getName(BuildContext context) {
+      31             :     String name;
+      32             :     switch (this) {
+      33           0 :       case UserPALEntity.sedentary:
+      34           0 :         name = S.of(context).palSedentaryLabel;
+      35             :         break;
+      36           0 :       case UserPALEntity.lowActive:
+      37           0 :         name = S.of(context).palLowLActiveLabel;
+      38             :         break;
+      39           0 :       case UserPALEntity.active:
+      40           0 :         name = S.of(context).palActiveLabel;
+      41             :         break;
+      42           0 :       case UserPALEntity.veryActive:
+      43           0 :         name = S.of(context).palVeryActiveLabel;
+      44             :         break;
+      45             :     }
+      46             :     return name;
+      47             :   }
+      48             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_weight_goal_entity.dart.func-sort-c.html b/coverage/html/core/domain/entity/user_weight_goal_entity.dart.func-sort-c.html new file mode 100644 index 000000000..327911d2d --- /dev/null +++ b/coverage/html/core/domain/entity/user_weight_goal_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_weight_goal_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_weight_goal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_weight_goal_entity.dart.func.html b/coverage/html/core/domain/entity/user_weight_goal_entity.dart.func.html new file mode 100644 index 000000000..774a4f247 --- /dev/null +++ b/coverage/html/core/domain/entity/user_weight_goal_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_weight_goal_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_weight_goal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/entity/user_weight_goal_entity.dart.gcov.html b/coverage/html/core/domain/entity/user_weight_goal_entity.dart.gcov.html new file mode 100644 index 000000000..04d946699 --- /dev/null +++ b/coverage/html/core/domain/entity/user_weight_goal_entity.dart.gcov.html @@ -0,0 +1,118 @@ + + + + + + + LCOV - lcov.info - core/domain/entity/user_weight_goal_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/entity - user_weight_goal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/material.dart';
+       2             : import 'package:opennutritracker/core/data/dbo/user_weight_goal_dbo.dart';
+       3             : import 'package:opennutritracker/generated/l10n.dart';
+       4             : 
+       5             : enum UserWeightGoalEntity {
+       6             :   loseWeight,
+       7             :   maintainWeight,
+       8             :   gainWeight;
+       9             : 
+      10           0 :   factory UserWeightGoalEntity.fromUserWeightGoalDBO(
+      11             :       UserWeightGoalDBO weightGoalDBO) {
+      12             :     UserWeightGoalEntity weightGoalEntity;
+      13             :     switch (weightGoalDBO) {
+      14           0 :       case UserWeightGoalDBO.gainWeight:
+      15             :         weightGoalEntity = UserWeightGoalEntity.gainWeight;
+      16             :         break;
+      17           0 :       case UserWeightGoalDBO.maintainWeight:
+      18             :         weightGoalEntity = UserWeightGoalEntity.maintainWeight;
+      19             :         break;
+      20           0 :       case UserWeightGoalDBO.loseWeight:
+      21             :         weightGoalEntity = UserWeightGoalEntity.loseWeight;
+      22             :         break;
+      23             :     }
+      24             :     return weightGoalEntity;
+      25             :   }
+      26             : 
+      27           0 :   String getName(BuildContext context) {
+      28             :     String name;
+      29             :     switch (this) {
+      30           0 :       case UserWeightGoalEntity.loseWeight:
+      31           0 :         name = S.of(context).goalLoseWeight;
+      32             :         break;
+      33           0 :       case UserWeightGoalEntity.maintainWeight:
+      34           0 :         name = S.of(context).goalMaintainWeight;
+      35             :         break;
+      36           0 :       case UserWeightGoalEntity.gainWeight:
+      37           0 :         name = S.of(context).goalGainWeight;
+      38             :         break;
+      39             :     }
+      40             :     return name;
+      41             :   }
+      42             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/add_intake_usecase.dart.func-sort-c.html b/coverage/html/core/domain/usecase/add_intake_usecase.dart.func-sort-c.html new file mode 100644 index 000000000..f41920dc9 --- /dev/null +++ b/coverage/html/core/domain/usecase/add_intake_usecase.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/add_intake_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - add_intake_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/add_intake_usecase.dart.func.html b/coverage/html/core/domain/usecase/add_intake_usecase.dart.func.html new file mode 100644 index 000000000..15d1e1544 --- /dev/null +++ b/coverage/html/core/domain/usecase/add_intake_usecase.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/add_intake_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - add_intake_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/add_intake_usecase.dart.gcov.html b/coverage/html/core/domain/usecase/add_intake_usecase.dart.gcov.html new file mode 100644 index 000000000..9b79b7ca4 --- /dev/null +++ b/coverage/html/core/domain/usecase/add_intake_usecase.dart.gcov.html @@ -0,0 +1,88 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/add_intake_usecase.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - add_intake_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/repository/intake_repository.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/intake_entity.dart';
+       3             : 
+       4             : class AddIntakeUsecase {
+       5             :   final IntakeRepository _intakeRepository;
+       6             : 
+       7           0 :   AddIntakeUsecase(this._intakeRepository);
+       8             : 
+       9           0 :   Future<void> addIntake(IntakeEntity intakeEntity) async {
+      10           0 :     return await _intakeRepository.addIntake(intakeEntity);
+      11             :   }
+      12             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.func-sort-c.html b/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.func-sort-c.html new file mode 100644 index 000000000..adbd33380 --- /dev/null +++ b/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/add_tracked_day_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - add_tracked_day_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0250.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.func.html b/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.func.html new file mode 100644 index 000000000..7f6cb646b --- /dev/null +++ b/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/add_tracked_day_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - add_tracked_day_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0250.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.gcov.html b/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.gcov.html new file mode 100644 index 000000000..f384bd111 --- /dev/null +++ b/coverage/html/core/domain/usecase/add_tracked_day_usecase.dart.gcov.html @@ -0,0 +1,149 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/add_tracked_day_usecase.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - add_tracked_day_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0250.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/repository/tracked_day_repository.dart';
+       2             : 
+       3             : class AddTrackedDayUsecase {
+       4             :   final TrackedDayRepository _trackedDayRepository;
+       5             : 
+       6           0 :   AddTrackedDayUsecase(this._trackedDayRepository);
+       7             : 
+       8           0 :   Future<void> updateDayCalorieGoal(DateTime day, double calorieGoal) async {
+       9           0 :     await _trackedDayRepository.updateDayCalorieGoal(day, calorieGoal);
+      10             :   }
+      11             : 
+      12           0 :   Future<void> increaseDayCalorieGoal(DateTime day, double amount) async {
+      13           0 :     await _trackedDayRepository.increaseDayCalorieGoal(day, amount);
+      14             :   }
+      15             : 
+      16           0 :   Future<void> reduceDayCalorieGoal(DateTime day, double amount) async {
+      17           0 :     await _trackedDayRepository.reduceDayCalorieGoal(day, amount);
+      18             :   }
+      19             : 
+      20           0 :   Future<bool> hasTrackedDay(DateTime day) async {
+      21           0 :     return await _trackedDayRepository.hasTrackedDay(day);
+      22             :   }
+      23             : 
+      24           0 :   Future<void> addNewTrackedDay(
+      25             :       DateTime day,
+      26             :       double totalKcalGoal,
+      27             :       double totalCarbsGoal,
+      28             :       double totalFatGoal,
+      29             :       double totalProteinGoal) async {
+      30           0 :     return await _trackedDayRepository.addNewTrackedDay(
+      31             :         day, totalKcalGoal, totalCarbsGoal, totalFatGoal, totalProteinGoal);
+      32             :   }
+      33             : 
+      34           0 :   Future<void> addDayCaloriesTracked(
+      35             :       DateTime day, double caloriesTracked) async {
+      36           0 :     _trackedDayRepository.addDayTrackedCalories(day, caloriesTracked);
+      37             :   }
+      38             : 
+      39           0 :   Future<void> removeDayCaloriesTracked(
+      40             :       DateTime day, double caloriesTracked) async {
+      41           0 :     await _trackedDayRepository.removeDayTrackedCalories(day, caloriesTracked);
+      42             :   }
+      43             : 
+      44           0 :   Future<void> updateDayMacroGoals(DateTime day,
+      45             :       {double? carbsGoal, double? fatGoal, double? proteinGoal}) async {
+      46           0 :     await _trackedDayRepository.updateDayMacroGoal(day,
+      47             :         carbGoal: carbsGoal, fatGoal: fatGoal, proteinGoal: proteinGoal);
+      48             :   }
+      49             : 
+      50           0 :   Future<void> increaseDayMacroGoals(DateTime day,
+      51             :       {double? carbsAmount, double? fatAmount, double? proteinAmount}) async {
+      52           0 :     await _trackedDayRepository.increaseDayMacroGoal(day,
+      53             :         carbGoal: carbsAmount, fatGoal: fatAmount, proteinGoal: proteinAmount);
+      54             :   }
+      55             : 
+      56           0 :   Future<void> reduceDayMacroGoals(DateTime day,
+      57             :       {double? carbsAmount, double? fatAmount, double? proteinAmount}) async {
+      58           0 :     await _trackedDayRepository.reduceDayMacroGoal(day,
+      59             :         carbGoal: carbsAmount, fatGoal: fatAmount, proteinGoal: proteinAmount);
+      60             :   }
+      61             : 
+      62           0 :   Future<void> addDayMacrosTracked(DateTime day,
+      63             :       {double? carbsTracked, double? fatTracked, double? proteinTracked}) async {
+      64           0 :     await _trackedDayRepository.addDayMacrosTracked(day,
+      65             :         carbsTracked: carbsTracked, fatTracked: fatTracked, proteinTracked: proteinTracked);
+      66             :   }
+      67             : 
+      68           0 :   Future<void> removeDayMacrosTracked(DateTime day,
+      69             :       {double? carbsTracked, double? fatTracked, double? proteinTracked}) async {
+      70           0 :     await _trackedDayRepository.removeDayMacrosTracked(day,
+      71             :         carbsTracked: carbsTracked, fatTracked: fatTracked, proteinTracked: proteinTracked);
+      72             :   }
+      73             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.func-sort-c.html b/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.func-sort-c.html new file mode 100644 index 000000000..8fc449d9c --- /dev/null +++ b/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/get_kcal_goal_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - get_kcal_goal_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.func.html b/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.func.html new file mode 100644 index 000000000..cc65610d9 --- /dev/null +++ b/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/get_kcal_goal_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - get_kcal_goal_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.gcov.html b/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.gcov.html new file mode 100644 index 000000000..592306336 --- /dev/null +++ b/coverage/html/core/domain/usecase/get_kcal_goal_usecase.dart.gcov.html @@ -0,0 +1,106 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/get_kcal_goal_usecase.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - get_kcal_goal_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:collection/collection.dart';
+       2             : import 'package:opennutritracker/core/data/repository/config_repository.dart';
+       3             : import 'package:opennutritracker/core/data/repository/user_activity_repository.dart';
+       4             : import 'package:opennutritracker/core/data/repository/user_repository.dart';
+       5             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       6             : import 'package:opennutritracker/core/utils/calc/calorie_goal_calc.dart';
+       7             : 
+       8             : class GetKcalGoalUsecase {
+       9             :   final UserRepository _userRepository;
+      10             :   final ConfigRepository _configRepository;
+      11             :   final UserActivityRepository _userActivityRepository;
+      12             : 
+      13           0 :   GetKcalGoalUsecase(
+      14             :       this._userRepository, this._configRepository, this._userActivityRepository);
+      15             : 
+      16           0 :   Future<double> getKcalGoal(
+      17             :       {UserEntity? userEntity,
+      18             :       double? totalKcalActivitiesParam,
+      19             :       double? kcalUserAdjustment}) async {
+      20           0 :     final user = userEntity ?? await _userRepository.getUserData();
+      21           0 :     final config = await _configRepository.getConfig();
+      22             :     final totalKcalActivities = totalKcalActivitiesParam ??
+      23           0 :         (await _userActivityRepository.getAllUserActivityByDate(DateTime.now()))
+      24           0 :             .map((activity) => activity.burnedKcal)
+      25           0 :             .toList()
+      26           0 :             .sum;
+      27           0 :     return CalorieGoalCalc.getTotalKcalGoal(user, totalKcalActivities,
+      28           0 :         kcalUserAdjustment: config.userKcalAdjustment);
+      29             :   }
+      30             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.func-sort-c.html b/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.func-sort-c.html new file mode 100644 index 000000000..d1f4af811 --- /dev/null +++ b/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/get_macro_goal_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - get_macro_goal_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0130.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.func.html b/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.func.html new file mode 100644 index 000000000..e7d84d0e1 --- /dev/null +++ b/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/get_macro_goal_usecase.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - get_macro_goal_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0130.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.gcov.html b/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.gcov.html new file mode 100644 index 000000000..5b689c9d1 --- /dev/null +++ b/coverage/html/core/domain/usecase/get_macro_goal_usecase.dart.gcov.html @@ -0,0 +1,108 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase/get_macro_goal_usecase.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecase - get_macro_goal_usecase.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0130.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/data/repository/config_repository.dart';
+       2             : import 'package:opennutritracker/core/utils/calc/macro_calc.dart';
+       3             : 
+       4             : class GetMacroGoalUsecase {
+       5             :   final ConfigRepository _configRepository;
+       6             : 
+       7           0 :   GetMacroGoalUsecase(this._configRepository);
+       8             : 
+       9           0 :   Future<double> getCarbsGoal(double totalCalorieGoal) async {
+      10           0 :     final config = await _configRepository.getConfig();
+      11           0 :     final userCarbGoal = config.userCarbGoalPct;
+      12             : 
+      13           0 :     return MacroCalc.getTotalCarbsGoal(totalCalorieGoal,
+      14             :         userCarbsGoal: userCarbGoal);
+      15             :   }
+      16             : 
+      17           0 :   Future<double> getFatsGoal(double totalCalorieGoal) async {
+      18           0 :     final config = await _configRepository.getConfig();
+      19           0 :     final userFatGoal = config.userFatGoalPct;
+      20             : 
+      21           0 :     return MacroCalc.getTotalFatsGoal(totalCalorieGoal,
+      22             :         userFatsGoal: userFatGoal);
+      23             :   }
+      24             : 
+      25           0 :   Future<double> getProteinsGoal(double totalCalorieGoal) async {
+      26           0 :     final config = await _configRepository.getConfig();
+      27           0 :     final userProteinGoal = config.userProteinGoalPct;
+      28             : 
+      29           0 :     return MacroCalc.getTotalProteinsGoal(totalCalorieGoal,
+      30             :         userProteinsGoal: userProteinGoal);
+      31             :   }
+      32             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/index-sort-f.html b/coverage/html/core/domain/usecase/index-sort-f.html new file mode 100644 index 000000000..819ec2bad --- /dev/null +++ b/coverage/html/core/domain/usecase/index-sort-f.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecaseHitTotalCoverage
Test:lcov.infoLines:0510.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
add_intake_usecase.dart +
0.0%
+
0.0 %0 / 3-0 / 0
get_kcal_goal_usecase.dart +
0.0%
+
0.0 %0 / 10-0 / 0
add_tracked_day_usecase.dart +
0.0%
+
0.0 %0 / 25-0 / 0
get_macro_goal_usecase.dart +
0.0%
+
0.0 %0 / 13-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/index-sort-l.html b/coverage/html/core/domain/usecase/index-sort-l.html new file mode 100644 index 000000000..c9ec7222e --- /dev/null +++ b/coverage/html/core/domain/usecase/index-sort-l.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecaseHitTotalCoverage
Test:lcov.infoLines:0510.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
add_intake_usecase.dart +
0.0%
+
0.0 %0 / 3-0 / 0
get_kcal_goal_usecase.dart +
0.0%
+
0.0 %0 / 10-0 / 0
get_macro_goal_usecase.dart +
0.0%
+
0.0 %0 / 13-0 / 0
add_tracked_day_usecase.dart +
0.0%
+
0.0 %0 / 25-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/domain/usecase/index.html b/coverage/html/core/domain/usecase/index.html new file mode 100644 index 000000000..df40cec22 --- /dev/null +++ b/coverage/html/core/domain/usecase/index.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/domain/usecase + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/domain/usecaseHitTotalCoverage
Test:lcov.infoLines:0510.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
add_intake_usecase.dart +
0.0%
+
0.0 %0 / 3-0 / 0
add_tracked_day_usecase.dart +
0.0%
+
0.0 %0 / 25-0 / 0
get_kcal_goal_usecase.dart +
0.0%
+
0.0 %0 / 10-0 / 0
get_macro_goal_usecase.dart +
0.0%
+
0.0 %0 / 13-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/bmr_calc.dart.func-sort-c.html b/coverage/html/core/utils/calc/bmr_calc.dart.func-sort-c.html new file mode 100644 index 000000000..7de7810dc --- /dev/null +++ b/coverage/html/core/utils/calc/bmr_calc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/bmr_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - bmr_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0560.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/bmr_calc.dart.func.html b/coverage/html/core/utils/calc/bmr_calc.dart.func.html new file mode 100644 index 000000000..c1644c8a9 --- /dev/null +++ b/coverage/html/core/utils/calc/bmr_calc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/bmr_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - bmr_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0560.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/bmr_calc.dart.gcov.html b/coverage/html/core/utils/calc/bmr_calc.dart.gcov.html new file mode 100644 index 000000000..a85923258 --- /dev/null +++ b/coverage/html/core/utils/calc/bmr_calc.dart.gcov.html @@ -0,0 +1,205 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/bmr_calc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - bmr_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0560.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_gender_entity.dart';
+       3             : 
+       4             : ///
+       5             : /// Calculates BMR of UserEntity based on the 1918 Harris-Benedict equation
+       6             : /// from the paper 'A Biometric Study of Human Basal Metabolism'
+       7             : /// by Harris & Benedict
+       8             : /// https://pubmed.ncbi.nlm.nih.gov/16576330/
+       9             : ///
+      10             : class BMRCalc {
+      11           0 :   static double getBMRHarrisBenedict1918(UserEntity user) {
+      12             :     double bmr;
+      13           0 :     switch (user.gender) {
+      14           0 :       case UserGenderEntity.male:
+      15           0 :         bmr = 66.4730 +
+      16           0 :             13.7516 * user.weightKG +
+      17           0 :             5.0033 * user.heightCM -
+      18           0 :             6.7550 * user.age;
+      19             :         break;
+      20           0 :       case UserGenderEntity.female:
+      21           0 :         bmr = 655.0955 +
+      22           0 :             9.5634 * user.weightKG +
+      23           0 :             1.8496 * user.heightCM -
+      24           0 :             4.6756 * user.age;
+      25             :         break;
+      26             :     }
+      27             :     return bmr;
+      28             :   }
+      29             : 
+      30             :   ///
+      31             :   /// Calculates BMR of UserEntity based on the 1984 revised
+      32             :   /// Harris-Benedict equation from the paper
+      33             :   /// 'The Harris Benedict equation reevaluated: resting energy
+      34             :   /// requirements and the body cell mass' by Roza & Shizgal
+      35             :   /// https://academic.oup.com/ajcn/article-abstract/40/1/168/4691315
+      36             :   ///
+      37           0 :   static double getBMRRevisedHarrisBenedict1984(UserEntity user) {
+      38             :     double bmr;
+      39           0 :     switch (user.gender) {
+      40           0 :       case UserGenderEntity.male:
+      41           0 :         bmr = 88.362 +
+      42           0 :             13.397 * user.weightKG +
+      43           0 :             4.799 * user.heightCM -
+      44           0 :             5.677 * user.age;
+      45             :         break;
+      46           0 :       case UserGenderEntity.female:
+      47           0 :         bmr = 447.593 +
+      48           0 :             9.247 * user.weightKG +
+      49           0 :             3.098 * user.heightCM -
+      50           0 :             4.330 * user.age;
+      51             :         break;
+      52             :     }
+      53             :     return bmr;
+      54             :   }
+      55             : 
+      56             :   ///
+      57             :   /// Calculates BMR of UserEntity based on the 1990 Mifflin-St.Jeor equation
+      58             :   /// from the paper 'A new predictive equation for resting energy
+      59             :   /// expenditure in healthy individuals'
+      60             :   /// by Mifflin & St.Jeor
+      61             :   /// https://academic.oup.com/ajcn/article-abstract/51/2/241/4695104
+      62             :   ///
+      63           0 :   static double getBMRMifflinStJeor1990(UserEntity user) {
+      64             :     double a;
+      65           0 :     switch (user.gender) {
+      66           0 :       case UserGenderEntity.male:
+      67             :         a = 5;
+      68             :         break;
+      69           0 :       case UserGenderEntity.female:
+      70             :         a = -161;
+      71             :         break;
+      72             :     }
+      73           0 :     final bmr = 10 * user.weightKG + 6.25 * user.heightCM - 5 * user.age + a;
+      74             :     return bmr;
+      75             :   }
+      76             : 
+      77             :   /// Calculates BMR of UserEntity based on the 1985 Schofield equation
+      78             :   /// from the paper 'Predicting basal metabolic rate, new standards and
+      79             :   /// review of previous work' by Schofield
+      80             :   /// https://pubmed.ncbi.nlm.nih.gov/4044297/
+      81             :   ///
+      82           0 :   static double getBMRSchofield11985(UserEntity user) {
+      83             :     double bmr;
+      84           0 :     final age = user.age;
+      85           0 :     switch (user.gender) {
+      86           0 :       case UserGenderEntity.male:
+      87           0 :         if (age < 3) {
+      88           0 :           bmr = 59.512 * user.weightKG - 30.4;
+      89             :           break;
+      90           0 :         } else if (age < 10) {
+      91           0 :           bmr = 22.706 * user.weightKG + 504.3;
+      92             :           break;
+      93           0 :         } else if (age < 18) {
+      94           0 :           bmr = 17.686 * user.weightKG + 658.2;
+      95             :           break;
+      96           0 :         } else if (age < 30) {
+      97           0 :           bmr = 15.057 * user.weightKG + 692.2;
+      98             :           break;
+      99           0 :         } else if (age < 60) {
+     100           0 :           bmr = 11.472 * user.weightKG + 873.1;
+     101             :           break;
+     102             :         } else {
+     103           0 :           bmr = 11.711 * user.weightKG + 587.7;
+     104             :           break;
+     105             :         }
+     106           0 :       case UserGenderEntity.female:
+     107           0 :         if (age < 3) {
+     108           0 :           bmr = 58.317 * user.weightKG - 31.1;
+     109             :           break;
+     110           0 :         } else if (age < 10) {
+     111           0 :           bmr = 20.315 * user.weightKG + 485.9;
+     112             :           break;
+     113           0 :         } else if (age < 18) {
+     114           0 :           bmr = 13.384 * user.weightKG + 692.6;
+     115             :           break;
+     116           0 :         } else if (age < 30) {
+     117           0 :           bmr = 14.818 * user.weightKG + 486.6;
+     118             :           break;
+     119           0 :         } else if (age < 60) {
+     120           0 :           bmr = 8.126 * user.weightKG + 845.6;
+     121             :           break;
+     122             :         } else {
+     123           0 :           bmr = 9.082 * user.weightKG + 658.5;
+     124             :           break;
+     125             :         }
+     126             :     }
+     127             :     return bmr;
+     128             :   }
+     129             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/calorie_goal_calc.dart.func-sort-c.html b/coverage/html/core/utils/calc/calorie_goal_calc.dart.func-sort-c.html new file mode 100644 index 000000000..114e48764 --- /dev/null +++ b/coverage/html/core/utils/calc/calorie_goal_calc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/calorie_goal_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - calorie_goal_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91181.8 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/calorie_goal_calc.dart.func.html b/coverage/html/core/utils/calc/calorie_goal_calc.dart.func.html new file mode 100644 index 000000000..00b74550c --- /dev/null +++ b/coverage/html/core/utils/calc/calorie_goal_calc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/calorie_goal_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - calorie_goal_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91181.8 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/calorie_goal_calc.dart.gcov.html b/coverage/html/core/utils/calc/calorie_goal_calc.dart.gcov.html new file mode 100644 index 000000000..07afabdd8 --- /dev/null +++ b/coverage/html/core/utils/calc/calorie_goal_calc.dart.gcov.html @@ -0,0 +1,112 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/calorie_goal_calc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - calorie_goal_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91181.8 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_weight_goal_entity.dart';
+       3             : import 'package:opennutritracker/core/utils/calc/tdee_calc.dart';
+       4             : 
+       5             : class CalorieGoalCalc {
+       6             :   static const double loseWeightKcalAdjustment = -500;
+       7             :   static const double maintainWeightKcalAdjustment = 0;
+       8             :   static const double gainWeightKcalAdjustment = 500;
+       9             : 
+      10           0 :   static double getDailyKcalLeft(
+      11             :           double totalKcalGoal, double totalKcalIntake) =>
+      12           0 :       totalKcalGoal - totalKcalIntake;
+      13             : 
+      14           1 :   static double getTdee(UserEntity userEntity) =>
+      15           1 :       TDEECalc.getTDEEKcalIOM2005(userEntity);
+      16             : 
+      17           1 :   static double getTotalKcalGoal(
+      18             :           UserEntity userEntity, double totalKcalActivities,
+      19             :           {double? kcalUserAdjustment}) =>
+      20           2 :       getTdee(userEntity) +
+      21           3 :       getKcalGoalAdjustment(userEntity.goal) +
+      22           1 :       (kcalUserAdjustment ?? 0) +
+      23             :       totalKcalActivities;
+      24             : 
+      25           1 :   static double getKcalGoalAdjustment(UserWeightGoalEntity goal) {
+      26             :     double kcalAdjustment;
+      27           1 :     if (goal == UserWeightGoalEntity.loseWeight) {
+      28             :       kcalAdjustment = loseWeightKcalAdjustment;
+      29           1 :     } else if (goal == UserWeightGoalEntity.gainWeight) {
+      30             :       kcalAdjustment = gainWeightKcalAdjustment;
+      31             :     } else {
+      32             :       kcalAdjustment = maintainWeightKcalAdjustment;
+      33             :     }
+      34             :     return kcalAdjustment;
+      35             :   }
+      36             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/index-sort-f.html b/coverage/html/core/utils/calc/index-sort-f.html new file mode 100644 index 000000000..849097912 --- /dev/null +++ b/coverage/html/core/utils/calc/index-sort-f.html @@ -0,0 +1,153 @@ + + + + + + + LCOV - lcov.info - core/utils/calc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calcHitTotalCoverage
Test:lcov.infoLines:3614824.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
pal_calc.dart +
75.0%75.0%
+
75.0 %9 / 12-0 / 0
tdee_calc.dart +
80.0%80.0%
+
80.0 %16 / 20-0 / 0
unit_calc.dart +
0.0%
+
0.0 %0 / 40-0 / 0
bmr_calc.dart +
0.0%
+
0.0 %0 / 56-0 / 0
macro_calc.dart +
0.0%
+
0.0 %0 / 7-0 / 0
met_calc.dart +
100.0%
+
100.0 %2 / 2-0 / 0
calorie_goal_calc.dart +
81.8%81.8%
+
81.8 %9 / 11-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/index-sort-l.html b/coverage/html/core/utils/calc/index-sort-l.html new file mode 100644 index 000000000..bcf8b5afc --- /dev/null +++ b/coverage/html/core/utils/calc/index-sort-l.html @@ -0,0 +1,153 @@ + + + + + + + LCOV - lcov.info - core/utils/calc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calcHitTotalCoverage
Test:lcov.infoLines:3614824.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
macro_calc.dart +
0.0%
+
0.0 %0 / 7-0 / 0
unit_calc.dart +
0.0%
+
0.0 %0 / 40-0 / 0
bmr_calc.dart +
0.0%
+
0.0 %0 / 56-0 / 0
pal_calc.dart +
75.0%75.0%
+
75.0 %9 / 12-0 / 0
tdee_calc.dart +
80.0%80.0%
+
80.0 %16 / 20-0 / 0
calorie_goal_calc.dart +
81.8%81.8%
+
81.8 %9 / 11-0 / 0
met_calc.dart +
100.0%
+
100.0 %2 / 2-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/index.html b/coverage/html/core/utils/calc/index.html new file mode 100644 index 000000000..48cddbab5 --- /dev/null +++ b/coverage/html/core/utils/calc/index.html @@ -0,0 +1,153 @@ + + + + + + + LCOV - lcov.info - core/utils/calc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calcHitTotalCoverage
Test:lcov.infoLines:3614824.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
bmr_calc.dart +
0.0%
+
0.0 %0 / 56-0 / 0
calorie_goal_calc.dart +
81.8%81.8%
+
81.8 %9 / 11-0 / 0
macro_calc.dart +
0.0%
+
0.0 %0 / 7-0 / 0
met_calc.dart +
100.0%
+
100.0 %2 / 2-0 / 0
pal_calc.dart +
75.0%75.0%
+
75.0 %9 / 12-0 / 0
tdee_calc.dart +
80.0%80.0%
+
80.0 %16 / 20-0 / 0
unit_calc.dart +
0.0%
+
0.0 %0 / 40-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/macro_calc.dart.func-sort-c.html b/coverage/html/core/utils/calc/macro_calc.dart.func-sort-c.html new file mode 100644 index 000000000..150eac56f --- /dev/null +++ b/coverage/html/core/utils/calc/macro_calc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/macro_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - macro_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:070.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/macro_calc.dart.func.html b/coverage/html/core/utils/calc/macro_calc.dart.func.html new file mode 100644 index 000000000..a50537f4c --- /dev/null +++ b/coverage/html/core/utils/calc/macro_calc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/macro_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - macro_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:070.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/macro_calc.dart.gcov.html b/coverage/html/core/utils/calc/macro_calc.dart.gcov.html new file mode 100644 index 000000000..2eed33e62 --- /dev/null +++ b/coverage/html/core/utils/calc/macro_calc.dart.gcov.html @@ -0,0 +1,112 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/macro_calc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - macro_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:070.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : class MacroCalc {
+       2             :   /// Information provided by
+       3             :   /// 'OBESITY: PREVENTING AND MANAGING
+       4             :   /// THE GLOBAL EPIDEMIC' by WHO page 104
+       5             :   /// ISBN 92 4 120894 5
+       6             :   /// ISSN 0512-3054
+       7             :   static const _carbsKcalPerGram = 4.0;
+       8             :   static const _fatKcalPerGram = 9.0;
+       9             :   static const _proteinKcalPerGram = 4.0;
+      10             : 
+      11             :   static const _defaultCarbsPercentageGoal = 0.6;
+      12             :   static const _defaultFatsPercentageGoal = 0.25;
+      13             :   static const _defaultProteinsPercentageGoal = 0.15;
+      14             : 
+      15             :   /// Calculate the total carbs goal based on the total calorie goal
+      16             :   /// Uses the default percentage if the user has not set a goal
+      17           0 :   static double getTotalCarbsGoal(
+      18             :           double totalCalorieGoal, {double? userCarbsGoal}) =>
+      19           0 :       (totalCalorieGoal * (userCarbsGoal ?? _defaultCarbsPercentageGoal)) /
+      20             :       _carbsKcalPerGram;
+      21             : 
+      22             :   /// Calculate the total fats goal based on the total calorie goal
+      23             :   /// Uses the default percentage if the user has not set a goal
+      24           0 :   static double getTotalFatsGoal(
+      25             :           double totalCalorieGoal, {double? userFatsGoal}) =>
+      26           0 :       (totalCalorieGoal * (userFatsGoal ?? _defaultFatsPercentageGoal)) /
+      27             :       _fatKcalPerGram;
+      28             : 
+      29             :   /// Calculate the total proteins goal based on the total calorie goal
+      30             :   /// Uses the default percentage if the user has not set a goal
+      31           0 :   static double getTotalProteinsGoal(
+      32             :           double totalCalorieGoal, {double? userProteinsGoal}) =>
+      33           0 :       (totalCalorieGoal *
+      34           0 :           (userProteinsGoal ?? _defaultProteinsPercentageGoal)) /
+      35             :       _proteinKcalPerGram;
+      36             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/met_calc.dart.func-sort-c.html b/coverage/html/core/utils/calc/met_calc.dart.func-sort-c.html new file mode 100644 index 000000000..a945c29b6 --- /dev/null +++ b/coverage/html/core/utils/calc/met_calc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/met_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - met_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:22100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/met_calc.dart.func.html b/coverage/html/core/utils/calc/met_calc.dart.func.html new file mode 100644 index 000000000..e3f1b2fec --- /dev/null +++ b/coverage/html/core/utils/calc/met_calc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/met_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - met_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:22100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/met_calc.dart.gcov.html b/coverage/html/core/utils/calc/met_calc.dart.gcov.html new file mode 100644 index 000000000..40da74f48 --- /dev/null +++ b/coverage/html/core/utils/calc/met_calc.dart.gcov.html @@ -0,0 +1,90 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/met_calc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - met_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:22100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/domain/entity/physical_activity_entity.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       3             : 
+       4             : class METCalc {
+       5             :   /// Calculates total kcal with formula by the
+       6             :   /// '2011 Compendium of Physical Activities'
+       7             :   /// https://pubmed.ncbi.nlm.nih.gov/21681120/
+       8             :   /// by Ainsworth et al.
+       9             :   /// kcal = MET x weight in kg x duration in hours
+      10           1 :   static double getTotalBurnedKcal(UserEntity userEntity,
+      11             :       PhysicalActivityEntity physicalActivityEntity, double durationMin) {
+      12           5 :     return physicalActivityEntity.mets * userEntity.weightKG * durationMin / 60;
+      13             :   }
+      14             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/pal_calc.dart.func-sort-c.html b/coverage/html/core/utils/calc/pal_calc.dart.func-sort-c.html new file mode 100644 index 000000000..4f5a0c480 --- /dev/null +++ b/coverage/html/core/utils/calc/pal_calc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/pal_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - pal_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91275.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/pal_calc.dart.func.html b/coverage/html/core/utils/calc/pal_calc.dart.func.html new file mode 100644 index 000000000..3fbbf67fc --- /dev/null +++ b/coverage/html/core/utils/calc/pal_calc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/pal_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - pal_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91275.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/pal_calc.dart.gcov.html b/coverage/html/core/utils/calc/pal_calc.dart.gcov.html new file mode 100644 index 000000000..6663fdaef --- /dev/null +++ b/coverage/html/core/utils/calc/pal_calc.dart.gcov.html @@ -0,0 +1,137 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/pal_calc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - pal_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:91275.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_gender_entity.dart';
+       3             : import 'package:opennutritracker/core/domain/entity/user_pal_entity.dart';
+       4             : 
+       5             : class PalCalc {
+       6             :   ///
+       7             :   /// Return the physical activity level (PAL) value fom the PAL category
+       8             :   /// based on the IOM Physical Activity Recommendations 2004
+       9             :   /// 'Chronicle of the Institute of Medicine physical activity recommendation:
+      10             :   /// how a physical activity recommendation came to be among dietary
+      11             :   /// recommendations'
+      12             :   /// by Brooks et al.
+      13             :   /// https://pubmed.ncbi.nlm.nih.gov/15113740/
+      14             :   ///
+      15           2 :   static double getPALValueFromActivityCategory(UserEntity userEntity) {
+      16             :     double palValue;
+      17           2 :     switch (userEntity.pal) {
+      18           2 :       case UserPALEntity.sedentary:
+      19             :         palValue = 1.25;
+      20             :         break;
+      21           2 :       case UserPALEntity.lowActive:
+      22             :         palValue = 1.5;
+      23             :         break;
+      24           2 :       case UserPALEntity.active:
+      25             :         palValue = 1.75;
+      26             :         break;
+      27           0 :       case UserPALEntity.veryActive:
+      28             :         palValue = 2.2;
+      29             :         break;
+      30             :     }
+      31             :     return palValue;
+      32             :   }
+      33             : 
+      34             :   ///
+      35             :   /// Returns the physical activity coefficient (PA) from the PAL value
+      36             :   /// and user gender based on IOM recommendation
+      37             :   ///
+      38             :   /// Institute of Medicine. 2005. Dietary Reference Intakes for Energy,
+      39             :   /// Carbohydrate, Fiber, Fat, Fatty Acids, Cholesterol, Protein,
+      40             :   /// and Amino Acids. (p.204)
+      41             :   /// Washington, DC: The National Academies Press.
+      42             :   /// https://doi.org/10.17226/10490.
+      43             :   /// https://nap.nationalacademies.org/catalog/10490/dietary-reference-intakes-for-energy-carbohydrate-fiber-fat-fatty-acids-cholesterol-protein-and-amino-acids
+      44           2 :   static double getPAValueFromPALValue(UserEntity userEntity, double palValue) {
+      45             :     double paValue = 1.0;
+      46           2 :     if (palValue < 1.4) {
+      47             :       paValue = 1.0;
+      48           2 :     } else if (palValue < 1.6) {
+      49           0 :       userEntity.gender == UserGenderEntity.male
+      50             :           ? paValue = 1.12
+      51             :           : paValue = 1.14;
+      52           2 :     } else if (palValue < 1.9) {
+      53             :       paValue = 1.27;
+      54             :     } else {
+      55           0 :       userEntity.gender == UserGenderEntity.male
+      56             :           ? paValue = 1.54
+      57             :           : paValue = 1.45;
+      58             :     }
+      59             :     return paValue;
+      60             :   }
+      61             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/tdee_calc.dart.func-sort-c.html b/coverage/html/core/utils/calc/tdee_calc.dart.func-sort-c.html new file mode 100644 index 000000000..b13d6204f --- /dev/null +++ b/coverage/html/core/utils/calc/tdee_calc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/tdee_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - tdee_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:162080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/tdee_calc.dart.func.html b/coverage/html/core/utils/calc/tdee_calc.dart.func.html new file mode 100644 index 000000000..ef46b5b4a --- /dev/null +++ b/coverage/html/core/utils/calc/tdee_calc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/tdee_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - tdee_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:162080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/tdee_calc.dart.gcov.html b/coverage/html/core/utils/calc/tdee_calc.dart.gcov.html new file mode 100644 index 000000000..cc7049778 --- /dev/null +++ b/coverage/html/core/utils/calc/tdee_calc.dart.gcov.html @@ -0,0 +1,124 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/tdee_calc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - tdee_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:162080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/domain/entity/user_entity.dart';
+       2             : import 'package:opennutritracker/core/domain/entity/user_gender_entity.dart';
+       3             : import 'package:opennutritracker/core/utils/calc/bmr_calc.dart';
+       4             : import 'package:opennutritracker/core/utils/calc/pal_calc.dart';
+       5             : 
+       6             : class TDEECalc {
+       7             :   /// Calculates TDEE from userEntity based on the formula from
+       8             :   /// 'Human energy requirements Report of a Joint FAO/WHO/UNU
+       9             :   /// Expert Consultation'
+      10             :   /// TDEE = BMR x PAL
+      11             :   /// https://www.fao.org/3/y5686e/y5686e00.htm
+      12           0 :   static double getTDEEKcalWHO2001(UserEntity userEntity) {
+      13           0 :     final userBMR = BMRCalc.getBMRSchofield11985(userEntity);
+      14           0 :     final userPAL = PalCalc.getPALValueFromActivityCategory(userEntity);
+      15           0 :     return userBMR * userPAL;
+      16             :   }
+      17             : 
+      18             :   /// Returns the total daily energy expenditure (TDEE) of given userEntity
+      19             :   /// based on 2005 IOM equation
+      20             :   ///
+      21             :   /// Institute of Medicine. 2005. Dietary Reference Intakes for Energy,
+      22             :   /// Carbohydrate, Fiber, Fat, Fatty Acids, Cholesterol, Protein,
+      23             :   /// and Amino Acids. (p.204)
+      24             :   /// Washington, DC: The National Academies Press.
+      25             :   /// https://doi.org/10.17226/10490.
+      26             :   /// https://nap.nationalacademies.org/catalog/10490/dietary-reference-intakes-for-energy-carbohydrate-fiber-fat-fatty-acids-cholesterol-protein-and-amino-acids
+      27           2 :   static double getTDEEKcalIOM2005(UserEntity userEntity) {
+      28             :     double tdeeKcal;
+      29           4 :     if (userEntity.gender == UserGenderEntity.male) {
+      30           2 :       tdeeKcal = 864 -
+      31           6 :           9.72 * userEntity.age +
+      32           2 :           PalCalc.getPAValueFromPALValue(userEntity,
+      33           4 :                   PalCalc.getPALValueFromActivityCategory(userEntity)) *
+      34           2 :               14.2 *
+      35           4 :               userEntity.weightKG +
+      36           6 :           503 * (userEntity.heightCM / 100);
+      37             :     } else {
+      38           2 :       tdeeKcal = 387 -
+      39           6 :           7.31 * userEntity.age +
+      40           2 :           PalCalc.getPAValueFromPALValue(userEntity,
+      41           4 :                   PalCalc.getPALValueFromActivityCategory(userEntity)) *
+      42           2 :               10.9 *
+      43           4 :               userEntity.weightKG +
+      44           6 :           660.7 * (userEntity.heightCM / 100);
+      45             :     }
+      46             :     return tdeeKcal;
+      47             :   }
+      48             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/unit_calc.dart.func-sort-c.html b/coverage/html/core/utils/calc/unit_calc.dart.func-sort-c.html new file mode 100644 index 000000000..60626b29b --- /dev/null +++ b/coverage/html/core/utils/calc/unit_calc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/unit_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - unit_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0400.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/unit_calc.dart.func.html b/coverage/html/core/utils/calc/unit_calc.dart.func.html new file mode 100644 index 000000000..5446d8e0b --- /dev/null +++ b/coverage/html/core/utils/calc/unit_calc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/unit_calc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - unit_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0400.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/calc/unit_calc.dart.gcov.html b/coverage/html/core/utils/calc/unit_calc.dart.gcov.html new file mode 100644 index 000000000..ad9756e94 --- /dev/null +++ b/coverage/html/core/utils/calc/unit_calc.dart.gcov.html @@ -0,0 +1,169 @@ + + + + + + + LCOV - lcov.info - core/utils/calc/unit_calc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils/calc - unit_calc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0400.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/cupertino.dart';
+       2             : import 'package:opennutritracker/core/utils/extensions.dart';
+       3             : import 'package:opennutritracker/generated/l10n.dart';
+       4             : 
+       5             : class UnitCalc {
+       6           0 :   static double cmToInches(double cm) {
+       7           0 :     return cm / 2.54;
+       8             :   }
+       9             : 
+      10           0 :   static double inchesToCm(double inches) {
+      11           0 :     return inches * 2.54;
+      12             :   }
+      13             : 
+      14             :   /// Converts centimeters to feet and rounds the result
+      15           0 :   static double cmToFeet(double cm) {
+      16           0 :     return (cm / 30.48).roundToPrecision(2);
+      17             :   }
+      18             : 
+      19             :   /// Converts feet to centimeters and rounds the result
+      20           0 :   static double feetToCm(double feet) {
+      21           0 :     return (feet * 30.48).roundToDouble();
+      22             :   }
+      23             : 
+      24             :   /// Converts feet to inches and rounds the result
+      25           0 :   static double kgToLbs(double kg) {
+      26           0 :     return (kg * 2.20462).roundToDouble();
+      27             :   }
+      28             : 
+      29             :   /// Converts pounds to kilograms and rounds the result
+      30           0 :   static double lbsToKg(double lbs) {
+      31           0 :     return (lbs / 2.20462).roundToDouble();
+      32             :   }
+      33             : 
+      34           0 :   static double gToOz(double g) {
+      35           0 :     return g / 28.3495;
+      36             :   }
+      37             : 
+      38           0 :   static double ozToG(double oz) {
+      39           0 :     return oz * 28.3495;
+      40             :   }
+      41             : 
+      42           0 :   static double mlToFlOz(double ml) {
+      43           0 :     return ml / 29.5735;
+      44             :   }
+      45             : 
+      46           0 :   static double flOzToMl(double flOz) {
+      47           0 :     return flOz * 29.5735;
+      48             :   }
+      49             : 
+      50           0 :   static double metricToImperialValue(double metricValue, String unit) {
+      51             :     switch (unit) {
+      52           0 :       case 'g':
+      53           0 :         return gToOz(metricValue);
+      54           0 :       case 'ml':
+      55           0 :         return mlToFlOz(metricValue);
+      56             :       default:
+      57             :         return metricValue;
+      58             :     }
+      59             :   }
+      60             : 
+      61           0 :   static double imperialToMetricValue(double imperialValue, String unit) {
+      62             :     switch (unit) {
+      63           0 :       case 'oz':
+      64           0 :         return ozToG(imperialValue);
+      65           0 :       case 'fl oz' || 'fl.oz':
+      66           0 :         return flOzToMl(imperialValue);
+      67             :       default:
+      68             :         return imperialValue;
+      69             :     }
+      70             :   }
+      71             : 
+      72           0 :   static String metricToImperialUnit(BuildContext context, String unit) {
+      73             :     switch (unit) {
+      74           0 :       case 'g':
+      75           0 :         return S.of(context).ozUnit;
+      76           0 :       case 'ml':
+      77           0 :         return S.of(context).flOzUnit;
+      78             :       default:
+      79             :         return unit;
+      80             :     }
+      81             :   }
+      82             : 
+      83           0 :   static String imperialToMetricUnit(BuildContext context, String unit) {
+      84             :     switch (unit) {
+      85           0 :       case 'oz':
+      86           0 :         return S.of(context).gramUnit;
+      87           0 :       case 'fl oz' || 'fl.oz':
+      88           0 :         return S.of(context).milliliterUnit;
+      89             :       default:
+      90             :         return unit;
+      91             :     }
+      92             :   }
+      93             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/custom_icons.dart.func-sort-c.html b/coverage/html/core/utils/custom_icons.dart.func-sort-c.html new file mode 100644 index 000000000..2c43c24bd --- /dev/null +++ b/coverage/html/core/utils/custom_icons.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/custom_icons.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - custom_icons.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:010.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/custom_icons.dart.func.html b/coverage/html/core/utils/custom_icons.dart.func.html new file mode 100644 index 000000000..785325d02 --- /dev/null +++ b/coverage/html/core/utils/custom_icons.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/custom_icons.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - custom_icons.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:010.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/custom_icons.dart.gcov.html b/coverage/html/core/utils/custom_icons.dart.gcov.html new file mode 100644 index 000000000..dc68fe5c6 --- /dev/null +++ b/coverage/html/core/utils/custom_icons.dart.gcov.html @@ -0,0 +1,175 @@ + + + + + + + LCOV - lcov.info - core/utils/custom_icons.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - custom_icons.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:010.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : /// Flutter icons CustomIcons
+       2             : /// Copyright (C) 2023 by original authors @ fluttericon.com, fontello.com
+       3             : /// This font was generated by FlutterIcon.com, which is derived from Fontello.
+       4             : ///
+       5             : /// To use this font, place it in your fonts/ directory and include the
+       6             : /// following in your pubspec.yaml
+       7             : ///
+       8             : /// flutter:
+       9             : ///   fonts:
+      10             : ///    - family:  CustomIcons
+      11             : ///      fonts:
+      12             : ///       - asset: fonts/CustomIcons.ttf
+      13             : ///
+      14             : /// 
+      15             : /// * Material Design Icons, Copyright (C) Google, Inc
+      16             : ///         Author:    Google
+      17             : ///         License:   Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0)
+      18             : ///         Homepage:  https://design.google.com/icons/
+      19             : ///
+      20             : // ignore_for_file: constant_identifier_names
+      21             : // ignore_for_file: dangling_library_doc_comments
+      22             : 
+      23             : import 'package:flutter/widgets.dart';
+      24             : 
+      25             : class CustomIcons {
+      26           0 :   CustomIcons._();
+      27             : 
+      28             :   static const _kFontFam = 'CustomIcons';
+      29             :   static const String? _kFontPkg = null;
+      30             : 
+      31             :   static const IconData directions_walk = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      32             :   static const IconData atv = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      33             :   static const IconData baseball = IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      34             :   static const IconData badminton = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      35             :   static const IconData bike = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      36             :   static const IconData basketball = IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      37             :   static const IconData bowling = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      38             :   static const IconData bow_arrow = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      39             :   static const IconData billiards = IconData(0xe808, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      40             :   static const IconData bullseye_arrow = IconData(0xe809, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      41             :   static const IconData boxing_glove = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      42             :   static const IconData cricket = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      43             :   static const IconData car_sports = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      44             :   static const IconData dumbbell = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      45             :   static const IconData diving_scuba = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      46             :   static const IconData football_australian = IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      47             :   static const IconData curling = IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      48             :   static const IconData fencing = IconData(0xe811, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      49             :   static const IconData golf = IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      50             :   static const IconData football = IconData(0xe813, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      51             :   static const IconData horseshoe = IconData(0xe814, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      52             :   static const IconData hiking = IconData(0xe815, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      53             :   static const IconData handball = IconData(0xe816, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      54             :   static const IconData karate = IconData(0xe817, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      55             :   static const IconData jump_rope = IconData(0xe818, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      56             :   static const IconData paragliding = IconData(0xe819, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      57             :   static const IconData mixed_martial_arts = IconData(0xe81a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      58             :   static const IconData kettlebell = IconData(0xe81b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      59             :   static const IconData kayaking = IconData(0xe81c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      60             :   static const IconData racquetball = IconData(0xe81d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      61             :   static const IconData polo = IconData(0xe81e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      62             :   static const IconData roller_skate = IconData(0xe81f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      63             :   static const IconData rollerblade = IconData(0xe820, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      64             :   static const IconData sail_boat = IconData(0xe821, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      65             :   static const IconData rugby = IconData(0xe822, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      66             :   static const IconData rowing = IconData(0xe823, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      67             :   static const IconData skate = IconData(0xe824, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      68             :   static const IconData shoe_ballet = IconData(0xe825, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      69             :   static const IconData skateboard = IconData(0xe826, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      70             :   static const IconData ski_water = IconData(0xe827, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      71             :   static const IconData swim = IconData(0xe828, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      72             :   static const IconData soccer = IconData(0xe829, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      73             :   static const IconData snowboard = IconData(0xe82a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      74             :   static const IconData tennis = IconData(0xe82b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      75             :   static const IconData table_tennis = IconData(0xe82c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      76             :   static const IconData weight_lifter = IconData(0xe82d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      77             :   static const IconData volleyball = IconData(0xe82e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      78             :   static const IconData yoga = IconData(0xe82f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      79             :   static const IconData hockey_puck = IconData(0xe830, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      80             :   static const IconData snowflake = IconData(0xe831, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      81             :   static const IconData water_polo = IconData(0xe832, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      82             :   static const IconData diving_snorkel = IconData(0xe833, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      83             :   static const IconData ski_water__1_ = IconData(0xe834, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      84             :   static const IconData diving = IconData(0xe835, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      85             :   static const IconData dog = IconData(0xe836, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      86             :   static const IconData parachute = IconData(0xe837, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      87             :   static const IconData carabiner = IconData(0xe838, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      88             :   static const IconData compass = IconData(0xe839, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      89             :   static const IconData horse_human = IconData(0xe83a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      90             :   static const IconData trophy = IconData(0xe83b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      91             :   static const IconData podium = IconData(0xe83c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      92             :   static const IconData seesaw = IconData(0xe83d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      93             :   static const IconData run_fast = IconData(0xe83e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      94             :   static const IconData unicycle = IconData(0xe83f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      95             :   static const IconData bike_pedal = IconData(0xe840, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      96             :   static const IconData medal = IconData(0xe841, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      97             :   static const IconData food_apple_outline = IconData(0xe842, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      98             :   static const IconData barcode_scan = IconData(0xe843, fontFamily: _kFontFam, fontPackage: _kFontPkg);
+      99             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/extensions.dart.func-sort-c.html b/coverage/html/core/utils/extensions.dart.func-sort-c.html new file mode 100644 index 000000000..0b6b6d3e9 --- /dev/null +++ b/coverage/html/core/utils/extensions.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/extensions.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - extensions.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0220.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/extensions.dart.func.html b/coverage/html/core/utils/extensions.dart.func.html new file mode 100644 index 000000000..b9ecb8d11 --- /dev/null +++ b/coverage/html/core/utils/extensions.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/extensions.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - extensions.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0220.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/extensions.dart.gcov.html b/coverage/html/core/utils/extensions.dart.gcov.html new file mode 100644 index 000000000..70a815eb3 --- /dev/null +++ b/coverage/html/core/utils/extensions.dart.gcov.html @@ -0,0 +1,149 @@ + + + + + + + LCOV - lcov.info - core/utils/extensions.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - extensions.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0220.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'dart:math';
+       2             : 
+       3             : import 'package:flutter/material.dart';
+       4             : import 'package:intl/intl.dart';
+       5             : 
+       6             : extension Cast on Object? {
+       7           0 :   double? asDoubleOrNull() {
+       8             :     double? value;
+       9           0 :     if (this is int) {
+      10             :       final intValue = this as int;
+      11           0 :       value = intValue.toDouble();
+      12           0 :     } else if (this is double) {
+      13             :       value = this as double;
+      14           0 :     } else if (this is String) {
+      15             :       final stringValue = this as String;
+      16           0 :       value = double.parse(stringValue);
+      17             :     } else {
+      18             :       value = null;
+      19             :     }
+      20             : 
+      21             :     return value;
+      22             :   }
+      23             : }
+      24             : 
+      25             : extension CastString on String {
+      26           0 :   String? toStringOrNull() {
+      27           0 :     if (isEmpty) {
+      28             :       return null;
+      29             :     } else {
+      30             :       return this;
+      31             :     }
+      32             :   }
+      33             : 
+      34           0 :   double? toDoubleOrNull() {
+      35           0 :     if (isEmpty) {
+      36             :       return null;
+      37             :     } else {
+      38           0 :       return double.parse(this);
+      39             :     }
+      40             :   }
+      41             : }
+      42             : 
+      43             : extension Round on double {
+      44           0 :   double roundToPrecision(int n) {
+      45           0 :     int fac = pow(10, n).toInt();
+      46           0 :     return (this * fac).round() / fac;
+      47             :   }
+      48             : }
+      49             : 
+      50             : extension DisplayDouble on double? {
+      51           0 :   String toStringOrEmpty() {
+      52             :     if (this == null) {
+      53             :       return "";
+      54             :     } else {
+      55           0 :       return toString();
+      56             :     }
+      57             :   }
+      58             : }
+      59             : 
+      60             : extension FormatString on DateTime {
+      61           0 :   String toParsedDay() => DateFormat.yMd().format(this);
+      62             : }
+      63             : 
+      64             : extension ColorExtension on Color {
+      65             :   /// Converts the color to a hexadecimal string.
+      66           0 :   String toHex() {
+      67           0 :     final red = (r * 255).toInt().toRadixString(16).padLeft(2, '0');
+      68           0 :     final green = (g * 255).toInt().toRadixString(16).padLeft(2, '0');
+      69           0 :     final blue = (b * 255).toInt().toRadixString(16).padLeft(2, '0');
+      70             : 
+      71           0 :     return '#' '$red$green$blue'.toUpperCase();
+      72             :   }
+      73             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/id_generator.dart.func-sort-c.html b/coverage/html/core/utils/id_generator.dart.func-sort-c.html new file mode 100644 index 000000000..e6d263ca3 --- /dev/null +++ b/coverage/html/core/utils/id_generator.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/id_generator.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - id_generator.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:010.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/id_generator.dart.func.html b/coverage/html/core/utils/id_generator.dart.func.html new file mode 100644 index 000000000..37dcc7a35 --- /dev/null +++ b/coverage/html/core/utils/id_generator.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/id_generator.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - id_generator.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:010.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/id_generator.dart.gcov.html b/coverage/html/core/utils/id_generator.dart.gcov.html new file mode 100644 index 000000000..761a87258 --- /dev/null +++ b/coverage/html/core/utils/id_generator.dart.gcov.html @@ -0,0 +1,83 @@ + + + + + + + LCOV - lcov.info - core/utils/id_generator.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - id_generator.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:010.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:uuid/uuid.dart';
+       2             : 
+       3             : class IdGenerator {
+       4             :   static const uuid = Uuid();
+       5             : 
+       6           0 :   static String getUniqueID() => uuid.v4();
+       7             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/index-sort-f.html b/coverage/html/core/utils/index-sort-f.html new file mode 100644 index 000000000..0cbbbb8cc --- /dev/null +++ b/coverage/html/core/utils/index-sort-f.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/utils + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utilsHitTotalCoverage
Test:lcov.infoLines:0280.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
extensions.dart +
0.0%
+
0.0 %0 / 22-0 / 0
supported_language.dart +
0.0%
+
0.0 %0 / 4-0 / 0
custom_icons.dart +
0.0%
+
0.0 %0 / 1-0 / 0
id_generator.dart +
0.0%
+
0.0 %0 / 1-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/index-sort-l.html b/coverage/html/core/utils/index-sort-l.html new file mode 100644 index 000000000..4536f8202 --- /dev/null +++ b/coverage/html/core/utils/index-sort-l.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/utils + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utilsHitTotalCoverage
Test:lcov.infoLines:0280.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
custom_icons.dart +
0.0%
+
0.0 %0 / 1-0 / 0
id_generator.dart +
0.0%
+
0.0 %0 / 1-0 / 0
supported_language.dart +
0.0%
+
0.0 %0 / 4-0 / 0
extensions.dart +
0.0%
+
0.0 %0 / 22-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/index.html b/coverage/html/core/utils/index.html new file mode 100644 index 000000000..ef29000a0 --- /dev/null +++ b/coverage/html/core/utils/index.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - core/utils + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utilsHitTotalCoverage
Test:lcov.infoLines:0280.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
custom_icons.dart +
0.0%
+
0.0 %0 / 1-0 / 0
extensions.dart +
0.0%
+
0.0 %0 / 22-0 / 0
id_generator.dart +
0.0%
+
0.0 %0 / 1-0 / 0
supported_language.dart +
0.0%
+
0.0 %0 / 4-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/supported_language.dart.func-sort-c.html b/coverage/html/core/utils/supported_language.dart.func-sort-c.html new file mode 100644 index 000000000..13f2c34eb --- /dev/null +++ b/coverage/html/core/utils/supported_language.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/supported_language.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - supported_language.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/supported_language.dart.func.html b/coverage/html/core/utils/supported_language.dart.func.html new file mode 100644 index 000000000..1ba8e875e --- /dev/null +++ b/coverage/html/core/utils/supported_language.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - core/utils/supported_language.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - supported_language.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/core/utils/supported_language.dart.gcov.html b/coverage/html/core/utils/supported_language.dart.gcov.html new file mode 100644 index 000000000..fcc4d3e19 --- /dev/null +++ b/coverage/html/core/utils/supported_language.dart.gcov.html @@ -0,0 +1,92 @@ + + + + + + + LCOV - lcov.info - core/utils/supported_language.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - core/utils - supported_language.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : enum SupportedLanguage {
+       2             :   en,
+       3             :   de;
+       4             : 
+       5           0 :   factory SupportedLanguage.fromCode(String localeCode) {
+       6           0 :     final languageCode = localeCode.split('_').first;
+       7             :     switch (languageCode) {
+       8           0 :       case 'en':
+       9             :         return SupportedLanguage.en;
+      10           0 :       case 'de':
+      11             :         return SupportedLanguage.de;
+      12             :       default:
+      13             :         return SupportedLanguage.en;
+      14             :     }
+      15             :   }
+      16             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/emerald.png b/coverage/html/emerald.png new file mode 100644 index 000000000..38ad4f406 Binary files /dev/null and b/coverage/html/emerald.png differ diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.func-sort-c.html new file mode 100644 index 000000000..3eda1d678 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_const.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_const.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.func.html new file mode 100644 index 000000000..ec5d84f22 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_const.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_const.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.gcov.html new file mode 100644 index 000000000..7092ac0c6 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_const.dart.gcov.html @@ -0,0 +1,270 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_const.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_const.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:090.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : class FDCConst {
+       2             :   static const _pageSize = "20";
+       3             : 
+       4             :   // URL
+       5             :   static const fdcWebsiteUrl = "https://fdc.nal.usda.gov/fdc-app.html#";
+       6             :   static const _fdcFoodDetailPath = "/food-details/";
+       7             :   static const _fdcFoodDetailNutrientsPath = "/nutrients";
+       8             :   static const _fdcBaseUrl = "api.nal.usda.gov";
+       9             :   static const _fdcFoodSearchPath = "/fdc/v1/foods/search";
+      10             : 
+      11             :   static const _fdcQueryTag = "query";
+      12             :   static const _fdcPageSizeTag = "pageSize";
+      13             :   static const _fdcDataTypeTag = "dataType";
+      14             : 
+      15             :   // static const _fdcDataTypeBrandedValue = "Branded";
+      16             :   static const _fdcDataTypeFoundationValue = "Foundation";
+      17             :   static const _fdcDataTypeSRLegacyValue = "SR Legacy";
+      18             :   static const _fdcSortOrderTag = "sortOrder";
+      19             :   static const _fdcSortOrderAscValue = "asc";
+      20             :   static const _fdcApiKeyTag = "api_key";
+      21             : 
+      22             :   static const _dataTypeParams = [
+      23             :     _fdcDataTypeFoundationValue,
+      24             :     _fdcDataTypeSRLegacyValue
+      25             :   ];
+      26             : 
+      27             :   static const fdcDefaultUnit = 'g/ml';
+      28             : 
+      29             :   // TODO Make translation keys
+      30             :   static const Map<int, String> measureUnits = {
+      31             :     1000: "cup",
+      32             :     1001: "tablespoon",
+      33             :     1002: "teaspoon",
+      34             :     1003: "liter",
+      35             :     1004: "milliliter",
+      36             :     1005: "cubic inch",
+      37             :     1006: "cubic centimeter",
+      38             :     1007: "gallon",
+      39             :     1008: "pint",
+      40             :     1009: "fl oz",
+      41             :     1010: "paired cooked w",
+      42             :     1011: "paired raw w",
+      43             :     1012: "dripping w",
+      44             :     1013: "bar",
+      45             :     1014: "bird",
+      46             :     1015: "biscuit",
+      47             :     1016: "bottle",
+      48             :     1017: "box",
+      49             :     1018: "breast",
+      50             :     1019: "can",
+      51             :     1020: "chicken",
+      52             :     1021: "chop",
+      53             :     1022: "cookie",
+      54             :     1023: "container",
+      55             :     1024: "cracker",
+      56             :     1025: "drink",
+      57             :     1026: "drumstick",
+      58             :     1027: "fillet",
+      59             :     1028: "fruit",
+      60             :     1029: "large",
+      61             :     1030: "lb",
+      62             :     1031: "leaf",
+      63             :     1032: "leg",
+      64             :     1033: "link",
+      65             :     1034: "links",
+      66             :     1035: "loaf",
+      67             :     1036: "medium",
+      68             :     1037: "muffin",
+      69             :     1038: "oz",
+      70             :     1039: "package",
+      71             :     1040: "packet",
+      72             :     1041: "patty",
+      73             :     1042: "patties",
+      74             :     1043: "piece",
+      75             :     1044: "pieces",
+      76             :     1045: "quart",
+      77             :     1046: "roast",
+      78             :     1047: "sausage",
+      79             :     1048: "scoop",
+      80             :     1049: "serving",
+      81             :     1050: "slice",
+      82             :     1051: "slices",
+      83             :     1052: "small",
+      84             :     1053: "stalk",
+      85             :     1054: "steak",
+      86             :     1055: "stick",
+      87             :     1056: "strip",
+      88             :     1057: "tablet",
+      89             :     1058: "thigh",
+      90             :     1059: "unit",
+      91             :     1060: "wedge",
+      92             :     1061: "orig ckd g",
+      93             :     1062: "orig rw g",
+      94             :     1063: "medallion",
+      95             :     1064: "pie",
+      96             :     1065: "wing",
+      97             :     1066: "back",
+      98             :     1067: "olive",
+      99             :     1068: "pocket",
+     100             :     1069: "order",
+     101             :     1070: "shrimp",
+     102             :     1071: "each",
+     103             :     1072: "filet",
+     104             :     1073: "plantain",
+     105             :     1074: "nugget",
+     106             :     1075: "pretzel",
+     107             :     1076: "corndog",
+     108             :     1077: "spear",
+     109             :     1078: "sandwich",
+     110             :     1079: "tortilla",
+     111             :     1080: "burrito",
+     112             :     1081: "taco",
+     113             :     1082: "tomatoes",
+     114             :     1083: "chips",
+     115             :     1084: "shell",
+     116             :     1085: "bun",
+     117             :     1086: "crust",
+     118             :     1087: "sheet",
+     119             :     1088: "bag",
+     120             :     1089: "bagel",
+     121             :     1090: "bowl",
+     122             :     1091: "breadstick",
+     123             :     1092: "bulb",
+     124             :     1093: "cake",
+     125             :     1094: "carton",
+     126             :     1095: "chunk",
+     127             :     1096: "contents",
+     128             :     1097: "cutlet",
+     129             :     1098: "doughnut",
+     130             :     1099: "egg",
+     131             :     1100: "fish",
+     132             :     1101: "foreshank",
+     133             :     1102: "frankfurter",
+     134             :     1103: "fries",
+     135             :     1104: "head",
+     136             :     1105: "jar",
+     137             :     1106: "loin",
+     138             :     1107: "pancake",
+     139             :     1108: "pizza",
+     140             :     1109: "rack",
+     141             :     1110: "ribs",
+     142             :     1111: "roll",
+     143             :     1112: "shank",
+     144             :     1113: "shoulder",
+     145             :     1114: "skin",
+     146             :     1115: "wafers",
+     147             :     1116: "wrap",
+     148             :     1117: "bunch",
+     149             :     1118: "Tablespoons",
+     150             :     1119: "Banana",
+     151             :     1120: "Onion",
+     152             :     9999: "portion", // undetermined
+     153             :   };
+     154             : 
+     155           0 :   static String getFoodDetailUrlString(String? code) {
+     156             :     if (code == null) {
+     157             :       return _fdcBaseUrl;
+     158             :     } else {
+     159           0 :       return fdcWebsiteUrl +
+     160           0 :           _fdcFoodDetailPath +
+     161           0 :           code +
+     162             :           _fdcFoodDetailNutrientsPath;
+     163             :     }
+     164             :   }
+     165             : 
+     166           0 :   static String _getDataTypeParams() => _dataTypeParams.join(",");
+     167             : 
+     168           0 :   static Uri getFDCWordSearchUrl(String searchString, String apiKey) {
+     169           0 :     final queryParameters = {
+     170             :       _fdcQueryTag: searchString,
+     171             :       _fdcPageSizeTag: _pageSize,
+     172           0 :       _fdcDataTypeTag: _getDataTypeParams(),
+     173             :       _fdcSortOrderTag: _fdcSortOrderAscValue,
+     174             :       _fdcApiKeyTag: apiKey
+     175             :     };
+     176             : 
+     177           0 :     return Uri.https(_fdcBaseUrl, _fdcFoodSearchPath, queryParameters);
+     178             :   }
+     179             : 
+     180             :   // Nutriment codes
+     181             :   static const fdcTotalKcalId = 1008;
+     182             :   static const fdcKcalAtwaterGeneralId = 957;
+     183             :   static const fdcKcalAtwaterSpecificId = 958;
+     184             :   static const fdcTotalCarbsId = 1005;
+     185             :   static const fdcTotalFatId = 1004;
+     186             :   static const fdcTotalProteinsId = 1003;
+     187             :   static const fdcTotalSugarId = 1063;
+     188             :   static const fdcTotalSaturatedFatId = 1258;
+     189             :   static const fdcTotalDietaryFiberId = 1079;
+     190             : 
+     191             :   // Measure unit codes
+     192             :   static const fdcPortionServingId = 1049;
+     193             :   static const fdcPortionUnknownId = 9999;
+     194             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.func-sort-c.html new file mode 100644 index 000000000..43f78954f --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.func.html new file mode 100644 index 000000000..0577c7e2b --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.gcov.html new file mode 100644 index 000000000..9341195cd --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.dart.gcov.html @@ -0,0 +1,112 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_dto.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:json_annotation/json_annotation.dart';
+       2             : import 'package:opennutritracker/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart';
+       3             : 
+       4             : part 'fdc_food_dto.g.dart';
+       5             : 
+       6             : @JsonSerializable()
+       7             : class FDCFoodDTO {
+       8             :   final double? fdcId;
+       9             :   final String? gtinUpc;
+      10             :   final String? description;
+      11             : 
+      12             :   final String? brandOwner;
+      13             :   final String? brandName;
+      14             : 
+      15             :   final String? packageWeight;
+      16             :   final double? servingSize;
+      17             :   final String? servingSizeUnit;
+      18             : 
+      19             :   final List<FDCFoodNutrimentDTO> foodNutrients;
+      20             : 
+      21           0 :   FDCFoodDTO(
+      22             :       {required this.fdcId,
+      23             :       required this.gtinUpc,
+      24             :       required this.description,
+      25             :       required this.brandOwner,
+      26             :       required this.brandName,
+      27             :       required this.packageWeight,
+      28             :       required this.servingSize,
+      29             :       required this.foodNutrients,
+      30             :       required this.servingSizeUnit});
+      31             : 
+      32           0 :   factory FDCFoodDTO.fromJson(Map<String, dynamic> json) =>
+      33           0 :       _$FDCFoodDTOFromJson(json);
+      34             : 
+      35           0 :   Map<String, dynamic> toJson() => _$FDCFoodDTOToJson(this);
+      36             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.func-sort-c.html new file mode 100644 index 000000000..993131d4e --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0230.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.func.html new file mode 100644 index 000000000..be6bad04a --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0230.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.gcov.html new file mode 100644 index 000000000..0a7b713e1 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart.gcov.html @@ -0,0 +1,110 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_dto.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0230.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'fdc_food_dto.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // JsonSerializableGenerator
+       7             : // **************************************************************************
+       8             : 
+       9           0 : FDCFoodDTO _$FDCFoodDTOFromJson(Map<String, dynamic> json) => FDCFoodDTO(
+      10           0 :       fdcId: (json['fdcId'] as num?)?.toDouble(),
+      11           0 :       gtinUpc: json['gtinUpc'] as String?,
+      12           0 :       description: json['description'] as String?,
+      13           0 :       brandOwner: json['brandOwner'] as String?,
+      14           0 :       brandName: json['brandName'] as String?,
+      15           0 :       packageWeight: json['packageWeight'] as String?,
+      16           0 :       servingSize: (json['servingSize'] as num?)?.toDouble(),
+      17           0 :       foodNutrients: (json['foodNutrients'] as List<dynamic>)
+      18           0 :           .map((e) => FDCFoodNutrimentDTO.fromJson(e as Map<String, dynamic>))
+      19           0 :           .toList(),
+      20           0 :       servingSizeUnit: json['servingSizeUnit'] as String?,
+      21             :     );
+      22             : 
+      23           0 : Map<String, dynamic> _$FDCFoodDTOToJson(FDCFoodDTO instance) =>
+      24           0 :     <String, dynamic>{
+      25           0 :       'fdcId': instance.fdcId,
+      26           0 :       'gtinUpc': instance.gtinUpc,
+      27           0 :       'description': instance.description,
+      28           0 :       'brandOwner': instance.brandOwner,
+      29           0 :       'brandName': instance.brandName,
+      30           0 :       'packageWeight': instance.packageWeight,
+      31           0 :       'servingSize': instance.servingSize,
+      32           0 :       'servingSizeUnit': instance.servingSizeUnit,
+      33           0 :       'foodNutrients': instance.foodNutrients,
+      34             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.func-sort-c.html new file mode 100644 index 000000000..b1735456b --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_nutriment_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.func.html new file mode 100644 index 000000000..d802bb5d2 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_nutriment_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.gcov.html new file mode 100644 index 000000000..58e9981a3 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart.gcov.html @@ -0,0 +1,94 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_nutriment_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:json_annotation/json_annotation.dart';
+       2             : import 'package:opennutritracker/features/add_meal/data/dto/fdc_sp/sp_const.dart';
+       3             : 
+       4             : part 'fdc_food_nutriment_dto.g.dart';
+       5             : 
+       6             : @JsonSerializable()
+       7             : class FDCFoodNutrimentDTO {
+       8             :   @JsonKey(name: SPConst.fdcNutrientId)
+       9             :   final int? nutrientId;
+      10             :   final double? amount;
+      11             : 
+      12           0 :   FDCFoodNutrimentDTO({required this.nutrientId, required this.amount});
+      13             : 
+      14           0 :   factory FDCFoodNutrimentDTO.fromJson(Map<String, dynamic> json) =>
+      15           0 :       _$FDCFoodNutrimentDTOFromJson(json);
+      16             : 
+      17           0 :   Map<String, dynamic> toJson() => _$FDCFoodNutrimentDTOToJson(this);
+      18             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.func-sort-c.html new file mode 100644 index 000000000..91eb4c332 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_nutriment_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.func.html new file mode 100644 index 000000000..84eb5c56d --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_nutriment_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.gcov.html new file mode 100644 index 000000000..87bc0579e --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart.gcov.html @@ -0,0 +1,96 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc - fdc_food_nutriment_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:080.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'fdc_food_nutriment_dto.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // JsonSerializableGenerator
+       7             : // **************************************************************************
+       8             : 
+       9           0 : FDCFoodNutrimentDTO _$FDCFoodNutrimentDTOFromJson(Map<String, dynamic> json) =>
+      10           0 :     FDCFoodNutrimentDTO(
+      11           0 :       nutrientId: (json['nutrient_id'] as num?)?.toInt(),
+      12           0 :       amount: (json['amount'] as num?)?.toDouble(),
+      13             :     );
+      14             : 
+      15           0 : Map<String, dynamic> _$FDCFoodNutrimentDTOToJson(
+      16             :         FDCFoodNutrimentDTO instance) =>
+      17           0 :     <String, dynamic>{
+      18           0 :       'nutrient_id': instance.nutrientId,
+      19           0 :       'amount': instance.amount,
+      20             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/index-sort-f.html b/coverage/html/features/add_meal/data/dto/fdc/index-sort-f.html new file mode 100644 index 000000000..8f356e516 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/index-sort-f.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdcHitTotalCoverage
Test:lcov.infoLines:0480.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
fdc_food_dto.g.dart +
0.0%
+
0.0 %0 / 23-0 / 0
fdc_food_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
fdc_const.dart +
0.0%
+
0.0 %0 / 9-0 / 0
fdc_food_nutriment_dto.g.dart +
0.0%
+
0.0 %0 / 8-0 / 0
fdc_food_nutriment_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/index-sort-l.html b/coverage/html/features/add_meal/data/dto/fdc/index-sort-l.html new file mode 100644 index 000000000..324fbc937 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/index-sort-l.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdcHitTotalCoverage
Test:lcov.infoLines:0480.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
fdc_food_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
fdc_food_nutriment_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
fdc_food_nutriment_dto.g.dart +
0.0%
+
0.0 %0 / 8-0 / 0
fdc_const.dart +
0.0%
+
0.0 %0 / 9-0 / 0
fdc_food_dto.g.dart +
0.0%
+
0.0 %0 / 23-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc/index.html b/coverage/html/features/add_meal/data/dto/fdc/index.html new file mode 100644 index 000000000..b9ca21fb7 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc/index.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdcHitTotalCoverage
Test:lcov.infoLines:0480.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
fdc_const.dart +
0.0%
+
0.0 %0 / 9-0 / 0
fdc_food_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
fdc_food_dto.g.dart +
0.0%
+
0.0 %0 / 23-0 / 0
fdc_food_nutriment_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
fdc_food_nutriment_dto.g.dart +
0.0%
+
0.0 %0 / 8-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/index-sort-f.html b/coverage/html/features/add_meal/data/dto/fdc_sp/index-sort-f.html new file mode 100644 index 000000000..d0119fbcd --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/index-sort-f.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_spHitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
sp_const.dart +
0.0%
+
0.0 %0 / 3-0 / 0
sp_fdc_food_dto.dart +
0.0%
+
0.0 %0 / 26-0 / 0
sp_fdc_food_dto.g.dart +
0.0%
+
0.0 %0 / 17-0 / 0
sp_fdc_portion_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
sp_fdc_portion_dto.g.dart +
0.0%
+
0.0 %0 / 10-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/index-sort-l.html b/coverage/html/features/add_meal/data/dto/fdc_sp/index-sort-l.html new file mode 100644 index 000000000..00eb6c052 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/index-sort-l.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_spHitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
sp_const.dart +
0.0%
+
0.0 %0 / 3-0 / 0
sp_fdc_portion_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
sp_fdc_portion_dto.g.dart +
0.0%
+
0.0 %0 / 10-0 / 0
sp_fdc_food_dto.g.dart +
0.0%
+
0.0 %0 / 17-0 / 0
sp_fdc_food_dto.dart +
0.0%
+
0.0 %0 / 26-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/index.html b/coverage/html/features/add_meal/data/dto/fdc_sp/index.html new file mode 100644 index 000000000..36d74a402 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/index.html @@ -0,0 +1,133 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_spHitTotalCoverage
Test:lcov.infoLines:0600.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
sp_const.dart +
0.0%
+
0.0 %0 / 3-0 / 0
sp_fdc_food_dto.dart +
0.0%
+
0.0 %0 / 26-0 / 0
sp_fdc_food_dto.g.dart +
0.0%
+
0.0 %0 / 17-0 / 0
sp_fdc_portion_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
sp_fdc_portion_dto.g.dart +
0.0%
+
0.0 %0 / 10-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.func-sort-c.html new file mode 100644 index 000000000..bd7b46e5e --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_const.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_const.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.func.html new file mode 100644 index 000000000..58f78c375 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_const.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_const.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.gcov.html new file mode 100644 index 000000000..cf547e387 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_const.dart.gcov.html @@ -0,0 +1,108 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_const.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_const.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:030.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:opennutritracker/core/utils/supported_language.dart';
+       2             : 
+       3             : class SPConst {
+       4             :   static const maxNumberOfItems = 20;
+       5             : 
+       6             :   // Table names
+       7             :   static const fdcFoodTableName = 'fdc_food';
+       8             :   static const fdcPortionsName = 'fdc_portions';
+       9             :   static const fdcNutrientsName = 'fdc_nutrients';
+      10             : 
+      11             :   // Column names
+      12             :   static const fdcFoodId = 'fdc_id';
+      13             :   static const fdcFoodDescriptionEn = 'description_en';
+      14             :   static const fdcFoodDescriptionDe = 'description_de';
+      15             : 
+      16             :   static const fdcPortionsMeasureUnitId = 'measure_unit_id';
+      17             :   static const fdcPortionsAmount = 'measure_unit_id';
+      18             :   static const fdcPortionsGramWeight = 'gram_weight';
+      19             : 
+      20             :   static const fdcNutrientId = 'nutrient_id';
+      21             :   static const fdcNutrientsAmount = 'amount';
+      22             : 
+      23           0 :   static String getFdcFoodDescriptionColumnName(SupportedLanguage language) {
+      24             :     switch (language) {
+      25           0 :       case SupportedLanguage.en:
+      26             :         return fdcFoodDescriptionEn;
+      27           0 :       case SupportedLanguage.de:
+      28             :         return fdcFoodDescriptionDe;
+      29             :       }
+      30             :   }
+      31             : 
+      32             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.func-sort-c.html new file mode 100644 index 000000000..c64ed1313 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_food_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0260.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.func.html new file mode 100644 index 000000000..141bf348d --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_food_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0260.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.gcov.html new file mode 100644 index 000000000..5fa960a01 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart.gcov.html @@ -0,0 +1,144 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_food_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0260.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:collection/collection.dart';
+       2             : import 'package:json_annotation/json_annotation.dart';
+       3             : import 'package:opennutritracker/core/utils/supported_language.dart';
+       4             : import 'package:opennutritracker/features/add_meal/data/dto/fdc/fdc_const.dart';
+       5             : import 'package:opennutritracker/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart';
+       6             : import 'package:opennutritracker/features/add_meal/data/dto/fdc_sp/sp_const.dart';
+       7             : import 'package:opennutritracker/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart';
+       8             : 
+       9             : part 'sp_fdc_food_dto.g.dart';
+      10             : 
+      11             : @JsonSerializable()
+      12             : class SpFdcFoodDTO {
+      13             :   @JsonKey(name: SPConst.fdcFoodId)
+      14             :   final int? fdcId;
+      15             :   @JsonKey(name: SPConst.fdcFoodDescriptionEn)
+      16             :   final String? descriptionEn;
+      17             :   @JsonKey(name: SPConst.fdcFoodDescriptionDe)
+      18             :   final String? descriptionDe;
+      19             : 
+      20             :   @JsonKey(name: SPConst.fdcNutrientsName)
+      21             :   final List<FDCFoodNutrimentDTO> nutrients;
+      22             : 
+      23             :   @JsonKey(name: SPConst.fdcPortionsName)
+      24             :   final List<SpFdcPortionDTO> portions;
+      25             : 
+      26           0 :   String? getLocaleDescription(SupportedLanguage supportedLanguage) {
+      27             :     switch (supportedLanguage) {
+      28           0 :       case SupportedLanguage.en:
+      29           0 :         return descriptionEn;
+      30           0 :       case SupportedLanguage.de:
+      31           0 :         return descriptionDe;
+      32             :     }
+      33             :   }
+      34             : 
+      35           0 :   double? get servingSize => portions
+      36           0 :       .firstWhereOrNull((portion) =>
+      37           0 :           portion.measureUnitId == FDCConst.fdcPortionServingId ||
+      38           0 :           portion.measureUnitId == FDCConst.fdcPortionUnknownId)
+      39           0 :       ?.gramWeight;
+      40             : 
+      41           0 :   String? get servingSizeUnit {
+      42           0 :     final id = portions
+      43           0 :             .firstWhereOrNull((portion) =>
+      44           0 :                 portion.measureUnitId == FDCConst.fdcPortionServingId ||
+      45           0 :                 portion.measureUnitId == FDCConst.fdcPortionUnknownId)
+      46           0 :             ?.measureUnitId ??
+      47             :         FDCConst.fdcPortionUnknownId;
+      48           0 :     return FDCConst.measureUnits[id];
+      49             :   }
+      50             : 
+      51           0 :   double? get servingAmount => portions
+      52           0 :       .firstWhereOrNull((portion) =>
+      53           0 :           portion.measureUnitId == FDCConst.fdcPortionServingId ||
+      54           0 :           portion.measureUnitId == FDCConst.fdcPortionUnknownId)
+      55           0 :       ?.amount;
+      56             : 
+      57           0 :   SpFdcFoodDTO(
+      58             :       {required this.fdcId,
+      59             :       required this.descriptionEn,
+      60             :       required this.descriptionDe,
+      61             :       required this.nutrients,
+      62             :       required this.portions});
+      63             : 
+      64           0 :   factory SpFdcFoodDTO.fromJson(Map<String, dynamic> json) =>
+      65           0 :       _$SpFdcFoodDTOFromJson(json);
+      66             : 
+      67           0 :   Map<String, dynamic> toJson() => _$SpFdcFoodDTOToJson(this);
+      68             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.func-sort-c.html new file mode 100644 index 000000000..021c61335 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_food_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0170.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.func.html new file mode 100644 index 000000000..07ec123b9 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_food_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0170.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.gcov.html new file mode 100644 index 000000000..e0c71d004 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart.gcov.html @@ -0,0 +1,104 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_food_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0170.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'sp_fdc_food_dto.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // JsonSerializableGenerator
+       7             : // **************************************************************************
+       8             : 
+       9           0 : SpFdcFoodDTO _$SpFdcFoodDTOFromJson(Map<String, dynamic> json) => SpFdcFoodDTO(
+      10           0 :       fdcId: (json['fdc_id'] as num?)?.toInt(),
+      11           0 :       descriptionEn: json['description_en'] as String?,
+      12           0 :       descriptionDe: json['description_de'] as String?,
+      13           0 :       nutrients: (json['fdc_nutrients'] as List<dynamic>)
+      14           0 :           .map((e) => FDCFoodNutrimentDTO.fromJson(e as Map<String, dynamic>))
+      15           0 :           .toList(),
+      16           0 :       portions: (json['fdc_portions'] as List<dynamic>)
+      17           0 :           .map((e) => SpFdcPortionDTO.fromJson(e as Map<String, dynamic>))
+      18           0 :           .toList(),
+      19             :     );
+      20             : 
+      21           0 : Map<String, dynamic> _$SpFdcFoodDTOToJson(SpFdcFoodDTO instance) =>
+      22           0 :     <String, dynamic>{
+      23           0 :       'fdc_id': instance.fdcId,
+      24           0 :       'description_en': instance.descriptionEn,
+      25           0 :       'description_de': instance.descriptionDe,
+      26           0 :       'fdc_nutrients': instance.nutrients,
+      27           0 :       'fdc_portions': instance.portions,
+      28             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.func-sort-c.html new file mode 100644 index 000000000..b679955a0 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_portion_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.func.html new file mode 100644 index 000000000..d2220116e --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_portion_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.gcov.html new file mode 100644 index 000000000..aca8e302f --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart.gcov.html @@ -0,0 +1,99 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_portion_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:json_annotation/json_annotation.dart';
+       2             : import 'package:opennutritracker/features/add_meal/data/dto/fdc_sp/sp_const.dart';
+       3             : 
+       4             : part 'sp_fdc_portion_dto.g.dart';
+       5             : 
+       6             : @JsonSerializable()
+       7             : class SpFdcPortionDTO {
+       8             :   final double? amount;
+       9             :   @JsonKey(name: SPConst.fdcPortionsMeasureUnitId)
+      10             :   final int? measureUnitId;
+      11             :   @JsonKey(name: SPConst.fdcPortionsGramWeight)
+      12             :   final double? gramWeight;
+      13             : 
+      14           0 :   SpFdcPortionDTO(
+      15             :       {required this.amount,
+      16             :       required this.measureUnitId,
+      17             :       required this.gramWeight});
+      18             : 
+      19           0 :   factory SpFdcPortionDTO.fromJson(Map<String, dynamic> json) =>
+      20           0 :       _$SpFdcPortionDTOFromJson(json);
+      21             : 
+      22           0 :   Map<String, dynamic> toJson() => _$SpFdcPortionDTOToJson(this);
+      23             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.func-sort-c.html new file mode 100644 index 000000000..6bbb2c63b --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_portion_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.func.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.func.html new file mode 100644 index 000000000..c79c6d325 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_portion_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.gcov.html b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.gcov.html new file mode 100644 index 000000000..616eabacb --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart.gcov.html @@ -0,0 +1,97 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/fdc_sp - sp_fdc_portion_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'sp_fdc_portion_dto.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // JsonSerializableGenerator
+       7             : // **************************************************************************
+       8             : 
+       9           0 : SpFdcPortionDTO _$SpFdcPortionDTOFromJson(Map<String, dynamic> json) =>
+      10           0 :     SpFdcPortionDTO(
+      11           0 :       amount: (json['amount'] as num?)?.toDouble(),
+      12           0 :       measureUnitId: (json['measure_unit_id'] as num?)?.toInt(),
+      13           0 :       gramWeight: (json['gram_weight'] as num?)?.toDouble(),
+      14             :     );
+      15             : 
+      16           0 : Map<String, dynamic> _$SpFdcPortionDTOToJson(SpFdcPortionDTO instance) =>
+      17           0 :     <String, dynamic>{
+      18           0 :       'amount': instance.amount,
+      19           0 :       'measure_unit_id': instance.measureUnitId,
+      20           0 :       'gram_weight': instance.gramWeight,
+      21             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/index-sort-f.html b/coverage/html/features/add_meal/data/dto/off/index-sort-f.html new file mode 100644 index 000000000..bba1268c2 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/index-sort-f.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/offHitTotalCoverage
Test:lcov.infoLines:0720.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
off_product_dto.dart +
0.0%
+
0.0 %0 / 11-0 / 0
off_product_dto.g.dart +
0.0%
+
0.0 %0 / 39-0 / 0
off_product_nutriments_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
off_product_nutriments_dto.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/index-sort-l.html b/coverage/html/features/add_meal/data/dto/off/index-sort-l.html new file mode 100644 index 000000000..584d2895c --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/index-sort-l.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/offHitTotalCoverage
Test:lcov.infoLines:0720.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
off_product_nutriments_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
off_product_dto.dart +
0.0%
+
0.0 %0 / 11-0 / 0
off_product_nutriments_dto.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
off_product_dto.g.dart +
0.0%
+
0.0 %0 / 39-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/index.html b/coverage/html/features/add_meal/data/dto/off/index.html new file mode 100644 index 000000000..7748706b5 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/index.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/offHitTotalCoverage
Test:lcov.infoLines:0720.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
off_product_dto.dart +
0.0%
+
0.0 %0 / 11-0 / 0
off_product_dto.g.dart +
0.0%
+
0.0 %0 / 39-0 / 0
off_product_nutriments_dto.dart +
0.0%
+
0.0 %0 / 4-0 / 0
off_product_nutriments_dto.g.dart +
0.0%
+
0.0 %0 / 18-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.func-sort-c.html new file mode 100644 index 000000000..c1e8416a2 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.func.html b/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.func.html new file mode 100644 index 000000000..1cf4cc643 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.gcov.html b/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.gcov.html new file mode 100644 index 000000000..ffdd54b4c --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_dto.dart.gcov.html @@ -0,0 +1,152 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_dto.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0110.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // ignore_for_file: non_constant_identifier_names
+       2             : 
+       3             : import 'package:json_annotation/json_annotation.dart';
+       4             : import 'package:opennutritracker/core/utils/supported_language.dart';
+       5             : import 'package:opennutritracker/features/add_meal/data/dto/off/off_product_nutriments_dto.dart';
+       6             : 
+       7             : part 'off_product_dto.g.dart';
+       8             : 
+       9             : @JsonSerializable()
+      10             : class OFFProductDTO {
+      11             :   final String? code;
+      12             :   final String? product_name;
+      13             :   final String? product_name_en;
+      14             :   final String? product_name_fr;
+      15             :   final String? product_name_de;
+      16             : 
+      17             :   final String? brands;
+      18             : 
+      19             :   final String? image_front_thumb_url;
+      20             :   final String? image_front_url;
+      21             :   final String? image_ingredients_url;
+      22             :   final String? image_nutrition_url;
+      23             :   final String? image_url;
+      24             : 
+      25             :   final String? url;
+      26             : 
+      27             :   final String? quantity;
+      28             :   final dynamic product_quantity; // Can either be int or String
+      29             :   final dynamic serving_quantity; // Can either be int or String
+      30             :   final String? serving_size;  // E.g. 2 Tbsp (32 g)
+      31             : 
+      32             :   final OFFProductNutrimentsDTO nutriments;
+      33             : 
+      34           0 :   String? getLocaleName(SupportedLanguage supportedLanguage) {
+      35             :     String? localeName;
+      36             :     switch (supportedLanguage) {
+      37           0 :       case SupportedLanguage.en:
+      38           0 :         localeName = product_name_en;
+      39             :         break;
+      40           0 :       case SupportedLanguage.de:
+      41           0 :         localeName = product_name_de;
+      42             :         break;
+      43             :       }
+      44             : 
+      45             :     // If local language is not available, return available language
+      46           0 :     if (localeName == null || localeName.isEmpty) {
+      47             :       localeName =
+      48           0 :           product_name ?? product_name_en ?? product_name_fr ?? product_name_de;
+      49             :     }
+      50             :     return localeName;
+      51             :   }
+      52             : 
+      53           0 :   OFFProductDTO(
+      54             :       {required this.code,
+      55             :       required this.product_name,
+      56             :       required this.product_name_en,
+      57             :       required this.product_name_fr,
+      58             :       required this.product_name_de,
+      59             :       required this.brands,
+      60             :       required this.image_front_thumb_url,
+      61             :       required this.image_front_url,
+      62             :       required this.image_ingredients_url,
+      63             :       required this.image_nutrition_url,
+      64             :       required this.image_url,
+      65             :       required this.url,
+      66             :       required this.quantity,
+      67             :       required this.product_quantity,
+      68             :       required this.serving_quantity,
+      69             :       required this.serving_size,
+      70             :       required this.nutriments});
+      71             : 
+      72           0 :   factory OFFProductDTO.fromJson(Map<String, dynamic> json) =>
+      73           0 :       _$OFFProductDTOFromJson(json);
+      74             : 
+      75           0 :   Map<String, dynamic> toJson() => _$OFFProductDTOToJson(this);
+      76             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.func-sort-c.html new file mode 100644 index 000000000..1b35986f9 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0390.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.func.html b/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.func.html new file mode 100644 index 000000000..80124add5 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0390.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.gcov.html b/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.gcov.html new file mode 100644 index 000000000..8201b496b --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_dto.g.dart.gcov.html @@ -0,0 +1,126 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_dto.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0390.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'off_product_dto.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // JsonSerializableGenerator
+       7             : // **************************************************************************
+       8             : 
+       9           0 : OFFProductDTO _$OFFProductDTOFromJson(Map<String, dynamic> json) =>
+      10           0 :     OFFProductDTO(
+      11           0 :       code: json['code'] as String?,
+      12           0 :       product_name: json['product_name'] as String?,
+      13           0 :       product_name_en: json['product_name_en'] as String?,
+      14           0 :       product_name_fr: json['product_name_fr'] as String?,
+      15           0 :       product_name_de: json['product_name_de'] as String?,
+      16           0 :       brands: json['brands'] as String?,
+      17           0 :       image_front_thumb_url: json['image_front_thumb_url'] as String?,
+      18           0 :       image_front_url: json['image_front_url'] as String?,
+      19           0 :       image_ingredients_url: json['image_ingredients_url'] as String?,
+      20           0 :       image_nutrition_url: json['image_nutrition_url'] as String?,
+      21           0 :       image_url: json['image_url'] as String?,
+      22           0 :       url: json['url'] as String?,
+      23           0 :       quantity: json['quantity'] as String?,
+      24           0 :       product_quantity: json['product_quantity'],
+      25           0 :       serving_quantity: json['serving_quantity'],
+      26           0 :       serving_size: json['serving_size'] as String?,
+      27           0 :       nutriments: OFFProductNutrimentsDTO.fromJson(
+      28           0 :           json['nutriments'] as Map<String, dynamic>),
+      29             :     );
+      30             : 
+      31           0 : Map<String, dynamic> _$OFFProductDTOToJson(OFFProductDTO instance) =>
+      32           0 :     <String, dynamic>{
+      33           0 :       'code': instance.code,
+      34           0 :       'product_name': instance.product_name,
+      35           0 :       'product_name_en': instance.product_name_en,
+      36           0 :       'product_name_fr': instance.product_name_fr,
+      37           0 :       'product_name_de': instance.product_name_de,
+      38           0 :       'brands': instance.brands,
+      39           0 :       'image_front_thumb_url': instance.image_front_thumb_url,
+      40           0 :       'image_front_url': instance.image_front_url,
+      41           0 :       'image_ingredients_url': instance.image_ingredients_url,
+      42           0 :       'image_nutrition_url': instance.image_nutrition_url,
+      43           0 :       'image_url': instance.image_url,
+      44           0 :       'url': instance.url,
+      45           0 :       'quantity': instance.quantity,
+      46           0 :       'product_quantity': instance.product_quantity,
+      47           0 :       'serving_quantity': instance.serving_quantity,
+      48           0 :       'serving_size': instance.serving_size,
+      49           0 :       'nutriments': instance.nutriments,
+      50             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.func-sort-c.html new file mode 100644 index 000000000..04061f351 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_nutriments_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_nutriments_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.func.html b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.func.html new file mode 100644 index 000000000..791c3bb62 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_nutriments_dto.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_nutriments_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.gcov.html b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.gcov.html new file mode 100644 index 000000000..259f46c7d --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.dart.gcov.html @@ -0,0 +1,181 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_nutriments_dto.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_nutriments_dto.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // ignore_for_file: non_constant_identifier_names
+       2             : 
+       3             : import 'package:json_annotation/json_annotation.dart';
+       4             : 
+       5             : part 'off_product_nutriments_dto.g.dart';
+       6             : 
+       7             : @JsonSerializable()
+       8             : class OFFProductNutrimentsDTO {
+       9             :   // Energy Values
+      10             :   @JsonKey(name: 'energy-kcal_100g')
+      11             :   final dynamic energy_kcal_100g; // can be String, int, double or null
+      12             :   // @JsonKey(name: 'energy-kcal')
+      13             :   // final double? energy_kcal;
+      14             :   // @JsonKey(name: 'energy-kcal_serving')
+      15             :   // final double? energy_kcal_serving;
+      16             :   // @JsonKey(name: 'energy-kcal_value')
+      17             :   // final double? energy_kcal_value;
+      18             :   // @JsonKey(name: 'energy-kcal_unit')
+      19             :   // final String? energy_kcal_unit;
+      20             : 
+      21             :   // Macronutrients Values
+      22             :   final dynamic carbohydrates_100g; // can be String, int, double or null
+      23             :   // final dynamic carbohydrates;
+      24             :   // final double? carbohydrates_serving;
+      25             :   // final double? carbohydrates_value;
+      26             :   // final String? carbohydrates_unit;
+      27             : 
+      28             :   final dynamic fat_100g; // can be String, int, double or null
+      29             :   // final double? fat;
+      30             :   // final double? fat_serving;
+      31             :   // final double? fat_value;
+      32             :   // final String? fat_unit;
+      33             : 
+      34             :   final dynamic proteins_100g; // can be String, int, double or null
+      35             :   // final double? proteins;
+      36             :   // final double? proteins_serving;
+      37             :   // final double? proteins_value;
+      38             :   // final String? proteins_unit;
+      39             : 
+      40             :   final dynamic sugars_100g; // can be String, int, double or null
+      41             :   // final double? sugars;
+      42             :   // final double? sugars_serving;
+      43             :   // final double? sugars_value;
+      44             :   // final String? sugars_unit;
+      45             : 
+      46             :   // @JsonKey(name: 'saturated-fat')
+      47             :   // final double? saturated_fat;
+      48             :   @JsonKey(name: 'saturated-fat_100g')
+      49             :   final dynamic saturated_fat_100g; // can be String, int, double or null
+      50             :   // @JsonKey(name: 'saturated-fat_serving')
+      51             :   // final double? saturated_fat_serving;
+      52             :   // @JsonKey(name: 'saturated-fat_value')
+      53             :   // final double? saturated_fat_value;
+      54             :   // @JsonKey(name: 'saturated-fat_unit')
+      55             :   // final String? saturated_fat_unit;
+      56             : 
+      57             :   final dynamic fiber_100g; // can be String, int, double or null
+      58             :   // final double? fiber;
+      59             :   // final double? fiber_serving;
+      60             :   // final double? fiber_value;
+      61             :   // final String? fiber_unit;
+      62             : 
+      63           0 :   OFFProductNutrimentsDTO({
+      64             :     //required this.energy_kcal,
+      65             :     required this.energy_kcal_100g,
+      66             :     // required this.energy_kcal_serving,
+      67             :     // required this.energy_kcal_unit,
+      68             :     // required this.energy_kcal_value,
+      69             :     //required this.carbohydrates,
+      70             :     required this.carbohydrates_100g,
+      71             :     // required this.carbohydrates_serving,
+      72             :     // required this.carbohydrates_value,
+      73             :     // required this.carbohydrates_unit,
+      74             :     // required this.fat,
+      75             :     required this.fat_100g,
+      76             :     // required this.fat_serving,
+      77             :     // required this.fat_value,
+      78             :     // required this.fat_unit,
+      79             :     // required this.proteins,
+      80             :     required this.proteins_100g,
+      81             :     // required this.proteins_serving,
+      82             :     // required this.proteins_value,
+      83             :     // required this.proteins_unit,
+      84             :     // required this.sugars,
+      85             :     required this.sugars_100g,
+      86             :     // required this.sugars_serving,
+      87             :     // required this.sugars_value,
+      88             :     // required this.sugars_unit,
+      89             :     // required this.saturated_fat,
+      90             :     required this.saturated_fat_100g,
+      91             :     // required this.saturated_fat_serving,
+      92             :     // required this.saturated_fat_value,
+      93             :     // required this.saturated_fat_unit,
+      94             :     // required this.fiber,
+      95             :     required this.fiber_100g,
+      96             :     // required this.fiber_serving,
+      97             :     // required this.fiber_value,
+      98             :     // required this.fiber_unit,
+      99             :   });
+     100             : 
+     101           0 :   factory OFFProductNutrimentsDTO.fromJson(Map<String, dynamic> json) =>
+     102           0 :       _$OFFProductNutrimentsDTOFromJson(json);
+     103             : 
+     104           0 :   Map<String, dynamic> toJson() => _$OFFProductNutrimentsDTOToJson(this);
+     105             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.func-sort-c.html b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.func-sort-c.html new file mode 100644 index 000000000..537a472aa --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_nutriments_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.func.html b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.func.html new file mode 100644 index 000000000..7193f7762 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_nutriments_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.gcov.html b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.gcov.html new file mode 100644 index 000000000..2cc97ebe9 --- /dev/null +++ b/coverage/html/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart.gcov.html @@ -0,0 +1,107 @@ + + + + + + + LCOV - lcov.info - features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/data/dto/off - off_product_nutriments_dto.g.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : 
+       3             : part of 'off_product_nutriments_dto.dart';
+       4             : 
+       5             : // **************************************************************************
+       6             : // JsonSerializableGenerator
+       7             : // **************************************************************************
+       8             : 
+       9           0 : OFFProductNutrimentsDTO _$OFFProductNutrimentsDTOFromJson(
+      10             :         Map<String, dynamic> json) =>
+      11           0 :     OFFProductNutrimentsDTO(
+      12           0 :       energy_kcal_100g: json['energy-kcal_100g'],
+      13           0 :       carbohydrates_100g: json['carbohydrates_100g'],
+      14           0 :       fat_100g: json['fat_100g'],
+      15           0 :       proteins_100g: json['proteins_100g'],
+      16           0 :       sugars_100g: json['sugars_100g'],
+      17           0 :       saturated_fat_100g: json['saturated-fat_100g'],
+      18           0 :       fiber_100g: json['fiber_100g'],
+      19             :     );
+      20             : 
+      21           0 : Map<String, dynamic> _$OFFProductNutrimentsDTOToJson(
+      22             :         OFFProductNutrimentsDTO instance) =>
+      23           0 :     <String, dynamic>{
+      24           0 :       'energy-kcal_100g': instance.energy_kcal_100g,
+      25           0 :       'carbohydrates_100g': instance.carbohydrates_100g,
+      26           0 :       'fat_100g': instance.fat_100g,
+      27           0 :       'proteins_100g': instance.proteins_100g,
+      28           0 :       'sugars_100g': instance.sugars_100g,
+      29           0 :       'saturated-fat_100g': instance.saturated_fat_100g,
+      30           0 :       'fiber_100g': instance.fiber_100g,
+      31             :     };
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/index-sort-f.html b/coverage/html/features/add_meal/domain/entity/index-sort-f.html new file mode 100644 index 000000000..471a315a0 --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/index-sort-f.html @@ -0,0 +1,103 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entityHitTotalCoverage
Test:lcov.infoLines:2912922.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
meal_nutriments_entity.dart +
19.3%19.3%
+
19.3 %11 / 57-0 / 0
meal_entity.dart +
25.0%25.0%
+
25.0 %18 / 72-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/index-sort-l.html b/coverage/html/features/add_meal/domain/entity/index-sort-l.html new file mode 100644 index 000000000..80618221f --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/index-sort-l.html @@ -0,0 +1,103 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entityHitTotalCoverage
Test:lcov.infoLines:2912922.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
meal_nutriments_entity.dart +
19.3%19.3%
+
19.3 %11 / 57-0 / 0
meal_entity.dart +
25.0%25.0%
+
25.0 %18 / 72-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/index.html b/coverage/html/features/add_meal/domain/entity/index.html new file mode 100644 index 000000000..2ad5818fe --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/index.html @@ -0,0 +1,103 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entityHitTotalCoverage
Test:lcov.infoLines:2912922.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
meal_entity.dart +
25.0%25.0%
+
25.0 %18 / 72-0 / 0
meal_nutriments_entity.dart +
19.3%19.3%
+
19.3 %11 / 57-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/meal_entity.dart.func-sort-c.html b/coverage/html/features/add_meal/domain/entity/meal_entity.dart.func-sort-c.html new file mode 100644 index 000000000..d69b27776 --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/meal_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity/meal_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entity - meal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:187225.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/meal_entity.dart.func.html b/coverage/html/features/add_meal/domain/entity/meal_entity.dart.func.html new file mode 100644 index 000000000..3a7e9df94 --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/meal_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity/meal_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entity - meal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:187225.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/meal_entity.dart.gcov.html b/coverage/html/features/add_meal/domain/entity/meal_entity.dart.gcov.html new file mode 100644 index 000000000..dfd906945 --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/meal_entity.dart.gcov.html @@ -0,0 +1,286 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity/meal_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entity - meal_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:187225.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'dart:io';
+       2             : 
+       3             : import 'package:equatable/equatable.dart';
+       4             : import 'package:opennutritracker/core/data/dbo/meal_dbo.dart';
+       5             : import 'package:opennutritracker/core/utils/id_generator.dart';
+       6             : import 'package:opennutritracker/core/utils/supported_language.dart';
+       7             : import 'package:opennutritracker/features/add_meal/data/dto/fdc/fdc_const.dart';
+       8             : import 'package:opennutritracker/features/add_meal/data/dto/fdc/fdc_food_dto.dart';
+       9             : import 'package:opennutritracker/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart';
+      10             : import 'package:opennutritracker/features/add_meal/data/dto/off/off_product_dto.dart';
+      11             : import 'package:opennutritracker/features/add_meal/domain/entity/meal_nutriments_entity.dart';
+      12             : 
+      13             : class MealEntity extends Equatable {
+      14             :   static const liquidUnits = {'ml', 'l', 'dl', 'cl', 'fl oz', 'fl.oz'};
+      15             :   static const solidUnits = {
+      16             :     'kg',
+      17             :     'g',
+      18             :     'mg',
+      19             :     'µg',
+      20             :     'oz',
+      21             :   };
+      22             : 
+      23             :   final String? code;
+      24             :   final String? name;
+      25             : 
+      26             :   final String? brands;
+      27             : 
+      28             :   final String? thumbnailImageUrl;
+      29             :   final String? mainImageUrl;
+      30             : 
+      31             :   final String? url;
+      32             : 
+      33             :   final String? mealQuantity;
+      34             :   final String? mealUnit;
+      35             :   final double? servingQuantity;
+      36             :   final String? servingUnit;
+      37             :   final String? servingSize;
+      38             : 
+      39           0 :   get hasServingValues => servingQuantity != null && servingUnit != null;
+      40             : 
+      41             :   final MealSourceEntity source;
+      42             : 
+      43             :   final MealNutrimentsEntity nutriments;
+      44             : 
+      45           0 :   bool get isLiquid => liquidUnits.contains(mealUnit);
+      46             : 
+      47           0 :   bool get isSolid => solidUnits.contains(mealUnit);
+      48             : 
+      49           1 :   const MealEntity(
+      50             :       {required this.code,
+      51             :       required this.name,
+      52             :       this.brands,
+      53             :       this.thumbnailImageUrl,
+      54             :       this.mainImageUrl,
+      55             :       required this.url,
+      56             :       required this.mealQuantity,
+      57             :       required this.mealUnit,
+      58             :       required this.servingQuantity,
+      59             :       required this.servingUnit,
+      60             :       required this.servingSize,
+      61             :       required this.nutriments,
+      62             :       required this.source});
+      63             : 
+      64           0 :   factory MealEntity.empty() => MealEntity(
+      65           0 :       code: IdGenerator.getUniqueID(),
+      66             :       name: null,
+      67             :       url: null,
+      68             :       mealQuantity: null,
+      69             :       mealUnit: 'gml',
+      70             :       servingQuantity: null,
+      71             :       servingUnit: 'gml',
+      72             :       servingSize: '',
+      73           0 :       nutriments: MealNutrimentsEntity.empty(),
+      74             :       source: MealSourceEntity.custom);
+      75             : 
+      76           2 :   factory MealEntity.fromMealDBO(MealDBO mealDBO) => MealEntity(
+      77           1 :       code: mealDBO.code,
+      78           1 :       name: mealDBO.name,
+      79           1 :       brands: mealDBO.brands,
+      80           1 :       thumbnailImageUrl: mealDBO.thumbnailImageUrl,
+      81           1 :       mainImageUrl: mealDBO.mainImageUrl,
+      82           1 :       url: mealDBO.url,
+      83           1 :       mealQuantity: mealDBO.mealQuantity,
+      84           1 :       mealUnit: mealDBO.mealUnit,
+      85           1 :       servingQuantity: mealDBO.servingQuantity,
+      86           1 :       servingUnit: mealDBO.servingUnit,
+      87           1 :       servingSize: mealDBO.servingSize,
+      88             :       nutriments:
+      89           2 :           MealNutrimentsEntity.fromMealNutrimentsDBO(mealDBO.nutriments),
+      90           2 :       source: MealSourceEntity.fromMealSourceDBO(mealDBO.source));
+      91             : 
+      92           0 :   factory MealEntity.fromOFFProduct(OFFProductDTO offProduct) {
+      93           0 :     return MealEntity(
+      94           0 :         code: offProduct.code,
+      95             :         name: offProduct
+      96           0 :             .getLocaleName(SupportedLanguage.fromCode(Platform.localeName)),
+      97           0 :         brands: offProduct.brands,
+      98           0 :         thumbnailImageUrl: offProduct.image_front_thumb_url,
+      99           0 :         mainImageUrl: offProduct.image_front_url,
+     100           0 :         url: offProduct.url,
+     101           0 :         mealQuantity: offProduct.product_quantity?.toString(),
+     102           0 :         mealUnit: _tryGetUnit(offProduct.quantity),
+     103           0 :         servingQuantity: _tryQuantityCast(offProduct.serving_quantity),
+     104           0 :         servingUnit: _tryGetUnit(offProduct.quantity),
+     105           0 :         servingSize: offProduct.serving_size,
+     106             :         nutriments:
+     107           0 :             MealNutrimentsEntity.fromOffNutriments(offProduct.nutriments),
+     108             :         source: MealSourceEntity.off);
+     109             :   }
+     110             : 
+     111           0 :   factory MealEntity.fromFDCFood(FDCFoodDTO fdcFood) {
+     112           0 :     final fdcId = fdcFood.fdcId?.toInt().toString();
+     113             : 
+     114           0 :     return MealEntity(
+     115             :         code: fdcId,
+     116           0 :         name: fdcFood.description,
+     117           0 :         brands: fdcFood.brandName,
+     118           0 :         url: FDCConst.getFoodDetailUrlString(fdcId),
+     119           0 :         mealQuantity: fdcFood.packageWeight,
+     120           0 :         mealUnit: fdcFood.servingSizeUnit,
+     121           0 :         servingQuantity: fdcFood.servingSize,
+     122           0 :         servingUnit: fdcFood.servingSizeUnit,
+     123           0 :         servingSize: fdcFood.servingSizeUnit,
+     124             :         nutriments:
+     125           0 :             MealNutrimentsEntity.fromFDCNutriments(fdcFood.foodNutrients),
+     126             :         source: MealSourceEntity.fdc);
+     127             :   }
+     128             : 
+     129           0 :   factory MealEntity.fromSpFDCFood(SpFdcFoodDTO foodItem) {
+     130           0 :     final fdcId = foodItem.fdcId?.toInt().toString();
+     131             : 
+     132           0 :     return MealEntity(
+     133             :         code: fdcId,
+     134           0 :         name: foodItem.getLocaleDescription(
+     135           0 :             SupportedLanguage.fromCode(Platform.localeName)),
+     136             :         brands: null,
+     137           0 :         url: FDCConst.getFoodDetailUrlString(fdcId),
+     138             :         mealQuantity: null,
+     139             :         mealUnit: FDCConst.fdcDefaultUnit,
+     140           0 :         servingQuantity: foodItem.servingSize,
+     141             :         servingUnit: FDCConst.fdcDefaultUnit,
+     142             :         servingSize:
+     143           0 :             "${(foodItem.servingAmount ?? 1).toInt()} ${foodItem.servingSizeUnit}",
+     144           0 :         nutriments: MealNutrimentsEntity.fromFDCNutriments(foodItem.nutrients),
+     145             :         source: MealSourceEntity.fdc);
+     146             :   }
+     147             : 
+     148             :   /// Value returned from OFF can either be String, int or double.
+     149             :   /// Try casting it to a double value for calculation
+     150           0 :   static double? _tryQuantityCast(dynamic value) {
+     151             :     double? parsedValue;
+     152             : 
+     153             :     if (value == null) {
+     154             :       parsedValue = null;
+     155           0 :     } else if (value is double) {
+     156             :       parsedValue = value;
+     157           0 :     } else if (value is int) {
+     158           0 :       parsedValue = value.toDouble();
+     159           0 :     } else if (value is String) {
+     160           0 :       value.replaceAll(RegExp("mg|g|kg|ml|cl|l| "), ""); // TODO extract
+     161             :       final doubleParsed =
+     162           0 :           double.tryParse(value) ?? int.tryParse(value)?.toDouble();
+     163             :       parsedValue = doubleParsed;
+     164             :     }
+     165             :     return parsedValue;
+     166             :   }
+     167             : 
+     168             :   /// TODO extract correct unit
+     169             :   /// Unit can either be 100g or 100ml
+     170           0 :   static String? _tryGetUnit(String? quantityString) {
+     171             :     if (quantityString == null) return null;
+     172             : 
+     173           0 :     final isLiter = quantityString.toUpperCase().contains("L");
+     174             : 
+     175             :     if (isLiter) {
+     176             :       return "ml";
+     177             :     } else {
+     178             :       return "g";
+     179             :     }
+     180             :   }
+     181             : 
+     182           0 :   @override
+     183           0 :   List<Object?> get props => [code, name];
+     184             : }
+     185             : 
+     186             : enum MealSourceEntity {
+     187             :   unknown,
+     188             :   custom,
+     189             :   off,
+     190             :   fdc;
+     191             : 
+     192           1 :   factory MealSourceEntity.fromMealSourceDBO(MealSourceDBO mealSourceDBO) {
+     193             :     MealSourceEntity mealSourceEntity;
+     194             :     switch (mealSourceDBO) {
+     195           1 :       case MealSourceDBO.unknown:
+     196             :         mealSourceEntity = MealSourceEntity.unknown;
+     197             :         break;
+     198           1 :       case MealSourceDBO.custom:
+     199             :         mealSourceEntity = MealSourceEntity.custom;
+     200             :         break;
+     201           0 :       case MealSourceDBO.off:
+     202             :         mealSourceEntity = MealSourceEntity.off;
+     203             :         break;
+     204           0 :       case MealSourceDBO.fdc:
+     205             :         mealSourceEntity = MealSourceEntity.fdc;
+     206             :         break;
+     207             :     }
+     208             :     return mealSourceEntity;
+     209             :   }
+     210             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.func-sort-c.html b/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.func-sort-c.html new file mode 100644 index 000000000..81632c43f --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity/meal_nutriments_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entity - meal_nutriments_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:115719.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.func.html b/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.func.html new file mode 100644 index 000000000..a8527db20 --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity/meal_nutriments_entity.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entity - meal_nutriments_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:115719.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.gcov.html b/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.gcov.html new file mode 100644 index 000000000..3a8eaa8d3 --- /dev/null +++ b/coverage/html/features/add_meal/domain/entity/meal_nutriments_entity.dart.gcov.html @@ -0,0 +1,219 @@ + + + + + + + LCOV - lcov.info - features/add_meal/domain/entity/meal_nutriments_entity.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/add_meal/domain/entity - meal_nutriments_entity.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:115719.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:collection/collection.dart';
+       2             : import 'package:equatable/equatable.dart';
+       3             : import 'package:opennutritracker/core/data/dbo/meal_nutriments_dbo.dart';
+       4             : import 'package:opennutritracker/core/utils/extensions.dart';
+       5             : import 'package:opennutritracker/features/add_meal/data/dto/fdc/fdc_const.dart';
+       6             : import 'package:opennutritracker/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart';
+       7             : import 'package:opennutritracker/features/add_meal/data/dto/off/off_product_nutriments_dto.dart';
+       8             : 
+       9             : class MealNutrimentsEntity extends Equatable {
+      10             :   final double? energyKcal100;
+      11             : 
+      12             :   final double? carbohydrates100;
+      13             :   final double? fat100;
+      14             :   final double? proteins100;
+      15             :   final double? sugars100;
+      16             :   final double? saturatedFat100;
+      17             :   final double? fiber100;
+      18             : 
+      19           0 :   double? get energyPerUnit => _getValuePerUnit(energyKcal100);
+      20             : 
+      21           0 :   double? get carbohydratesPerUnit => _getValuePerUnit(carbohydrates100);
+      22             : 
+      23           0 :   double? get fatPerUnit => _getValuePerUnit(fat100);
+      24             : 
+      25           0 :   double? get proteinsPerUnit => _getValuePerUnit(proteins100);
+      26             : 
+      27           5 :   const MealNutrimentsEntity(
+      28             :       {required this.energyKcal100,
+      29             :       required this.carbohydrates100,
+      30             :       required this.fat100,
+      31             :       required this.proteins100,
+      32             :       required this.sugars100,
+      33             :       required this.saturatedFat100,
+      34             :       required this.fiber100});
+      35             : 
+      36           1 :   factory MealNutrimentsEntity.empty() => const MealNutrimentsEntity(
+      37             :       energyKcal100: null,
+      38             :       carbohydrates100: null,
+      39             :       fat100: null,
+      40             :       proteins100: null,
+      41             :       sugars100: null,
+      42             :       saturatedFat100: null,
+      43             :       fiber100: null);
+      44             : 
+      45           1 :   factory MealNutrimentsEntity.fromMealNutrimentsDBO(
+      46             :       MealNutrimentsDBO nutriments) {
+      47           1 :     return MealNutrimentsEntity(
+      48           1 :         energyKcal100: nutriments.energyKcal100,
+      49           1 :         carbohydrates100: nutriments.carbohydrates100,
+      50           1 :         fat100: nutriments.fat100,
+      51           1 :         proteins100: nutriments.proteins100,
+      52           1 :         sugars100: nutriments.sugars100,
+      53           1 :         saturatedFat100: nutriments.saturatedFat100,
+      54           1 :         fiber100: nutriments.fiber100);
+      55             :   }
+      56             : 
+      57           0 :   factory MealNutrimentsEntity.fromOffNutriments(
+      58             :       OFFProductNutrimentsDTO offNutriments) {
+      59             :     // 1. OFF product nutriments can either be String, int, double or null
+      60             :     // 2. Extension function asDoubleOrNull does not work on a dynamic data
+      61             :     // type, so cast to it Object?
+      62           0 :     return MealNutrimentsEntity(
+      63             :         energyKcal100:
+      64           0 :             (offNutriments.energy_kcal_100g as Object?).asDoubleOrNull(),
+      65             :         carbohydrates100:
+      66           0 :             (offNutriments.carbohydrates_100g as Object?).asDoubleOrNull(),
+      67           0 :         fat100: (offNutriments.fat_100g as Object?).asDoubleOrNull(),
+      68           0 :         proteins100: (offNutriments.proteins_100g as Object?).asDoubleOrNull(),
+      69           0 :         sugars100: (offNutriments.sugars_100g as Object?).asDoubleOrNull(),
+      70             :         saturatedFat100:
+      71           0 :             (offNutriments.saturated_fat_100g as Object?).asDoubleOrNull(),
+      72           0 :         fiber100: (offNutriments.fiber_100g as Object?).asDoubleOrNull());
+      73             :   }
+      74             : 
+      75           0 :   factory MealNutrimentsEntity.fromFDCNutriments(
+      76             :       List<FDCFoodNutrimentDTO> fdcNutriment) {
+      77             :     // FDC Food nutriments can have different values for Energy [Energy,
+      78             :     // Energy (Atwater General Factors), Energy (Atwater Specific Factors)]
+      79             :     final energyTotal = fdcNutriment
+      80           0 :             .firstWhereOrNull(
+      81           0 :                 (nutriment) => nutriment.nutrientId == FDCConst.fdcTotalKcalId)
+      82           0 :             ?.amount ??
+      83             :         fdcNutriment
+      84           0 :             .firstWhereOrNull((nutriment) =>
+      85           0 :                 nutriment.nutrientId == FDCConst.fdcKcalAtwaterGeneralId)
+      86           0 :             ?.amount ??
+      87             :         fdcNutriment
+      88           0 :             .firstWhereOrNull((nutriment) =>
+      89           0 :                 nutriment.nutrientId == FDCConst.fdcKcalAtwaterSpecificId)
+      90           0 :             ?.amount;
+      91             : 
+      92             :     final carbsTotal = fdcNutriment
+      93           0 :         .firstWhereOrNull(
+      94           0 :             (nutriment) => nutriment.nutrientId == FDCConst.fdcTotalCarbsId)
+      95           0 :         ?.amount;
+      96             : 
+      97             :     final fatTotal = fdcNutriment
+      98           0 :         .firstWhereOrNull(
+      99           0 :             (nutriment) => nutriment.nutrientId == FDCConst.fdcTotalFatId)
+     100           0 :         ?.amount;
+     101             : 
+     102             :     final proteinsTotal = fdcNutriment
+     103           0 :         .firstWhereOrNull(
+     104           0 :             (nutriment) => nutriment.nutrientId == FDCConst.fdcTotalProteinsId)
+     105           0 :         ?.amount;
+     106             : 
+     107             :     final sugarTotal = fdcNutriment
+     108           0 :         .firstWhereOrNull(
+     109           0 :             (nutriment) => nutriment.nutrientId == FDCConst.fdcTotalSugarId)
+     110           0 :         ?.amount;
+     111             : 
+     112             :     final saturatedFatTotal = fdcNutriment
+     113           0 :         .firstWhereOrNull((nutriment) =>
+     114           0 :             nutriment.nutrientId == FDCConst.fdcTotalSaturatedFatId)
+     115           0 :         ?.amount;
+     116             : 
+     117             :     final fiberTotal = fdcNutriment
+     118           0 :         .firstWhereOrNull((nutriment) =>
+     119           0 :             nutriment.nutrientId == FDCConst.fdcTotalDietaryFiberId)
+     120           0 :         ?.amount;
+     121             : 
+     122           0 :     return MealNutrimentsEntity(
+     123             :         energyKcal100: energyTotal,
+     124             :         carbohydrates100: carbsTotal,
+     125             :         fat100: fatTotal,
+     126             :         proteins100: proteinsTotal,
+     127             :         sugars100: sugarTotal,
+     128             :         saturatedFat100: saturatedFatTotal,
+     129             :         fiber100: fiberTotal);
+     130             :   }
+     131             : 
+     132           0 :   static double? _getValuePerUnit(double? valuePer100) {
+     133             :     if (valuePer100 != null) {
+     134           0 :       return valuePer100 / 100;
+     135             :     } else {
+     136             :       return null;
+     137             :     }
+     138             :   }
+     139             : 
+     140           0 :   @override
+     141             :   List<Object?> get props =>
+     142           0 :       [energyKcal100, carbohydrates100, fat100, proteins100];
+     143             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.func-sort-c.html b/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.func-sort-c.html new file mode 100644 index 000000000..9aa2d0ff4 --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets/dashboard_widget.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgets - dashboard_widget.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:747598.7 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.func.html b/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.func.html new file mode 100644 index 000000000..bf00620fa --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets/dashboard_widget.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgets - dashboard_widget.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:747598.7 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.gcov.html b/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.gcov.html new file mode 100644 index 000000000..55c139ae4 --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/dashboard_widget.dart.gcov.html @@ -0,0 +1,233 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets/dashboard_widget.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgets - dashboard_widget.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:747598.7 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:animated_flip_counter/animated_flip_counter.dart';
+       2             : import 'package:flutter/material.dart';
+       3             : import 'package:opennutritracker/features/home/presentation/widgets/macro_nutriments_widget.dart';
+       4             : import 'package:percent_indicator/circular_percent_indicator.dart';
+       5             : import 'package:opennutritracker/generated/l10n.dart';
+       6             : 
+       7             : class DashboardWidget extends StatefulWidget {
+       8             :   final double totalKcalDaily;
+       9             :   final double totalKcalLeft;
+      10             :   final double totalKcalSupplied;
+      11             :   final double totalKcalBurned;
+      12             :   final double totalCarbsIntake;
+      13             :   final double totalFatsIntake;
+      14             :   final double totalProteinsIntake;
+      15             :   final double totalCarbsGoal;
+      16             :   final double totalFatsGoal;
+      17             :   final double totalProteinsGoal;
+      18             : 
+      19           1 :   const DashboardWidget(
+      20             :       {super.key,
+      21             :       required this.totalKcalSupplied,
+      22             :       required this.totalKcalBurned,
+      23             :       required this.totalKcalDaily,
+      24             :       required this.totalKcalLeft,
+      25             :       required this.totalCarbsIntake,
+      26             :       required this.totalFatsIntake,
+      27             :       required this.totalProteinsIntake,
+      28             :       required this.totalCarbsGoal,
+      29             :       required this.totalFatsGoal,
+      30             :       required this.totalProteinsGoal});
+      31             : 
+      32           1 :   @override
+      33           1 :   State<DashboardWidget> createState() => _DashboardWidgetState();
+      34             : }
+      35             : 
+      36             : class _DashboardWidgetState extends State<DashboardWidget> {
+      37           1 :   @override
+      38             :   Widget build(BuildContext context) {
+      39             :     double kcalLeftLabel = 0;
+      40             :     double gaugeValue = 0;
+      41           5 :     if (widget.totalKcalLeft > widget.totalKcalDaily) {
+      42           0 :       kcalLeftLabel = widget.totalKcalDaily;
+      43             :       gaugeValue = 0;
+      44           3 :     } else if (widget.totalKcalLeft < 0) {
+      45             :       kcalLeftLabel = 0;
+      46             :       gaugeValue = 1;
+      47             :     } else {
+      48           2 :       kcalLeftLabel = widget.totalKcalLeft;
+      49           6 :       gaugeValue = (widget.totalKcalDaily - widget.totalKcalLeft) /
+      50           2 :           widget.totalKcalDaily;
+      51             :     }
+      52           1 :     return Padding(
+      53             :       padding: const EdgeInsets.all(16),
+      54           1 :       child: Card(
+      55             :         elevation: 1,
+      56           1 :         child: Padding(
+      57             :           padding: const EdgeInsets.all(16),
+      58           1 :           child: Column(
+      59             :             mainAxisSize: MainAxisSize.min,
+      60             :             mainAxisAlignment: MainAxisAlignment.center,
+      61           1 :             children: <Widget>[
+      62           1 :               Row(
+      63             :                 mainAxisAlignment: MainAxisAlignment.spaceAround,
+      64           1 :                 children: [
+      65           1 :                   Column(
+      66           1 :                     children: [
+      67           1 :                       Icon(
+      68             :                         Icons.keyboard_arrow_up_outlined,
+      69           3 :                         color: Theme.of(context).colorScheme.onSurface,
+      70             :                       ),
+      71           5 :                       Text('${widget.totalKcalSupplied.toInt()}',
+      72           1 :                           style: Theme.of(context)
+      73           1 :                               .textTheme
+      74           1 :                               .titleLarge
+      75           1 :                               ?.copyWith(
+      76             :                                   color:
+      77           3 :                                       Theme.of(context).colorScheme.onSurface)),
+      78           3 :                       Text(S.of(context).suppliedLabel,
+      79           1 :                           style: Theme.of(context)
+      80           1 :                               .textTheme
+      81           1 :                               .titleSmall
+      82           1 :                               ?.copyWith(
+      83             :                                   color:
+      84           3 :                                       Theme.of(context).colorScheme.onSurface)),
+      85             :                     ],
+      86             :                   ),
+      87           1 :                   CircularPercentIndicator(
+      88             :                     radius: 90.0,
+      89             :                     lineWidth: 13.0,
+      90             :                     animation: true,
+      91             :                     percent: gaugeValue,
+      92             :                     arcType: ArcType.FULL,
+      93           3 :                     progressColor: Theme.of(context).colorScheme.primary,
+      94             :                     arcBackgroundColor:
+      95           4 :                         Theme.of(context).colorScheme.primary.withAlpha(50),
+      96           1 :                     center: Column(
+      97             :                       mainAxisAlignment: MainAxisAlignment.center,
+      98           1 :                       children: [
+      99           1 :                         AnimatedFlipCounter(
+     100             :                             duration: const Duration(milliseconds: 1000),
+     101           1 :                             value: kcalLeftLabel.toInt(),
+     102           1 :                             textStyle: Theme.of(context)
+     103           1 :                                 .textTheme
+     104           1 :                                 .headlineMedium
+     105           1 :                                 ?.copyWith(
+     106             :                                     color:
+     107           3 :                                         Theme.of(context).colorScheme.onSurface,
+     108             :                                     letterSpacing: -1)),
+     109           1 :                         Text(
+     110           2 :                           S.of(context).kcalLeftLabel,
+     111           1 :                           style: Theme.of(context)
+     112           1 :                               .textTheme
+     113           1 :                               .titleMedium
+     114           1 :                               ?.copyWith(
+     115             :                                   color:
+     116           3 :                                       Theme.of(context).colorScheme.onSurface),
+     117             :                         )
+     118             :                       ],
+     119             :                     ),
+     120             :                     circularStrokeCap: CircularStrokeCap.round,
+     121             :                   ),
+     122           1 :                   Column(
+     123           1 :                     children: [
+     124           1 :                       Icon(Icons.keyboard_arrow_down_outlined,
+     125           3 :                           color: Theme.of(context).colorScheme.onSurface),
+     126           5 :                       Text('${widget.totalKcalBurned.toInt()}',
+     127           1 :                           style: Theme.of(context)
+     128           1 :                               .textTheme
+     129           1 :                               .titleLarge
+     130           1 :                               ?.copyWith(
+     131             :                                   color:
+     132           3 :                                       Theme.of(context).colorScheme.onSurface)),
+     133           3 :                       Text(S.of(context).burnedLabel,
+     134           1 :                           style: Theme.of(context)
+     135           1 :                               .textTheme
+     136           1 :                               .titleSmall
+     137           1 :                               ?.copyWith(
+     138             :                                   color:
+     139           3 :                                       Theme.of(context).colorScheme.onSurface)),
+     140             :                     ],
+     141             :                   ),
+     142             :                 ],
+     143             :               ),
+     144           1 :               MacroNutrientsView(
+     145           2 :                   totalCarbsIntake: widget.totalCarbsIntake,
+     146           2 :                   totalFatsIntake: widget.totalFatsIntake,
+     147           2 :                   totalProteinsIntake: widget.totalProteinsIntake,
+     148           2 :                   totalCarbsGoal: widget.totalCarbsGoal,
+     149           2 :                   totalFatsGoal: widget.totalFatsGoal,
+     150           2 :                   totalProteinsGoal: widget.totalProteinsGoal),
+     151             :             ],
+     152             :           ),
+     153             :         ),
+     154             :       ),
+     155             :     );
+     156             :   }
+     157             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/index-sort-f.html b/coverage/html/features/home/presentation/widgets/index-sort-f.html new file mode 100644 index 000000000..aa266f731 --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/index-sort-f.html @@ -0,0 +1,103 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgetsHitTotalCoverage
Test:lcov.infoLines:13914099.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
macro_nutriments_widget.dart +
100.0%
+
100.0 %65 / 65-0 / 0
dashboard_widget.dart +
98.7%98.7%
+
98.7 %74 / 75-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/index-sort-l.html b/coverage/html/features/home/presentation/widgets/index-sort-l.html new file mode 100644 index 000000000..6ca151586 --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/index-sort-l.html @@ -0,0 +1,103 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgetsHitTotalCoverage
Test:lcov.infoLines:13914099.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
dashboard_widget.dart +
98.7%98.7%
+
98.7 %74 / 75-0 / 0
macro_nutriments_widget.dart +
100.0%
+
100.0 %65 / 65-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/index.html b/coverage/html/features/home/presentation/widgets/index.html new file mode 100644 index 000000000..f533405e3 --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/index.html @@ -0,0 +1,103 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgetsHitTotalCoverage
Test:lcov.infoLines:13914099.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
dashboard_widget.dart +
98.7%98.7%
+
98.7 %74 / 75-0 / 0
macro_nutriments_widget.dart +
100.0%
+
100.0 %65 / 65-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.func-sort-c.html b/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.func-sort-c.html new file mode 100644 index 000000000..17bfefd8e --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets/macro_nutriments_widget.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgets - macro_nutriments_widget.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:6565100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.func.html b/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.func.html new file mode 100644 index 000000000..34ea14159 --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets/macro_nutriments_widget.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgets - macro_nutriments_widget.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:6565100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.gcov.html b/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.gcov.html new file mode 100644 index 000000000..de1be0f87 --- /dev/null +++ b/coverage/html/features/home/presentation/widgets/macro_nutriments_widget.dart.gcov.html @@ -0,0 +1,222 @@ + + + + + + + LCOV - lcov.info - features/home/presentation/widgets/macro_nutriments_widget.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/home/presentation/widgets - macro_nutriments_widget.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:6565100.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:flutter/material.dart';
+       2             : import 'package:percent_indicator/circular_percent_indicator.dart';
+       3             : import 'package:opennutritracker/generated/l10n.dart';
+       4             : 
+       5             : class MacroNutrientsView extends StatefulWidget {
+       6             :   final double totalCarbsIntake;
+       7             :   final double totalFatsIntake;
+       8             :   final double totalProteinsIntake;
+       9             :   final double totalCarbsGoal;
+      10             :   final double totalFatsGoal;
+      11             :   final double totalProteinsGoal;
+      12             : 
+      13           1 :   const MacroNutrientsView(
+      14             :       {super.key,
+      15             :       required this.totalCarbsIntake,
+      16             :       required this.totalFatsIntake,
+      17             :       required this.totalProteinsIntake,
+      18             :       required this.totalCarbsGoal,
+      19             :       required this.totalFatsGoal,
+      20             :       required this.totalProteinsGoal});
+      21             : 
+      22           1 :   @override
+      23           1 :   State<MacroNutrientsView> createState() => _MacroNutrientsViewState();
+      24             : }
+      25             : 
+      26             : class _MacroNutrientsViewState extends State<MacroNutrientsView> {
+      27           1 :   @override
+      28             :   Widget build(BuildContext context) {
+      29           1 :     return Row(
+      30             :       mainAxisAlignment: MainAxisAlignment.spaceAround,
+      31           1 :       children: [
+      32           1 :         Row(
+      33           1 :           children: [
+      34           1 :             CircularPercentIndicator(
+      35             :               radius: 15.0,
+      36             :               lineWidth: 6.0,
+      37             :               animation: true,
+      38           1 :               percent: getGoalPercentage(
+      39           4 :                   widget.totalCarbsGoal, widget.totalCarbsIntake),
+      40           3 :               progressColor: Theme.of(context).colorScheme.primary,
+      41             :               backgroundColor:
+      42           4 :                   Theme.of(context).colorScheme.primary.withAlpha(50),
+      43             :               circularStrokeCap: CircularStrokeCap.round,
+      44             :             ),
+      45           1 :             Padding(
+      46             :               padding: const EdgeInsets.all(4.0),
+      47           1 :               child: Column(
+      48           1 :                 children: [
+      49           1 :                   Text(
+      50           7 :                     '${widget.totalCarbsIntake.toInt()}/${widget.totalCarbsGoal.toInt()} g',
+      51           4 :                     style: Theme.of(context).textTheme.titleSmall?.copyWith(
+      52             :                         color:
+      53           3 :                             Theme.of(context).colorScheme.onSurface),
+      54             :                   ),
+      55           1 :                   Text(
+      56           2 :                     S.of(context).carbsLabel,
+      57           4 :                     style: Theme.of(context).textTheme.bodyMedium?.copyWith(
+      58             :                         color:
+      59           3 :                             Theme.of(context).colorScheme.onSurface),
+      60             :                   )
+      61             :                 ],
+      62             :               ),
+      63             :             )
+      64             :           ],
+      65             :         ),
+      66           1 :         Row(
+      67           1 :           children: [
+      68           1 :             CircularPercentIndicator(
+      69             :               radius: 15.0,
+      70             :               lineWidth: 6.0,
+      71             :               animation: true,
+      72           1 :               percent: getGoalPercentage(
+      73           4 :                   widget.totalFatsGoal, widget.totalFatsIntake),
+      74           3 :               progressColor: Theme.of(context).colorScheme.primary,
+      75             :               backgroundColor:
+      76           4 :                   Theme.of(context).colorScheme.primary.withAlpha(50),
+      77             :               circularStrokeCap: CircularStrokeCap.round,
+      78             :             ),
+      79           1 :             Padding(
+      80             :               padding: const EdgeInsets.all(4.0),
+      81           1 :               child: Column(
+      82           1 :                 children: [
+      83           1 :                   Text(
+      84           7 :                     "${widget.totalFatsIntake.toInt()}/${widget.totalFatsGoal.toInt()} g",
+      85           4 :                     style: Theme.of(context).textTheme.titleSmall?.copyWith(
+      86             :                         color:
+      87           3 :                             Theme.of(context).colorScheme.onSurface),
+      88             :                   ),
+      89           3 :                   Text(S.of(context).fatLabel,
+      90           4 :                       style: Theme.of(context).textTheme.bodyMedium?.copyWith(
+      91           1 :                           color: Theme.of(context)
+      92           1 :                               .colorScheme
+      93           1 :                               .onSurface)),
+      94             :                 ],
+      95             :               ),
+      96             :             )
+      97             :           ],
+      98             :         ),
+      99           1 :         Row(
+     100           1 :           children: [
+     101           1 :             CircularPercentIndicator(
+     102             :               radius: 15.0,
+     103             :               lineWidth: 6.0,
+     104             :               animation: true,
+     105           1 :               percent: getGoalPercentage(
+     106           4 :                   widget.totalProteinsGoal, widget.totalProteinsIntake),
+     107           3 :               progressColor: Theme.of(context).colorScheme.primary,
+     108             :               backgroundColor:
+     109           4 :                   Theme.of(context).colorScheme.primary.withAlpha(50),
+     110             :               circularStrokeCap: CircularStrokeCap.round,
+     111             :             ),
+     112           1 :             Padding(
+     113             :               padding: const EdgeInsets.all(4.0),
+     114           1 :               child: Column(
+     115           1 :                 children: [
+     116           1 :                   Text(
+     117           7 :                     "${widget.totalProteinsIntake.toInt()}/${widget.totalProteinsGoal.toInt()} g",
+     118           4 :                     style: Theme.of(context).textTheme.titleSmall?.copyWith(
+     119             :                         color:
+     120           3 :                             Theme.of(context).colorScheme.onSurface),
+     121             :                   ),
+     122           1 :                   Text(
+     123           2 :                     S.of(context).proteinLabel,
+     124           4 :                     style: Theme.of(context).textTheme.bodyMedium?.copyWith(
+     125             :                         color:
+     126           3 :                             Theme.of(context).colorScheme.onSurface),
+     127             :                   )
+     128             :                 ],
+     129             :               ),
+     130             :             )
+     131             :           ],
+     132             :         )
+     133             :       ],
+     134             :     );
+     135             :   }
+     136             : 
+     137           1 :   double getGoalPercentage(double goal, double supplied) {
+     138           2 :     if (supplied <= 0 || goal <= 0) {
+     139             :       return 0;
+     140           1 :     } else if (supplied > goal) {
+     141             :       return 1;
+     142             :     } else {
+     143           1 :       return supplied / goal;
+     144             :     }
+     145             :   }
+     146             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/index-sort-f.html b/coverage/html/features/meal_detail/presentation/bloc/index-sort-f.html new file mode 100644 index 000000000..35616142a --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/index-sort-f.html @@ -0,0 +1,113 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/blocHitTotalCoverage
Test:lcov.infoLines:148117.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
meal_detail_event.dart +
0.0%
+
0.0 %0 / 4-0 / 0
meal_detail_bloc.dart +
23.7%23.7%
+
23.7 %14 / 59-0 / 0
meal_detail_state.dart +
0.0%
+
0.0 %0 / 18-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/index-sort-l.html b/coverage/html/features/meal_detail/presentation/bloc/index-sort-l.html new file mode 100644 index 000000000..a13ed0d61 --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/index-sort-l.html @@ -0,0 +1,113 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/blocHitTotalCoverage
Test:lcov.infoLines:148117.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
meal_detail_event.dart +
0.0%
+
0.0 %0 / 4-0 / 0
meal_detail_state.dart +
0.0%
+
0.0 %0 / 18-0 / 0
meal_detail_bloc.dart +
23.7%23.7%
+
23.7 %14 / 59-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/index.html b/coverage/html/features/meal_detail/presentation/bloc/index.html new file mode 100644 index 000000000..9d0cef5a9 --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/index.html @@ -0,0 +1,113 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/blocHitTotalCoverage
Test:lcov.infoLines:148117.3 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
meal_detail_bloc.dart +
23.7%23.7%
+
23.7 %14 / 59-0 / 0
meal_detail_event.dart +
0.0%
+
0.0 %0 / 4-0 / 0
meal_detail_state.dart +
0.0%
+
0.0 %0 / 18-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.func-sort-c.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.func-sort-c.html new file mode 100644 index 000000000..4066cb74e --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_bloc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_bloc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:145923.7 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.func.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.func.html new file mode 100644 index 000000000..2219801d3 --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_bloc.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_bloc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:145923.7 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.gcov.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.gcov.html new file mode 100644 index 000000000..f22e142c0 --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_bloc.dart.gcov.html @@ -0,0 +1,236 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_bloc.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_bloc.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:145923.7 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : import 'package:equatable/equatable.dart';
+       2             : import 'package:flutter/material.dart';
+       3             : import 'package:flutter_bloc/flutter_bloc.dart';
+       4             : import 'package:logging/logging.dart';
+       5             : import 'package:opennutritracker/core/domain/entity/intake_entity.dart';
+       6             : import 'package:opennutritracker/core/domain/entity/intake_type_entity.dart';
+       7             : import 'package:opennutritracker/core/domain/usecase/add_intake_usecase.dart';
+       8             : import 'package:opennutritracker/core/domain/usecase/add_tracked_day_usecase.dart';
+       9             : import 'package:opennutritracker/core/domain/usecase/get_kcal_goal_usecase.dart';
+      10             : import 'package:opennutritracker/core/domain/usecase/get_macro_goal_usecase.dart';
+      11             : import 'package:opennutritracker/core/utils/calc/unit_calc.dart';
+      12             : import 'package:opennutritracker/core/utils/id_generator.dart';
+      13             : import 'package:opennutritracker/features/add_meal/domain/entity/meal_entity.dart';
+      14             : import 'package:sentry_flutter/sentry_flutter.dart';
+      15             : 
+      16             : part 'meal_detail_event.dart';
+      17             : 
+      18             : part 'meal_detail_state.dart';
+      19             : 
+      20             : class MealDetailBloc extends Bloc<MealDetailEvent, MealDetailState> {
+      21             :   final log = Logger('MealDetailBloc');
+      22             :   final AddIntakeUsecase _addIntakeUseCase;
+      23             :   final AddTrackedDayUsecase _addTrackedDayUsecase;
+      24             :   final GetKcalGoalUsecase _getKcalGoalUsecase;
+      25             :   final GetMacroGoalUsecase _getMacroGoalUsecase;
+      26             : 
+      27           0 :   MealDetailBloc(this._addIntakeUseCase, this._addTrackedDayUsecase,
+      28             :       this._getKcalGoalUsecase, this._getMacroGoalUsecase)
+      29           0 :       : super(MealDetailInitial(
+      30             :             totalQuantityConverted: '100',
+      31           0 :             selectedUnit: UnitDropdownItem.gml.toString())) {
+      32           0 :     on<UpdateKcalEvent>((event, emit) async {
+      33             :       try {
+      34             :         final selectedTotalQuantity =
+      35           0 :             event.totalQuantity ?? state.totalQuantityConverted;
+      36           0 :         final selectedUnit = event.selectedUnit ?? state.selectedUnit;
+      37             : 
+      38           0 :         if (selectedUnit.isEmpty || selectedTotalQuantity.isEmpty) {
+      39             :           return;
+      40             :         }
+      41             : 
+      42           0 :         final energyPerUnit = (event.meal.nutriments.energyPerUnit ?? 0);
+      43           0 :         final carbsPerUnit = (event.meal.nutriments.carbohydratesPerUnit ?? 0);
+      44           0 :         final fatPerUnit = (event.meal.nutriments.fatPerUnit ?? 0);
+      45           0 :         final proteinPerUnit = (event.meal.nutriments.proteinsPerUnit ?? 0);
+      46             : 
+      47             :         final quantity =
+      48           0 :             double.parse(selectedTotalQuantity.replaceAll(',', '.'));
+      49             : 
+      50             :         // Convert quantity based on selected unit
+      51             :         double convertedQuantity = quantity;
+      52           0 :         if (selectedUnit == UnitDropdownItem.serving.toString()) {
+      53             :           // For serving size, multiply by the product's serving quantity
+      54           0 :           if (event.meal.servingQuantity != null) {
+      55           0 :             convertedQuantity = quantity * event.meal.servingQuantity!;
+      56             :           }
+      57           0 :         } else if (selectedUnit == UnitDropdownItem.oz.toString()) {
+      58           0 :           convertedQuantity = UnitCalc.ozToG(quantity);
+      59           0 :         } else if (selectedUnit == UnitDropdownItem.flOz.toString()) {
+      60           0 :           convertedQuantity = UnitCalc.flOzToMl(quantity);
+      61             :         }
+      62             : 
+      63           0 :         emit(state.copyWith(
+      64           0 :             totalQuantityConverted: convertedQuantity.toString(),
+      65           0 :             totalKcal: convertedQuantity * energyPerUnit,
+      66           0 :             totalCarbs: convertedQuantity * carbsPerUnit,
+      67           0 :             totalFat: convertedQuantity * fatPerUnit,
+      68           0 :             totalProtein: convertedQuantity * proteinPerUnit,
+      69             :             selectedUnit: selectedUnit));
+      70             :       } catch (e) {
+      71           0 :         log.severe('Error calculating kcal: $e');
+      72           0 :         Sentry.captureException(e);
+      73             :       }
+      74             :     });
+      75             :   }
+      76             : 
+      77           0 :   void addIntake(BuildContext context, String unit, String amountText,
+      78             :       IntakeTypeEntity type, MealEntity meal, DateTime day) async {
+      79           0 :     final quantity = double.parse(amountText.replaceAll(',', '.'));
+      80             : 
+      81           0 :     final intakeEntity = IntakeEntity(
+      82           0 :         id: IdGenerator.getUniqueID(),
+      83             :         unit: unit,
+      84             :         amount: quantity,
+      85             :         type: type,
+      86             :         meal: meal,
+      87             :         dateTime: day);
+      88           0 :     await _addIntakeUseCase.addIntake(intakeEntity);
+      89           0 :     _updateTrackedDay(intakeEntity, day);
+      90             :   }
+      91             : 
+      92           0 :   Future<void> _updateTrackedDay(
+      93             :       IntakeEntity intakeEntity, DateTime day) async {
+      94           0 :     final hasTrackedDay = await _addTrackedDayUsecase.hasTrackedDay(day);
+      95             :     if (!hasTrackedDay) {
+      96           0 :       final totalKcalGoal = await _getKcalGoalUsecase.getKcalGoal();
+      97             :       final totalCarbsGoal =
+      98           0 :           await _getMacroGoalUsecase.getCarbsGoal(totalKcalGoal);
+      99             :       final totalFatGoal =
+     100           0 :           await _getMacroGoalUsecase.getFatsGoal(totalKcalGoal);
+     101             :       final totalProteinGoal =
+     102           0 :           await _getMacroGoalUsecase.getProteinsGoal(totalKcalGoal);
+     103             : 
+     104           0 :       await _addTrackedDayUsecase.addNewTrackedDay(
+     105             :           day, totalKcalGoal, totalCarbsGoal, totalFatGoal, totalProteinGoal);
+     106             :     }
+     107             : 
+     108           0 :     _addTrackedDayUsecase.addDayCaloriesTracked(day, intakeEntity.totalKcal);
+     109           0 :     _addTrackedDayUsecase.addDayMacrosTracked(day,
+     110           0 :         carbsTracked: intakeEntity.totalCarbsGram,
+     111           0 :         fatTracked: intakeEntity.totalFatsGram,
+     112           0 :         proteinTracked: intakeEntity.totalProteinsGram);
+     113             :   }
+     114             : }
+     115             : 
+     116             : enum UnitDropdownItem {
+     117             :   g,
+     118             :   ml,
+     119             :   gml,
+     120             :   oz,
+     121             :   flOz,
+     122             :   serving;
+     123             : 
+     124           1 :   UnitDropdownItem fromString(String value) {
+     125             :     switch (value) {
+     126           1 :       case 'g':
+     127             :         return UnitDropdownItem.g;
+     128           1 :       case 'ml':
+     129             :         return UnitDropdownItem.ml;
+     130           1 :       case 'g/ml':
+     131             :         return UnitDropdownItem.gml;
+     132           1 :       case 'oz':
+     133             :         return UnitDropdownItem.oz;
+     134           2 :       case 'fl oz' || 'fl.oz':
+     135             :         return UnitDropdownItem.flOz;
+     136           1 :       case 'serving':
+     137             :         return UnitDropdownItem.serving;
+     138             :       default:
+     139             :         return UnitDropdownItem.gml;
+     140             :     }
+     141             :   }
+     142             : 
+     143           1 :   @override
+     144             :   String toString() {
+     145             :     switch (this) {
+     146           1 :       case UnitDropdownItem.g:
+     147             :         return 'g';
+     148           1 :       case UnitDropdownItem.ml:
+     149             :         return 'ml';
+     150           1 :       case UnitDropdownItem.gml:
+     151             :         return 'g/ml';
+     152           1 :       case UnitDropdownItem.oz:
+     153             :         return 'oz';
+     154           1 :       case UnitDropdownItem.flOz:
+     155             :         return 'fl.oz';
+     156           1 :       case UnitDropdownItem.serving:
+     157             :         return 'serving';
+     158             :     }
+     159             :   }
+     160             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.func-sort-c.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.func-sort-c.html new file mode 100644 index 000000000..1e8883427 --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_event.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_event.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.func.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.func.html new file mode 100644 index 000000000..07e1f6b21 --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_event.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_event.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.gcov.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.gcov.html new file mode 100644 index 000000000..acb03df0e --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_event.dart.gcov.html @@ -0,0 +1,102 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_event.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_event.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:040.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : part of 'meal_detail_bloc.dart';
+       2             : 
+       3             : abstract class MealDetailEvent extends Equatable {
+       4           0 :   const MealDetailEvent();
+       5             : }
+       6             : 
+       7             : class UpdateKcalEvent extends MealDetailEvent {
+       8             :   final MealEntity meal;
+       9             :   final double? totalCarbs;
+      10             :   final double? totalFat;
+      11             :   final double? totalProtein;
+      12             :   final String? totalQuantity;
+      13             :   final String? selectedUnit;
+      14             : 
+      15           0 :   const UpdateKcalEvent(
+      16             :       {required this.meal,
+      17             :       this.totalCarbs,
+      18             :       this.totalFat,
+      19             :       this.totalProtein,
+      20             :       this.totalQuantity,
+      21             :       this.selectedUnit});
+      22             : 
+      23           0 :   @override
+      24             :   List<Object?> get props =>
+      25           0 :       [meal, totalCarbs, totalFat, totalProtein, totalQuantity, selectedUnit];
+      26             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.func-sort-c.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.func-sort-c.html new file mode 100644 index 000000000..d11aeb0ac --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_state.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_state.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.func.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.func.html new file mode 100644 index 000000000..5f32643db --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_state.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_state.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.gcov.html b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.gcov.html new file mode 100644 index 000000000..9a455ca36 --- /dev/null +++ b/coverage/html/features/meal_detail/presentation/bloc/meal_detail_state.dart.gcov.html @@ -0,0 +1,134 @@ + + + + + + + LCOV - lcov.info - features/meal_detail/presentation/bloc/meal_detail_state.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - features/meal_detail/presentation/bloc - meal_detail_state.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:0180.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : part of 'meal_detail_bloc.dart';
+       2             : 
+       3             : abstract class MealDetailState extends Equatable {
+       4             :   final String totalQuantityConverted;
+       5             :   final double totalKcal;
+       6             :   final double totalCarbs;
+       7             :   final double totalFat;
+       8             :   final double totalProtein;
+       9             : 
+      10             :   final String selectedUnit;
+      11             : 
+      12           0 :   const MealDetailState(
+      13             :       {required this.totalQuantityConverted,
+      14             :       this.totalKcal = 0,
+      15             :       this.totalCarbs = 0,
+      16             :       this.totalFat = 0,
+      17             :       this.totalProtein = 0,
+      18             :       required this.selectedUnit});
+      19             : 
+      20           0 :   @override
+      21           0 :   List<Object> get props => [
+      22           0 :         totalQuantityConverted,
+      23           0 :         totalKcal,
+      24           0 :         totalCarbs,
+      25           0 :         totalFat,
+      26           0 :         totalProtein,
+      27           0 :         selectedUnit
+      28             :       ];
+      29             : 
+      30           0 :   MealDetailInitial copyWith({
+      31             :     String? totalQuantityConverted,
+      32             :     double? totalKcal,
+      33             :     double? totalCarbs,
+      34             :     double? totalFat,
+      35             :     double? totalProtein,
+      36             :     String? selectedUnit,
+      37             :   }) {
+      38           0 :     return MealDetailInitial(
+      39             :       totalQuantityConverted:
+      40           0 :           totalQuantityConverted ?? this.totalQuantityConverted,
+      41           0 :       totalKcal: totalKcal ?? this.totalKcal,
+      42           0 :       totalCarbs: totalCarbs ?? this.totalCarbs,
+      43           0 :       totalFat: totalFat ?? this.totalFat,
+      44           0 :       totalProtein: totalProtein ?? this.totalProtein,
+      45           0 :       selectedUnit: selectedUnit ?? this.selectedUnit,
+      46             :     );
+      47             :   }
+      48             : }
+      49             : 
+      50             : class MealDetailInitial extends MealDetailState {
+      51           0 :   const MealDetailInitial(
+      52             :       {required super.totalQuantityConverted,
+      53             :       super.totalKcal,
+      54             :       super.totalCarbs,
+      55             :       super.totalFat,
+      56             :       super.totalProtein,
+      57             :       required super.selectedUnit});
+      58             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/gcov.css b/coverage/html/gcov.css new file mode 100644 index 000000000..bfd0a83e1 --- /dev/null +++ b/coverage/html/gcov.css @@ -0,0 +1,519 @@ +/* All views: initial background and text color */ +body +{ + color: #000000; + background-color: #FFFFFF; +} + +/* All views: standard link format*/ +a:link +{ + color: #284FA8; + text-decoration: underline; +} + +/* All views: standard link - visited format */ +a:visited +{ + color: #00CB40; + text-decoration: underline; +} + +/* All views: standard link - activated format */ +a:active +{ + color: #FF0040; + text-decoration: underline; +} + +/* All views: main title format */ +td.title +{ + text-align: center; + padding-bottom: 10px; + font-family: sans-serif; + font-size: 20pt; + font-style: italic; + font-weight: bold; +} + +/* All views: header item format */ +td.headerItem +{ + text-align: right; + padding-right: 6px; + font-family: sans-serif; + font-weight: bold; + vertical-align: top; + white-space: nowrap; +} + +/* All views: header item value format */ +td.headerValue +{ + text-align: left; + color: #284FA8; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; +} + +/* All views: header item coverage table heading */ +td.headerCovTableHead +{ + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + font-size: 80%; + white-space: nowrap; +} + +/* All views: header item coverage table entry */ +td.headerCovTableEntry +{ + text-align: right; + color: #284FA8; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #DAE7FE; +} + +/* All views: header item coverage table entry for high coverage rate */ +td.headerCovTableEntryHi +{ + text-align: right; + color: #000000; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #A7FC9D; +} + +/* All views: header item coverage table entry for medium coverage rate */ +td.headerCovTableEntryMed +{ + text-align: right; + color: #000000; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #FFEA20; +} + +/* All views: header item coverage table entry for ow coverage rate */ +td.headerCovTableEntryLo +{ + text-align: right; + color: #000000; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #FF0000; +} + +/* All views: header legend value for legend entry */ +td.headerValueLeg +{ + text-align: left; + color: #000000; + font-family: sans-serif; + font-size: 80%; + white-space: nowrap; + padding-top: 4px; +} + +/* All views: color of horizontal ruler */ +td.ruler +{ + background-color: #6688D4; +} + +/* All views: version string format */ +td.versionInfo +{ + text-align: center; + padding-top: 2px; + font-family: sans-serif; + font-style: italic; +} + +/* Directory view/File view (all)/Test case descriptions: + table headline format */ +td.tableHead +{ + text-align: center; + color: #FFFFFF; + background-color: #6688D4; + font-family: sans-serif; + font-size: 120%; + font-weight: bold; + white-space: nowrap; + padding-left: 4px; + padding-right: 4px; +} + +span.tableHeadSort +{ + padding-right: 4px; +} + +/* Directory view/File view (all): filename entry format */ +td.coverFile +{ + text-align: left; + padding-left: 10px; + padding-right: 20px; + color: #284FA8; + background-color: #DAE7FE; + font-family: monospace; +} + +/* Directory view/File view (all): bar-graph entry format*/ +td.coverBar +{ + padding-left: 10px; + padding-right: 10px; + background-color: #DAE7FE; +} + +/* Directory view/File view (all): bar-graph outline color */ +td.coverBarOutline +{ + background-color: #000000; +} + +/* Directory view/File view (all): percentage entry for files with + high coverage rate */ +td.coverPerHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #A7FC9D; + font-weight: bold; + font-family: sans-serif; +} + +/* Directory view/File view (all): line count entry for files with + high coverage rate */ +td.coverNumHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #A7FC9D; + white-space: nowrap; + font-family: sans-serif; +} + +/* Directory view/File view (all): percentage entry for files with + medium coverage rate */ +td.coverPerMed +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #FFEA20; + font-weight: bold; + font-family: sans-serif; +} + +/* Directory view/File view (all): line count entry for files with + medium coverage rate */ +td.coverNumMed +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #FFEA20; + white-space: nowrap; + font-family: sans-serif; +} + +/* Directory view/File view (all): percentage entry for files with + low coverage rate */ +td.coverPerLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #FF0000; + font-weight: bold; + font-family: sans-serif; +} + +/* Directory view/File view (all): line count entry for files with + low coverage rate */ +td.coverNumLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #FF0000; + white-space: nowrap; + font-family: sans-serif; +} + +/* File view (all): "show/hide details" link format */ +a.detail:link +{ + color: #B8D0FF; + font-size:80%; +} + +/* File view (all): "show/hide details" link - visited format */ +a.detail:visited +{ + color: #B8D0FF; + font-size:80%; +} + +/* File view (all): "show/hide details" link - activated format */ +a.detail:active +{ + color: #FFFFFF; + font-size:80%; +} + +/* File view (detail): test name entry */ +td.testName +{ + text-align: right; + padding-right: 10px; + background-color: #DAE7FE; + font-family: sans-serif; +} + +/* File view (detail): test percentage entry */ +td.testPer +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #DAE7FE; + font-family: sans-serif; +} + +/* File view (detail): test lines count entry */ +td.testNum +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #DAE7FE; + font-family: sans-serif; +} + +/* Test case descriptions: test name format*/ +dt +{ + font-family: sans-serif; + font-weight: bold; +} + +/* Test case descriptions: description table body */ +td.testDescription +{ + padding-top: 10px; + padding-left: 30px; + padding-bottom: 10px; + padding-right: 30px; + background-color: #DAE7FE; +} + +/* Source code view: function entry */ +td.coverFn +{ + text-align: left; + padding-left: 10px; + padding-right: 20px; + color: #284FA8; + background-color: #DAE7FE; + font-family: monospace; +} + +/* Source code view: function entry zero count*/ +td.coverFnLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #FF0000; + font-weight: bold; + font-family: sans-serif; +} + +/* Source code view: function entry nonzero count*/ +td.coverFnHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #DAE7FE; + font-weight: bold; + font-family: sans-serif; +} + +/* Source code view: source code format */ +pre.source +{ + font-family: monospace; + white-space: pre; + margin-top: 2px; +} + +/* Source code view: line number format */ +span.lineNum +{ + background-color: #EFE383; +} + +/* Source code view: format for lines which were executed */ +td.lineCov, +span.lineCov +{ + background-color: #CAD7FE; +} + +/* Source code view: format for Cov legend */ +span.coverLegendCov +{ + padding-left: 10px; + padding-right: 10px; + padding-bottom: 2px; + background-color: #CAD7FE; +} + +/* Source code view: format for lines which were not executed */ +td.lineNoCov, +span.lineNoCov +{ + background-color: #FF6230; +} + +/* Source code view: format for NoCov legend */ +span.coverLegendNoCov +{ + padding-left: 10px; + padding-right: 10px; + padding-bottom: 2px; + background-color: #FF6230; +} + +/* Source code view (function table): standard link - visited format */ +td.lineNoCov > a:visited, +td.lineCov > a:visited +{ + color: black; + text-decoration: underline; +} + +/* Source code view: format for lines which were executed only in a + previous version */ +span.lineDiffCov +{ + background-color: #B5F7AF; +} + +/* Source code view: format for branches which were executed + * and taken */ +span.branchCov +{ + background-color: #CAD7FE; +} + +/* Source code view: format for branches which were executed + * but not taken */ +span.branchNoCov +{ + background-color: #FF6230; +} + +/* Source code view: format for branches which were not executed */ +span.branchNoExec +{ + background-color: #FF6230; +} + +/* Source code view: format for the source code heading line */ +pre.sourceHeading +{ + white-space: pre; + font-family: monospace; + font-weight: bold; + margin: 0px; +} + +/* All views: header legend value for low rate */ +td.headerValueLegL +{ + font-family: sans-serif; + text-align: center; + white-space: nowrap; + padding-left: 4px; + padding-right: 2px; + background-color: #FF0000; + font-size: 80%; +} + +/* All views: header legend value for med rate */ +td.headerValueLegM +{ + font-family: sans-serif; + text-align: center; + white-space: nowrap; + padding-left: 2px; + padding-right: 2px; + background-color: #FFEA20; + font-size: 80%; +} + +/* All views: header legend value for hi rate */ +td.headerValueLegH +{ + font-family: sans-serif; + text-align: center; + white-space: nowrap; + padding-left: 2px; + padding-right: 4px; + background-color: #A7FC9D; + font-size: 80%; +} + +/* All views except source code view: legend format for low coverage */ +span.coverLegendCovLo +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + background-color: #FF0000; +} + +/* All views except source code view: legend format for med coverage */ +span.coverLegendCovMed +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + background-color: #FFEA20; +} + +/* All views except source code view: legend format for hi coverage */ +span.coverLegendCovHi +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + background-color: #A7FC9D; +} diff --git a/coverage/html/generated/index-sort-f.html b/coverage/html/generated/index-sort-f.html new file mode 100644 index 000000000..abb2dc808 --- /dev/null +++ b/coverage/html/generated/index-sort-f.html @@ -0,0 +1,93 @@ + + + + + + + LCOV - lcov.info - generated + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generatedHitTotalCoverage
Test:lcov.infoLines:4012513.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
l10n.dart +
3.2%3.2%
+
3.2 %40 / 1251-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/index-sort-l.html b/coverage/html/generated/index-sort-l.html new file mode 100644 index 000000000..4bcad04b6 --- /dev/null +++ b/coverage/html/generated/index-sort-l.html @@ -0,0 +1,93 @@ + + + + + + + LCOV - lcov.info - generated + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generatedHitTotalCoverage
Test:lcov.infoLines:4012513.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
l10n.dart +
3.2%3.2%
+
3.2 %40 / 1251-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/index.html b/coverage/html/generated/index.html new file mode 100644 index 000000000..0ed7f732d --- /dev/null +++ b/coverage/html/generated/index.html @@ -0,0 +1,93 @@ + + + + + + + LCOV - lcov.info - generated + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generatedHitTotalCoverage
Test:lcov.infoLines:4012513.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
l10n.dart +
3.2%3.2%
+
3.2 %40 / 1251-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/index-sort-f.html b/coverage/html/generated/intl/index-sort-f.html new file mode 100644 index 000000000..f89d1cf88 --- /dev/null +++ b/coverage/html/generated/intl/index-sort-f.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - generated/intl + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intlHitTotalCoverage
Test:lcov.infoLines:424122834.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
messages_en.dart +
98.5%98.5%
+
98.5 %405 / 411-0 / 0
messages_all.dart +
73.1%73.1%
+
73.1 %19 / 26-0 / 0
messages_de.dart +
0.0%
+
0.0 %0 / 402-0 / 0
messages_tr.dart +
0.0%
+
0.0 %0 / 389-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/index-sort-l.html b/coverage/html/generated/intl/index-sort-l.html new file mode 100644 index 000000000..b4132bb8f --- /dev/null +++ b/coverage/html/generated/intl/index-sort-l.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - generated/intl + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intlHitTotalCoverage
Test:lcov.infoLines:424122834.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
messages_tr.dart +
0.0%
+
0.0 %0 / 389-0 / 0
messages_de.dart +
0.0%
+
0.0 %0 / 402-0 / 0
messages_all.dart +
73.1%73.1%
+
73.1 %19 / 26-0 / 0
messages_en.dart +
98.5%98.5%
+
98.5 %405 / 411-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/index.html b/coverage/html/generated/intl/index.html new file mode 100644 index 000000000..3477e6007 --- /dev/null +++ b/coverage/html/generated/intl/index.html @@ -0,0 +1,123 @@ + + + + + + + LCOV - lcov.info - generated/intl + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intlHitTotalCoverage
Test:lcov.infoLines:424122834.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
messages_all.dart +
73.1%73.1%
+
73.1 %19 / 26-0 / 0
messages_de.dart +
0.0%
+
0.0 %0 / 402-0 / 0
messages_en.dart +
98.5%98.5%
+
98.5 %405 / 411-0 / 0
messages_tr.dart +
0.0%
+
0.0 %0 / 389-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_all.dart.func-sort-c.html b/coverage/html/generated/intl/messages_all.dart.func-sort-c.html new file mode 100644 index 000000000..a29434cff --- /dev/null +++ b/coverage/html/generated/intl/messages_all.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_all.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_all.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:192673.1 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_all.dart.func.html b/coverage/html/generated/intl/messages_all.dart.func.html new file mode 100644 index 000000000..60de7174d --- /dev/null +++ b/coverage/html/generated/intl/messages_all.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_all.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_all.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:192673.1 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_all.dart.gcov.html b/coverage/html/generated/intl/messages_all.dart.gcov.html new file mode 100644 index 000000000..5e560837d --- /dev/null +++ b/coverage/html/generated/intl/messages_all.dart.gcov.html @@ -0,0 +1,147 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_all.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_all.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:192673.1 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+       2             : // This is a library that looks up messages for specific locales by
+       3             : // delegating to the appropriate library.
+       4             : 
+       5             : // Ignore issues from commonly used lints in this file.
+       6             : // ignore_for_file:implementation_imports, file_names, unnecessary_new
+       7             : // ignore_for_file:unnecessary_brace_in_string_interps, directives_ordering
+       8             : // ignore_for_file:argument_type_not_assignable, invalid_assignment
+       9             : // ignore_for_file:prefer_single_quotes, prefer_generic_function_type_aliases
+      10             : // ignore_for_file:comment_references
+      11             : 
+      12             : import 'dart:async';
+      13             : 
+      14             : import 'package:flutter/foundation.dart';
+      15             : import 'package:intl/intl.dart';
+      16             : import 'package:intl/message_lookup_by_library.dart';
+      17             : import 'package:intl/src/intl_helpers.dart';
+      18             : 
+      19             : import 'messages_de.dart' as messages_de;
+      20             : import 'messages_en.dart' as messages_en;
+      21             : import 'messages_tr.dart' as messages_tr;
+      22             : 
+      23             : typedef Future<dynamic> LibraryLoader();
+      24           3 : Map<String, LibraryLoader> _deferredLibraries = {
+      25           0 :   'de': () => new SynchronousFuture(null),
+      26           2 :   'en': () => new SynchronousFuture(null),
+      27           0 :   'tr': () => new SynchronousFuture(null),
+      28             : };
+      29             : 
+      30           1 : MessageLookupByLibrary? _findExact(String localeName) {
+      31             :   switch (localeName) {
+      32           1 :     case 'de':
+      33           0 :       return messages_de.messages;
+      34           1 :     case 'en':
+      35           1 :       return messages_en.messages;
+      36           0 :     case 'tr':
+      37           0 :       return messages_tr.messages;
+      38             :     default:
+      39             :       return null;
+      40             :   }
+      41             : }
+      42             : 
+      43             : /// User programs should call this before using [localeName] for messages.
+      44           1 : Future<bool> initializeMessages(String localeName) {
+      45           1 :   var availableLocale = Intl.verifiedLocale(
+      46           3 :       localeName, (locale) => _deferredLibraries[locale] != null,
+      47           0 :       onFailure: (_) => null);
+      48             :   if (availableLocale == null) {
+      49           0 :     return new SynchronousFuture(false);
+      50             :   }
+      51           2 :   var lib = _deferredLibraries[availableLocale];
+      52           1 :   lib == null ? new SynchronousFuture(false) : lib();
+      53           3 :   initializeInternalMessageLookup(() => new CompositeMessageLookup());
+      54           2 :   messageLookup.addLocale(availableLocale, _findGeneratedMessagesFor);
+      55           1 :   return new SynchronousFuture(true);
+      56             : }
+      57             : 
+      58           1 : bool _messagesExistFor(String locale) {
+      59             :   try {
+      60           1 :     return _findExact(locale) != null;
+      61             :   } catch (e) {
+      62             :     return false;
+      63             :   }
+      64             : }
+      65             : 
+      66           1 : MessageLookupByLibrary? _findGeneratedMessagesFor(String locale) {
+      67             :   var actualLocale =
+      68           1 :       Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null);
+      69             :   if (actualLocale == null) return null;
+      70           1 :   return _findExact(actualLocale);
+      71             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_de.dart.func-sort-c.html b/coverage/html/generated/intl/messages_de.dart.func-sort-c.html new file mode 100644 index 000000000..6fa576804 --- /dev/null +++ b/coverage/html/generated/intl/messages_de.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_de.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_de.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:04020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_de.dart.func.html b/coverage/html/generated/intl/messages_de.dart.func.html new file mode 100644 index 000000000..f9f7bf4de --- /dev/null +++ b/coverage/html/generated/intl/messages_de.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_de.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_de.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:04020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_de.dart.gcov.html b/coverage/html/generated/intl/messages_de.dart.gcov.html new file mode 100644 index 000000000..509c8ef23 --- /dev/null +++ b/coverage/html/generated/intl/messages_de.dart.gcov.html @@ -0,0 +1,751 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_de.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_de.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:04020.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+       2             : // This is a library that provides messages for a de locale. All the
+       3             : // messages from the main program should be duplicated here with the same
+       4             : // function name.
+       5             : 
+       6             : // Ignore issues from commonly used lints in this file.
+       7             : // ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new
+       8             : // ignore_for_file:prefer_single_quotes,comment_references, directives_ordering
+       9             : // ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases
+      10             : // ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes
+      11             : // ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes
+      12             : 
+      13             : import 'package:intl/intl.dart';
+      14             : import 'package:intl/message_lookup_by_library.dart';
+      15             : 
+      16           0 : final messages = new MessageLookup();
+      17             : 
+      18             : typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
+      19             : 
+      20             : class MessageLookup extends MessageLookupByLibrary {
+      21           0 :   String get localeName => 'de';
+      22             : 
+      23           0 :   static String m0(versionNumber) => "Version ${versionNumber}";
+      24             : 
+      25           0 :   static String m1(pctCarbs, pctFats, pctProteins) =>
+      26           0 :       "${pctCarbs}% Kohlenhydrate, ${pctFats}% Fette, ${pctProteins}% Proteine";
+      27             : 
+      28           0 :   static String m2(riskValue) => "Risiko für Begleiterkrankungen: ${riskValue}";
+      29             : 
+      30           0 :   static String m3(age) => "${age} Jahre";
+      31             : 
+      32             :   final messages = _notInlinedMessages(_notInlinedMessages);
+      33           0 :   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
+      34           0 :         "activityExample": MessageLookupByLibrary.simpleMessage(
+      35             :             "z. B. Laufen, Radfahren, Yoga ..."),
+      36           0 :         "activityLabel": MessageLookupByLibrary.simpleMessage("Aktivität"),
+      37             :         "addItemLabel":
+      38           0 :             MessageLookupByLibrary.simpleMessage("Neuen Eintrag hinzufügen:"),
+      39           0 :         "addLabel": MessageLookupByLibrary.simpleMessage("Hinzufügen"),
+      40           0 :         "additionalInfoLabelCompendium2011": MessageLookupByLibrary.simpleMessage(
+      41             :             "Informationen bereitgestellt von\n\'2011 Compendium\n of Physical Activities\'"),
+      42             :         "additionalInfoLabelCustom":
+      43           0 :             MessageLookupByLibrary.simpleMessage("Benutzerdefinierte Mahlzeit"),
+      44           0 :         "additionalInfoLabelFDC": MessageLookupByLibrary.simpleMessage(
+      45             :             "Weitere Informationen unter\nFoodData Central"),
+      46           0 :         "additionalInfoLabelOFF": MessageLookupByLibrary.simpleMessage(
+      47             :             "Weitere Informationen unter\nOpenFoodFacts"),
+      48             :         "additionalInfoLabelUnknown":
+      49           0 :             MessageLookupByLibrary.simpleMessage("Unbekannte Mahlzeit"),
+      50           0 :         "ageLabel": MessageLookupByLibrary.simpleMessage("Alter"),
+      51           0 :         "allItemsLabel": MessageLookupByLibrary.simpleMessage("Alle"),
+      52           0 :         "alphaVersionName": MessageLookupByLibrary.simpleMessage("[Alpha]"),
+      53           0 :         "appDescription": MessageLookupByLibrary.simpleMessage(
+      54             :             "OpenNutriTracker ist ein kostenloser und  quelloffener Kalorien- und Nährstofftracker, der Ihre Privatsphäre respektiert."),
+      55             :         "appLicenseLabel":
+      56           0 :             MessageLookupByLibrary.simpleMessage("GPL-3.0 Lizenz"),
+      57           0 :         "appTitle": MessageLookupByLibrary.simpleMessage("OpenNutriTracker"),
+      58             :         "appVersionName": m0,
+      59           0 :         "betaVersionName": MessageLookupByLibrary.simpleMessage("[Beta]"),
+      60           0 :         "bmiInfo": MessageLookupByLibrary.simpleMessage(
+      61             :             "Der Body-Mass-Index (BMI) ist ein Index zur Klassifizierung von Übergewicht und Fettleibigkeit bei Erwachsenen. Er wird berechnet, indem das Gewicht in Kilogramm durch das Quadrat der Körpergröße in Metern (kg/m²) geteilt wird.\n\nDer BMI unterscheidet nicht zwischen Fett- und Muskelmasse und kann für einige Personen irreführend sein."),
+      62           0 :         "bmiLabel": MessageLookupByLibrary.simpleMessage("BMI"),
+      63           0 :         "breakfastExample": MessageLookupByLibrary.simpleMessage(
+      64             :             "z. B. Müsli, Milch, Kaffee ..."),
+      65           0 :         "breakfastLabel": MessageLookupByLibrary.simpleMessage("Frühstück"),
+      66           0 :         "burnedLabel": MessageLookupByLibrary.simpleMessage("verbrannt"),
+      67           0 :         "buttonNextLabel": MessageLookupByLibrary.simpleMessage("WEITER"),
+      68             :         "buttonResetLabel":
+      69           0 :             MessageLookupByLibrary.simpleMessage("Zurücksetzen"),
+      70           0 :         "buttonSaveLabel": MessageLookupByLibrary.simpleMessage("Speichern"),
+      71           0 :         "buttonStartLabel": MessageLookupByLibrary.simpleMessage("START"),
+      72           0 :         "buttonYesLabel": MessageLookupByLibrary.simpleMessage("JA"),
+      73             :         "calculationsMacronutrientsDistributionLabel":
+      74           0 :             MessageLookupByLibrary.simpleMessage(
+      75             :                 "Verteilung der Makronährstoffe"),
+      76             :         "calculationsMacrosDistribution": m1,
+      77             :         "calculationsRecommendedLabel":
+      78           0 :             MessageLookupByLibrary.simpleMessage("(empfohlen)"),
+      79           0 :         "calculationsTDEEIOM2006Label": MessageLookupByLibrary.simpleMessage(
+      80             :             "Institute of Medicine Gleichung"),
+      81             :         "calculationsTDEELabel":
+      82           0 :             MessageLookupByLibrary.simpleMessage("TDEE-Gleichung"),
+      83             :         "carbohydrateLabel":
+      84           0 :             MessageLookupByLibrary.simpleMessage("Kohlenhydrate"),
+      85           0 :         "carbsLabel": MessageLookupByLibrary.simpleMessage("Kohlenhydrate"),
+      86             :         "chooseWeightGoalLabel":
+      87           0 :             MessageLookupByLibrary.simpleMessage("Gewichtsziel wählen"),
+      88           0 :         "cmLabel": MessageLookupByLibrary.simpleMessage("cm"),
+      89           0 :         "copyDialogTitle": MessageLookupByLibrary.simpleMessage(
+      90             :             "Zu welcher Mahlzeit hinzufügen?"),
+      91           0 :         "copyOrDeleteTimeDialogContent": MessageLookupByLibrary.simpleMessage(
+      92             :             "Auf \"Nach heute kopieren\" klicken, um die Mahlzeit nach heute zu kopieren. Mit \"Löschen\" kann die Mahlzeit entfernt werden"),
+      93             :         "copyOrDeleteTimeDialogTitle":
+      94           0 :             MessageLookupByLibrary.simpleMessage("Was soll getan werden?"),
+      95           0 :         "createCustomDialogContent": MessageLookupByLibrary.simpleMessage(
+      96             :             "Möchten Sie einen benutzerdefinierte Mahlzeit erstellen?"),
+      97           0 :         "createCustomDialogTitle": MessageLookupByLibrary.simpleMessage(
+      98             :             "Benutzerdefinierte Mahlzeit erstellen?"),
+      99             :         "dailyKcalAdjustmentLabel":
+     100           0 :             MessageLookupByLibrary.simpleMessage("Tägliche kcal-Anpassung:"),
+     101           0 :         "dataCollectionLabel": MessageLookupByLibrary.simpleMessage(
+     102             :             "Unterstützen der Entwicklung durch Bereitstellung anonymer Nutzungsdaten"),
+     103           0 :         "deleteTimeDialogContent": MessageLookupByLibrary.simpleMessage(
+     104             :             "Möchten Sie den ausgewählten Eintrag löschen?"),
+     105             :         "deleteTimeDialogTitle":
+     106           0 :             MessageLookupByLibrary.simpleMessage("Eintrag löschen?"),
+     107           0 :         "dialogCancelLabel": MessageLookupByLibrary.simpleMessage("ABBRECHEN"),
+     108             :         "dialogCopyLabel":
+     109           0 :             MessageLookupByLibrary.simpleMessage("NACH HEUTE KOPIEREN"),
+     110           0 :         "dialogDeleteLabel": MessageLookupByLibrary.simpleMessage("LÖSCHEN"),
+     111           0 :         "dialogOKLabel": MessageLookupByLibrary.simpleMessage("OK"),
+     112           0 :         "diaryLabel": MessageLookupByLibrary.simpleMessage("Tagebuch"),
+     113           0 :         "dinnerExample": MessageLookupByLibrary.simpleMessage(
+     114             :             "z. B. Suppe, Hähnchen, Wein ..."),
+     115           0 :         "dinnerLabel": MessageLookupByLibrary.simpleMessage("Abendessen"),
+     116           0 :         "disclaimerText": MessageLookupByLibrary.simpleMessage(
+     117             :             "OpenNutriTracker ist keine medizinische Anwendung. Alle bereitgestellten Daten sind nicht validiert und sollten mit Vorsicht verwendet werden. Bitte pflegen Sie einen gesunden Lebensstil und konsultieren Sie einen Fachmann, wenn Sie Probleme haben. Die Verwendung während einer Krankheit, Schwangerschaft oder Stillzeit wird nicht empfohlen.\n\n\nDie Anwendung befindet sich noch in der Entwicklung. Fehler, Bugs und Abstürze können auftreten."),
+     118             :         "editItemDialogTitle":
+     119           0 :             MessageLookupByLibrary.simpleMessage("Eintrag aktualisieren"),
+     120             :         "editMealLabel":
+     121           0 :             MessageLookupByLibrary.simpleMessage("Mahlzeit bearbeiten"),
+     122           0 :         "energyLabel": MessageLookupByLibrary.simpleMessage("Energie"),
+     123           0 :         "errorFetchingProductData": MessageLookupByLibrary.simpleMessage(
+     124             :             "Fehler beim Abrufen von Produktinformationen"),
+     125           0 :         "errorLoadingActivities": MessageLookupByLibrary.simpleMessage(
+     126             :             "Fehler beim Laden von Aktivitäten"),
+     127           0 :         "errorMealSave": MessageLookupByLibrary.simpleMessage(
+     128             :             "Fehler beim Speichern der Mahlzeit. Haben Sie die korrekten Mahlzeiteninformationen eingegeben?"),
+     129           0 :         "errorOpeningBrowser": MessageLookupByLibrary.simpleMessage(
+     130             :             "Fehler beim Öffnen der Browser-Anwendung"),
+     131           0 :         "errorOpeningEmail": MessageLookupByLibrary.simpleMessage(
+     132             :             "Fehler beim Öffnen der E-Mail-Anwendung"),
+     133             :         "errorProductNotFound":
+     134           0 :             MessageLookupByLibrary.simpleMessage("Produkt nicht gefunden"),
+     135           0 :         "exportAction": MessageLookupByLibrary.simpleMessage("Exportieren"),
+     136           0 :         "exportImportDescription": MessageLookupByLibrary.simpleMessage(
+     137             :             "Sie können die App-Daten in eine Zip-Datei exportieren und später importieren. Dies ist nützlich, wenn Sie Ihre Daten sichern oder auf ein anderes Gerät übertragen möchten.\n\nDie App nutzt keinen Cloud-Dienst, um Ihre Daten zu speichern."),
+     138             :         "exportImportErrorLabel":
+     139           0 :             MessageLookupByLibrary.simpleMessage("Fehler beim Export/Import"),
+     140           0 :         "exportImportLabel": MessageLookupByLibrary.simpleMessage(
+     141             :             "Daten Exportieren / Importieren"),
+     142             :         "exportImportSuccessLabel":
+     143           0 :             MessageLookupByLibrary.simpleMessage("Export / Import erfolgreich"),
+     144           0 :         "fatLabel": MessageLookupByLibrary.simpleMessage("Fett"),
+     145           0 :         "fiberLabel": MessageLookupByLibrary.simpleMessage("Ballaststoffe"),
+     146           0 :         "flOzUnit": MessageLookupByLibrary.simpleMessage("fl.oz"),
+     147           0 :         "genderFemaleLabel": MessageLookupByLibrary.simpleMessage("♀ weiblich"),
+     148           0 :         "genderLabel": MessageLookupByLibrary.simpleMessage("Geschlecht"),
+     149           0 :         "genderMaleLabel": MessageLookupByLibrary.simpleMessage("♂ männlich"),
+     150             :         "goalGainWeight":
+     151           0 :             MessageLookupByLibrary.simpleMessage("Gewicht zunehmen"),
+     152           0 :         "goalLabel": MessageLookupByLibrary.simpleMessage("Ziel"),
+     153             :         "goalLoseWeight":
+     154           0 :             MessageLookupByLibrary.simpleMessage("Gewicht verlieren"),
+     155             :         "goalMaintainWeight":
+     156           0 :             MessageLookupByLibrary.simpleMessage("Gewicht halten"),
+     157           0 :         "gramMilliliterUnit": MessageLookupByLibrary.simpleMessage("g/ml"),
+     158           0 :         "gramUnit": MessageLookupByLibrary.simpleMessage("g"),
+     159           0 :         "heightLabel": MessageLookupByLibrary.simpleMessage("Größe"),
+     160           0 :         "homeLabel": MessageLookupByLibrary.simpleMessage("Startseite"),
+     161           0 :         "importAction": MessageLookupByLibrary.simpleMessage("Importieren"),
+     162             :         "infoAddedActivityLabel":
+     163           0 :             MessageLookupByLibrary.simpleMessage("Neue Aktivität hinzugefügt"),
+     164             :         "infoAddedIntakeLabel":
+     165           0 :             MessageLookupByLibrary.simpleMessage("Neue Aufnahme hinzugefügt"),
+     166             :         "itemDeletedSnackbar":
+     167           0 :             MessageLookupByLibrary.simpleMessage("Eintrag gelöscht"),
+     168             :         "itemUpdatedSnackbar":
+     169           0 :             MessageLookupByLibrary.simpleMessage("Eintrag aktualisiert"),
+     170           0 :         "kcalLabel": MessageLookupByLibrary.simpleMessage("kcal"),
+     171           0 :         "kcalLeftLabel": MessageLookupByLibrary.simpleMessage("kcal übrig"),
+     172           0 :         "kgLabel": MessageLookupByLibrary.simpleMessage("kg"),
+     173           0 :         "lunchExample": MessageLookupByLibrary.simpleMessage(
+     174             :             "z. B. Pizza, Salat, Reis ..."),
+     175           0 :         "lunchLabel": MessageLookupByLibrary.simpleMessage("Mittagessen"),
+     176             :         "macroDistributionLabel":
+     177           0 :             MessageLookupByLibrary.simpleMessage("Makronährstoff-Verteilung:"),
+     178           0 :         "mealBrandsLabel": MessageLookupByLibrary.simpleMessage("Marken"),
+     179             :         "mealCarbsLabel":
+     180           0 :             MessageLookupByLibrary.simpleMessage("Kohlenhydrate pro 100 g/ml"),
+     181             :         "mealFatLabel":
+     182           0 :             MessageLookupByLibrary.simpleMessage("Fett pro 100 g/ml"),
+     183             :         "mealKcalLabel":
+     184           0 :             MessageLookupByLibrary.simpleMessage("kcal pro 100 g/ml"),
+     185           0 :         "mealNameLabel": MessageLookupByLibrary.simpleMessage("Mahlzeitenname"),
+     186             :         "mealProteinLabel":
+     187           0 :             MessageLookupByLibrary.simpleMessage("Protein pro 100 g/ml"),
+     188             :         "mealSizeLabel":
+     189           0 :             MessageLookupByLibrary.simpleMessage("Mahlzeitsgröße (g/ml)"),
+     190             :         "mealSizeLabelImperial":
+     191           0 :             MessageLookupByLibrary.simpleMessage("Mahlzeitsgröße (oz/fl oz)"),
+     192             :         "mealUnitLabel":
+     193           0 :             MessageLookupByLibrary.simpleMessage("Mahlzeiteinheit"),
+     194           0 :         "milliliterUnit": MessageLookupByLibrary.simpleMessage("ml"),
+     195           0 :         "missingProductInfo": MessageLookupByLibrary.simpleMessage(
+     196             :             "Produkt fehlen die erforderlichen Angaben zu Kalorien oder Makronährstoffen"),
+     197           0 :         "noActivityRecentlyAddedLabel": MessageLookupByLibrary.simpleMessage(
+     198             :             "Keine kürzlich hinzugefügten Aktivitäten"),
+     199           0 :         "noMealsRecentlyAddedLabel": MessageLookupByLibrary.simpleMessage(
+     200             :             "Keine kürzlich hinzugefügten Mahlzeiten"),
+     201             :         "noResultsFound":
+     202           0 :             MessageLookupByLibrary.simpleMessage("Keine Ergebnisse gefunden"),
+     203           0 :         "notAvailableLabel": MessageLookupByLibrary.simpleMessage("N/A"),
+     204             :         "nothingAddedLabel":
+     205           0 :             MessageLookupByLibrary.simpleMessage("Nichts hinzugefügt"),
+     206             :         "nutritionInfoLabel":
+     207           0 :             MessageLookupByLibrary.simpleMessage("Nährwertangaben"),
+     208             :         "nutritionalStatusNormalWeight":
+     209           0 :             MessageLookupByLibrary.simpleMessage("Normales Gewicht"),
+     210             :         "nutritionalStatusObeseClassI":
+     211           0 :             MessageLookupByLibrary.simpleMessage("Fettleibigkeit Klasse I"),
+     212             :         "nutritionalStatusObeseClassII":
+     213           0 :             MessageLookupByLibrary.simpleMessage("Fettleibigkeit Klasse II"),
+     214             :         "nutritionalStatusObeseClassIII":
+     215           0 :             MessageLookupByLibrary.simpleMessage("Fettleibigkeit Klasse III"),
+     216             :         "nutritionalStatusPreObesity":
+     217           0 :             MessageLookupByLibrary.simpleMessage("Prä-Adipositas"),
+     218             :         "nutritionalStatusRiskAverage":
+     219           0 :             MessageLookupByLibrary.simpleMessage("Durchschnittlich"),
+     220             :         "nutritionalStatusRiskIncreased":
+     221           0 :             MessageLookupByLibrary.simpleMessage("Erhöht"),
+     222             :         "nutritionalStatusRiskLabel": m2,
+     223           0 :         "nutritionalStatusRiskLow": MessageLookupByLibrary.simpleMessage(
+     224             :             "Niedrig \n(aber erhöhtes Risiko für andere \nklinische Probleme)"),
+     225             :         "nutritionalStatusRiskModerate":
+     226           0 :             MessageLookupByLibrary.simpleMessage("Mäßig"),
+     227             :         "nutritionalStatusRiskSevere":
+     228           0 :             MessageLookupByLibrary.simpleMessage("Schwerwiegend"),
+     229             :         "nutritionalStatusRiskVerySevere":
+     230           0 :             MessageLookupByLibrary.simpleMessage("Sehr schwerwiegend"),
+     231             :         "nutritionalStatusUnderweight":
+     232           0 :             MessageLookupByLibrary.simpleMessage("Untergewicht"),
+     233           0 :         "offDisclaimer": MessageLookupByLibrary.simpleMessage(
+     234             :             "Die Daten, die Ihnen mit dieser App zur Verfügung gestellt werden, stammen aus der Open Food Facts-Datenbank. Es kann keine Garantie für die Richtigkeit, Vollständigkeit oder Zuverlässigkeit der bereitgestellten Informationen übernommen werden. Die Daten werden ohne Mängelgewähr zur Verfügung gestellt, und die Ursprungsquelle der Daten (Open Food Facts) haftet nicht für Schäden, die aus der Verwendung der Daten entstehen."),
+     235             :         "onboardingActivityQuestionSubtitle":
+     236           0 :             MessageLookupByLibrary.simpleMessage(
+     237             :                 "Wie aktiv sind Sie? (Ohne Trainingseinheiten)"),
+     238             :         "onboardingBirthdayHint":
+     239           0 :             MessageLookupByLibrary.simpleMessage("Datum eingeben"),
+     240             :         "onboardingBirthdayQuestionSubtitle":
+     241           0 :             MessageLookupByLibrary.simpleMessage("Wann haben Sie Geburtstag?"),
+     242             :         "onboardingEnterBirthdayLabel":
+     243           0 :             MessageLookupByLibrary.simpleMessage("Geburtstag"),
+     244             :         "onboardingGenderQuestionSubtitle":
+     245           0 :             MessageLookupByLibrary.simpleMessage("Was ist Ihr Geschlecht?"),
+     246           0 :         "onboardingGoalQuestionSubtitle": MessageLookupByLibrary.simpleMessage(
+     247             :             "Was ist Ihr aktuelles Gewichtsziel?"),
+     248             :         "onboardingHeightExampleHintCm":
+     249           0 :             MessageLookupByLibrary.simpleMessage("z. B. 170"),
+     250             :         "onboardingHeightQuestionSubtitle":
+     251           0 :             MessageLookupByLibrary.simpleMessage("Wie groß sind Sie derzeit?"),
+     252           0 :         "onboardingIntroDescription": MessageLookupByLibrary.simpleMessage(
+     253             :             "Um loszulegen, benötigt die App einige Informationen über Sie, um Ihr tägliches Kalorienziel zu berechnen. Alle Informationen über Sie werden sicher auf Ihrem Gerät gespeichert."),
+     254             :         "onboardingKcalPerDayLabel":
+     255           0 :             MessageLookupByLibrary.simpleMessage("kcal pro Tag"),
+     256             :         "onboardingOverviewLabel":
+     257           0 :             MessageLookupByLibrary.simpleMessage("Übersicht"),
+     258           0 :         "onboardingSaveUserError": MessageLookupByLibrary.simpleMessage(
+     259             :             "Falsche Eingabe, bitte versuchen Sie es erneut"),
+     260             :         "onboardingWeightExampleHintKg":
+     261           0 :             MessageLookupByLibrary.simpleMessage("z. B. 60"),
+     262             :         "onboardingWeightQuestionSubtitle":
+     263           0 :             MessageLookupByLibrary.simpleMessage(
+     264             :                 "Wie viel wiegen Sie derzeit?"),
+     265             :         "onboardingWelcomeLabel":
+     266           0 :             MessageLookupByLibrary.simpleMessage("Willkommen bei"),
+     267           0 :         "onboardingWrongHeightLabel": MessageLookupByLibrary.simpleMessage(
+     268             :             "Geben Sie eine korrekte Größe ein"),
+     269           0 :         "onboardingWrongWeightLabel": MessageLookupByLibrary.simpleMessage(
+     270             :             "Geben Sie ein korrekte Gewicht ein"),
+     271             :         "onboardingYourGoalLabel":
+     272           0 :             MessageLookupByLibrary.simpleMessage("Ihr Kalorienziel:"),
+     273           0 :         "onboardingYourMacrosGoalLabel": MessageLookupByLibrary.simpleMessage(
+     274             :             "Ihr Ziel für Makronährstoffe:"),
+     275           0 :         "ozUnit": MessageLookupByLibrary.simpleMessage("oz"),
+     276             :         "paAmericanFootballGeneral":
+     277           0 :             MessageLookupByLibrary.simpleMessage("American Football"),
+     278             :         "paAmericanFootballGeneralDesc":
+     279           0 :             MessageLookupByLibrary.simpleMessage("Touch, Flag, allgemein"),
+     280             :         "paArcheryGeneral":
+     281           0 :             MessageLookupByLibrary.simpleMessage("Bogenschießen"),
+     282             :         "paArcheryGeneralDesc":
+     283           0 :             MessageLookupByLibrary.simpleMessage("keine Jagd"),
+     284           0 :         "paAutoRacing": MessageLookupByLibrary.simpleMessage("Autorennen"),
+     285             :         "paAutoRacingDesc":
+     286           0 :             MessageLookupByLibrary.simpleMessage("offene Räder"),
+     287             :         "paBackpackingGeneral":
+     288           0 :             MessageLookupByLibrary.simpleMessage("Wandern mit Rucksack"),
+     289             :         "paBackpackingGeneralDesc":
+     290           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     291           0 :         "paBadmintonGeneral": MessageLookupByLibrary.simpleMessage("Badminton"),
+     292           0 :         "paBadmintonGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     293             :             "gesellige Einzel- und Doppelspiele, allgemein"),
+     294             :         "paBasketballGeneral":
+     295           0 :             MessageLookupByLibrary.simpleMessage("Basketball"),
+     296             :         "paBasketballGeneralDesc":
+     297           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     298           0 :         "paBicyclingGeneral": MessageLookupByLibrary.simpleMessage("Radfahren"),
+     299             :         "paBicyclingGeneralDesc":
+     300           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     301             :         "paBicyclingMountainGeneral":
+     302           0 :             MessageLookupByLibrary.simpleMessage("Mountainbiking"),
+     303             :         "paBicyclingMountainGeneralDesc":
+     304           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     305             :         "paBicyclingStationaryGeneral":
+     306           0 :             MessageLookupByLibrary.simpleMessage("Stationäres Radfahren"),
+     307             :         "paBicyclingStationaryGeneralDesc":
+     308           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     309           0 :         "paBilliardsGeneral": MessageLookupByLibrary.simpleMessage("Billard"),
+     310             :         "paBilliardsGeneralDesc":
+     311           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     312           0 :         "paBowlingGeneral": MessageLookupByLibrary.simpleMessage("Bowling"),
+     313             :         "paBowlingGeneralDesc":
+     314           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     315           0 :         "paBoxingBag": MessageLookupByLibrary.simpleMessage("Boxen"),
+     316           0 :         "paBoxingBagDesc": MessageLookupByLibrary.simpleMessage("Boxsack"),
+     317           0 :         "paBoxingGeneral": MessageLookupByLibrary.simpleMessage("Boxen"),
+     318             :         "paBoxingGeneralDesc":
+     319           0 :             MessageLookupByLibrary.simpleMessage("im Ring, allgemein"),
+     320           0 :         "paBroomball": MessageLookupByLibrary.simpleMessage("Broomball"),
+     321           0 :         "paBroomballDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     322             :         "paCalisthenicsGeneral":
+     323           0 :             MessageLookupByLibrary.simpleMessage("Calisthenics"),
+     324           0 :         "paCalisthenicsGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     325             :             "leichte oder mäßige Anstrengung, allgemein (z.B. Rückenübungen)"),
+     326           0 :         "paCanoeingGeneral": MessageLookupByLibrary.simpleMessage("Kanufahren"),
+     327           0 :         "paCanoeingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     328             :             "rudern, zum Vergnügen, allgemein"),
+     329             :         "paCatch":
+     330           0 :             MessageLookupByLibrary.simpleMessage("Football oder Baseball"),
+     331           0 :         "paCatchDesc": MessageLookupByLibrary.simpleMessage("Fangen spielen"),
+     332           0 :         "paCheerleading": MessageLookupByLibrary.simpleMessage("Cheerleading"),
+     333           0 :         "paCheerleadingDesc": MessageLookupByLibrary.simpleMessage(
+     334             :             "gymnastische Übungen, Wettkampf"),
+     335           0 :         "paChildrenGame": MessageLookupByLibrary.simpleMessage("Kinderspiele"),
+     336           0 :         "paChildrenGameDesc": MessageLookupByLibrary.simpleMessage(
+     337             :             "(z.B. Himmel und Hölle, Vier gewinnt, Völkerball, Spielplatzgeräte, T-Ball, Leitball, Murmeln, Arcade-Spiele), mäßige Anstrengung"),
+     338             :         "paClimbingHillsNoLoadGeneral":
+     339           0 :             MessageLookupByLibrary.simpleMessage("Hügelklettern ohne Last"),
+     340             :         "paClimbingHillsNoLoadGeneralDesc":
+     341           0 :             MessageLookupByLibrary.simpleMessage("keine Last"),
+     342           0 :         "paCricket": MessageLookupByLibrary.simpleMessage("Cricket"),
+     343           0 :         "paCricketDesc": MessageLookupByLibrary.simpleMessage(
+     344             :             "Schlagen, Werfen, Feldarbeit"),
+     345           0 :         "paCroquet": MessageLookupByLibrary.simpleMessage("Croquet"),
+     346           0 :         "paCroquetDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     347           0 :         "paCurling": MessageLookupByLibrary.simpleMessage("Curling"),
+     348           0 :         "paCurlingDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     349             :         "paDancingAerobicGeneral":
+     350           0 :             MessageLookupByLibrary.simpleMessage("Aerobic"),
+     351             :         "paDancingAerobicGeneralDesc":
+     352           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     353             :         "paDancingGeneral":
+     354           0 :             MessageLookupByLibrary.simpleMessage("allgemeines Tanzen"),
+     355           0 :         "paDancingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     356             :             "z.B. Disco, Folk, irischer Stepptanz, Line Dance, Polka, Contra, Country"),
+     357           0 :         "paDartsWall": MessageLookupByLibrary.simpleMessage("Darts"),
+     358             :         "paDartsWallDesc":
+     359           0 :             MessageLookupByLibrary.simpleMessage("Wand oder Rasen"),
+     360           0 :         "paDivingGeneral": MessageLookupByLibrary.simpleMessage("Tauchen"),
+     361           0 :         "paDivingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     362             :             "Gerätetauchen, Sporttauchen, allgemein"),
+     363             :         "paDivingSpringboardPlatform":
+     364           0 :             MessageLookupByLibrary.simpleMessage("Tauchen"),
+     365             :         "paDivingSpringboardPlatformDesc":
+     366           0 :             MessageLookupByLibrary.simpleMessage("Sprungbrett oder Plattform"),
+     367           0 :         "paFencing": MessageLookupByLibrary.simpleMessage("Fechten"),
+     368           0 :         "paFencingDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     369           0 :         "paFrisbee": MessageLookupByLibrary.simpleMessage("Frisbee spielen"),
+     370           0 :         "paFrisbeeDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     371           0 :         "paGeneralDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     372           0 :         "paGolfGeneral": MessageLookupByLibrary.simpleMessage("Golf"),
+     373           0 :         "paGolfGeneralDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     374             :         "paGymnasticsGeneral":
+     375           0 :             MessageLookupByLibrary.simpleMessage("Gymnastik"),
+     376             :         "paGymnasticsGeneralDesc":
+     377           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     378           0 :         "paHackySack": MessageLookupByLibrary.simpleMessage("Hacky Sack"),
+     379           0 :         "paHackySackDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     380           0 :         "paHandballGeneral": MessageLookupByLibrary.simpleMessage("Handball"),
+     381             :         "paHandballGeneralDesc":
+     382           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     383           0 :         "paHangGliding": MessageLookupByLibrary.simpleMessage("Drachenfliegen"),
+     384           0 :         "paHangGlidingDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     385           0 :         "paHeadingBicycling": MessageLookupByLibrary.simpleMessage("Radfahren"),
+     386             :         "paHeadingConditionalExercise":
+     387           0 :             MessageLookupByLibrary.simpleMessage("Konditionstraining"),
+     388           0 :         "paHeadingDancing": MessageLookupByLibrary.simpleMessage("Tanzen"),
+     389           0 :         "paHeadingRunning": MessageLookupByLibrary.simpleMessage("Laufen"),
+     390           0 :         "paHeadingSports": MessageLookupByLibrary.simpleMessage("Sport"),
+     391           0 :         "paHeadingWalking": MessageLookupByLibrary.simpleMessage("Gehen"),
+     392             :         "paHeadingWaterActivities":
+     393           0 :             MessageLookupByLibrary.simpleMessage("Wassersport"),
+     394             :         "paHeadingWinterActivities":
+     395           0 :             MessageLookupByLibrary.simpleMessage("Winteraktivitäten"),
+     396           0 :         "paHikingCrossCountry": MessageLookupByLibrary.simpleMessage("Wandern"),
+     397             :         "paHikingCrossCountryDesc":
+     398           0 :             MessageLookupByLibrary.simpleMessage("Cross-Country"),
+     399           0 :         "paHockeyField": MessageLookupByLibrary.simpleMessage("Hockey, Feld"),
+     400           0 :         "paHockeyFieldDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     401           0 :         "paHorseRidingGeneral": MessageLookupByLibrary.simpleMessage("Reiten"),
+     402             :         "paHorseRidingGeneralDesc":
+     403           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     404           0 :         "paIceHockeyGeneral": MessageLookupByLibrary.simpleMessage("Eishockey"),
+     405             :         "paIceHockeyGeneralDesc":
+     406           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     407             :         "paIceSkatingGeneral":
+     408           0 :             MessageLookupByLibrary.simpleMessage("Eislaufen"),
+     409             :         "paIceSkatingGeneralDesc":
+     410           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     411           0 :         "paJaiAlai": MessageLookupByLibrary.simpleMessage("Jai Alai"),
+     412           0 :         "paJaiAlaiDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     413           0 :         "paJoggingGeneral": MessageLookupByLibrary.simpleMessage("Joggen"),
+     414             :         "paJoggingGeneralDesc":
+     415           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     416           0 :         "paJuggling": MessageLookupByLibrary.simpleMessage("Jonglieren"),
+     417           0 :         "paJugglingDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     418             :         "paKayakingModerate":
+     419           0 :             MessageLookupByLibrary.simpleMessage("Kajakfahren"),
+     420             :         "paKayakingModerateDesc":
+     421           0 :             MessageLookupByLibrary.simpleMessage("mäßige Anstrengung"),
+     422           0 :         "paKickball": MessageLookupByLibrary.simpleMessage("Kickball"),
+     423           0 :         "paKickballDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     424           0 :         "paLacrosse": MessageLookupByLibrary.simpleMessage("Lacrosse"),
+     425           0 :         "paLacrosseDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     426           0 :         "paLawnBowling": MessageLookupByLibrary.simpleMessage("Rasenbowling"),
+     427             :         "paLawnBowlingDesc":
+     428           0 :             MessageLookupByLibrary.simpleMessage("Boccia, draußen"),
+     429             :         "paMartialArtsModerate":
+     430           0 :             MessageLookupByLibrary.simpleMessage("Kampfsport"),
+     431           0 :         "paMartialArtsModerateDesc": MessageLookupByLibrary.simpleMessage(
+     432             :             "verschiedene Arten, moderates Tempo (z.B. Judo, Jujitsu, Karate, Kickboxen, Taekwondo, Tai-Bo, Muay Thai Boxen)"),
+     433             :         "paMartialArtsSlower":
+     434           0 :             MessageLookupByLibrary.simpleMessage("Kampfsport"),
+     435           0 :         "paMartialArtsSlowerDesc": MessageLookupByLibrary.simpleMessage(
+     436             :             "verschiedene Arten, langsames Tempo, Anfänger, Übung"),
+     437           0 :         "paMotoCross": MessageLookupByLibrary.simpleMessage("Motocross"),
+     438           0 :         "paMotoCrossDesc": MessageLookupByLibrary.simpleMessage(
+     439             :             "Geländemotorsport, Geländewagen, allgemein"),
+     440           0 :         "paMountainClimbing": MessageLookupByLibrary.simpleMessage("Klettern"),
+     441             :         "paMountainClimbingDesc":
+     442           0 :             MessageLookupByLibrary.simpleMessage("Felsen- oder Bergsteigen"),
+     443             :         "paOrienteering":
+     444           0 :             MessageLookupByLibrary.simpleMessage("Orientierungslauf"),
+     445           0 :         "paOrienteeringDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     446             :         "paPaddleBoarding":
+     447           0 :             MessageLookupByLibrary.simpleMessage("Stand-Up Paddeln"),
+     448           0 :         "paPaddleBoardingDesc": MessageLookupByLibrary.simpleMessage("stehend"),
+     449           0 :         "paPaddleBoat": MessageLookupByLibrary.simpleMessage("Tretboot"),
+     450           0 :         "paPaddleBoatDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     451           0 :         "paPaddleball": MessageLookupByLibrary.simpleMessage("Paddleball"),
+     452             :         "paPaddleballDesc":
+     453           0 :             MessageLookupByLibrary.simpleMessage("ungezwungen, allgemein"),
+     454           0 :         "paPoloHorse": MessageLookupByLibrary.simpleMessage("Polo"),
+     455             :         "paPoloHorseDesc":
+     456           0 :             MessageLookupByLibrary.simpleMessage("auf dem Pferd"),
+     457           0 :         "paRacquetball": MessageLookupByLibrary.simpleMessage("Racquetball"),
+     458           0 :         "paRacquetballDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     459             :         "paResistanceTraining":
+     460           0 :             MessageLookupByLibrary.simpleMessage("Krafttraining"),
+     461           0 :         "paResistanceTrainingDesc": MessageLookupByLibrary.simpleMessage(
+     462             :             "Gewichtheben, Freigewichte, Nautilus oder Universal"),
+     463             :         "paRodeoSportGeneralModerate":
+     464           0 :             MessageLookupByLibrary.simpleMessage("Rodeosport"),
+     465           0 :         "paRodeoSportGeneralModerateDesc": MessageLookupByLibrary.simpleMessage(
+     466             :             "allgemein, moderater Aufwand"),
+     467             :         "paRollerbladingLight":
+     468           0 :             MessageLookupByLibrary.simpleMessage("Inlineskaten"),
+     469             :         "paRollerbladingLightDesc":
+     470           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     471             :         "paRopeJumpingGeneral":
+     472           0 :             MessageLookupByLibrary.simpleMessage("Seilspringen"),
+     473           0 :         "paRopeJumpingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     474             :             "mittleres Tempo, 100-120 Sprünge/Min., allgemein, beidfüßiges Springen, einfacher Sprung"),
+     475             :         "paRopeSkippingGeneral":
+     476           0 :             MessageLookupByLibrary.simpleMessage("Seilspringen"),
+     477             :         "paRopeSkippingGeneralDesc":
+     478           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     479           0 :         "paRugbyCompetitive": MessageLookupByLibrary.simpleMessage("Rugby"),
+     480           0 :         "paRugbyCompetitiveDesc": MessageLookupByLibrary.simpleMessage(
+     481             :             "Union, Mannschaft, wettbewerbsorientiert"),
+     482           0 :         "paRugbyNonCompetitive": MessageLookupByLibrary.simpleMessage("Rugby"),
+     483           0 :         "paRugbyNonCompetitiveDesc": MessageLookupByLibrary.simpleMessage(
+     484             :             "Berührung, nicht wettbewerbsorientiert"),
+     485           0 :         "paRunningGeneral": MessageLookupByLibrary.simpleMessage("Laufen"),
+     486             :         "paRunningGeneralDesc":
+     487           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     488           0 :         "paSailingGeneral": MessageLookupByLibrary.simpleMessage("Segeln"),
+     489           0 :         "paSailingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     490             :             "Segeln, Windsurfen, Eissegeln, allgemein"),
+     491           0 :         "paShuffleboard": MessageLookupByLibrary.simpleMessage("Shuffleboard"),
+     492           0 :         "paShuffleboardDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     493             :         "paSkateboardingGeneral":
+     494           0 :             MessageLookupByLibrary.simpleMessage("Skateboarding"),
+     495             :         "paSkateboardingGeneralDesc":
+     496           0 :             MessageLookupByLibrary.simpleMessage("allgemein, mäßiger Aufwand"),
+     497             :         "paSkatingRoller":
+     498           0 :             MessageLookupByLibrary.simpleMessage("Roller-Skating"),
+     499             :         "paSkatingRollerDesc":
+     500           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     501           0 :         "paSkiingGeneral": MessageLookupByLibrary.simpleMessage("Skifahren"),
+     502             :         "paSkiingGeneralDesc":
+     503           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     504             :         "paSkiingWaterWakeboarding":
+     505           0 :             MessageLookupByLibrary.simpleMessage("Wasserski"),
+     506             :         "paSkiingWaterWakeboardingDesc":
+     507           0 :             MessageLookupByLibrary.simpleMessage("Wasser- oder Wakeboarding"),
+     508           0 :         "paSkydivingDesc": MessageLookupByLibrary.simpleMessage(
+     509             :             "Fallschirmspringen, Base-Jumping, Bungee-Jumping"),
+     510           0 :         "paSnorkeling": MessageLookupByLibrary.simpleMessage("Schnorcheln"),
+     511           0 :         "paSnorkelingDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     512             :         "paSnowShovingModerate":
+     513           0 :             MessageLookupByLibrary.simpleMessage("Schnee schaufeln"),
+     514             :         "paSnowShovingModerateDesc":
+     515           0 :             MessageLookupByLibrary.simpleMessage("manuell, mäßige Anstrengung"),
+     516           0 :         "paSoccerGeneral": MessageLookupByLibrary.simpleMessage("Fußball"),
+     517             :         "paSoccerGeneralDesc":
+     518           0 :             MessageLookupByLibrary.simpleMessage("Freizeit, allgemein"),
+     519             :         "paSoftballBaseballGeneral":
+     520           0 :             MessageLookupByLibrary.simpleMessage("Softball / Baseball"),
+     521           0 :         "paSoftballBaseballGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     522             :             "Schnell- oder Langstreckenpitching, allgemein"),
+     523           0 :         "paSquashGeneral": MessageLookupByLibrary.simpleMessage("Squash"),
+     524             :         "paSquashGeneralDesc":
+     525           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     526           0 :         "paSurfing": MessageLookupByLibrary.simpleMessage("Surfen"),
+     527           0 :         "paSurfingDesc": MessageLookupByLibrary.simpleMessage(
+     528             :             "Körper- oder Brettsurfen, allgemein"),
+     529           0 :         "paSwimmingGeneral": MessageLookupByLibrary.simpleMessage("Schwimmen"),
+     530           0 :         "paSwimmingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     531             :             "Wassertreten, mäßige Anstrengung, allgemein"),
+     532             :         "paTableTennisGeneral":
+     533           0 :             MessageLookupByLibrary.simpleMessage("Tischtennis"),
+     534             :         "paTableTennisGeneralDesc":
+     535           0 :             MessageLookupByLibrary.simpleMessage("Tischtennis, Ping Pong"),
+     536             :         "paTaiChiQiGongGeneral":
+     537           0 :             MessageLookupByLibrary.simpleMessage("Tai Chi, Qi Gong"),
+     538             :         "paTaiChiQiGongGeneralDesc":
+     539           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     540           0 :         "paTennisGeneral": MessageLookupByLibrary.simpleMessage("Tennis"),
+     541             :         "paTennisGeneralDesc":
+     542           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     543           0 :         "paTrackField": MessageLookupByLibrary.simpleMessage("Leichtathletik"),
+     544           0 :         "paTrackField1Desc": MessageLookupByLibrary.simpleMessage(
+     545             :             "(z. B. Kugelstoßen, Diskuswurf, Hammerwurf)"),
+     546           0 :         "paTrackField2Desc": MessageLookupByLibrary.simpleMessage(
+     547             :             "(z. B. Hochsprung, Weitsprung, Dreisprung, Speerwurf, Stabhochsprung)"),
+     548           0 :         "paTrackField3Desc": MessageLookupByLibrary.simpleMessage(
+     549             :             "(z. B. Hindernislauf, Hürdenlauf)"),
+     550           0 :         "paTrampolineLight": MessageLookupByLibrary.simpleMessage("Trampolin"),
+     551             :         "paTrampolineLightDesc":
+     552           0 :             MessageLookupByLibrary.simpleMessage("Freizeit"),
+     553             :         "paUnicyclingGeneral":
+     554           0 :             MessageLookupByLibrary.simpleMessage("Einradfahren"),
+     555             :         "paUnicyclingGeneralDesc":
+     556           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     557             :         "paVolleyballGeneral":
+     558           0 :             MessageLookupByLibrary.simpleMessage("Volleyball"),
+     559           0 :         "paVolleyballGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     560             :             "nicht-wettkampforientiert, 6-9 Spieler, allgemein"),
+     561             :         "paWalkingForPleasure":
+     562           0 :             MessageLookupByLibrary.simpleMessage("Spazieren gehen"),
+     563             :         "paWalkingForPleasureDesc":
+     564           0 :             MessageLookupByLibrary.simpleMessage("aus Vergnügen"),
+     565           0 :         "paWalkingTheDog": MessageLookupByLibrary.simpleMessage("Gassi gehen"),
+     566             :         "paWalkingTheDogDesc":
+     567           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     568           0 :         "paWallyball": MessageLookupByLibrary.simpleMessage("Wallyball"),
+     569           0 :         "paWallyballDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     570             :         "paWaterAerobics":
+     571           0 :             MessageLookupByLibrary.simpleMessage("Wassergymnastik"),
+     572           0 :         "paWaterAerobicsDesc": MessageLookupByLibrary.simpleMessage(
+     573             :             "Wassergymnastik, Wasser-Calisthenics"),
+     574           0 :         "paWaterPolo": MessageLookupByLibrary.simpleMessage("Wasserball"),
+     575           0 :         "paWaterPoloDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     576             :         "paWaterVolleyball":
+     577           0 :             MessageLookupByLibrary.simpleMessage("Wasser-Volleyball"),
+     578             :         "paWaterVolleyballDesc":
+     579           0 :             MessageLookupByLibrary.simpleMessage("allgemein"),
+     580             :         "paWateraerobicsCalisthenics":
+     581           0 :             MessageLookupByLibrary.simpleMessage("Wassergymnastik"),
+     582           0 :         "paWateraerobicsCalisthenicsDesc": MessageLookupByLibrary.simpleMessage(
+     583             :             "Wassergymnastik, Wasser-Kalorienverbrennungsgymnastik"),
+     584           0 :         "paWrestling": MessageLookupByLibrary.simpleMessage("Ringen"),
+     585           0 :         "paWrestlingDesc": MessageLookupByLibrary.simpleMessage("allgemein"),
+     586           0 :         "palActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     587             :             "Überwiegend Stehen oder Gehen bei der Arbeit und aktive Freizeitaktivitäten"),
+     588           0 :         "palActiveLabel": MessageLookupByLibrary.simpleMessage("Aktiv"),
+     589           0 :         "palLowActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     590             :             "z. B. Sitzen oder Stehen bei der Arbeit und leichte Freizeitaktivitäten"),
+     591             :         "palLowLActiveLabel":
+     592           0 :             MessageLookupByLibrary.simpleMessage("Leicht aktiv"),
+     593           0 :         "palSedentaryDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     594             :             "z. B. Büroarbeit und hauptsächlich sitzende Freizeitaktivitäten"),
+     595           0 :         "palSedentaryLabel": MessageLookupByLibrary.simpleMessage("Sitzend"),
+     596           0 :         "palVeryActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     597             :             "Überwiegend Gehen, Laufen oder Gewichte tragen bei der Arbeit und aktive Freizeitaktivitäten"),
+     598             :         "palVeryActiveLabel":
+     599           0 :             MessageLookupByLibrary.simpleMessage("Sehr aktiv"),
+     600           0 :         "per100gmlLabel": MessageLookupByLibrary.simpleMessage("Pro 100 g/ml"),
+     601           0 :         "perServingLabel": MessageLookupByLibrary.simpleMessage("Pro Portion"),
+     602             :         "privacyPolicyLabel":
+     603           0 :             MessageLookupByLibrary.simpleMessage("Datenschutzrichtlinie"),
+     604           0 :         "profileLabel": MessageLookupByLibrary.simpleMessage("Profil"),
+     605           0 :         "proteinLabel": MessageLookupByLibrary.simpleMessage("Protein"),
+     606           0 :         "quantityLabel": MessageLookupByLibrary.simpleMessage("Menge"),
+     607           0 :         "readLabel": MessageLookupByLibrary.simpleMessage(
+     608             :             "Ich habe die Datenschutzbestimmungen gelesen und akzeptiere sie."),
+     609           0 :         "recentlyAddedLabel": MessageLookupByLibrary.simpleMessage("Kürzlich"),
+     610           0 :         "reportErrorDialogText": MessageLookupByLibrary.simpleMessage(
+     611             :             "Möchten Sie einen Fehler an den Entwickler melden?"),
+     612           0 :         "retryLabel": MessageLookupByLibrary.simpleMessage("Erneut versuchen"),
+     613             :         "saturatedFatLabel":
+     614           0 :             MessageLookupByLibrary.simpleMessage("gesättigtes Fett"),
+     615             :         "scanProductLabel":
+     616           0 :             MessageLookupByLibrary.simpleMessage("Produkt scannen"),
+     617           0 :         "searchDefaultLabel": MessageLookupByLibrary.simpleMessage(
+     618             :             "Bitte geben Sie ein Suchwort ein"),
+     619           0 :         "searchFoodPage": MessageLookupByLibrary.simpleMessage("Lebensmittel"),
+     620           0 :         "searchLabel": MessageLookupByLibrary.simpleMessage("Suchen"),
+     621           0 :         "searchProductsPage": MessageLookupByLibrary.simpleMessage("Produkte"),
+     622             :         "searchResultsLabel":
+     623           0 :             MessageLookupByLibrary.simpleMessage("Suchergebnisse"),
+     624             :         "selectGenderDialogLabel":
+     625           0 :             MessageLookupByLibrary.simpleMessage("Geschlecht auswählen"),
+     626             :         "selectHeightDialogLabel":
+     627           0 :             MessageLookupByLibrary.simpleMessage("Größe auswählen"),
+     628             :         "selectPalCategoryLabel":
+     629           0 :             MessageLookupByLibrary.simpleMessage("Aktivitätslevel auswählen"),
+     630             :         "selectWeightDialogLabel":
+     631           0 :             MessageLookupByLibrary.simpleMessage("Gewicht auswählen"),
+     632           0 :         "sendAnonymousUserData": MessageLookupByLibrary.simpleMessage(
+     633             :             "Anonyme Nutzungsdaten senden?"),
+     634           0 :         "servingLabel": MessageLookupByLibrary.simpleMessage("Portion"),
+     635             :         "servingSizeLabelImperial":
+     636           0 :             MessageLookupByLibrary.simpleMessage("Portionsgröße (oz/fl oz)"),
+     637             :         "servingSizeLabelMetric":
+     638           0 :             MessageLookupByLibrary.simpleMessage("Portionsgröße (g/ml)"),
+     639           0 :         "settingAboutLabel": MessageLookupByLibrary.simpleMessage("Über"),
+     640             :         "settingFeedbackLabel":
+     641           0 :             MessageLookupByLibrary.simpleMessage("Feedback"),
+     642             :         "settingsCalculationsLabel":
+     643           0 :             MessageLookupByLibrary.simpleMessage("Berechnungen"),
+     644             :         "settingsDisclaimerLabel":
+     645           0 :             MessageLookupByLibrary.simpleMessage("Hinweis"),
+     646             :         "settingsDistanceLabel":
+     647           0 :             MessageLookupByLibrary.simpleMessage("Entfernung"),
+     648           0 :         "settingsLabel": MessageLookupByLibrary.simpleMessage("Einstellungen"),
+     649             :         "settingsLicensesLabel":
+     650           0 :             MessageLookupByLibrary.simpleMessage("Lizenzen"),
+     651           0 :         "settingsMassLabel": MessageLookupByLibrary.simpleMessage("Masse"),
+     652             :         "settingsPrivacySettings":
+     653           0 :             MessageLookupByLibrary.simpleMessage("Datenschutzeinstellungen"),
+     654             :         "settingsReportErrorLabel":
+     655           0 :             MessageLookupByLibrary.simpleMessage("Fehler melden"),
+     656             :         "settingsSourceCodeLabel":
+     657           0 :             MessageLookupByLibrary.simpleMessage("Quellcode"),
+     658             :         "settingsThemeDarkLabel":
+     659           0 :             MessageLookupByLibrary.simpleMessage("Dunkel"),
+     660           0 :         "settingsThemeLabel": MessageLookupByLibrary.simpleMessage("Thema"),
+     661           0 :         "settingsThemeLightLabel": MessageLookupByLibrary.simpleMessage("Hell"),
+     662             :         "settingsThemeSystemDefaultLabel":
+     663           0 :             MessageLookupByLibrary.simpleMessage("Systemstandard"),
+     664           0 :         "settingsUnitsLabel": MessageLookupByLibrary.simpleMessage("Einheiten"),
+     665           0 :         "settingsVolumeLabel": MessageLookupByLibrary.simpleMessage("Volumen"),
+     666           0 :         "snackExample": MessageLookupByLibrary.simpleMessage(
+     667             :             "z. B. Apfel, Eiscreme, Schokolade ..."),
+     668           0 :         "snackLabel": MessageLookupByLibrary.simpleMessage("Snack"),
+     669           0 :         "sugarLabel": MessageLookupByLibrary.simpleMessage("Zucker"),
+     670           0 :         "suppliedLabel": MessageLookupByLibrary.simpleMessage("zugeführt"),
+     671           0 :         "unitLabel": MessageLookupByLibrary.simpleMessage("Einheit"),
+     672           0 :         "weightLabel": MessageLookupByLibrary.simpleMessage("Gewicht"),
+     673             :         "yearsLabel": m3
+     674             :       };
+     675             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_en.dart.func-sort-c.html b/coverage/html/generated/intl/messages_en.dart.func-sort-c.html new file mode 100644 index 000000000..d861e2854 --- /dev/null +++ b/coverage/html/generated/intl/messages_en.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_en.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_en.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:40541198.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_en.dart.func.html b/coverage/html/generated/intl/messages_en.dart.func.html new file mode 100644 index 000000000..8fb2e58ea --- /dev/null +++ b/coverage/html/generated/intl/messages_en.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_en.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_en.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:40541198.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_en.dart.gcov.html b/coverage/html/generated/intl/messages_en.dart.gcov.html new file mode 100644 index 000000000..e181485cb --- /dev/null +++ b/coverage/html/generated/intl/messages_en.dart.gcov.html @@ -0,0 +1,743 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_en.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_en.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:40541198.5 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+       2             : // This is a library that provides messages for a en locale. All the
+       3             : // messages from the main program should be duplicated here with the same
+       4             : // function name.
+       5             : 
+       6             : // Ignore issues from commonly used lints in this file.
+       7             : // ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new
+       8             : // ignore_for_file:prefer_single_quotes,comment_references, directives_ordering
+       9             : // ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases
+      10             : // ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes
+      11             : // ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes
+      12             : 
+      13             : import 'package:intl/intl.dart';
+      14             : import 'package:intl/message_lookup_by_library.dart';
+      15             : 
+      16           3 : final messages = new MessageLookup();
+      17             : 
+      18             : typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
+      19             : 
+      20             : class MessageLookup extends MessageLookupByLibrary {
+      21           0 :   String get localeName => 'en';
+      22             : 
+      23           0 :   static String m0(versionNumber) => "Version ${versionNumber}";
+      24             : 
+      25           0 :   static String m1(pctCarbs, pctFats, pctProteins) =>
+      26           0 :       "${pctCarbs}% carbs, ${pctFats}% fats, ${pctProteins}% proteins";
+      27             : 
+      28           0 :   static String m2(riskValue) => "Risk of comorbidities: ${riskValue}";
+      29             : 
+      30           0 :   static String m3(age) => "${age} years";
+      31             : 
+      32             :   final messages = _notInlinedMessages(_notInlinedMessages);
+      33           2 :   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
+      34           1 :         "activityExample": MessageLookupByLibrary.simpleMessage(
+      35             :             "e.g. running, biking, yoga ..."),
+      36           1 :         "activityLabel": MessageLookupByLibrary.simpleMessage("Activity"),
+      37           1 :         "addItemLabel": MessageLookupByLibrary.simpleMessage("Add new Item:"),
+      38           1 :         "addLabel": MessageLookupByLibrary.simpleMessage("Add"),
+      39           1 :         "additionalInfoLabelCompendium2011": MessageLookupByLibrary.simpleMessage(
+      40             :             "Information provided\n by the \n\'2011 Compendium\n of Physical Activities\'"),
+      41             :         "additionalInfoLabelCustom":
+      42           1 :             MessageLookupByLibrary.simpleMessage("Custom Meal Item"),
+      43           1 :         "additionalInfoLabelFDC": MessageLookupByLibrary.simpleMessage(
+      44             :             "More Information at\nFoodData Central"),
+      45           1 :         "additionalInfoLabelOFF": MessageLookupByLibrary.simpleMessage(
+      46             :             "More Information at\nOpenFoodFacts"),
+      47             :         "additionalInfoLabelUnknown":
+      48           1 :             MessageLookupByLibrary.simpleMessage("Unknown Meal Item"),
+      49           1 :         "ageLabel": MessageLookupByLibrary.simpleMessage("Age"),
+      50           1 :         "allItemsLabel": MessageLookupByLibrary.simpleMessage("All"),
+      51           1 :         "alphaVersionName": MessageLookupByLibrary.simpleMessage("[Alpha]"),
+      52           1 :         "appDescription": MessageLookupByLibrary.simpleMessage(
+      53             :             "OpenNutriTracker is a free and open-source calorie and nutrient tracker that respects your privacy."),
+      54             :         "appLicenseLabel":
+      55           1 :             MessageLookupByLibrary.simpleMessage("GPL-3.0 license"),
+      56           1 :         "appTitle": MessageLookupByLibrary.simpleMessage("OpenNutriTracker"),
+      57             :         "appVersionName": m0,
+      58             :         "baseQuantityLabel":
+      59           1 :             MessageLookupByLibrary.simpleMessage("Base quantity (g/ml)"),
+      60           1 :         "betaVersionName": MessageLookupByLibrary.simpleMessage("[Beta]"),
+      61           1 :         "bmiInfo": MessageLookupByLibrary.simpleMessage(
+      62             :             "Body Mass Index (BMI) is a index to classify overweight and obesity in adults. It is defined as weight in kilograms divided by the square of height in meters (kg/m²).\n\nBMI does not differentiate between fat and muscle mass and can be misleading for some individuals."),
+      63           1 :         "bmiLabel": MessageLookupByLibrary.simpleMessage("BMI"),
+      64           1 :         "breakfastExample": MessageLookupByLibrary.simpleMessage(
+      65             :             "e.g. cereal, milk, coffee ..."),
+      66           1 :         "breakfastLabel": MessageLookupByLibrary.simpleMessage("Breakfast"),
+      67           1 :         "burnedLabel": MessageLookupByLibrary.simpleMessage("burned"),
+      68           1 :         "buttonNextLabel": MessageLookupByLibrary.simpleMessage("NEXT"),
+      69           1 :         "buttonResetLabel": MessageLookupByLibrary.simpleMessage("Reset"),
+      70           1 :         "buttonSaveLabel": MessageLookupByLibrary.simpleMessage("Save"),
+      71           1 :         "buttonStartLabel": MessageLookupByLibrary.simpleMessage("START"),
+      72           1 :         "buttonYesLabel": MessageLookupByLibrary.simpleMessage("YES"),
+      73             :         "calculationsMacronutrientsDistributionLabel":
+      74           1 :             MessageLookupByLibrary.simpleMessage("Macros distribution"),
+      75             :         "calculationsMacrosDistribution": m1,
+      76             :         "calculationsRecommendedLabel":
+      77           1 :             MessageLookupByLibrary.simpleMessage("(recommended)"),
+      78           1 :         "calculationsTDEEIOM2006Label": MessageLookupByLibrary.simpleMessage(
+      79             :             "Institute of Medicine Equation"),
+      80             :         "calculationsTDEELabel":
+      81           1 :             MessageLookupByLibrary.simpleMessage("TDEE equation"),
+      82             :         "carbohydrateLabel":
+      83           1 :             MessageLookupByLibrary.simpleMessage("carbohydrate"),
+      84           1 :         "carbsLabel": MessageLookupByLibrary.simpleMessage("carbs"),
+      85             :         "chooseWeightGoalLabel":
+      86           1 :             MessageLookupByLibrary.simpleMessage("Choose Weight Goal"),
+      87           1 :         "cmLabel": MessageLookupByLibrary.simpleMessage("cm"),
+      88           1 :         "copyDialogTitle": MessageLookupByLibrary.simpleMessage(
+      89             :             "Which meal type do you want to copy to?"),
+      90           1 :         "copyOrDeleteTimeDialogContent": MessageLookupByLibrary.simpleMessage(
+      91             :             "With \"Copy to today\" you can copy the meal to today. With \"Delete\" you can delete the meal."),
+      92             :         "copyOrDeleteTimeDialogTitle":
+      93           1 :             MessageLookupByLibrary.simpleMessage("What do you want to do?"),
+      94           1 :         "createCustomDialogContent": MessageLookupByLibrary.simpleMessage(
+      95             :             "Do you want create a custom meal item?"),
+      96             :         "createCustomDialogTitle":
+      97           1 :             MessageLookupByLibrary.simpleMessage("Create custom meal item?"),
+      98             :         "dailyKcalAdjustmentLabel":
+      99           1 :             MessageLookupByLibrary.simpleMessage("Daily Kcal adjustment:"),
+     100           1 :         "dataCollectionLabel": MessageLookupByLibrary.simpleMessage(
+     101             :             "Support development by providing anonymous usage data"),
+     102           1 :         "deleteTimeDialogContent": MessageLookupByLibrary.simpleMessage(
+     103             :             "Do want to delete the selected item?"),
+     104             :         "deleteTimeDialogTitle":
+     105           1 :             MessageLookupByLibrary.simpleMessage("Delete Item?"),
+     106           1 :         "dialogCancelLabel": MessageLookupByLibrary.simpleMessage("CANCEL"),
+     107             :         "dialogCopyLabel":
+     108           1 :             MessageLookupByLibrary.simpleMessage("COPY TO TODAY"),
+     109           1 :         "dialogDeleteLabel": MessageLookupByLibrary.simpleMessage("DELETE"),
+     110           1 :         "dialogOKLabel": MessageLookupByLibrary.simpleMessage("OK"),
+     111           1 :         "diaryLabel": MessageLookupByLibrary.simpleMessage("Diary"),
+     112           1 :         "dinnerExample": MessageLookupByLibrary.simpleMessage(
+     113             :             "e.g. soup, chicken, wine ..."),
+     114           1 :         "dinnerLabel": MessageLookupByLibrary.simpleMessage("Dinner"),
+     115           1 :         "disclaimerText": MessageLookupByLibrary.simpleMessage(
+     116             :             "OpenNutriTracker is not a medical application. All data provided is not validated and should be used with caution. Please maintain a healthy lifestyle and consult a professional if you have any problems. Use during illness, pregnancy or lactation is not recommended.\n\n\nThe application is still under development. Errors, bugs and crashes may occur."),
+     117             :         "editItemDialogTitle":
+     118           1 :             MessageLookupByLibrary.simpleMessage("Edit item"),
+     119           1 :         "editMealLabel": MessageLookupByLibrary.simpleMessage("Edit meal"),
+     120           1 :         "energyLabel": MessageLookupByLibrary.simpleMessage("energy"),
+     121           1 :         "errorFetchingProductData": MessageLookupByLibrary.simpleMessage(
+     122             :             "Error while fetching product data"),
+     123           1 :         "errorLoadingActivities": MessageLookupByLibrary.simpleMessage(
+     124             :             "Error while loading activities"),
+     125           1 :         "errorMealSave": MessageLookupByLibrary.simpleMessage(
+     126             :             "Error while saving meal. Did you input the correct meal information?"),
+     127           1 :         "errorOpeningBrowser": MessageLookupByLibrary.simpleMessage(
+     128             :             "Error while opening browser app"),
+     129           1 :         "errorOpeningEmail": MessageLookupByLibrary.simpleMessage(
+     130             :             "Error while opening email app"),
+     131             :         "errorProductNotFound":
+     132           1 :             MessageLookupByLibrary.simpleMessage("Product not found"),
+     133           1 :         "exportAction": MessageLookupByLibrary.simpleMessage("Export"),
+     134           1 :         "exportImportDescription": MessageLookupByLibrary.simpleMessage(
+     135             :             "You can export the app data to a zip file and import it later. This is useful if you want to backup your data or transfer it to another device.\n\nThe app does not use any cloud service to store your data."),
+     136             :         "exportImportErrorLabel":
+     137           1 :             MessageLookupByLibrary.simpleMessage("Export / Import error"),
+     138             :         "exportImportLabel":
+     139           1 :             MessageLookupByLibrary.simpleMessage("Export / Import data"),
+     140             :         "exportImportSuccessLabel":
+     141           1 :             MessageLookupByLibrary.simpleMessage("Export / Import successful"),
+     142           1 :         "fatLabel": MessageLookupByLibrary.simpleMessage("fat"),
+     143           1 :         "fiberLabel": MessageLookupByLibrary.simpleMessage("fiber"),
+     144           1 :         "flOzUnit": MessageLookupByLibrary.simpleMessage("fl.oz"),
+     145           1 :         "ftLabel": MessageLookupByLibrary.simpleMessage("ft"),
+     146           1 :         "genderFemaleLabel": MessageLookupByLibrary.simpleMessage("♀ female"),
+     147           1 :         "genderLabel": MessageLookupByLibrary.simpleMessage("Gender"),
+     148           1 :         "genderMaleLabel": MessageLookupByLibrary.simpleMessage("♂ male"),
+     149           1 :         "goalGainWeight": MessageLookupByLibrary.simpleMessage("Gain Weight"),
+     150           1 :         "goalLabel": MessageLookupByLibrary.simpleMessage("Goal"),
+     151           1 :         "goalLoseWeight": MessageLookupByLibrary.simpleMessage("Lose Weight"),
+     152             :         "goalMaintainWeight":
+     153           1 :             MessageLookupByLibrary.simpleMessage("Maintain Weight"),
+     154           1 :         "gramMilliliterUnit": MessageLookupByLibrary.simpleMessage("g/ml"),
+     155           1 :         "gramUnit": MessageLookupByLibrary.simpleMessage("g"),
+     156           1 :         "heightLabel": MessageLookupByLibrary.simpleMessage("Height"),
+     157           1 :         "homeLabel": MessageLookupByLibrary.simpleMessage("Home"),
+     158           1 :         "importAction": MessageLookupByLibrary.simpleMessage("Import"),
+     159             :         "infoAddedActivityLabel":
+     160           1 :             MessageLookupByLibrary.simpleMessage("Added new activity"),
+     161             :         "infoAddedIntakeLabel":
+     162           1 :             MessageLookupByLibrary.simpleMessage("Added new intake"),
+     163             :         "itemDeletedSnackbar":
+     164           1 :             MessageLookupByLibrary.simpleMessage("Item deleted"),
+     165             :         "itemUpdatedSnackbar":
+     166           1 :             MessageLookupByLibrary.simpleMessage("Item updated"),
+     167           1 :         "kcalLabel": MessageLookupByLibrary.simpleMessage("kcal"),
+     168           1 :         "kcalLeftLabel": MessageLookupByLibrary.simpleMessage("kcal left"),
+     169           1 :         "kgLabel": MessageLookupByLibrary.simpleMessage("kg"),
+     170           1 :         "lbsLabel": MessageLookupByLibrary.simpleMessage("lbs"),
+     171             :         "lunchExample":
+     172           1 :             MessageLookupByLibrary.simpleMessage("e.g. pizza, salad, rice ..."),
+     173           1 :         "lunchLabel": MessageLookupByLibrary.simpleMessage("Lunch"),
+     174             :         "macroDistributionLabel":
+     175           1 :             MessageLookupByLibrary.simpleMessage("Macronutrient Distribution:"),
+     176           1 :         "mealBrandsLabel": MessageLookupByLibrary.simpleMessage("Brands"),
+     177           1 :         "mealCarbsLabel": MessageLookupByLibrary.simpleMessage("carbs per"),
+     178           1 :         "mealFatLabel": MessageLookupByLibrary.simpleMessage("fat per"),
+     179           1 :         "mealKcalLabel": MessageLookupByLibrary.simpleMessage("kcal per"),
+     180           1 :         "mealNameLabel": MessageLookupByLibrary.simpleMessage("Meal name"),
+     181             :         "mealProteinLabel":
+     182           1 :             MessageLookupByLibrary.simpleMessage("protein per 100 g/ml"),
+     183             :         "mealSizeLabel":
+     184           1 :             MessageLookupByLibrary.simpleMessage("Meal size (g/ml)"),
+     185             :         "mealSizeLabelImperial":
+     186           1 :             MessageLookupByLibrary.simpleMessage("Meal size (oz/fl oz)"),
+     187           1 :         "mealUnitLabel": MessageLookupByLibrary.simpleMessage("Meal unit"),
+     188           1 :         "milliliterUnit": MessageLookupByLibrary.simpleMessage("ml"),
+     189           1 :         "missingProductInfo": MessageLookupByLibrary.simpleMessage(
+     190             :             "Product missing required kcal or macronutrients information"),
+     191             :         "noActivityRecentlyAddedLabel":
+     192           1 :             MessageLookupByLibrary.simpleMessage("No activity recently added"),
+     193             :         "noMealsRecentlyAddedLabel":
+     194           1 :             MessageLookupByLibrary.simpleMessage("No meals recently added"),
+     195             :         "noResultsFound":
+     196           1 :             MessageLookupByLibrary.simpleMessage("No results found"),
+     197           1 :         "notAvailableLabel": MessageLookupByLibrary.simpleMessage("N/A"),
+     198             :         "nothingAddedLabel":
+     199           1 :             MessageLookupByLibrary.simpleMessage("Nothing added"),
+     200             :         "nutritionInfoLabel":
+     201           1 :             MessageLookupByLibrary.simpleMessage("Nutrition Information"),
+     202             :         "nutritionalStatusNormalWeight":
+     203           1 :             MessageLookupByLibrary.simpleMessage("Normal Weight"),
+     204             :         "nutritionalStatusObeseClassI":
+     205           1 :             MessageLookupByLibrary.simpleMessage("Obesity Class I"),
+     206             :         "nutritionalStatusObeseClassII":
+     207           1 :             MessageLookupByLibrary.simpleMessage("Obesity Class II"),
+     208             :         "nutritionalStatusObeseClassIII":
+     209           1 :             MessageLookupByLibrary.simpleMessage("Obesity Class III"),
+     210             :         "nutritionalStatusPreObesity":
+     211           1 :             MessageLookupByLibrary.simpleMessage("Pre-obesity"),
+     212             :         "nutritionalStatusRiskAverage":
+     213           1 :             MessageLookupByLibrary.simpleMessage("Average"),
+     214             :         "nutritionalStatusRiskIncreased":
+     215           1 :             MessageLookupByLibrary.simpleMessage("Increased"),
+     216             :         "nutritionalStatusRiskLabel": m2,
+     217           1 :         "nutritionalStatusRiskLow": MessageLookupByLibrary.simpleMessage(
+     218             :             "Low \n(but risk of other \nclinical problems increased)"),
+     219             :         "nutritionalStatusRiskModerate":
+     220           1 :             MessageLookupByLibrary.simpleMessage("Moderate"),
+     221             :         "nutritionalStatusRiskSevere":
+     222           1 :             MessageLookupByLibrary.simpleMessage("Severe"),
+     223             :         "nutritionalStatusRiskVerySevere":
+     224           1 :             MessageLookupByLibrary.simpleMessage("Very severe"),
+     225             :         "nutritionalStatusUnderweight":
+     226           1 :             MessageLookupByLibrary.simpleMessage("Underweight"),
+     227           1 :         "offDisclaimer": MessageLookupByLibrary.simpleMessage(
+     228             :             "The data provided to you by this app are retrieved from the Open Food Facts database. No guarantees can be made for the accuracy, completeness, or reliability of the information provided. The data are provided “as is” and the originating source for the data (Open Food Facts) is not liable for any damages arising out of the use of the data."),
+     229             :         "onboardingActivityQuestionSubtitle":
+     230           1 :             MessageLookupByLibrary.simpleMessage(
+     231             :                 "How active are you? (without workouts)"),
+     232             :         "onboardingBirthdayHint":
+     233           1 :             MessageLookupByLibrary.simpleMessage("Enter Date"),
+     234             :         "onboardingBirthdayQuestionSubtitle":
+     235           1 :             MessageLookupByLibrary.simpleMessage("When is your birthday?"),
+     236             :         "onboardingEnterBirthdayLabel":
+     237           1 :             MessageLookupByLibrary.simpleMessage("Birthday"),
+     238             :         "onboardingGenderQuestionSubtitle":
+     239           1 :             MessageLookupByLibrary.simpleMessage("What\'s your gender?"),
+     240           1 :         "onboardingGoalQuestionSubtitle": MessageLookupByLibrary.simpleMessage(
+     241             :             "What\'s your current weight goal?"),
+     242             :         "onboardingHeightExampleHintCm":
+     243           1 :             MessageLookupByLibrary.simpleMessage("e.g. 170"),
+     244             :         "onboardingHeightExampleHintFt":
+     245           1 :             MessageLookupByLibrary.simpleMessage("e.g. 5.8"),
+     246             :         "onboardingHeightQuestionSubtitle":
+     247           1 :             MessageLookupByLibrary.simpleMessage("Whats your current height?"),
+     248           1 :         "onboardingIntroDescription": MessageLookupByLibrary.simpleMessage(
+     249             :             "To start, the app needs some information about you to calculate your daily calorie goal.\nAll information about you is stored securely on your device."),
+     250             :         "onboardingKcalPerDayLabel":
+     251           1 :             MessageLookupByLibrary.simpleMessage("kcal per day"),
+     252             :         "onboardingOverviewLabel":
+     253           1 :             MessageLookupByLibrary.simpleMessage("Overview"),
+     254           1 :         "onboardingSaveUserError": MessageLookupByLibrary.simpleMessage(
+     255             :             "Wrong input, please try again"),
+     256             :         "onboardingWeightExampleHintKg":
+     257           1 :             MessageLookupByLibrary.simpleMessage("e.g. 60"),
+     258             :         "onboardingWeightExampleHintLbs":
+     259           1 :             MessageLookupByLibrary.simpleMessage("e.g. 132"),
+     260             :         "onboardingWeightQuestionSubtitle":
+     261           1 :             MessageLookupByLibrary.simpleMessage("Whats your current weight?"),
+     262             :         "onboardingWelcomeLabel":
+     263           1 :             MessageLookupByLibrary.simpleMessage("Welcome to"),
+     264             :         "onboardingWrongHeightLabel":
+     265           1 :             MessageLookupByLibrary.simpleMessage("Enter correct height"),
+     266             :         "onboardingWrongWeightLabel":
+     267           1 :             MessageLookupByLibrary.simpleMessage("Enter correct weight"),
+     268             :         "onboardingYourGoalLabel":
+     269           1 :             MessageLookupByLibrary.simpleMessage("Your calorie goal:"),
+     270             :         "onboardingYourMacrosGoalLabel":
+     271           1 :             MessageLookupByLibrary.simpleMessage("Your macronutrient goals:"),
+     272           1 :         "ozUnit": MessageLookupByLibrary.simpleMessage("oz"),
+     273             :         "paAmericanFootballGeneral":
+     274           1 :             MessageLookupByLibrary.simpleMessage("football"),
+     275             :         "paAmericanFootballGeneralDesc":
+     276           1 :             MessageLookupByLibrary.simpleMessage("touch, flag, general"),
+     277           1 :         "paArcheryGeneral": MessageLookupByLibrary.simpleMessage("archery"),
+     278             :         "paArcheryGeneralDesc":
+     279           1 :             MessageLookupByLibrary.simpleMessage("non-hunting"),
+     280           1 :         "paAutoRacing": MessageLookupByLibrary.simpleMessage("auto racing"),
+     281           1 :         "paAutoRacingDesc": MessageLookupByLibrary.simpleMessage("open wheel"),
+     282             :         "paBackpackingGeneral":
+     283           1 :             MessageLookupByLibrary.simpleMessage("backpacking"),
+     284             :         "paBackpackingGeneralDesc":
+     285           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     286           1 :         "paBadmintonGeneral": MessageLookupByLibrary.simpleMessage("badminton"),
+     287           1 :         "paBadmintonGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     288             :             "social singles and doubles, general"),
+     289             :         "paBasketballGeneral":
+     290           1 :             MessageLookupByLibrary.simpleMessage("basketball"),
+     291             :         "paBasketballGeneralDesc":
+     292           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     293           1 :         "paBicyclingGeneral": MessageLookupByLibrary.simpleMessage("bicycling"),
+     294             :         "paBicyclingGeneralDesc":
+     295           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     296             :         "paBicyclingMountainGeneral":
+     297           1 :             MessageLookupByLibrary.simpleMessage("bicycling, mountain"),
+     298             :         "paBicyclingMountainGeneralDesc":
+     299           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     300             :         "paBicyclingStationaryGeneral":
+     301           1 :             MessageLookupByLibrary.simpleMessage("bicycling, stationary"),
+     302             :         "paBicyclingStationaryGeneralDesc":
+     303           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     304           1 :         "paBilliardsGeneral": MessageLookupByLibrary.simpleMessage("billiards"),
+     305             :         "paBilliardsGeneralDesc":
+     306           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     307           1 :         "paBowlingGeneral": MessageLookupByLibrary.simpleMessage("bowling"),
+     308           1 :         "paBowlingGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     309           1 :         "paBoxingBag": MessageLookupByLibrary.simpleMessage("boxing"),
+     310           1 :         "paBoxingBagDesc": MessageLookupByLibrary.simpleMessage("punching bag"),
+     311           1 :         "paBoxingGeneral": MessageLookupByLibrary.simpleMessage("boxing"),
+     312             :         "paBoxingGeneralDesc":
+     313           1 :             MessageLookupByLibrary.simpleMessage("in ring, general"),
+     314           1 :         "paBroomball": MessageLookupByLibrary.simpleMessage("broomball"),
+     315           1 :         "paBroomballDesc": MessageLookupByLibrary.simpleMessage("general"),
+     316             :         "paCalisthenicsGeneral":
+     317           1 :             MessageLookupByLibrary.simpleMessage("calisthenics"),
+     318           1 :         "paCalisthenicsGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     319             :             "light or moderate effort, general (e.g., back exercises)"),
+     320           1 :         "paCanoeingGeneral": MessageLookupByLibrary.simpleMessage("canoeing"),
+     321           1 :         "paCanoeingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     322             :             "rowing, for pleasure, general"),
+     323           1 :         "paCatch": MessageLookupByLibrary.simpleMessage("football or baseball"),
+     324           1 :         "paCatchDesc": MessageLookupByLibrary.simpleMessage("playing catch"),
+     325           1 :         "paCheerleading": MessageLookupByLibrary.simpleMessage("cheerleading"),
+     326           1 :         "paCheerleadingDesc": MessageLookupByLibrary.simpleMessage(
+     327             :             "gymnastic moves, competitive"),
+     328             :         "paChildrenGame":
+     329           1 :             MessageLookupByLibrary.simpleMessage("children’s games"),
+     330           1 :         "paChildrenGameDesc": MessageLookupByLibrary.simpleMessage(
+     331             :             "(e.g., hopscotch, 4-square, dodgeball, playground apparatus, t-ball, tetherball, marbles, arcade games), moderate effort"),
+     332             :         "paClimbingHillsNoLoadGeneral":
+     333           1 :             MessageLookupByLibrary.simpleMessage("climbing hills, no load"),
+     334             :         "paClimbingHillsNoLoadGeneralDesc":
+     335           1 :             MessageLookupByLibrary.simpleMessage("no load"),
+     336           1 :         "paCricket": MessageLookupByLibrary.simpleMessage("cricket"),
+     337             :         "paCricketDesc":
+     338           1 :             MessageLookupByLibrary.simpleMessage("batting, bowling, fielding"),
+     339           1 :         "paCroquet": MessageLookupByLibrary.simpleMessage("croquet"),
+     340           1 :         "paCroquetDesc": MessageLookupByLibrary.simpleMessage("general"),
+     341           1 :         "paCurling": MessageLookupByLibrary.simpleMessage("curling"),
+     342           1 :         "paCurlingDesc": MessageLookupByLibrary.simpleMessage("general"),
+     343             :         "paDancingAerobicGeneral":
+     344           1 :             MessageLookupByLibrary.simpleMessage("aerobic"),
+     345             :         "paDancingAerobicGeneralDesc":
+     346           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     347             :         "paDancingGeneral":
+     348           1 :             MessageLookupByLibrary.simpleMessage("general dancing"),
+     349           1 :         "paDancingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     350             :             "e.g. disco, folk, Irish step dancing, line dancing, polka, contra, country"),
+     351           1 :         "paDartsWall": MessageLookupByLibrary.simpleMessage("darts"),
+     352           1 :         "paDartsWallDesc": MessageLookupByLibrary.simpleMessage("wall or lawn"),
+     353           1 :         "paDivingGeneral": MessageLookupByLibrary.simpleMessage("diving"),
+     354           1 :         "paDivingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     355             :             "skindiving, scuba diving, general"),
+     356             :         "paDivingSpringboardPlatform":
+     357           1 :             MessageLookupByLibrary.simpleMessage("diving"),
+     358             :         "paDivingSpringboardPlatformDesc":
+     359           1 :             MessageLookupByLibrary.simpleMessage("springboard or platform"),
+     360           1 :         "paFencing": MessageLookupByLibrary.simpleMessage("fencing"),
+     361           1 :         "paFencingDesc": MessageLookupByLibrary.simpleMessage("general"),
+     362           1 :         "paFrisbee": MessageLookupByLibrary.simpleMessage("frisbee playing"),
+     363           1 :         "paFrisbeeDesc": MessageLookupByLibrary.simpleMessage("general"),
+     364           1 :         "paGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     365           1 :         "paGolfGeneral": MessageLookupByLibrary.simpleMessage("golf"),
+     366           1 :         "paGolfGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     367             :         "paGymnasticsGeneral":
+     368           1 :             MessageLookupByLibrary.simpleMessage("gymnastics"),
+     369             :         "paGymnasticsGeneralDesc":
+     370           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     371           1 :         "paHackySack": MessageLookupByLibrary.simpleMessage("hacky sack"),
+     372           1 :         "paHackySackDesc": MessageLookupByLibrary.simpleMessage("general"),
+     373           1 :         "paHandballGeneral": MessageLookupByLibrary.simpleMessage("handball"),
+     374             :         "paHandballGeneralDesc":
+     375           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     376           1 :         "paHangGliding": MessageLookupByLibrary.simpleMessage("hang gliding"),
+     377           1 :         "paHangGlidingDesc": MessageLookupByLibrary.simpleMessage("general"),
+     378           1 :         "paHeadingBicycling": MessageLookupByLibrary.simpleMessage("bicycling"),
+     379             :         "paHeadingConditionalExercise":
+     380           1 :             MessageLookupByLibrary.simpleMessage("conditioning exercise"),
+     381           1 :         "paHeadingDancing": MessageLookupByLibrary.simpleMessage("dancing"),
+     382           1 :         "paHeadingRunning": MessageLookupByLibrary.simpleMessage("running"),
+     383           1 :         "paHeadingSports": MessageLookupByLibrary.simpleMessage("sports"),
+     384           1 :         "paHeadingWalking": MessageLookupByLibrary.simpleMessage("walking"),
+     385             :         "paHeadingWaterActivities":
+     386           1 :             MessageLookupByLibrary.simpleMessage("water activities"),
+     387             :         "paHeadingWinterActivities":
+     388           1 :             MessageLookupByLibrary.simpleMessage("winter activities"),
+     389           1 :         "paHikingCrossCountry": MessageLookupByLibrary.simpleMessage("hiking"),
+     390             :         "paHikingCrossCountryDesc":
+     391           1 :             MessageLookupByLibrary.simpleMessage("cross country"),
+     392           1 :         "paHockeyField": MessageLookupByLibrary.simpleMessage("hockey, field"),
+     393           1 :         "paHockeyFieldDesc": MessageLookupByLibrary.simpleMessage("general"),
+     394             :         "paHorseRidingGeneral":
+     395           1 :             MessageLookupByLibrary.simpleMessage("horseback riding"),
+     396             :         "paHorseRidingGeneralDesc":
+     397           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     398             :         "paIceHockeyGeneral":
+     399           1 :             MessageLookupByLibrary.simpleMessage("ice hockey"),
+     400             :         "paIceHockeyGeneralDesc":
+     401           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     402             :         "paIceSkatingGeneral":
+     403           1 :             MessageLookupByLibrary.simpleMessage("ice skating"),
+     404             :         "paIceSkatingGeneralDesc":
+     405           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     406           1 :         "paJaiAlai": MessageLookupByLibrary.simpleMessage("jai alai"),
+     407           1 :         "paJaiAlaiDesc": MessageLookupByLibrary.simpleMessage("general"),
+     408           1 :         "paJoggingGeneral": MessageLookupByLibrary.simpleMessage("jogging"),
+     409           1 :         "paJoggingGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     410           1 :         "paJuggling": MessageLookupByLibrary.simpleMessage("juggling"),
+     411           1 :         "paJugglingDesc": MessageLookupByLibrary.simpleMessage("general"),
+     412           1 :         "paKayakingModerate": MessageLookupByLibrary.simpleMessage("kayaking"),
+     413             :         "paKayakingModerateDesc":
+     414           1 :             MessageLookupByLibrary.simpleMessage("moderate effort"),
+     415           1 :         "paKickball": MessageLookupByLibrary.simpleMessage("kickball"),
+     416           1 :         "paKickballDesc": MessageLookupByLibrary.simpleMessage("general"),
+     417           1 :         "paLacrosse": MessageLookupByLibrary.simpleMessage("lacrosse"),
+     418           1 :         "paLacrosseDesc": MessageLookupByLibrary.simpleMessage("general"),
+     419           1 :         "paLawnBowling": MessageLookupByLibrary.simpleMessage("lawn bowling"),
+     420             :         "paLawnBowlingDesc":
+     421           1 :             MessageLookupByLibrary.simpleMessage("bocce ball, outdoor"),
+     422             :         "paMartialArtsModerate":
+     423           1 :             MessageLookupByLibrary.simpleMessage("martial arts"),
+     424           1 :         "paMartialArtsModerateDesc": MessageLookupByLibrary.simpleMessage(
+     425             :             "different types, moderate pace (e.g., judo, jujitsu, karate, kick boxing, tae kwan do, tai-bo, Muay Thai boxing)"),
+     426             :         "paMartialArtsSlower":
+     427           1 :             MessageLookupByLibrary.simpleMessage("martial arts"),
+     428           1 :         "paMartialArtsSlowerDesc": MessageLookupByLibrary.simpleMessage(
+     429             :             "different types, slower pace, novice performers, practice"),
+     430           1 :         "paMotoCross": MessageLookupByLibrary.simpleMessage("moto-cross"),
+     431           1 :         "paMotoCrossDesc": MessageLookupByLibrary.simpleMessage(
+     432             :             "off-road motor sports, all-terrain vehicle, general"),
+     433           1 :         "paMountainClimbing": MessageLookupByLibrary.simpleMessage("climbing"),
+     434             :         "paMountainClimbingDesc":
+     435           1 :             MessageLookupByLibrary.simpleMessage("rock or mountain climbing"),
+     436           1 :         "paOrienteering": MessageLookupByLibrary.simpleMessage("orienteering"),
+     437           1 :         "paOrienteeringDesc": MessageLookupByLibrary.simpleMessage("general"),
+     438             :         "paPaddleBoarding":
+     439           1 :             MessageLookupByLibrary.simpleMessage("paddle boarding"),
+     440             :         "paPaddleBoardingDesc":
+     441           1 :             MessageLookupByLibrary.simpleMessage("standing"),
+     442           1 :         "paPaddleBoat": MessageLookupByLibrary.simpleMessage("paddle boat"),
+     443           1 :         "paPaddleBoatDesc": MessageLookupByLibrary.simpleMessage("general"),
+     444           1 :         "paPaddleball": MessageLookupByLibrary.simpleMessage("paddleball"),
+     445             :         "paPaddleballDesc":
+     446           1 :             MessageLookupByLibrary.simpleMessage("casual, general"),
+     447           1 :         "paPoloHorse": MessageLookupByLibrary.simpleMessage("polo"),
+     448           1 :         "paPoloHorseDesc": MessageLookupByLibrary.simpleMessage("on horseback"),
+     449           1 :         "paRacquetball": MessageLookupByLibrary.simpleMessage("racquetball"),
+     450           1 :         "paRacquetballDesc": MessageLookupByLibrary.simpleMessage("general"),
+     451             :         "paResistanceTraining":
+     452           1 :             MessageLookupByLibrary.simpleMessage("resistance training"),
+     453           1 :         "paResistanceTrainingDesc": MessageLookupByLibrary.simpleMessage(
+     454             :             "weight lifting, free weight, nautilus or universal"),
+     455             :         "paRodeoSportGeneralModerate":
+     456           1 :             MessageLookupByLibrary.simpleMessage("rodeo sports"),
+     457             :         "paRodeoSportGeneralModerateDesc":
+     458           1 :             MessageLookupByLibrary.simpleMessage("general, moderate effort"),
+     459             :         "paRollerbladingLight":
+     460           1 :             MessageLookupByLibrary.simpleMessage("rollerblading"),
+     461             :         "paRollerbladingLightDesc":
+     462           1 :             MessageLookupByLibrary.simpleMessage("in-line skating"),
+     463             :         "paRopeJumpingGeneral":
+     464           1 :             MessageLookupByLibrary.simpleMessage("rope jumping"),
+     465           1 :         "paRopeJumpingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     466             :             "moderate pace, 100-120 skips/min, general, 2 foot skip, plain bounce"),
+     467             :         "paRopeSkippingGeneral":
+     468           1 :             MessageLookupByLibrary.simpleMessage("rope skipping"),
+     469             :         "paRopeSkippingGeneralDesc":
+     470           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     471           1 :         "paRugbyCompetitive": MessageLookupByLibrary.simpleMessage("rugby"),
+     472             :         "paRugbyCompetitiveDesc":
+     473           1 :             MessageLookupByLibrary.simpleMessage("union, team, competitive"),
+     474           1 :         "paRugbyNonCompetitive": MessageLookupByLibrary.simpleMessage("rugby"),
+     475             :         "paRugbyNonCompetitiveDesc":
+     476           1 :             MessageLookupByLibrary.simpleMessage("touch, non-competitive"),
+     477           1 :         "paRunningGeneral": MessageLookupByLibrary.simpleMessage("running"),
+     478           1 :         "paRunningGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     479           1 :         "paSailingGeneral": MessageLookupByLibrary.simpleMessage("sailing"),
+     480           1 :         "paSailingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     481             :             "boat and board sailing, windsurfing, ice sailing, general"),
+     482           1 :         "paShuffleboard": MessageLookupByLibrary.simpleMessage("shuffleboard"),
+     483           1 :         "paShuffleboardDesc": MessageLookupByLibrary.simpleMessage("general"),
+     484             :         "paSkateboardingGeneral":
+     485           1 :             MessageLookupByLibrary.simpleMessage("skateboarding"),
+     486             :         "paSkateboardingGeneralDesc":
+     487           1 :             MessageLookupByLibrary.simpleMessage("general, moderate effort"),
+     488             :         "paSkatingRoller":
+     489           1 :             MessageLookupByLibrary.simpleMessage("roller skating"),
+     490           1 :         "paSkatingRollerDesc": MessageLookupByLibrary.simpleMessage("general"),
+     491           1 :         "paSkiingGeneral": MessageLookupByLibrary.simpleMessage("skiing"),
+     492           1 :         "paSkiingGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     493             :         "paSkiingWaterWakeboarding":
+     494           1 :             MessageLookupByLibrary.simpleMessage("water skiing"),
+     495             :         "paSkiingWaterWakeboardingDesc":
+     496           1 :             MessageLookupByLibrary.simpleMessage("water or wakeboarding"),
+     497           1 :         "paSkydiving": MessageLookupByLibrary.simpleMessage("skydiving"),
+     498           1 :         "paSkydivingDesc": MessageLookupByLibrary.simpleMessage(
+     499             :             "skydiving, base jumping, bungee jumping"),
+     500           1 :         "paSnorkeling": MessageLookupByLibrary.simpleMessage("snorkeling"),
+     501           1 :         "paSnorkelingDesc": MessageLookupByLibrary.simpleMessage("general"),
+     502             :         "paSnowShovingModerate":
+     503           1 :             MessageLookupByLibrary.simpleMessage("snow shoveling"),
+     504             :         "paSnowShovingModerateDesc":
+     505           1 :             MessageLookupByLibrary.simpleMessage("by hand, moderate effort"),
+     506           1 :         "paSoccerGeneral": MessageLookupByLibrary.simpleMessage("soccer"),
+     507             :         "paSoccerGeneralDesc":
+     508           1 :             MessageLookupByLibrary.simpleMessage("casual, general"),
+     509             :         "paSoftballBaseballGeneral":
+     510           1 :             MessageLookupByLibrary.simpleMessage("softball / baseball"),
+     511             :         "paSoftballBaseballGeneralDesc":
+     512           1 :             MessageLookupByLibrary.simpleMessage("fast or slow pitch, general"),
+     513           1 :         "paSquashGeneral": MessageLookupByLibrary.simpleMessage("squash"),
+     514           1 :         "paSquashGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     515           1 :         "paSurfing": MessageLookupByLibrary.simpleMessage("surfing"),
+     516             :         "paSurfingDesc":
+     517           1 :             MessageLookupByLibrary.simpleMessage("body or board, general"),
+     518           1 :         "paSwimmingGeneral": MessageLookupByLibrary.simpleMessage("swimming"),
+     519           1 :         "paSwimmingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     520             :             "treading water, moderate effort, general"),
+     521             :         "paTableTennisGeneral":
+     522           1 :             MessageLookupByLibrary.simpleMessage("table tennis"),
+     523             :         "paTableTennisGeneralDesc":
+     524           1 :             MessageLookupByLibrary.simpleMessage("table tennis, ping pong"),
+     525             :         "paTaiChiQiGongGeneral":
+     526           1 :             MessageLookupByLibrary.simpleMessage("tai chi, qi gong"),
+     527             :         "paTaiChiQiGongGeneralDesc":
+     528           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     529           1 :         "paTennisGeneral": MessageLookupByLibrary.simpleMessage("tennis"),
+     530           1 :         "paTennisGeneralDesc": MessageLookupByLibrary.simpleMessage("general"),
+     531           1 :         "paTrackField": MessageLookupByLibrary.simpleMessage("track and field"),
+     532           1 :         "paTrackField1Desc": MessageLookupByLibrary.simpleMessage(
+     533             :             "(e.g. shot, discus, hammer throw)"),
+     534           1 :         "paTrackField2Desc": MessageLookupByLibrary.simpleMessage(
+     535             :             "(e.g. high jump, long jump, triple jump, javelin, pole vault)"),
+     536           1 :         "paTrackField3Desc": MessageLookupByLibrary.simpleMessage(
+     537             :             "(e.g. steeplechase, hurdles)"),
+     538           1 :         "paTrampolineLight": MessageLookupByLibrary.simpleMessage("trampoline"),
+     539             :         "paTrampolineLightDesc":
+     540           1 :             MessageLookupByLibrary.simpleMessage("recreational"),
+     541             :         "paUnicyclingGeneral":
+     542           1 :             MessageLookupByLibrary.simpleMessage("unicycling"),
+     543             :         "paUnicyclingGeneralDesc":
+     544           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     545             :         "paVolleyballGeneral":
+     546           1 :             MessageLookupByLibrary.simpleMessage("volleyball"),
+     547           1 :         "paVolleyballGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     548             :             "non-competitive, 6 - 9 member team, general"),
+     549           1 :         "paWalkingForPleasure": MessageLookupByLibrary.simpleMessage("walking"),
+     550             :         "paWalkingForPleasureDesc":
+     551           1 :             MessageLookupByLibrary.simpleMessage("for pleasure"),
+     552             :         "paWalkingTheDog":
+     553           1 :             MessageLookupByLibrary.simpleMessage("walking the dog"),
+     554           1 :         "paWalkingTheDogDesc": MessageLookupByLibrary.simpleMessage("general"),
+     555           1 :         "paWallyball": MessageLookupByLibrary.simpleMessage("wallyball"),
+     556           1 :         "paWallyballDesc": MessageLookupByLibrary.simpleMessage("general"),
+     557             :         "paWaterAerobics":
+     558           1 :             MessageLookupByLibrary.simpleMessage("water exercise"),
+     559           1 :         "paWaterAerobicsDesc": MessageLookupByLibrary.simpleMessage(
+     560             :             "water aerobics, water calisthenics"),
+     561           1 :         "paWaterPolo": MessageLookupByLibrary.simpleMessage("water polo"),
+     562           1 :         "paWaterPoloDesc": MessageLookupByLibrary.simpleMessage("general"),
+     563             :         "paWaterVolleyball":
+     564           1 :             MessageLookupByLibrary.simpleMessage("water volleyball"),
+     565             :         "paWaterVolleyballDesc":
+     566           1 :             MessageLookupByLibrary.simpleMessage("general"),
+     567             :         "paWateraerobicsCalisthenics":
+     568           1 :             MessageLookupByLibrary.simpleMessage("water aerobics"),
+     569           1 :         "paWateraerobicsCalisthenicsDesc": MessageLookupByLibrary.simpleMessage(
+     570             :             "water aerobics, water calisthenics"),
+     571           1 :         "paWrestling": MessageLookupByLibrary.simpleMessage("wrestling"),
+     572           1 :         "paWrestlingDesc": MessageLookupByLibrary.simpleMessage("general"),
+     573           1 :         "palActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     574             :             "Mostly standing or walking in job and active free time activities"),
+     575           1 :         "palActiveLabel": MessageLookupByLibrary.simpleMessage("Active"),
+     576           1 :         "palLowActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     577             :             "e.g. sitting or standing in job and light free time activities"),
+     578             :         "palLowLActiveLabel":
+     579           1 :             MessageLookupByLibrary.simpleMessage("Low Active"),
+     580           1 :         "palSedentaryDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     581             :             "e.g. office job and mostly sitting free time activities"),
+     582           1 :         "palSedentaryLabel": MessageLookupByLibrary.simpleMessage("Sedentary"),
+     583           1 :         "palVeryActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     584             :             "Mostly walking, running or carrying weight in job and active free time activities"),
+     585             :         "palVeryActiveLabel":
+     586           1 :             MessageLookupByLibrary.simpleMessage("Very Active"),
+     587           1 :         "per100gmlLabel": MessageLookupByLibrary.simpleMessage("Per 100g/ml"),
+     588           1 :         "perServingLabel": MessageLookupByLibrary.simpleMessage("Per Serving"),
+     589             :         "privacyPolicyLabel":
+     590           1 :             MessageLookupByLibrary.simpleMessage("Privacy policy"),
+     591           1 :         "profileLabel": MessageLookupByLibrary.simpleMessage("Profile"),
+     592           1 :         "proteinLabel": MessageLookupByLibrary.simpleMessage("protein"),
+     593           1 :         "quantityLabel": MessageLookupByLibrary.simpleMessage("Quantity"),
+     594           1 :         "readLabel": MessageLookupByLibrary.simpleMessage(
+     595             :             "I have read and accept the privacy policy."),
+     596           1 :         "recentlyAddedLabel": MessageLookupByLibrary.simpleMessage("Recently"),
+     597           1 :         "reportErrorDialogText": MessageLookupByLibrary.simpleMessage(
+     598             :             "Do you want to report an error to the developer?"),
+     599           1 :         "retryLabel": MessageLookupByLibrary.simpleMessage("Retry"),
+     600             :         "saturatedFatLabel":
+     601           1 :             MessageLookupByLibrary.simpleMessage("saturated fat"),
+     602             :         "scanProductLabel":
+     603           1 :             MessageLookupByLibrary.simpleMessage("Scan Product"),
+     604             :         "searchDefaultLabel":
+     605           1 :             MessageLookupByLibrary.simpleMessage("Please enter a search word"),
+     606           1 :         "searchFoodPage": MessageLookupByLibrary.simpleMessage("Food"),
+     607           1 :         "searchLabel": MessageLookupByLibrary.simpleMessage("Search"),
+     608           1 :         "searchProductsPage": MessageLookupByLibrary.simpleMessage("Products"),
+     609             :         "searchResultsLabel":
+     610           1 :             MessageLookupByLibrary.simpleMessage("Search results"),
+     611             :         "selectGenderDialogLabel":
+     612           1 :             MessageLookupByLibrary.simpleMessage("Select Gender"),
+     613             :         "selectHeightDialogLabel":
+     614           1 :             MessageLookupByLibrary.simpleMessage("Select Height"),
+     615             :         "selectPalCategoryLabel":
+     616           1 :             MessageLookupByLibrary.simpleMessage("Select Activity Level"),
+     617             :         "selectWeightDialogLabel":
+     618           1 :             MessageLookupByLibrary.simpleMessage("Select Weight"),
+     619             :         "sendAnonymousUserData":
+     620           1 :             MessageLookupByLibrary.simpleMessage("Send anonymous usage data"),
+     621           1 :         "servingLabel": MessageLookupByLibrary.simpleMessage("Serving"),
+     622             :         "servingSizeLabelImperial":
+     623           1 :             MessageLookupByLibrary.simpleMessage("Serving size (oz/fl oz)"),
+     624             :         "servingSizeLabelMetric":
+     625           1 :             MessageLookupByLibrary.simpleMessage("Serving size (g/ml)"),
+     626           1 :         "settingAboutLabel": MessageLookupByLibrary.simpleMessage("About"),
+     627             :         "settingFeedbackLabel":
+     628           1 :             MessageLookupByLibrary.simpleMessage("Feedback"),
+     629             :         "settingsCalculationsLabel":
+     630           1 :             MessageLookupByLibrary.simpleMessage("Calculations"),
+     631             :         "settingsDisclaimerLabel":
+     632           1 :             MessageLookupByLibrary.simpleMessage("Disclaimer"),
+     633             :         "settingsDistanceLabel":
+     634           1 :             MessageLookupByLibrary.simpleMessage("Distance"),
+     635             :         "settingsImperialLabel":
+     636           1 :             MessageLookupByLibrary.simpleMessage("Imperial (lbs, ft, oz)"),
+     637           1 :         "settingsLabel": MessageLookupByLibrary.simpleMessage("Settings"),
+     638             :         "settingsLicensesLabel":
+     639           1 :             MessageLookupByLibrary.simpleMessage("Licenses"),
+     640           1 :         "settingsMassLabel": MessageLookupByLibrary.simpleMessage("Mass"),
+     641             :         "settingsMetricLabel":
+     642           1 :             MessageLookupByLibrary.simpleMessage("Metric (kg, cm, ml)"),
+     643             :         "settingsPrivacySettings":
+     644           1 :             MessageLookupByLibrary.simpleMessage("Privacy Settings"),
+     645             :         "settingsReportErrorLabel":
+     646           1 :             MessageLookupByLibrary.simpleMessage("Report Error"),
+     647             :         "settingsSourceCodeLabel":
+     648           1 :             MessageLookupByLibrary.simpleMessage("Source Code"),
+     649           1 :         "settingsSystemLabel": MessageLookupByLibrary.simpleMessage("System"),
+     650           1 :         "settingsThemeDarkLabel": MessageLookupByLibrary.simpleMessage("Dark"),
+     651           1 :         "settingsThemeLabel": MessageLookupByLibrary.simpleMessage("Theme"),
+     652             :         "settingsThemeLightLabel":
+     653           1 :             MessageLookupByLibrary.simpleMessage("Light"),
+     654             :         "settingsThemeSystemDefaultLabel":
+     655           1 :             MessageLookupByLibrary.simpleMessage("System default"),
+     656           1 :         "settingsUnitsLabel": MessageLookupByLibrary.simpleMessage("Units"),
+     657           1 :         "settingsVolumeLabel": MessageLookupByLibrary.simpleMessage("Volume"),
+     658           1 :         "snackExample": MessageLookupByLibrary.simpleMessage(
+     659             :             "e.g. apple, ice cream, chocolate ..."),
+     660           1 :         "snackLabel": MessageLookupByLibrary.simpleMessage("Snack"),
+     661           1 :         "sugarLabel": MessageLookupByLibrary.simpleMessage("sugar"),
+     662           1 :         "suppliedLabel": MessageLookupByLibrary.simpleMessage("supplied"),
+     663           1 :         "unitLabel": MessageLookupByLibrary.simpleMessage("Unit"),
+     664           1 :         "weightLabel": MessageLookupByLibrary.simpleMessage("Weight"),
+     665             :         "yearsLabel": m3
+     666             :       };
+     667             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_tr.dart.func-sort-c.html b/coverage/html/generated/intl/messages_tr.dart.func-sort-c.html new file mode 100644 index 000000000..a197a8ef5 --- /dev/null +++ b/coverage/html/generated/intl/messages_tr.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_tr.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_tr.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:03890.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_tr.dart.func.html b/coverage/html/generated/intl/messages_tr.dart.func.html new file mode 100644 index 000000000..c7b98a61a --- /dev/null +++ b/coverage/html/generated/intl/messages_tr.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_tr.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_tr.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:03890.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/intl/messages_tr.dart.gcov.html b/coverage/html/generated/intl/messages_tr.dart.gcov.html new file mode 100644 index 000000000..90c67925a --- /dev/null +++ b/coverage/html/generated/intl/messages_tr.dart.gcov.html @@ -0,0 +1,703 @@ + + + + + + + LCOV - lcov.info - generated/intl/messages_tr.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated/intl - messages_tr.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:03890.0 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
+       2             : // This is a library that provides messages for a tr locale. All the
+       3             : // messages from the main program should be duplicated here with the same
+       4             : // function name.
+       5             : 
+       6             : // Ignore issues from commonly used lints in this file.
+       7             : // ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new
+       8             : // ignore_for_file:prefer_single_quotes,comment_references, directives_ordering
+       9             : // ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases
+      10             : // ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes
+      11             : // ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes
+      12             : 
+      13             : import 'package:intl/intl.dart';
+      14             : import 'package:intl/message_lookup_by_library.dart';
+      15             : 
+      16           0 : final messages = new MessageLookup();
+      17             : 
+      18             : typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
+      19             : 
+      20             : class MessageLookup extends MessageLookupByLibrary {
+      21           0 :   String get localeName => 'tr';
+      22             : 
+      23           0 :   static String m0(versionNumber) => "Sürüm ${versionNumber}";
+      24             : 
+      25           0 :   static String m1(pctCarbs, pctFats, pctProteins) =>
+      26           0 :       "%${pctCarbs} karbonhidrat, %${pctFats} yağ, %${pctProteins} protein";
+      27             : 
+      28           0 :   static String m2(riskValue) => "Eşlik eden hastalık riski: ${riskValue}";
+      29             : 
+      30           0 :   static String m3(age) => "${age} yaş";
+      31             : 
+      32             :   final messages = _notInlinedMessages(_notInlinedMessages);
+      33           0 :   static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
+      34           0 :         "activityExample": MessageLookupByLibrary.simpleMessage(
+      35             :             "örn. koşu, bisiklet, yoga ..."),
+      36           0 :         "activityLabel": MessageLookupByLibrary.simpleMessage("Aktivite"),
+      37           0 :         "addItemLabel": MessageLookupByLibrary.simpleMessage("Yeni Öğe Ekle:"),
+      38           0 :         "addLabel": MessageLookupByLibrary.simpleMessage("Ekle"),
+      39           0 :         "additionalInfoLabelCompendium2011": MessageLookupByLibrary.simpleMessage(
+      40             :             "\'2011 Fiziksel Aktiviteler Özeti\'\ntarafından sağlanan bilgiler"),
+      41             :         "additionalInfoLabelCustom":
+      42           0 :             MessageLookupByLibrary.simpleMessage("Özel Yemek Öğesi"),
+      43           0 :         "additionalInfoLabelFDC": MessageLookupByLibrary.simpleMessage(
+      44             :             "FoodData Central\'da\nDaha Fazla Bilgi"),
+      45           0 :         "additionalInfoLabelOFF": MessageLookupByLibrary.simpleMessage(
+      46             :             "OpenFoodFacts\'te\nDaha Fazla Bilgi"),
+      47             :         "additionalInfoLabelUnknown":
+      48           0 :             MessageLookupByLibrary.simpleMessage("Bilinmeyen Yemek Öğesi"),
+      49           0 :         "ageLabel": MessageLookupByLibrary.simpleMessage("Yaş"),
+      50           0 :         "allItemsLabel": MessageLookupByLibrary.simpleMessage("Tümü"),
+      51           0 :         "alphaVersionName": MessageLookupByLibrary.simpleMessage("[Alfa]"),
+      52           0 :         "appDescription": MessageLookupByLibrary.simpleMessage(
+      53             :             "OpenNutriTracker, gizliliğinize saygı duyan ücretsiz ve açık kaynaklı bir kalori ve besin takipçisidir."),
+      54             :         "appLicenseLabel":
+      55           0 :             MessageLookupByLibrary.simpleMessage("GPL-3.0 lisansı"),
+      56           0 :         "appTitle": MessageLookupByLibrary.simpleMessage("OpenNutriTracker"),
+      57             :         "appVersionName": m0,
+      58           0 :         "betaVersionName": MessageLookupByLibrary.simpleMessage("[Beta]"),
+      59           0 :         "bmiInfo": MessageLookupByLibrary.simpleMessage(
+      60             :             "Vücut Kitle İndeksi (VKİ), yetişkinlerde aşırı kilolu ve obeziteyi sınıflandırmak için kullanılan bir indekstir. Kilogram cinsinden ağırlığın, metre cinsinden boyun karesine bölünmesiyle hesaplanır (kg/m²).\n\nVKİ, yağ ve kas kütlesi arasında ayrım yapmaz ve bazı bireyler için yanıltıcı olabilir."),
+      61           0 :         "bmiLabel": MessageLookupByLibrary.simpleMessage("VKİ"),
+      62             :         "breakfastExample":
+      63           0 :             MessageLookupByLibrary.simpleMessage("örn. tahıl, süt, kahve ..."),
+      64           0 :         "breakfastLabel": MessageLookupByLibrary.simpleMessage("Kahvaltı"),
+      65           0 :         "burnedLabel": MessageLookupByLibrary.simpleMessage("yakılan"),
+      66           0 :         "buttonNextLabel": MessageLookupByLibrary.simpleMessage("İLERİ"),
+      67           0 :         "buttonSaveLabel": MessageLookupByLibrary.simpleMessage("Kaydet"),
+      68           0 :         "buttonStartLabel": MessageLookupByLibrary.simpleMessage("BAŞLA"),
+      69           0 :         "buttonYesLabel": MessageLookupByLibrary.simpleMessage("EVET"),
+      70             :         "calculationsMacronutrientsDistributionLabel":
+      71           0 :             MessageLookupByLibrary.simpleMessage("Makro besin dağılımı"),
+      72             :         "calculationsMacrosDistribution": m1,
+      73             :         "calculationsRecommendedLabel":
+      74           0 :             MessageLookupByLibrary.simpleMessage("(önerilen)"),
+      75             :         "calculationsTDEEIOM2006Label":
+      76           0 :             MessageLookupByLibrary.simpleMessage("Tıp Enstitüsü Denklemi"),
+      77             :         "calculationsTDEELabel":
+      78           0 :             MessageLookupByLibrary.simpleMessage("TDEE denklemi"),
+      79             :         "carbohydrateLabel":
+      80           0 :             MessageLookupByLibrary.simpleMessage("karbonhidrat"),
+      81           0 :         "carbsLabel": MessageLookupByLibrary.simpleMessage("karbonhidrat"),
+      82             :         "chooseWeightGoalLabel":
+      83           0 :             MessageLookupByLibrary.simpleMessage("Kilo Hedefi Seçin"),
+      84           0 :         "cmLabel": MessageLookupByLibrary.simpleMessage("cm"),
+      85           0 :         "copyDialogTitle": MessageLookupByLibrary.simpleMessage(
+      86             :             "Hangi öğüne eklemek istiyorsunuz?"),
+      87           0 :         "copyOrDeleteTimeDialogContent": MessageLookupByLibrary.simpleMessage(
+      88             :             "\"Bugüne kopyala\" seçeneğine tıklayarak öğünü bugüne kopyalayabilirsiniz. \"Sil\" seçeneği ile öğün kaldırılabilir."),
+      89             :         "copyOrDeleteTimeDialogTitle":
+      90           0 :             MessageLookupByLibrary.simpleMessage("Ne yapılmalı?"),
+      91           0 :         "createCustomDialogContent": MessageLookupByLibrary.simpleMessage(
+      92             :             "Özel bir yemek öğesi oluşturmak istiyor musunuz?"),
+      93           0 :         "createCustomDialogTitle": MessageLookupByLibrary.simpleMessage(
+      94             :             "Özel yemek öğesi oluşturulsun mu?"),
+      95           0 :         "dataCollectionLabel": MessageLookupByLibrary.simpleMessage(
+      96             :             "Anonim kullanım verileri sağlayarak geliştirmeyi destekleyin"),
+      97           0 :         "deleteTimeDialogContent": MessageLookupByLibrary.simpleMessage(
+      98             :             "Seçili öğeyi silmek istiyor musunuz?"),
+      99             :         "deleteTimeDialogTitle":
+     100           0 :             MessageLookupByLibrary.simpleMessage("Öğe Silinsin mi?"),
+     101           0 :         "dialogCancelLabel": MessageLookupByLibrary.simpleMessage("İPTAL"),
+     102             :         "dialogCopyLabel":
+     103           0 :             MessageLookupByLibrary.simpleMessage("BUGÜNE KOPYALA"),
+     104           0 :         "dialogDeleteLabel": MessageLookupByLibrary.simpleMessage("SİL"),
+     105           0 :         "dialogOKLabel": MessageLookupByLibrary.simpleMessage("TAMAM"),
+     106           0 :         "diaryLabel": MessageLookupByLibrary.simpleMessage("Günlük"),
+     107           0 :         "dinnerExample": MessageLookupByLibrary.simpleMessage(
+     108             :             "örn. çorba, tavuk, şarap ..."),
+     109           0 :         "dinnerLabel": MessageLookupByLibrary.simpleMessage("Akşam Yemeği"),
+     110           0 :         "disclaimerText": MessageLookupByLibrary.simpleMessage(
+     111             :             "OpenNutriTracker tıbbi bir uygulama değildir. Sağlanan tüm veriler doğrulanmamıştır ve dikkatle kullanılmalıdır. Lütfen sağlıklı bir yaşam tarzı sürdürün ve herhangi bir sorununuz varsa bir uzmana danışın. Hastalık, hamilelik veya emzirme döneminde kullanılması önerilmez.\n\n\nUygulama hala geliştirme aşamasındadır. Hatalar, buglar ve çökmeler meydana gelebilir."),
+     112             :         "editItemDialogTitle":
+     113           0 :             MessageLookupByLibrary.simpleMessage("Öğeyi düzenle"),
+     114           0 :         "editMealLabel": MessageLookupByLibrary.simpleMessage("Yemeği düzenle"),
+     115           0 :         "energyLabel": MessageLookupByLibrary.simpleMessage("enerji"),
+     116           0 :         "errorFetchingProductData": MessageLookupByLibrary.simpleMessage(
+     117             :             "Ürün verileri alınırken hata oluştu"),
+     118           0 :         "errorLoadingActivities": MessageLookupByLibrary.simpleMessage(
+     119             :             "Aktiviteler yüklenirken hata oluştu"),
+     120           0 :         "errorMealSave": MessageLookupByLibrary.simpleMessage(
+     121             :             "Yemek kaydedilirken hata oluştu. Doğru yemek bilgilerini girdiniz mi?"),
+     122           0 :         "errorOpeningBrowser": MessageLookupByLibrary.simpleMessage(
+     123             :             "Tarayıcı uygulaması açılırken hata oluştu"),
+     124           0 :         "errorOpeningEmail": MessageLookupByLibrary.simpleMessage(
+     125             :             "E-posta uygulaması açılırken hata oluştu"),
+     126             :         "errorProductNotFound":
+     127           0 :             MessageLookupByLibrary.simpleMessage("Ürün bulunamadı"),
+     128           0 :         "fatLabel": MessageLookupByLibrary.simpleMessage("yağ"),
+     129           0 :         "fiberLabel": MessageLookupByLibrary.simpleMessage("lif"),
+     130           0 :         "genderFemaleLabel": MessageLookupByLibrary.simpleMessage("♀ kadın"),
+     131           0 :         "genderLabel": MessageLookupByLibrary.simpleMessage("Cinsiyet"),
+     132           0 :         "genderMaleLabel": MessageLookupByLibrary.simpleMessage("♂ erkek"),
+     133           0 :         "goalGainWeight": MessageLookupByLibrary.simpleMessage("Kilo Al"),
+     134           0 :         "goalLabel": MessageLookupByLibrary.simpleMessage("Hedef"),
+     135           0 :         "goalLoseWeight": MessageLookupByLibrary.simpleMessage("Kilo Ver"),
+     136             :         "goalMaintainWeight":
+     137           0 :             MessageLookupByLibrary.simpleMessage("Kiloyu Koru"),
+     138           0 :         "gramMilliliterUnit": MessageLookupByLibrary.simpleMessage("g/ml"),
+     139           0 :         "gramUnit": MessageLookupByLibrary.simpleMessage("g"),
+     140           0 :         "heightLabel": MessageLookupByLibrary.simpleMessage("Boy"),
+     141           0 :         "homeLabel": MessageLookupByLibrary.simpleMessage("Ana Sayfa"),
+     142             :         "infoAddedActivityLabel":
+     143           0 :             MessageLookupByLibrary.simpleMessage("Yeni aktivite eklendi"),
+     144             :         "infoAddedIntakeLabel":
+     145           0 :             MessageLookupByLibrary.simpleMessage("Yeni alım eklendi"),
+     146             :         "itemDeletedSnackbar":
+     147           0 :             MessageLookupByLibrary.simpleMessage("Öğe silindi"),
+     148             :         "itemUpdatedSnackbar":
+     149           0 :             MessageLookupByLibrary.simpleMessage("Öğe güncellendi"),
+     150           0 :         "kcalLabel": MessageLookupByLibrary.simpleMessage("kalori"),
+     151           0 :         "kcalLeftLabel": MessageLookupByLibrary.simpleMessage("kalan kalori"),
+     152           0 :         "kgLabel": MessageLookupByLibrary.simpleMessage("kg"),
+     153           0 :         "lunchExample": MessageLookupByLibrary.simpleMessage(
+     154             :             "örn. pizza, salata, pilav ..."),
+     155           0 :         "lunchLabel": MessageLookupByLibrary.simpleMessage("Öğle Yemeği"),
+     156           0 :         "mealBrandsLabel": MessageLookupByLibrary.simpleMessage("Markalar"),
+     157           0 :         "mealCarbsLabel": MessageLookupByLibrary.simpleMessage(
+     158             :             "100 g/ml başına karbonhidrat"),
+     159             :         "mealFatLabel":
+     160           0 :             MessageLookupByLibrary.simpleMessage("100 g/ml başına yağ"),
+     161             :         "mealKcalLabel":
+     162           0 :             MessageLookupByLibrary.simpleMessage("100 g/ml başına kalori"),
+     163           0 :         "mealNameLabel": MessageLookupByLibrary.simpleMessage("Yemek adı"),
+     164             :         "mealProteinLabel":
+     165           0 :             MessageLookupByLibrary.simpleMessage("100 g/ml başına protein"),
+     166             :         "mealSizeLabel":
+     167           0 :             MessageLookupByLibrary.simpleMessage("Yemek boyutu (g/ml)"),
+     168             :         "mealSizeLabelImperial":
+     169           0 :             MessageLookupByLibrary.simpleMessage("Yemek boyutu (oz/fl oz)"),
+     170           0 :         "mealUnitLabel": MessageLookupByLibrary.simpleMessage("Yemek birimi"),
+     171           0 :         "milliliterUnit": MessageLookupByLibrary.simpleMessage("ml"),
+     172           0 :         "missingProductInfo": MessageLookupByLibrary.simpleMessage(
+     173             :             "Üründe gerekli kalori veya makrobesin bilgisi eksik"),
+     174           0 :         "noActivityRecentlyAddedLabel": MessageLookupByLibrary.simpleMessage(
+     175             :             "Son zamanlarda eklenen aktivite yok"),
+     176           0 :         "noMealsRecentlyAddedLabel": MessageLookupByLibrary.simpleMessage(
+     177             :             "Son zamanlarda eklenen yemek yok"),
+     178             :         "noResultsFound":
+     179           0 :             MessageLookupByLibrary.simpleMessage("Sonuç bulunamadı"),
+     180             :         "nothingAddedLabel":
+     181           0 :             MessageLookupByLibrary.simpleMessage("Hiçbir şey eklenmedi"),
+     182             :         "nutritionInfoLabel":
+     183           0 :             MessageLookupByLibrary.simpleMessage("Besin Bilgisi"),
+     184             :         "nutritionalStatusNormalWeight":
+     185           0 :             MessageLookupByLibrary.simpleMessage("Normal Kilolu"),
+     186             :         "nutritionalStatusObeseClassI":
+     187           0 :             MessageLookupByLibrary.simpleMessage("Obezite Sınıf I"),
+     188             :         "nutritionalStatusObeseClassII":
+     189           0 :             MessageLookupByLibrary.simpleMessage("Obezite Sınıf II"),
+     190             :         "nutritionalStatusObeseClassIII":
+     191           0 :             MessageLookupByLibrary.simpleMessage("Obezite Sınıf III"),
+     192             :         "nutritionalStatusPreObesity":
+     193           0 :             MessageLookupByLibrary.simpleMessage("Obezite Öncesi"),
+     194             :         "nutritionalStatusRiskAverage":
+     195           0 :             MessageLookupByLibrary.simpleMessage("Ortalama"),
+     196             :         "nutritionalStatusRiskIncreased":
+     197           0 :             MessageLookupByLibrary.simpleMessage("Artmış"),
+     198             :         "nutritionalStatusRiskLabel": m2,
+     199           0 :         "nutritionalStatusRiskLow": MessageLookupByLibrary.simpleMessage(
+     200             :             "Düşük \n(ancak diğer klinik \nsorunların riski artmış)"),
+     201             :         "nutritionalStatusRiskModerate":
+     202           0 :             MessageLookupByLibrary.simpleMessage("Orta"),
+     203             :         "nutritionalStatusRiskSevere":
+     204           0 :             MessageLookupByLibrary.simpleMessage("Ciddi"),
+     205             :         "nutritionalStatusRiskVerySevere":
+     206           0 :             MessageLookupByLibrary.simpleMessage("Çok Ciddi"),
+     207             :         "nutritionalStatusUnderweight":
+     208           0 :             MessageLookupByLibrary.simpleMessage("Düşük Kilolu"),
+     209           0 :         "offDisclaimer": MessageLookupByLibrary.simpleMessage(
+     210             :             "Bu uygulama tarafından size sağlanan veriler Open Food Facts veritabanından alınmıştır. Sağlanan bilgilerin doğruluğu, eksiksizliği veya güvenilirliği konusunda hiçbir garanti verilemez. Veriler \"olduğu gibi\" sağlanır ve verilerin kaynağı (Open Food Facts), verilerin kullanımından kaynaklanan herhangi bir zarardan sorumlu değildir."),
+     211             :         "onboardingActivityQuestionSubtitle":
+     212           0 :             MessageLookupByLibrary.simpleMessage(
+     213             :                 "Ne kadar aktifsiniz? (antrenmanlar hariç)"),
+     214             :         "onboardingBirthdayHint":
+     215           0 :             MessageLookupByLibrary.simpleMessage("Tarih Girin"),
+     216             :         "onboardingBirthdayQuestionSubtitle":
+     217           0 :             MessageLookupByLibrary.simpleMessage("Doğum gününüz ne zaman?"),
+     218             :         "onboardingEnterBirthdayLabel":
+     219           0 :             MessageLookupByLibrary.simpleMessage("Doğum Günü"),
+     220             :         "onboardingGenderQuestionSubtitle":
+     221           0 :             MessageLookupByLibrary.simpleMessage("Cinsiyetiniz nedir?"),
+     222           0 :         "onboardingGoalQuestionSubtitle": MessageLookupByLibrary.simpleMessage(
+     223             :             "Mevcut kilo hedefiniz nedir?"),
+     224             :         "onboardingHeightExampleHintCm":
+     225           0 :             MessageLookupByLibrary.simpleMessage("örn. 170"),
+     226             :         "onboardingHeightQuestionSubtitle":
+     227           0 :             MessageLookupByLibrary.simpleMessage("Mevcut boyunuz nedir?"),
+     228           0 :         "onboardingIntroDescription": MessageLookupByLibrary.simpleMessage(
+     229             :             "Başlamak için, uygulamanın günlük kalori hedefinizi hesaplamak için hakkınızda bazı bilgilere ihtiyacı var.\nHakkınızdaki tüm bilgiler cihazınızda güvenli bir şekilde saklanır."),
+     230             :         "onboardingKcalPerDayLabel":
+     231           0 :             MessageLookupByLibrary.simpleMessage("günlük kalori"),
+     232             :         "onboardingOverviewLabel":
+     233           0 :             MessageLookupByLibrary.simpleMessage("Genel Bakış"),
+     234           0 :         "onboardingSaveUserError": MessageLookupByLibrary.simpleMessage(
+     235             :             "Yanlış giriş, lütfen tekrar deneyin"),
+     236             :         "onboardingWeightExampleHintKg":
+     237           0 :             MessageLookupByLibrary.simpleMessage("örn. 60"),
+     238             :         "onboardingWeightQuestionSubtitle":
+     239           0 :             MessageLookupByLibrary.simpleMessage("Mevcut kilonuz nedir?"),
+     240             :         "onboardingWelcomeLabel":
+     241           0 :             MessageLookupByLibrary.simpleMessage("Hoş Geldiniz"),
+     242             :         "onboardingWrongHeightLabel":
+     243           0 :             MessageLookupByLibrary.simpleMessage("Doğru boyu girin"),
+     244             :         "onboardingWrongWeightLabel":
+     245           0 :             MessageLookupByLibrary.simpleMessage("Doğru kiloyu girin"),
+     246             :         "onboardingYourGoalLabel":
+     247           0 :             MessageLookupByLibrary.simpleMessage("Kalori hedefiniz:"),
+     248             :         "onboardingYourMacrosGoalLabel":
+     249           0 :             MessageLookupByLibrary.simpleMessage("Makrobesin hedefleriniz:"),
+     250             :         "paAmericanFootballGeneral":
+     251           0 :             MessageLookupByLibrary.simpleMessage("Amerikan futbolu"),
+     252             :         "paAmericanFootballGeneralDesc":
+     253           0 :             MessageLookupByLibrary.simpleMessage("dokunmalı, bayrak, genel"),
+     254           0 :         "paArcheryGeneral": MessageLookupByLibrary.simpleMessage("okçuluk"),
+     255             :         "paArcheryGeneralDesc":
+     256           0 :             MessageLookupByLibrary.simpleMessage("av amaçlı olmayan"),
+     257           0 :         "paAutoRacing": MessageLookupByLibrary.simpleMessage("araba yarışı"),
+     258             :         "paAutoRacingDesc":
+     259           0 :             MessageLookupByLibrary.simpleMessage("açık tekerlek"),
+     260             :         "paBackpackingGeneral":
+     261           0 :             MessageLookupByLibrary.simpleMessage("sırt çantalı gezme"),
+     262             :         "paBackpackingGeneralDesc":
+     263           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     264           0 :         "paBadmintonGeneral": MessageLookupByLibrary.simpleMessage("badminton"),
+     265           0 :         "paBadmintonGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     266             :             "sosyal tekler ve çiftler, genel"),
+     267             :         "paBasketballGeneral":
+     268           0 :             MessageLookupByLibrary.simpleMessage("basketbol"),
+     269             :         "paBasketballGeneralDesc":
+     270           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     271             :         "paBicyclingGeneral":
+     272           0 :             MessageLookupByLibrary.simpleMessage("bisiklet sürme"),
+     273           0 :         "paBicyclingGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     274             :         "paBicyclingMountainGeneral":
+     275           0 :             MessageLookupByLibrary.simpleMessage("dağ bisikleti"),
+     276             :         "paBicyclingMountainGeneralDesc":
+     277           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     278             :         "paBicyclingStationaryGeneral":
+     279           0 :             MessageLookupByLibrary.simpleMessage("sabit bisiklet"),
+     280             :         "paBicyclingStationaryGeneralDesc":
+     281           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     282           0 :         "paBilliardsGeneral": MessageLookupByLibrary.simpleMessage("bilardo"),
+     283           0 :         "paBilliardsGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     284           0 :         "paBowlingGeneral": MessageLookupByLibrary.simpleMessage("bowling"),
+     285           0 :         "paBowlingGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     286           0 :         "paBoxingBag": MessageLookupByLibrary.simpleMessage("boks"),
+     287           0 :         "paBoxingBagDesc": MessageLookupByLibrary.simpleMessage("kum torbası"),
+     288           0 :         "paBoxingGeneral": MessageLookupByLibrary.simpleMessage("boks"),
+     289             :         "paBoxingGeneralDesc":
+     290           0 :             MessageLookupByLibrary.simpleMessage("ringde, genel"),
+     291           0 :         "paBroomball": MessageLookupByLibrary.simpleMessage("broomball"),
+     292           0 :         "paBroomballDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     293             :         "paCalisthenicsGeneral":
+     294           0 :             MessageLookupByLibrary.simpleMessage("jimnastik"),
+     295           0 :         "paCalisthenicsGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     296             :             "hafif veya orta efor, genel (örn. sırt egzersizleri)"),
+     297           0 :         "paCanoeingGeneral": MessageLookupByLibrary.simpleMessage("kano"),
+     298           0 :         "paCanoeingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     299             :             "kürek çekme, keyif için, genel"),
+     300           0 :         "paCatch": MessageLookupByLibrary.simpleMessage("futbol veya beyzbol"),
+     301           0 :         "paCatchDesc": MessageLookupByLibrary.simpleMessage("top yakalama"),
+     302           0 :         "paCheerleading": MessageLookupByLibrary.simpleMessage("amigo"),
+     303           0 :         "paCheerleadingDesc": MessageLookupByLibrary.simpleMessage(
+     304             :             "jimnastik hareketleri, yarışma"),
+     305             :         "paChildrenGame":
+     306           0 :             MessageLookupByLibrary.simpleMessage("çocuk oyunları"),
+     307           0 :         "paChildrenGameDesc": MessageLookupByLibrary.simpleMessage(
+     308             :             "(örn. seksek, 4-kare, yakantop, oyun parkı aletleri, t-topu, direk topu, misket, arcade oyunları), orta efor"),
+     309             :         "paClimbingHillsNoLoadGeneral":
+     310           0 :             MessageLookupByLibrary.simpleMessage("yüksüz tepe tırmanışı"),
+     311             :         "paClimbingHillsNoLoadGeneralDesc":
+     312           0 :             MessageLookupByLibrary.simpleMessage("yüksüz"),
+     313           0 :         "paCricket": MessageLookupByLibrary.simpleMessage("kriket"),
+     314           0 :         "paCricketDesc": MessageLookupByLibrary.simpleMessage(
+     315             :             "vuruş, top atma, saha savunması"),
+     316           0 :         "paCroquet": MessageLookupByLibrary.simpleMessage("kroket"),
+     317           0 :         "paCroquetDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     318           0 :         "paCurling": MessageLookupByLibrary.simpleMessage("curling"),
+     319           0 :         "paCurlingDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     320             :         "paDancingAerobicGeneral":
+     321           0 :             MessageLookupByLibrary.simpleMessage("aerobik"),
+     322             :         "paDancingAerobicGeneralDesc":
+     323           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     324           0 :         "paDancingGeneral": MessageLookupByLibrary.simpleMessage("genel dans"),
+     325           0 :         "paDancingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     326             :             "örn. disko, halk dansı, İrlanda step dansı, sıra dansı, polka, contra, ülke dansları"),
+     327           0 :         "paDartsWall": MessageLookupByLibrary.simpleMessage("dart"),
+     328             :         "paDartsWallDesc":
+     329           0 :             MessageLookupByLibrary.simpleMessage("duvar veya çim"),
+     330           0 :         "paDivingGeneral": MessageLookupByLibrary.simpleMessage("dalış"),
+     331           0 :         "paDivingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     332             :             "cilt dalışı, scuba dalışı, genel"),
+     333             :         "paDivingSpringboardPlatform":
+     334           0 :             MessageLookupByLibrary.simpleMessage("dalış"),
+     335             :         "paDivingSpringboardPlatformDesc":
+     336           0 :             MessageLookupByLibrary.simpleMessage("tramplen veya platform"),
+     337           0 :         "paFencing": MessageLookupByLibrary.simpleMessage("eskrim"),
+     338           0 :         "paFencingDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     339           0 :         "paFrisbee": MessageLookupByLibrary.simpleMessage("frizbi oynama"),
+     340           0 :         "paFrisbeeDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     341           0 :         "paGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     342           0 :         "paGolfGeneral": MessageLookupByLibrary.simpleMessage("golf"),
+     343           0 :         "paGolfGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     344             :         "paGymnasticsGeneral":
+     345           0 :             MessageLookupByLibrary.simpleMessage("jimnastik"),
+     346             :         "paGymnasticsGeneralDesc":
+     347           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     348           0 :         "paHackySack": MessageLookupByLibrary.simpleMessage("hacky sack"),
+     349           0 :         "paHackySackDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     350           0 :         "paHandballGeneral": MessageLookupByLibrary.simpleMessage("hentbol"),
+     351           0 :         "paHandballGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     352           0 :         "paHangGliding": MessageLookupByLibrary.simpleMessage("yamaç paraşütü"),
+     353           0 :         "paHangGlidingDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     354             :         "paHeadingBicycling":
+     355           0 :             MessageLookupByLibrary.simpleMessage("bisiklet sürme"),
+     356             :         "paHeadingConditionalExercise":
+     357           0 :             MessageLookupByLibrary.simpleMessage("kondisyon egzersizi"),
+     358           0 :         "paHeadingDancing": MessageLookupByLibrary.simpleMessage("dans"),
+     359           0 :         "paHeadingRunning": MessageLookupByLibrary.simpleMessage("koşu"),
+     360           0 :         "paHeadingSports": MessageLookupByLibrary.simpleMessage("sporlar"),
+     361           0 :         "paHeadingWalking": MessageLookupByLibrary.simpleMessage("yürüyüş"),
+     362             :         "paHeadingWaterActivities":
+     363           0 :             MessageLookupByLibrary.simpleMessage("su aktiviteleri"),
+     364             :         "paHeadingWinterActivities":
+     365           0 :             MessageLookupByLibrary.simpleMessage("kış aktiviteleri"),
+     366             :         "paHikingCrossCountry":
+     367           0 :             MessageLookupByLibrary.simpleMessage("doğa yürüyüşü"),
+     368             :         "paHikingCrossCountryDesc":
+     369           0 :             MessageLookupByLibrary.simpleMessage("kırsal alanda"),
+     370           0 :         "paHockeyField": MessageLookupByLibrary.simpleMessage("çim hokeyi"),
+     371           0 :         "paHockeyFieldDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     372             :         "paHorseRidingGeneral":
+     373           0 :             MessageLookupByLibrary.simpleMessage("at binme"),
+     374             :         "paHorseRidingGeneralDesc":
+     375           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     376             :         "paIceHockeyGeneral":
+     377           0 :             MessageLookupByLibrary.simpleMessage("buz hokeyi"),
+     378           0 :         "paIceHockeyGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     379             :         "paIceSkatingGeneral":
+     380           0 :             MessageLookupByLibrary.simpleMessage("buz pateni"),
+     381             :         "paIceSkatingGeneralDesc":
+     382           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     383           0 :         "paJaiAlai": MessageLookupByLibrary.simpleMessage("jai alai"),
+     384           0 :         "paJaiAlaiDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     385           0 :         "paJoggingGeneral": MessageLookupByLibrary.simpleMessage("hafif koşu"),
+     386           0 :         "paJoggingGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     387           0 :         "paJuggling": MessageLookupByLibrary.simpleMessage("jonglörlük"),
+     388           0 :         "paJugglingDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     389           0 :         "paKayakingModerate": MessageLookupByLibrary.simpleMessage("kano"),
+     390             :         "paKayakingModerateDesc":
+     391           0 :             MessageLookupByLibrary.simpleMessage("orta efor"),
+     392           0 :         "paKickball": MessageLookupByLibrary.simpleMessage("kickball"),
+     393           0 :         "paKickballDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     394           0 :         "paLacrosse": MessageLookupByLibrary.simpleMessage("lakros"),
+     395           0 :         "paLacrosseDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     396           0 :         "paLawnBowling": MessageLookupByLibrary.simpleMessage("çim bowling"),
+     397             :         "paLawnBowlingDesc":
+     398           0 :             MessageLookupByLibrary.simpleMessage("bocce topu, açık hava"),
+     399             :         "paMartialArtsModerate":
+     400           0 :             MessageLookupByLibrary.simpleMessage("dövüş sanatları"),
+     401           0 :         "paMartialArtsModerateDesc": MessageLookupByLibrary.simpleMessage(
+     402             :             "farklı türler, orta tempo (örn. judo, jujitsu, karate, kick boks, tekvando, tai-bo, Muay Thai boksu)"),
+     403             :         "paMartialArtsSlower":
+     404           0 :             MessageLookupByLibrary.simpleMessage("dövüş sanatları"),
+     405           0 :         "paMartialArtsSlowerDesc": MessageLookupByLibrary.simpleMessage(
+     406             :             "farklı türler, yavaş tempo, acemi performansçılar, pratik"),
+     407           0 :         "paMotoCross": MessageLookupByLibrary.simpleMessage("motokros"),
+     408           0 :         "paMotoCrossDesc": MessageLookupByLibrary.simpleMessage(
+     409             :             "off-road motor sporları, arazi aracı, genel"),
+     410           0 :         "paMountainClimbing": MessageLookupByLibrary.simpleMessage("tırmanış"),
+     411             :         "paMountainClimbingDesc":
+     412           0 :             MessageLookupByLibrary.simpleMessage("kaya veya dağ tırmanışı"),
+     413           0 :         "paOrienteering": MessageLookupByLibrary.simpleMessage("oryantiring"),
+     414           0 :         "paOrienteeringDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     415             :         "paPaddleBoarding":
+     416           0 :             MessageLookupByLibrary.simpleMessage("paddle board"),
+     417           0 :         "paPaddleBoardingDesc": MessageLookupByLibrary.simpleMessage("ayakta"),
+     418           0 :         "paPaddleBoat": MessageLookupByLibrary.simpleMessage("pedallı tekne"),
+     419           0 :         "paPaddleBoatDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     420           0 :         "paPaddleball": MessageLookupByLibrary.simpleMessage("paddle topu"),
+     421             :         "paPaddleballDesc":
+     422           0 :             MessageLookupByLibrary.simpleMessage("rahat, genel"),
+     423           0 :         "paPoloHorse": MessageLookupByLibrary.simpleMessage("polo"),
+     424           0 :         "paPoloHorseDesc": MessageLookupByLibrary.simpleMessage("at üstünde"),
+     425           0 :         "paRacquetball": MessageLookupByLibrary.simpleMessage("raketbol"),
+     426           0 :         "paRacquetballDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     427             :         "paResistanceTraining":
+     428           0 :             MessageLookupByLibrary.simpleMessage("direnç antrenmanı"),
+     429           0 :         "paResistanceTrainingDesc": MessageLookupByLibrary.simpleMessage(
+     430             :             "ağırlık kaldırma, serbest ağırlık, nautilus veya universal"),
+     431             :         "paRodeoSportGeneralModerate":
+     432           0 :             MessageLookupByLibrary.simpleMessage("rodeo sporları"),
+     433             :         "paRodeoSportGeneralModerateDesc":
+     434           0 :             MessageLookupByLibrary.simpleMessage("genel, orta efor"),
+     435           0 :         "paRollerbladingLight": MessageLookupByLibrary.simpleMessage("paten"),
+     436             :         "paRollerbladingLightDesc":
+     437           0 :             MessageLookupByLibrary.simpleMessage("inline paten"),
+     438             :         "paRopeJumpingGeneral":
+     439           0 :             MessageLookupByLibrary.simpleMessage("ip atlama"),
+     440           0 :         "paRopeJumpingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     441             :             "orta tempo, dakikada 100-120 atlama, genel, iki ayak atlama, düz zıplama"),
+     442             :         "paRopeSkippingGeneral":
+     443           0 :             MessageLookupByLibrary.simpleMessage("ip atlama"),
+     444             :         "paRopeSkippingGeneralDesc":
+     445           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     446           0 :         "paRugbyCompetitive": MessageLookupByLibrary.simpleMessage("ragbi"),
+     447             :         "paRugbyCompetitiveDesc":
+     448           0 :             MessageLookupByLibrary.simpleMessage("birlik, takım, yarışma"),
+     449           0 :         "paRugbyNonCompetitive": MessageLookupByLibrary.simpleMessage("ragbi"),
+     450             :         "paRugbyNonCompetitiveDesc":
+     451           0 :             MessageLookupByLibrary.simpleMessage("dokunmalı, yarışma dışı"),
+     452           0 :         "paRunningGeneral": MessageLookupByLibrary.simpleMessage("koşu"),
+     453           0 :         "paRunningGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     454           0 :         "paSailingGeneral": MessageLookupByLibrary.simpleMessage("yelken"),
+     455           0 :         "paSailingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     456             :             "tekne ve tahta yelken, rüzgar sörfü, buz yelkeni, genel"),
+     457           0 :         "paShuffleboard": MessageLookupByLibrary.simpleMessage("shuffleboard"),
+     458           0 :         "paShuffleboardDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     459             :         "paSkateboardingGeneral":
+     460           0 :             MessageLookupByLibrary.simpleMessage("kaykay"),
+     461             :         "paSkateboardingGeneralDesc":
+     462           0 :             MessageLookupByLibrary.simpleMessage("genel, orta efor"),
+     463           0 :         "paSkatingRoller": MessageLookupByLibrary.simpleMessage("paten"),
+     464           0 :         "paSkatingRollerDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     465           0 :         "paSkiingGeneral": MessageLookupByLibrary.simpleMessage("kayak"),
+     466           0 :         "paSkiingGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     467             :         "paSkiingWaterWakeboarding":
+     468           0 :             MessageLookupByLibrary.simpleMessage("su kayağı"),
+     469             :         "paSkiingWaterWakeboardingDesc":
+     470           0 :             MessageLookupByLibrary.simpleMessage("su kayağı veya wakeboard"),
+     471           0 :         "paSkydiving": MessageLookupByLibrary.simpleMessage("serbest paraşüt"),
+     472           0 :         "paSkydivingDesc": MessageLookupByLibrary.simpleMessage(
+     473             :             "serbest paraşüt, base jumping, bungee jumping"),
+     474           0 :         "paSnorkeling": MessageLookupByLibrary.simpleMessage("şnorkel"),
+     475           0 :         "paSnorkelingDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     476             :         "paSnowShovingModerate":
+     477           0 :             MessageLookupByLibrary.simpleMessage("kar küreme"),
+     478             :         "paSnowShovingModerateDesc":
+     479           0 :             MessageLookupByLibrary.simpleMessage("elle, ılımlı çaba"),
+     480           0 :         "paSoccerGeneral": MessageLookupByLibrary.simpleMessage("futbol"),
+     481             :         "paSoccerGeneralDesc":
+     482           0 :             MessageLookupByLibrary.simpleMessage("rahat, genel"),
+     483             :         "paSoftballBaseballGeneral":
+     484           0 :             MessageLookupByLibrary.simpleMessage("softball / beyzbol"),
+     485           0 :         "paSoftballBaseballGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     486             :             "hızlı veya yavaş atış, genel"),
+     487           0 :         "paSquashGeneral": MessageLookupByLibrary.simpleMessage("squash"),
+     488           0 :         "paSquashGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     489           0 :         "paSurfing": MessageLookupByLibrary.simpleMessage("sörf"),
+     490             :         "paSurfingDesc":
+     491           0 :             MessageLookupByLibrary.simpleMessage("vücut veya tahta, genel"),
+     492           0 :         "paSwimmingGeneral": MessageLookupByLibrary.simpleMessage("yüzme"),
+     493           0 :         "paSwimmingGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     494             :             "su üzerinde durma, orta efor, genel"),
+     495             :         "paTableTennisGeneral":
+     496           0 :             MessageLookupByLibrary.simpleMessage("masa tenisi"),
+     497             :         "paTableTennisGeneralDesc":
+     498           0 :             MessageLookupByLibrary.simpleMessage("masa tenisi, ping pong"),
+     499             :         "paTaiChiQiGongGeneral":
+     500           0 :             MessageLookupByLibrary.simpleMessage("tai chi, qi gong"),
+     501             :         "paTaiChiQiGongGeneralDesc":
+     502           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     503           0 :         "paTennisGeneral": MessageLookupByLibrary.simpleMessage("tenis"),
+     504           0 :         "paTennisGeneralDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     505           0 :         "paTrackField": MessageLookupByLibrary.simpleMessage("atletizm"),
+     506           0 :         "paTrackField1Desc": MessageLookupByLibrary.simpleMessage(
+     507             :             "(örn. gülle atma, disk atma, çekiç atma)"),
+     508           0 :         "paTrackField2Desc": MessageLookupByLibrary.simpleMessage(
+     509             :             "(örn. yüksek atlama, uzun atlama, üç adım atlama, cirit atma, sırıkla atlama)"),
+     510           0 :         "paTrackField3Desc": MessageLookupByLibrary.simpleMessage(
+     511             :             "(örn. su engelli koşu, engelli koşu)"),
+     512           0 :         "paTrampolineLight": MessageLookupByLibrary.simpleMessage("trampolin"),
+     513             :         "paTrampolineLightDesc":
+     514           0 :             MessageLookupByLibrary.simpleMessage("eğlence amaçlı"),
+     515             :         "paUnicyclingGeneral":
+     516           0 :             MessageLookupByLibrary.simpleMessage("tek tekerlekli bisiklet"),
+     517             :         "paUnicyclingGeneralDesc":
+     518           0 :             MessageLookupByLibrary.simpleMessage("genel"),
+     519           0 :         "paVolleyballGeneral": MessageLookupByLibrary.simpleMessage("voleybol"),
+     520           0 :         "paVolleyballGeneralDesc": MessageLookupByLibrary.simpleMessage(
+     521             :             "yarışma dışı, 6 - 9 kişilik takım, genel"),
+     522           0 :         "paWalkingForPleasure": MessageLookupByLibrary.simpleMessage("yürüyüş"),
+     523             :         "paWalkingForPleasureDesc":
+     524           0 :             MessageLookupByLibrary.simpleMessage("keyif için"),
+     525             :         "paWalkingTheDog":
+     526           0 :             MessageLookupByLibrary.simpleMessage("köpek gezdirme"),
+     527           0 :         "paWalkingTheDogDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     528           0 :         "paWallyball": MessageLookupByLibrary.simpleMessage("wallyball"),
+     529           0 :         "paWallyballDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     530           0 :         "paWaterAerobics": MessageLookupByLibrary.simpleMessage("su egzersizi"),
+     531             :         "paWaterAerobicsDesc":
+     532           0 :             MessageLookupByLibrary.simpleMessage("su aerobiği, su jimnastiği"),
+     533           0 :         "paWaterPolo": MessageLookupByLibrary.simpleMessage("su topu"),
+     534           0 :         "paWaterPoloDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     535             :         "paWaterVolleyball":
+     536           0 :             MessageLookupByLibrary.simpleMessage("su voleybolu"),
+     537           0 :         "paWaterVolleyballDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     538             :         "paWateraerobicsCalisthenics":
+     539           0 :             MessageLookupByLibrary.simpleMessage("su aerobiği"),
+     540             :         "paWateraerobicsCalisthenicsDesc":
+     541           0 :             MessageLookupByLibrary.simpleMessage("su aerobiği, su jimnastiği"),
+     542           0 :         "paWrestling": MessageLookupByLibrary.simpleMessage("güreş"),
+     543           0 :         "paWrestlingDesc": MessageLookupByLibrary.simpleMessage("genel"),
+     544           0 :         "palActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     545             :             "Çoğunlukla işte ayakta durmak veya yürümek ve aktif boş zaman aktiviteleri"),
+     546           0 :         "palActiveLabel": MessageLookupByLibrary.simpleMessage("Aktif"),
+     547           0 :         "palLowActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     548             :             "örn. işte oturmak veya ayakta durmak ve hafif boş zaman aktiviteleri"),
+     549           0 :         "palLowLActiveLabel": MessageLookupByLibrary.simpleMessage("Az Aktif"),
+     550           0 :         "palSedentaryDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     551             :             "örn. ofis işi ve çoğunlukla oturarak geçirilen boş zaman aktiviteleri"),
+     552           0 :         "palSedentaryLabel": MessageLookupByLibrary.simpleMessage("Hareketsiz"),
+     553           0 :         "palVeryActiveDescriptionLabel": MessageLookupByLibrary.simpleMessage(
+     554             :             "Çoğunlukla işte yürümek, koşmak veya ağırlık taşımak ve aktif boş zaman aktiviteleri"),
+     555           0 :         "palVeryActiveLabel": MessageLookupByLibrary.simpleMessage("Çok Aktif"),
+     556             :         "per100gmlLabel":
+     557           0 :             MessageLookupByLibrary.simpleMessage("100g/ml başına"),
+     558             :         "privacyPolicyLabel":
+     559           0 :             MessageLookupByLibrary.simpleMessage("Gizlilik politikası"),
+     560           0 :         "profileLabel": MessageLookupByLibrary.simpleMessage("Profil"),
+     561           0 :         "proteinLabel": MessageLookupByLibrary.simpleMessage("protein"),
+     562           0 :         "quantityLabel": MessageLookupByLibrary.simpleMessage("Miktar"),
+     563           0 :         "readLabel": MessageLookupByLibrary.simpleMessage(
+     564             :             "Gizlilik politikasını okudum ve kabul ediyorum."),
+     565             :         "recentlyAddedLabel":
+     566           0 :             MessageLookupByLibrary.simpleMessage("Son Eklenenler"),
+     567           0 :         "reportErrorDialogText": MessageLookupByLibrary.simpleMessage(
+     568             :             "Geliştiriciye bir hata bildirmek istiyor musunuz?"),
+     569           0 :         "retryLabel": MessageLookupByLibrary.simpleMessage("Tekrar dene"),
+     570           0 :         "saturatedFatLabel": MessageLookupByLibrary.simpleMessage("doymuş yağ"),
+     571           0 :         "scanProductLabel": MessageLookupByLibrary.simpleMessage("Ürün Tara"),
+     572           0 :         "searchDefaultLabel": MessageLookupByLibrary.simpleMessage(
+     573             :             "Lütfen bir arama kelimesi girin"),
+     574           0 :         "searchFoodPage": MessageLookupByLibrary.simpleMessage("Yiyecek"),
+     575           0 :         "searchLabel": MessageLookupByLibrary.simpleMessage("Ara"),
+     576           0 :         "searchProductsPage": MessageLookupByLibrary.simpleMessage("Ürünler"),
+     577             :         "searchResultsLabel":
+     578           0 :             MessageLookupByLibrary.simpleMessage("Arama sonuçları"),
+     579             :         "selectGenderDialogLabel":
+     580           0 :             MessageLookupByLibrary.simpleMessage("Cinsiyet Seçin"),
+     581             :         "selectHeightDialogLabel":
+     582           0 :             MessageLookupByLibrary.simpleMessage("Boy Seçin"),
+     583             :         "selectPalCategoryLabel":
+     584           0 :             MessageLookupByLibrary.simpleMessage("Aktivite Seviyesi Seçin"),
+     585             :         "selectWeightDialogLabel":
+     586           0 :             MessageLookupByLibrary.simpleMessage("Kilo Seçin"),
+     587           0 :         "sendAnonymousUserData": MessageLookupByLibrary.simpleMessage(
+     588             :             "Anonim kullanım verilerini gönder"),
+     589             :         "servingSizeLabelImperial":
+     590           0 :             MessageLookupByLibrary.simpleMessage("Porsiyon boyutu (oz/fl oz)"),
+     591             :         "servingSizeLabelMetric":
+     592           0 :             MessageLookupByLibrary.simpleMessage("Porsiyon boyutu (g/ml)"),
+     593           0 :         "settingAboutLabel": MessageLookupByLibrary.simpleMessage("Hakkında"),
+     594             :         "settingFeedbackLabel":
+     595           0 :             MessageLookupByLibrary.simpleMessage("Geri Bildirim"),
+     596             :         "settingsCalculationsLabel":
+     597           0 :             MessageLookupByLibrary.simpleMessage("Hesaplamalar"),
+     598             :         "settingsDisclaimerLabel":
+     599           0 :             MessageLookupByLibrary.simpleMessage("Sorumluluk Reddi"),
+     600           0 :         "settingsDistanceLabel": MessageLookupByLibrary.simpleMessage("Mesafe"),
+     601           0 :         "settingsLabel": MessageLookupByLibrary.simpleMessage("Ayarlar"),
+     602             :         "settingsLicensesLabel":
+     603           0 :             MessageLookupByLibrary.simpleMessage("Lisanslar"),
+     604           0 :         "settingsMassLabel": MessageLookupByLibrary.simpleMessage("Kütle"),
+     605             :         "settingsPrivacySettings":
+     606           0 :             MessageLookupByLibrary.simpleMessage("Gizlilik Ayarları"),
+     607             :         "settingsReportErrorLabel":
+     608           0 :             MessageLookupByLibrary.simpleMessage("Hata Bildir"),
+     609             :         "settingsSourceCodeLabel":
+     610           0 :             MessageLookupByLibrary.simpleMessage("Kaynak Kodu"),
+     611           0 :         "settingsThemeDarkLabel": MessageLookupByLibrary.simpleMessage("Koyu"),
+     612           0 :         "settingsThemeLabel": MessageLookupByLibrary.simpleMessage("Tema"),
+     613           0 :         "settingsThemeLightLabel": MessageLookupByLibrary.simpleMessage("Açık"),
+     614             :         "settingsThemeSystemDefaultLabel":
+     615           0 :             MessageLookupByLibrary.simpleMessage("Sistem varsayılanı"),
+     616           0 :         "settingsUnitsLabel": MessageLookupByLibrary.simpleMessage("Birimler"),
+     617           0 :         "settingsVolumeLabel": MessageLookupByLibrary.simpleMessage("Hacim"),
+     618           0 :         "snackExample": MessageLookupByLibrary.simpleMessage(
+     619             :             "örn. elma, dondurma, çikolata ..."),
+     620           0 :         "snackLabel": MessageLookupByLibrary.simpleMessage("Atıştırmalık"),
+     621           0 :         "sugarLabel": MessageLookupByLibrary.simpleMessage("şeker"),
+     622           0 :         "suppliedLabel": MessageLookupByLibrary.simpleMessage("alınan"),
+     623           0 :         "unitLabel": MessageLookupByLibrary.simpleMessage("Birim"),
+     624           0 :         "weightLabel": MessageLookupByLibrary.simpleMessage("Kilo"),
+     625             :         "yearsLabel": m3
+     626             :       };
+     627             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/l10n.dart.func-sort-c.html b/coverage/html/generated/l10n.dart.func-sort-c.html new file mode 100644 index 000000000..59e35c7eb --- /dev/null +++ b/coverage/html/generated/l10n.dart.func-sort-c.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/l10n.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated - l10n.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:4012513.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/l10n.dart.func.html b/coverage/html/generated/l10n.dart.func.html new file mode 100644 index 000000000..343efece4 --- /dev/null +++ b/coverage/html/generated/l10n.dart.func.html @@ -0,0 +1,72 @@ + + + + + + + LCOV - lcov.info - generated/l10n.dart - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated - l10n.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:4012513.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + +

Function Name Sort by function nameHit count Sort by hit count
+
+
+ + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/generated/l10n.dart.gcov.html b/coverage/html/generated/l10n.dart.gcov.html new file mode 100644 index 000000000..b3d1a00a8 --- /dev/null +++ b/coverage/html/generated/l10n.dart.gcov.html @@ -0,0 +1,4227 @@ + + + + + + + LCOV - lcov.info - generated/l10n.dart + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - generated - l10n.dart (source / functions)HitTotalCoverage
Test:lcov.infoLines:4012513.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ + + + + + + + +

+
          Line data    Source code
+
+       1             : // GENERATED CODE - DO NOT MODIFY BY HAND
+       2             : import 'package:flutter/material.dart';
+       3             : import 'package:intl/intl.dart';
+       4             : import 'intl/messages_all.dart';
+       5             : 
+       6             : // **************************************************************************
+       7             : // Generator: Flutter Intl IDE plugin
+       8             : // Made by Localizely
+       9             : // **************************************************************************
+      10             : 
+      11             : // ignore_for_file: non_constant_identifier_names, lines_longer_than_80_chars
+      12             : // ignore_for_file: join_return_with_assignment, prefer_final_in_for_each
+      13             : // ignore_for_file: avoid_redundant_argument_values, avoid_escaping_inner_quotes
+      14             : 
+      15             : class S {
+      16           1 :   S();
+      17             : 
+      18             :   static S? _current;
+      19             : 
+      20           0 :   static S get current {
+      21           0 :     assert(_current != null,
+      22             :         'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.');
+      23             :     return _current!;
+      24             :   }
+      25             : 
+      26             :   static const AppLocalizationDelegate delegate = AppLocalizationDelegate();
+      27             : 
+      28           1 :   static Future<S> load(Locale locale) {
+      29           1 :     final name = (locale.countryCode?.isEmpty ?? false)
+      30           0 :         ? locale.languageCode
+      31           1 :         : locale.toString();
+      32           1 :     final localeName = Intl.canonicalizedLocale(name);
+      33           3 :     return initializeMessages(localeName).then((_) {
+      34           1 :       Intl.defaultLocale = localeName;
+      35           1 :       final instance = S();
+      36             :       S._current = instance;
+      37             : 
+      38             :       return instance;
+      39             :     });
+      40             :   }
+      41             : 
+      42           1 :   static S of(BuildContext context) {
+      43           1 :     final instance = S.maybeOf(context);
+      44           1 :     assert(instance != null,
+      45             :         'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?');
+      46             :     return instance!;
+      47             :   }
+      48             : 
+      49           1 :   static S? maybeOf(BuildContext context) {
+      50           1 :     return Localizations.of<S>(context, S);
+      51             :   }
+      52             : 
+      53             :   /// `OpenNutriTracker`
+      54           0 :   String get appTitle {
+      55           0 :     return Intl.message(
+      56             :       'OpenNutriTracker',
+      57             :       name: 'appTitle',
+      58             :       desc: '',
+      59           0 :       args: [],
+      60             :     );
+      61             :   }
+      62             : 
+      63             :   /// `Version {versionNumber}`
+      64           0 :   String appVersionName(Object versionNumber) {
+      65           0 :     return Intl.message(
+      66           0 :       'Version $versionNumber',
+      67             :       name: 'appVersionName',
+      68             :       desc: '',
+      69           0 :       args: [versionNumber],
+      70             :     );
+      71             :   }
+      72             : 
+      73             :   /// `OpenNutriTracker is a free and open-source calorie and nutrient tracker that respects your privacy.`
+      74           0 :   String get appDescription {
+      75           0 :     return Intl.message(
+      76             :       'OpenNutriTracker is a free and open-source calorie and nutrient tracker that respects your privacy.',
+      77             :       name: 'appDescription',
+      78             :       desc: '',
+      79           0 :       args: [],
+      80             :     );
+      81             :   }
+      82             : 
+      83             :   /// `[Alpha]`
+      84           0 :   String get alphaVersionName {
+      85           0 :     return Intl.message(
+      86             :       '[Alpha]',
+      87             :       name: 'alphaVersionName',
+      88             :       desc: '',
+      89           0 :       args: [],
+      90             :     );
+      91             :   }
+      92             : 
+      93             :   /// `[Beta]`
+      94           0 :   String get betaVersionName {
+      95           0 :     return Intl.message(
+      96             :       '[Beta]',
+      97             :       name: 'betaVersionName',
+      98             :       desc: '',
+      99           0 :       args: [],
+     100             :     );
+     101             :   }
+     102             : 
+     103             :   /// `Add`
+     104           0 :   String get addLabel {
+     105           0 :     return Intl.message(
+     106             :       'Add',
+     107             :       name: 'addLabel',
+     108             :       desc: '',
+     109           0 :       args: [],
+     110             :     );
+     111             :   }
+     112             : 
+     113             :   /// `Create custom meal item?`
+     114           0 :   String get createCustomDialogTitle {
+     115           0 :     return Intl.message(
+     116             :       'Create custom meal item?',
+     117             :       name: 'createCustomDialogTitle',
+     118             :       desc: '',
+     119           0 :       args: [],
+     120             :     );
+     121             :   }
+     122             : 
+     123             :   /// `Do you want create a custom meal item?`
+     124           0 :   String get createCustomDialogContent {
+     125           0 :     return Intl.message(
+     126             :       'Do you want create a custom meal item?',
+     127             :       name: 'createCustomDialogContent',
+     128             :       desc: '',
+     129           0 :       args: [],
+     130             :     );
+     131             :   }
+     132             : 
+     133             :   /// `Settings`
+     134           0 :   String get settingsLabel {
+     135           0 :     return Intl.message(
+     136             :       'Settings',
+     137             :       name: 'settingsLabel',
+     138             :       desc: '',
+     139           0 :       args: [],
+     140             :     );
+     141             :   }
+     142             : 
+     143             :   /// `Home`
+     144           0 :   String get homeLabel {
+     145           0 :     return Intl.message(
+     146             :       'Home',
+     147             :       name: 'homeLabel',
+     148             :       desc: '',
+     149           0 :       args: [],
+     150             :     );
+     151             :   }
+     152             : 
+     153             :   /// `Diary`
+     154           0 :   String get diaryLabel {
+     155           0 :     return Intl.message(
+     156             :       'Diary',
+     157             :       name: 'diaryLabel',
+     158             :       desc: '',
+     159           0 :       args: [],
+     160             :     );
+     161             :   }
+     162             : 
+     163             :   /// `Profile`
+     164           0 :   String get profileLabel {
+     165           0 :     return Intl.message(
+     166             :       'Profile',
+     167             :       name: 'profileLabel',
+     168             :       desc: '',
+     169           0 :       args: [],
+     170             :     );
+     171             :   }
+     172             : 
+     173             :   /// `Search`
+     174           0 :   String get searchLabel {
+     175           0 :     return Intl.message(
+     176             :       'Search',
+     177             :       name: 'searchLabel',
+     178             :       desc: '',
+     179           0 :       args: [],
+     180             :     );
+     181             :   }
+     182             : 
+     183             :   /// `Products`
+     184           0 :   String get searchProductsPage {
+     185           0 :     return Intl.message(
+     186             :       'Products',
+     187             :       name: 'searchProductsPage',
+     188             :       desc: '',
+     189           0 :       args: [],
+     190             :     );
+     191             :   }
+     192             : 
+     193             :   /// `Food`
+     194           0 :   String get searchFoodPage {
+     195           0 :     return Intl.message(
+     196             :       'Food',
+     197             :       name: 'searchFoodPage',
+     198             :       desc: '',
+     199           0 :       args: [],
+     200             :     );
+     201             :   }
+     202             : 
+     203             :   /// `Search results`
+     204           0 :   String get searchResultsLabel {
+     205           0 :     return Intl.message(
+     206             :       'Search results',
+     207             :       name: 'searchResultsLabel',
+     208             :       desc: '',
+     209           0 :       args: [],
+     210             :     );
+     211             :   }
+     212             : 
+     213             :   /// `Please enter a search word`
+     214           0 :   String get searchDefaultLabel {
+     215           0 :     return Intl.message(
+     216             :       'Please enter a search word',
+     217             :       name: 'searchDefaultLabel',
+     218             :       desc: '',
+     219           0 :       args: [],
+     220             :     );
+     221             :   }
+     222             : 
+     223             :   /// `All`
+     224           0 :   String get allItemsLabel {
+     225           0 :     return Intl.message(
+     226             :       'All',
+     227             :       name: 'allItemsLabel',
+     228             :       desc: '',
+     229           0 :       args: [],
+     230             :     );
+     231             :   }
+     232             : 
+     233             :   /// `Recently`
+     234           0 :   String get recentlyAddedLabel {
+     235           0 :     return Intl.message(
+     236             :       'Recently',
+     237             :       name: 'recentlyAddedLabel',
+     238             :       desc: '',
+     239           0 :       args: [],
+     240             :     );
+     241             :   }
+     242             : 
+     243             :   /// `No meals recently added`
+     244           0 :   String get noMealsRecentlyAddedLabel {
+     245           0 :     return Intl.message(
+     246             :       'No meals recently added',
+     247             :       name: 'noMealsRecentlyAddedLabel',
+     248             :       desc: '',
+     249           0 :       args: [],
+     250             :     );
+     251             :   }
+     252             : 
+     253             :   /// `No activity recently added`
+     254           0 :   String get noActivityRecentlyAddedLabel {
+     255           0 :     return Intl.message(
+     256             :       'No activity recently added',
+     257             :       name: 'noActivityRecentlyAddedLabel',
+     258             :       desc: '',
+     259           0 :       args: [],
+     260             :     );
+     261             :   }
+     262             : 
+     263             :   /// `OK`
+     264           0 :   String get dialogOKLabel {
+     265           0 :     return Intl.message(
+     266             :       'OK',
+     267             :       name: 'dialogOKLabel',
+     268             :       desc: '',
+     269           0 :       args: [],
+     270             :     );
+     271             :   }
+     272             : 
+     273             :   /// `CANCEL`
+     274           0 :   String get dialogCancelLabel {
+     275           0 :     return Intl.message(
+     276             :       'CANCEL',
+     277             :       name: 'dialogCancelLabel',
+     278             :       desc: '',
+     279           0 :       args: [],
+     280             :     );
+     281             :   }
+     282             : 
+     283             :   /// `START`
+     284           0 :   String get buttonStartLabel {
+     285           0 :     return Intl.message(
+     286             :       'START',
+     287             :       name: 'buttonStartLabel',
+     288             :       desc: '',
+     289           0 :       args: [],
+     290             :     );
+     291             :   }
+     292             : 
+     293             :   /// `NEXT`
+     294           0 :   String get buttonNextLabel {
+     295           0 :     return Intl.message(
+     296             :       'NEXT',
+     297             :       name: 'buttonNextLabel',
+     298             :       desc: '',
+     299           0 :       args: [],
+     300             :     );
+     301             :   }
+     302             : 
+     303             :   /// `Save`
+     304           0 :   String get buttonSaveLabel {
+     305           0 :     return Intl.message(
+     306             :       'Save',
+     307             :       name: 'buttonSaveLabel',
+     308             :       desc: '',
+     309           0 :       args: [],
+     310             :     );
+     311             :   }
+     312             : 
+     313             :   /// `YES`
+     314           0 :   String get buttonYesLabel {
+     315           0 :     return Intl.message(
+     316             :       'YES',
+     317             :       name: 'buttonYesLabel',
+     318             :       desc: '',
+     319           0 :       args: [],
+     320             :     );
+     321             :   }
+     322             : 
+     323             :   /// `Reset`
+     324           0 :   String get buttonResetLabel {
+     325           0 :     return Intl.message(
+     326             :       'Reset',
+     327             :       name: 'buttonResetLabel',
+     328             :       desc: '',
+     329           0 :       args: [],
+     330             :     );
+     331             :   }
+     332             : 
+     333             :   /// `Welcome to`
+     334           0 :   String get onboardingWelcomeLabel {
+     335           0 :     return Intl.message(
+     336             :       'Welcome to',
+     337             :       name: 'onboardingWelcomeLabel',
+     338             :       desc: '',
+     339           0 :       args: [],
+     340             :     );
+     341             :   }
+     342             : 
+     343             :   /// `Overview`
+     344           0 :   String get onboardingOverviewLabel {
+     345           0 :     return Intl.message(
+     346             :       'Overview',
+     347             :       name: 'onboardingOverviewLabel',
+     348             :       desc: '',
+     349           0 :       args: [],
+     350             :     );
+     351             :   }
+     352             : 
+     353             :   /// `Your calorie goal:`
+     354           0 :   String get onboardingYourGoalLabel {
+     355           0 :     return Intl.message(
+     356             :       'Your calorie goal:',
+     357             :       name: 'onboardingYourGoalLabel',
+     358             :       desc: '',
+     359           0 :       args: [],
+     360             :     );
+     361             :   }
+     362             : 
+     363             :   /// `Your macronutrient goals:`
+     364           0 :   String get onboardingYourMacrosGoalLabel {
+     365           0 :     return Intl.message(
+     366             :       'Your macronutrient goals:',
+     367             :       name: 'onboardingYourMacrosGoalLabel',
+     368             :       desc: '',
+     369           0 :       args: [],
+     370             :     );
+     371             :   }
+     372             : 
+     373             :   /// `kcal per day`
+     374           0 :   String get onboardingKcalPerDayLabel {
+     375           0 :     return Intl.message(
+     376             :       'kcal per day',
+     377             :       name: 'onboardingKcalPerDayLabel',
+     378             :       desc: '',
+     379           0 :       args: [],
+     380             :     );
+     381             :   }
+     382             : 
+     383             :   /// `To start, the app needs some information about you to calculate your daily calorie goal.\nAll information about you is stored securely on your device.`
+     384           0 :   String get onboardingIntroDescription {
+     385           0 :     return Intl.message(
+     386             :       'To start, the app needs some information about you to calculate your daily calorie goal.\nAll information about you is stored securely on your device.',
+     387             :       name: 'onboardingIntroDescription',
+     388             :       desc: '',
+     389           0 :       args: [],
+     390             :     );
+     391             :   }
+     392             : 
+     393             :   /// `What's your gender?`
+     394           0 :   String get onboardingGenderQuestionSubtitle {
+     395           0 :     return Intl.message(
+     396             :       'What\'s your gender?',
+     397             :       name: 'onboardingGenderQuestionSubtitle',
+     398             :       desc: '',
+     399           0 :       args: [],
+     400             :     );
+     401             :   }
+     402             : 
+     403             :   /// `Birthday`
+     404           0 :   String get onboardingEnterBirthdayLabel {
+     405           0 :     return Intl.message(
+     406             :       'Birthday',
+     407             :       name: 'onboardingEnterBirthdayLabel',
+     408             :       desc: '',
+     409           0 :       args: [],
+     410             :     );
+     411             :   }
+     412             : 
+     413             :   /// `Enter Date`
+     414           0 :   String get onboardingBirthdayHint {
+     415           0 :     return Intl.message(
+     416             :       'Enter Date',
+     417             :       name: 'onboardingBirthdayHint',
+     418             :       desc: '',
+     419           0 :       args: [],
+     420             :     );
+     421             :   }
+     422             : 
+     423             :   /// `When is your birthday?`
+     424           0 :   String get onboardingBirthdayQuestionSubtitle {
+     425           0 :     return Intl.message(
+     426             :       'When is your birthday?',
+     427             :       name: 'onboardingBirthdayQuestionSubtitle',
+     428             :       desc: '',
+     429           0 :       args: [],
+     430             :     );
+     431             :   }
+     432             : 
+     433             :   /// `Whats your current height?`
+     434           0 :   String get onboardingHeightQuestionSubtitle {
+     435           0 :     return Intl.message(
+     436             :       'Whats your current height?',
+     437             :       name: 'onboardingHeightQuestionSubtitle',
+     438             :       desc: '',
+     439           0 :       args: [],
+     440             :     );
+     441             :   }
+     442             : 
+     443             :   /// `Whats your current weight?`
+     444           0 :   String get onboardingWeightQuestionSubtitle {
+     445           0 :     return Intl.message(
+     446             :       'Whats your current weight?',
+     447             :       name: 'onboardingWeightQuestionSubtitle',
+     448             :       desc: '',
+     449           0 :       args: [],
+     450             :     );
+     451             :   }
+     452             : 
+     453             :   /// `Enter correct height`
+     454           0 :   String get onboardingWrongHeightLabel {
+     455           0 :     return Intl.message(
+     456             :       'Enter correct height',
+     457             :       name: 'onboardingWrongHeightLabel',
+     458             :       desc: '',
+     459           0 :       args: [],
+     460             :     );
+     461             :   }
+     462             : 
+     463             :   /// `Enter correct weight`
+     464           0 :   String get onboardingWrongWeightLabel {
+     465           0 :     return Intl.message(
+     466             :       'Enter correct weight',
+     467             :       name: 'onboardingWrongWeightLabel',
+     468             :       desc: '',
+     469           0 :       args: [],
+     470             :     );
+     471             :   }
+     472             : 
+     473             :   /// `e.g. 60`
+     474           0 :   String get onboardingWeightExampleHintKg {
+     475           0 :     return Intl.message(
+     476             :       'e.g. 60',
+     477             :       name: 'onboardingWeightExampleHintKg',
+     478             :       desc: '',
+     479           0 :       args: [],
+     480             :     );
+     481             :   }
+     482             : 
+     483             :   /// `e.g. 132`
+     484           0 :   String get onboardingWeightExampleHintLbs {
+     485           0 :     return Intl.message(
+     486             :       'e.g. 132',
+     487             :       name: 'onboardingWeightExampleHintLbs',
+     488             :       desc: '',
+     489           0 :       args: [],
+     490             :     );
+     491             :   }
+     492             : 
+     493             :   /// `e.g. 170`
+     494           0 :   String get onboardingHeightExampleHintCm {
+     495           0 :     return Intl.message(
+     496             :       'e.g. 170',
+     497             :       name: 'onboardingHeightExampleHintCm',
+     498             :       desc: '',
+     499           0 :       args: [],
+     500             :     );
+     501             :   }
+     502             : 
+     503             :   /// `e.g. 5.8`
+     504           0 :   String get onboardingHeightExampleHintFt {
+     505           0 :     return Intl.message(
+     506             :       'e.g. 5.8',
+     507             :       name: 'onboardingHeightExampleHintFt',
+     508             :       desc: '',
+     509           0 :       args: [],
+     510             :     );
+     511             :   }
+     512             : 
+     513             :   /// `How active are you? (without workouts)`
+     514           0 :   String get onboardingActivityQuestionSubtitle {
+     515           0 :     return Intl.message(
+     516             :       'How active are you? (without workouts)',
+     517             :       name: 'onboardingActivityQuestionSubtitle',
+     518             :       desc: '',
+     519           0 :       args: [],
+     520             :     );
+     521             :   }
+     522             : 
+     523             :   /// `What's your current weight goal?`
+     524           0 :   String get onboardingGoalQuestionSubtitle {
+     525           0 :     return Intl.message(
+     526             :       'What\'s your current weight goal?',
+     527             :       name: 'onboardingGoalQuestionSubtitle',
+     528             :       desc: '',
+     529           0 :       args: [],
+     530             :     );
+     531             :   }
+     532             : 
+     533             :   /// `Wrong input, please try again`
+     534           0 :   String get onboardingSaveUserError {
+     535           0 :     return Intl.message(
+     536             :       'Wrong input, please try again',
+     537             :       name: 'onboardingSaveUserError',
+     538             :       desc: '',
+     539           0 :       args: [],
+     540             :     );
+     541             :   }
+     542             : 
+     543             :   /// `Units`
+     544           0 :   String get settingsUnitsLabel {
+     545           0 :     return Intl.message(
+     546             :       'Units',
+     547             :       name: 'settingsUnitsLabel',
+     548             :       desc: '',
+     549           0 :       args: [],
+     550             :     );
+     551             :   }
+     552             : 
+     553             :   /// `Calculations`
+     554           0 :   String get settingsCalculationsLabel {
+     555           0 :     return Intl.message(
+     556             :       'Calculations',
+     557             :       name: 'settingsCalculationsLabel',
+     558             :       desc: '',
+     559           0 :       args: [],
+     560             :     );
+     561             :   }
+     562             : 
+     563             :   /// `Theme`
+     564           0 :   String get settingsThemeLabel {
+     565           0 :     return Intl.message(
+     566             :       'Theme',
+     567             :       name: 'settingsThemeLabel',
+     568             :       desc: '',
+     569           0 :       args: [],
+     570             :     );
+     571             :   }
+     572             : 
+     573             :   /// `Light`
+     574           0 :   String get settingsThemeLightLabel {
+     575           0 :     return Intl.message(
+     576             :       'Light',
+     577             :       name: 'settingsThemeLightLabel',
+     578             :       desc: '',
+     579           0 :       args: [],
+     580             :     );
+     581             :   }
+     582             : 
+     583             :   /// `Dark`
+     584           0 :   String get settingsThemeDarkLabel {
+     585           0 :     return Intl.message(
+     586             :       'Dark',
+     587             :       name: 'settingsThemeDarkLabel',
+     588             :       desc: '',
+     589           0 :       args: [],
+     590             :     );
+     591             :   }
+     592             : 
+     593             :   /// `System default`
+     594           0 :   String get settingsThemeSystemDefaultLabel {
+     595           0 :     return Intl.message(
+     596             :       'System default',
+     597             :       name: 'settingsThemeSystemDefaultLabel',
+     598             :       desc: '',
+     599           0 :       args: [],
+     600             :     );
+     601             :   }
+     602             : 
+     603             :   /// `Licenses`
+     604           0 :   String get settingsLicensesLabel {
+     605           0 :     return Intl.message(
+     606             :       'Licenses',
+     607             :       name: 'settingsLicensesLabel',
+     608             :       desc: '',
+     609           0 :       args: [],
+     610             :     );
+     611             :   }
+     612             : 
+     613             :   /// `Disclaimer`
+     614           0 :   String get settingsDisclaimerLabel {
+     615           0 :     return Intl.message(
+     616             :       'Disclaimer',
+     617             :       name: 'settingsDisclaimerLabel',
+     618             :       desc: '',
+     619           0 :       args: [],
+     620             :     );
+     621             :   }
+     622             : 
+     623             :   /// `Report Error`
+     624           0 :   String get settingsReportErrorLabel {
+     625           0 :     return Intl.message(
+     626             :       'Report Error',
+     627             :       name: 'settingsReportErrorLabel',
+     628             :       desc: '',
+     629           0 :       args: [],
+     630             :     );
+     631             :   }
+     632             : 
+     633             :   /// `Privacy Settings`
+     634           0 :   String get settingsPrivacySettings {
+     635           0 :     return Intl.message(
+     636             :       'Privacy Settings',
+     637             :       name: 'settingsPrivacySettings',
+     638             :       desc: '',
+     639           0 :       args: [],
+     640             :     );
+     641             :   }
+     642             : 
+     643             :   /// `Source Code`
+     644           0 :   String get settingsSourceCodeLabel {
+     645           0 :     return Intl.message(
+     646             :       'Source Code',
+     647             :       name: 'settingsSourceCodeLabel',
+     648             :       desc: '',
+     649           0 :       args: [],
+     650             :     );
+     651             :   }
+     652             : 
+     653             :   /// `Feedback`
+     654           0 :   String get settingFeedbackLabel {
+     655           0 :     return Intl.message(
+     656             :       'Feedback',
+     657             :       name: 'settingFeedbackLabel',
+     658             :       desc: '',
+     659           0 :       args: [],
+     660             :     );
+     661             :   }
+     662             : 
+     663             :   /// `About`
+     664           0 :   String get settingAboutLabel {
+     665           0 :     return Intl.message(
+     666             :       'About',
+     667             :       name: 'settingAboutLabel',
+     668             :       desc: '',
+     669           0 :       args: [],
+     670             :     );
+     671             :   }
+     672             : 
+     673             :   /// `Mass`
+     674           0 :   String get settingsMassLabel {
+     675           0 :     return Intl.message(
+     676             :       'Mass',
+     677             :       name: 'settingsMassLabel',
+     678             :       desc: '',
+     679           0 :       args: [],
+     680             :     );
+     681             :   }
+     682             : 
+     683             :   /// `System`
+     684           0 :   String get settingsSystemLabel {
+     685           0 :     return Intl.message(
+     686             :       'System',
+     687             :       name: 'settingsSystemLabel',
+     688             :       desc: '',
+     689           0 :       args: [],
+     690             :     );
+     691             :   }
+     692             : 
+     693             :   /// `Metric (kg, cm, ml)`
+     694           0 :   String get settingsMetricLabel {
+     695           0 :     return Intl.message(
+     696             :       'Metric (kg, cm, ml)',
+     697             :       name: 'settingsMetricLabel',
+     698             :       desc: '',
+     699           0 :       args: [],
+     700             :     );
+     701             :   }
+     702             : 
+     703             :   /// `Imperial (lbs, ft, oz)`
+     704           0 :   String get settingsImperialLabel {
+     705           0 :     return Intl.message(
+     706             :       'Imperial (lbs, ft, oz)',
+     707             :       name: 'settingsImperialLabel',
+     708             :       desc: '',
+     709           0 :       args: [],
+     710             :     );
+     711             :   }
+     712             : 
+     713             :   /// `Distance`
+     714           0 :   String get settingsDistanceLabel {
+     715           0 :     return Intl.message(
+     716             :       'Distance',
+     717             :       name: 'settingsDistanceLabel',
+     718             :       desc: '',
+     719           0 :       args: [],
+     720             :     );
+     721             :   }
+     722             : 
+     723             :   /// `Volume`
+     724           0 :   String get settingsVolumeLabel {
+     725           0 :     return Intl.message(
+     726             :       'Volume',
+     727             :       name: 'settingsVolumeLabel',
+     728             :       desc: '',
+     729           0 :       args: [],
+     730             :     );
+     731             :   }
+     732             : 
+     733             :   /// `OpenNutriTracker is not a medical application. All data provided is not validated and should be used with caution. Please maintain a healthy lifestyle and consult a professional if you have any problems. Use during illness, pregnancy or lactation is not recommended.\n\n\nThe application is still under development. Errors, bugs and crashes may occur.`
+     734           0 :   String get disclaimerText {
+     735           0 :     return Intl.message(
+     736             :       'OpenNutriTracker is not a medical application. All data provided is not validated and should be used with caution. Please maintain a healthy lifestyle and consult a professional if you have any problems. Use during illness, pregnancy or lactation is not recommended.\n\n\nThe application is still under development. Errors, bugs and crashes may occur.',
+     737             :       name: 'disclaimerText',
+     738             :       desc: '',
+     739           0 :       args: [],
+     740             :     );
+     741             :   }
+     742             : 
+     743             :   /// `Do you want to report an error to the developer?`
+     744           0 :   String get reportErrorDialogText {
+     745           0 :     return Intl.message(
+     746             :       'Do you want to report an error to the developer?',
+     747             :       name: 'reportErrorDialogText',
+     748             :       desc: '',
+     749           0 :       args: [],
+     750             :     );
+     751             :   }
+     752             : 
+     753             :   /// `Send anonymous usage data`
+     754           0 :   String get sendAnonymousUserData {
+     755           0 :     return Intl.message(
+     756             :       'Send anonymous usage data',
+     757             :       name: 'sendAnonymousUserData',
+     758             :       desc: '',
+     759           0 :       args: [],
+     760             :     );
+     761             :   }
+     762             : 
+     763             :   /// `GPL-3.0 license`
+     764           0 :   String get appLicenseLabel {
+     765           0 :     return Intl.message(
+     766             :       'GPL-3.0 license',
+     767             :       name: 'appLicenseLabel',
+     768             :       desc: '',
+     769           0 :       args: [],
+     770             :     );
+     771             :   }
+     772             : 
+     773             :   /// `TDEE equation`
+     774           0 :   String get calculationsTDEELabel {
+     775           0 :     return Intl.message(
+     776             :       'TDEE equation',
+     777             :       name: 'calculationsTDEELabel',
+     778             :       desc: '',
+     779           0 :       args: [],
+     780             :     );
+     781             :   }
+     782             : 
+     783             :   /// `Institute of Medicine Equation`
+     784           0 :   String get calculationsTDEEIOM2006Label {
+     785           0 :     return Intl.message(
+     786             :       'Institute of Medicine Equation',
+     787             :       name: 'calculationsTDEEIOM2006Label',
+     788             :       desc: '',
+     789           0 :       args: [],
+     790             :     );
+     791             :   }
+     792             : 
+     793             :   /// `(recommended)`
+     794           0 :   String get calculationsRecommendedLabel {
+     795           0 :     return Intl.message(
+     796             :       '(recommended)',
+     797             :       name: 'calculationsRecommendedLabel',
+     798             :       desc: '',
+     799           0 :       args: [],
+     800             :     );
+     801             :   }
+     802             : 
+     803             :   /// `Macros distribution`
+     804           0 :   String get calculationsMacronutrientsDistributionLabel {
+     805           0 :     return Intl.message(
+     806             :       'Macros distribution',
+     807             :       name: 'calculationsMacronutrientsDistributionLabel',
+     808             :       desc: '',
+     809           0 :       args: [],
+     810             :     );
+     811             :   }
+     812             : 
+     813             :   /// `{pctCarbs}% carbs, {pctFats}% fats, {pctProteins}% proteins`
+     814           0 :   String calculationsMacrosDistribution(
+     815             :       Object pctCarbs, Object pctFats, Object pctProteins) {
+     816           0 :     return Intl.message(
+     817           0 :       '$pctCarbs% carbs, $pctFats% fats, $pctProteins% proteins',
+     818             :       name: 'calculationsMacrosDistribution',
+     819             :       desc: '',
+     820           0 :       args: [pctCarbs, pctFats, pctProteins],
+     821             :     );
+     822             :   }
+     823             : 
+     824             :   /// `Daily Kcal adjustment:`
+     825           0 :   String get dailyKcalAdjustmentLabel {
+     826           0 :     return Intl.message(
+     827             :       'Daily Kcal adjustment:',
+     828             :       name: 'dailyKcalAdjustmentLabel',
+     829             :       desc: '',
+     830           0 :       args: [],
+     831             :     );
+     832             :   }
+     833             : 
+     834             :   /// `Macronutrient Distribution:`
+     835           0 :   String get macroDistributionLabel {
+     836           0 :     return Intl.message(
+     837             :       'Macronutrient Distribution:',
+     838             :       name: 'macroDistributionLabel',
+     839             :       desc: '',
+     840           0 :       args: [],
+     841             :     );
+     842             :   }
+     843             : 
+     844             :   /// `Export / Import data`
+     845           0 :   String get exportImportLabel {
+     846           0 :     return Intl.message(
+     847             :       'Export / Import data',
+     848             :       name: 'exportImportLabel',
+     849             :       desc: '',
+     850           0 :       args: [],
+     851             :     );
+     852             :   }
+     853             : 
+     854             :   /// `You can export the app data to a zip file and import it later. This is useful if you want to backup your data or transfer it to another device.\n\nThe app does not use any cloud service to store your data.`
+     855           0 :   String get exportImportDescription {
+     856           0 :     return Intl.message(
+     857             :       'You can export the app data to a zip file and import it later. This is useful if you want to backup your data or transfer it to another device.\n\nThe app does not use any cloud service to store your data.',
+     858             :       name: 'exportImportDescription',
+     859             :       desc: '',
+     860           0 :       args: [],
+     861             :     );
+     862             :   }
+     863             : 
+     864             :   /// `Export / Import successful`
+     865           0 :   String get exportImportSuccessLabel {
+     866           0 :     return Intl.message(
+     867             :       'Export / Import successful',
+     868             :       name: 'exportImportSuccessLabel',
+     869             :       desc: '',
+     870           0 :       args: [],
+     871             :     );
+     872             :   }
+     873             : 
+     874             :   /// `Export / Import error`
+     875           0 :   String get exportImportErrorLabel {
+     876           0 :     return Intl.message(
+     877             :       'Export / Import error',
+     878             :       name: 'exportImportErrorLabel',
+     879             :       desc: '',
+     880           0 :       args: [],
+     881             :     );
+     882             :   }
+     883             : 
+     884             :   /// `Export`
+     885           0 :   String get exportAction {
+     886           0 :     return Intl.message(
+     887             :       'Export',
+     888             :       name: 'exportAction',
+     889             :       desc: '',
+     890           0 :       args: [],
+     891             :     );
+     892             :   }
+     893             : 
+     894             :   /// `Import`
+     895           0 :   String get importAction {
+     896           0 :     return Intl.message(
+     897             :       'Import',
+     898             :       name: 'importAction',
+     899             :       desc: '',
+     900           0 :       args: [],
+     901             :     );
+     902             :   }
+     903             : 
+     904             :   /// `Add new Item:`
+     905           0 :   String get addItemLabel {
+     906           0 :     return Intl.message(
+     907             :       'Add new Item:',
+     908             :       name: 'addItemLabel',
+     909             :       desc: '',
+     910           0 :       args: [],
+     911             :     );
+     912             :   }
+     913             : 
+     914             :   /// `Activity`
+     915           0 :   String get activityLabel {
+     916           0 :     return Intl.message(
+     917             :       'Activity',
+     918             :       name: 'activityLabel',
+     919             :       desc: '',
+     920           0 :       args: [],
+     921             :     );
+     922             :   }
+     923             : 
+     924             :   /// `e.g. running, biking, yoga ...`
+     925           0 :   String get activityExample {
+     926           0 :     return Intl.message(
+     927             :       'e.g. running, biking, yoga ...',
+     928             :       name: 'activityExample',
+     929             :       desc: '',
+     930           0 :       args: [],
+     931             :     );
+     932             :   }
+     933             : 
+     934             :   /// `Breakfast`
+     935           0 :   String get breakfastLabel {
+     936           0 :     return Intl.message(
+     937             :       'Breakfast',
+     938             :       name: 'breakfastLabel',
+     939             :       desc: '',
+     940           0 :       args: [],
+     941             :     );
+     942             :   }
+     943             : 
+     944             :   /// `e.g. cereal, milk, coffee ...`
+     945           0 :   String get breakfastExample {
+     946           0 :     return Intl.message(
+     947             :       'e.g. cereal, milk, coffee ...',
+     948             :       name: 'breakfastExample',
+     949             :       desc: '',
+     950           0 :       args: [],
+     951             :     );
+     952             :   }
+     953             : 
+     954             :   /// `Lunch`
+     955           0 :   String get lunchLabel {
+     956           0 :     return Intl.message(
+     957             :       'Lunch',
+     958             :       name: 'lunchLabel',
+     959             :       desc: '',
+     960           0 :       args: [],
+     961             :     );
+     962             :   }
+     963             : 
+     964             :   /// `e.g. pizza, salad, rice ...`
+     965           0 :   String get lunchExample {
+     966           0 :     return Intl.message(
+     967             :       'e.g. pizza, salad, rice ...',
+     968             :       name: 'lunchExample',
+     969             :       desc: '',
+     970           0 :       args: [],
+     971             :     );
+     972             :   }
+     973             : 
+     974             :   /// `Dinner`
+     975           0 :   String get dinnerLabel {
+     976           0 :     return Intl.message(
+     977             :       'Dinner',
+     978             :       name: 'dinnerLabel',
+     979             :       desc: '',
+     980           0 :       args: [],
+     981             :     );
+     982             :   }
+     983             : 
+     984             :   /// `e.g. soup, chicken, wine ...`
+     985           0 :   String get dinnerExample {
+     986           0 :     return Intl.message(
+     987             :       'e.g. soup, chicken, wine ...',
+     988             :       name: 'dinnerExample',
+     989             :       desc: '',
+     990           0 :       args: [],
+     991             :     );
+     992             :   }
+     993             : 
+     994             :   /// `Snack`
+     995           0 :   String get snackLabel {
+     996           0 :     return Intl.message(
+     997             :       'Snack',
+     998             :       name: 'snackLabel',
+     999             :       desc: '',
+    1000           0 :       args: [],
+    1001             :     );
+    1002             :   }
+    1003             : 
+    1004             :   /// `e.g. apple, ice cream, chocolate ...`
+    1005           0 :   String get snackExample {
+    1006           0 :     return Intl.message(
+    1007             :       'e.g. apple, ice cream, chocolate ...',
+    1008             :       name: 'snackExample',
+    1009             :       desc: '',
+    1010           0 :       args: [],
+    1011             :     );
+    1012             :   }
+    1013             : 
+    1014             :   /// `Edit item`
+    1015           0 :   String get editItemDialogTitle {
+    1016           0 :     return Intl.message(
+    1017             :       'Edit item',
+    1018             :       name: 'editItemDialogTitle',
+    1019             :       desc: '',
+    1020           0 :       args: [],
+    1021             :     );
+    1022             :   }
+    1023             : 
+    1024             :   /// `Item updated`
+    1025           0 :   String get itemUpdatedSnackbar {
+    1026           0 :     return Intl.message(
+    1027             :       'Item updated',
+    1028             :       name: 'itemUpdatedSnackbar',
+    1029             :       desc: '',
+    1030           0 :       args: [],
+    1031             :     );
+    1032             :   }
+    1033             : 
+    1034             :   /// `Delete Item?`
+    1035           0 :   String get deleteTimeDialogTitle {
+    1036           0 :     return Intl.message(
+    1037             :       'Delete Item?',
+    1038             :       name: 'deleteTimeDialogTitle',
+    1039             :       desc: '',
+    1040           0 :       args: [],
+    1041             :     );
+    1042             :   }
+    1043             : 
+    1044             :   /// `Do want to delete the selected item?`
+    1045           0 :   String get deleteTimeDialogContent {
+    1046           0 :     return Intl.message(
+    1047             :       'Do want to delete the selected item?',
+    1048             :       name: 'deleteTimeDialogContent',
+    1049             :       desc: '',
+    1050           0 :       args: [],
+    1051             :     );
+    1052             :   }
+    1053             : 
+    1054             :   /// `Item deleted`
+    1055           0 :   String get itemDeletedSnackbar {
+    1056           0 :     return Intl.message(
+    1057             :       'Item deleted',
+    1058             :       name: 'itemDeletedSnackbar',
+    1059             :       desc: '',
+    1060           0 :       args: [],
+    1061             :     );
+    1062             :   }
+    1063             : 
+    1064             :   /// `Which meal type do you want to copy to?`
+    1065           0 :   String get copyDialogTitle {
+    1066           0 :     return Intl.message(
+    1067             :       'Which meal type do you want to copy to?',
+    1068             :       name: 'copyDialogTitle',
+    1069             :       desc: '',
+    1070           0 :       args: [],
+    1071             :     );
+    1072             :   }
+    1073             : 
+    1074             :   /// `What do you want to do?`
+    1075           0 :   String get copyOrDeleteTimeDialogTitle {
+    1076           0 :     return Intl.message(
+    1077             :       'What do you want to do?',
+    1078             :       name: 'copyOrDeleteTimeDialogTitle',
+    1079             :       desc: '',
+    1080           0 :       args: [],
+    1081             :     );
+    1082             :   }
+    1083             : 
+    1084             :   /// `With "Copy to today" you can copy the meal to today. With "Delete" you can delete the meal.`
+    1085           0 :   String get copyOrDeleteTimeDialogContent {
+    1086           0 :     return Intl.message(
+    1087             :       'With "Copy to today" you can copy the meal to today. With "Delete" you can delete the meal.',
+    1088             :       name: 'copyOrDeleteTimeDialogContent',
+    1089             :       desc: '',
+    1090           0 :       args: [],
+    1091             :     );
+    1092             :   }
+    1093             : 
+    1094             :   /// `COPY TO TODAY`
+    1095           0 :   String get dialogCopyLabel {
+    1096           0 :     return Intl.message(
+    1097             :       'COPY TO TODAY',
+    1098             :       name: 'dialogCopyLabel',
+    1099             :       desc: '',
+    1100           0 :       args: [],
+    1101             :     );
+    1102             :   }
+    1103             : 
+    1104             :   /// `DELETE`
+    1105           0 :   String get dialogDeleteLabel {
+    1106           0 :     return Intl.message(
+    1107             :       'DELETE',
+    1108             :       name: 'dialogDeleteLabel',
+    1109             :       desc: '',
+    1110           0 :       args: [],
+    1111             :     );
+    1112             :   }
+    1113             : 
+    1114             :   /// `supplied`
+    1115           1 :   String get suppliedLabel {
+    1116           1 :     return Intl.message(
+    1117             :       'supplied',
+    1118             :       name: 'suppliedLabel',
+    1119             :       desc: '',
+    1120           1 :       args: [],
+    1121             :     );
+    1122             :   }
+    1123             : 
+    1124             :   /// `burned`
+    1125           1 :   String get burnedLabel {
+    1126           1 :     return Intl.message(
+    1127             :       'burned',
+    1128             :       name: 'burnedLabel',
+    1129             :       desc: '',
+    1130           1 :       args: [],
+    1131             :     );
+    1132             :   }
+    1133             : 
+    1134             :   /// `kcal left`
+    1135           1 :   String get kcalLeftLabel {
+    1136           1 :     return Intl.message(
+    1137             :       'kcal left',
+    1138             :       name: 'kcalLeftLabel',
+    1139             :       desc: '',
+    1140           1 :       args: [],
+    1141             :     );
+    1142             :   }
+    1143             : 
+    1144             :   /// `Nutrition Information`
+    1145           0 :   String get nutritionInfoLabel {
+    1146           0 :     return Intl.message(
+    1147             :       'Nutrition Information',
+    1148             :       name: 'nutritionInfoLabel',
+    1149             :       desc: '',
+    1150           0 :       args: [],
+    1151             :     );
+    1152             :   }
+    1153             : 
+    1154             :   /// `kcal`
+    1155           0 :   String get kcalLabel {
+    1156           0 :     return Intl.message(
+    1157             :       'kcal',
+    1158             :       name: 'kcalLabel',
+    1159             :       desc: '',
+    1160           0 :       args: [],
+    1161             :     );
+    1162             :   }
+    1163             : 
+    1164             :   /// `carbs`
+    1165           1 :   String get carbsLabel {
+    1166           1 :     return Intl.message(
+    1167             :       'carbs',
+    1168             :       name: 'carbsLabel',
+    1169             :       desc: '',
+    1170           1 :       args: [],
+    1171             :     );
+    1172             :   }
+    1173             : 
+    1174             :   /// `fat`
+    1175           1 :   String get fatLabel {
+    1176           1 :     return Intl.message(
+    1177             :       'fat',
+    1178             :       name: 'fatLabel',
+    1179             :       desc: '',
+    1180           1 :       args: [],
+    1181             :     );
+    1182             :   }
+    1183             : 
+    1184             :   /// `protein`
+    1185           1 :   String get proteinLabel {
+    1186           1 :     return Intl.message(
+    1187             :       'protein',
+    1188             :       name: 'proteinLabel',
+    1189             :       desc: '',
+    1190           1 :       args: [],
+    1191             :     );
+    1192             :   }
+    1193             : 
+    1194             :   /// `energy`
+    1195           0 :   String get energyLabel {
+    1196           0 :     return Intl.message(
+    1197             :       'energy',
+    1198             :       name: 'energyLabel',
+    1199             :       desc: '',
+    1200           0 :       args: [],
+    1201             :     );
+    1202             :   }
+    1203             : 
+    1204             :   /// `saturated fat`
+    1205           0 :   String get saturatedFatLabel {
+    1206           0 :     return Intl.message(
+    1207             :       'saturated fat',
+    1208             :       name: 'saturatedFatLabel',
+    1209             :       desc: '',
+    1210           0 :       args: [],
+    1211             :     );
+    1212             :   }
+    1213             : 
+    1214             :   /// `carbohydrate`
+    1215           0 :   String get carbohydrateLabel {
+    1216           0 :     return Intl.message(
+    1217             :       'carbohydrate',
+    1218             :       name: 'carbohydrateLabel',
+    1219             :       desc: '',
+    1220           0 :       args: [],
+    1221             :     );
+    1222             :   }
+    1223             : 
+    1224             :   /// `sugar`
+    1225           0 :   String get sugarLabel {
+    1226           0 :     return Intl.message(
+    1227             :       'sugar',
+    1228             :       name: 'sugarLabel',
+    1229             :       desc: '',
+    1230           0 :       args: [],
+    1231             :     );
+    1232             :   }
+    1233             : 
+    1234             :   /// `fiber`
+    1235           0 :   String get fiberLabel {
+    1236           0 :     return Intl.message(
+    1237             :       'fiber',
+    1238             :       name: 'fiberLabel',
+    1239             :       desc: '',
+    1240           0 :       args: [],
+    1241             :     );
+    1242             :   }
+    1243             : 
+    1244             :   /// `Per 100g/ml`
+    1245           0 :   String get per100gmlLabel {
+    1246           0 :     return Intl.message(
+    1247             :       'Per 100g/ml',
+    1248             :       name: 'per100gmlLabel',
+    1249             :       desc: '',
+    1250           0 :       args: [],
+    1251             :     );
+    1252             :   }
+    1253             : 
+    1254             :   /// `More Information at\nOpenFoodFacts`
+    1255           0 :   String get additionalInfoLabelOFF {
+    1256           0 :     return Intl.message(
+    1257             :       'More Information at\nOpenFoodFacts',
+    1258             :       name: 'additionalInfoLabelOFF',
+    1259             :       desc: '',
+    1260           0 :       args: [],
+    1261             :     );
+    1262             :   }
+    1263             : 
+    1264             :   /// `The data provided to you by this app are retrieved from the Open Food Facts database. No guarantees can be made for the accuracy, completeness, or reliability of the information provided. The data are provided “as is” and the originating source for the data (Open Food Facts) is not liable for any damages arising out of the use of the data.`
+    1265           0 :   String get offDisclaimer {
+    1266           0 :     return Intl.message(
+    1267             :       'The data provided to you by this app are retrieved from the Open Food Facts database. No guarantees can be made for the accuracy, completeness, or reliability of the information provided. The data are provided “as is” and the originating source for the data (Open Food Facts) is not liable for any damages arising out of the use of the data.',
+    1268             :       name: 'offDisclaimer',
+    1269             :       desc: '',
+    1270           0 :       args: [],
+    1271             :     );
+    1272             :   }
+    1273             : 
+    1274             :   /// `More Information at\nFoodData Central`
+    1275           0 :   String get additionalInfoLabelFDC {
+    1276           0 :     return Intl.message(
+    1277             :       'More Information at\nFoodData Central',
+    1278             :       name: 'additionalInfoLabelFDC',
+    1279             :       desc: '',
+    1280           0 :       args: [],
+    1281             :     );
+    1282             :   }
+    1283             : 
+    1284             :   /// `Unknown Meal Item`
+    1285           0 :   String get additionalInfoLabelUnknown {
+    1286           0 :     return Intl.message(
+    1287             :       'Unknown Meal Item',
+    1288             :       name: 'additionalInfoLabelUnknown',
+    1289             :       desc: '',
+    1290           0 :       args: [],
+    1291             :     );
+    1292             :   }
+    1293             : 
+    1294             :   /// `Custom Meal Item`
+    1295           0 :   String get additionalInfoLabelCustom {
+    1296           0 :     return Intl.message(
+    1297             :       'Custom Meal Item',
+    1298             :       name: 'additionalInfoLabelCustom',
+    1299             :       desc: '',
+    1300           0 :       args: [],
+    1301             :     );
+    1302             :   }
+    1303             : 
+    1304             :   /// `Information provided\n by the \n'2011 Compendium\n of Physical Activities'`
+    1305           0 :   String get additionalInfoLabelCompendium2011 {
+    1306           0 :     return Intl.message(
+    1307             :       'Information provided\n by the \n\'2011 Compendium\n of Physical Activities\'',
+    1308             :       name: 'additionalInfoLabelCompendium2011',
+    1309             :       desc: '',
+    1310           0 :       args: [],
+    1311             :     );
+    1312             :   }
+    1313             : 
+    1314             :   /// `Quantity`
+    1315           0 :   String get quantityLabel {
+    1316           0 :     return Intl.message(
+    1317             :       'Quantity',
+    1318             :       name: 'quantityLabel',
+    1319             :       desc: '',
+    1320           0 :       args: [],
+    1321             :     );
+    1322             :   }
+    1323             : 
+    1324             :   /// `Base quantity (g/ml)`
+    1325           0 :   String get baseQuantityLabel {
+    1326           0 :     return Intl.message(
+    1327             :       'Base quantity (g/ml)',
+    1328             :       name: 'baseQuantityLabel',
+    1329             :       desc: '',
+    1330           0 :       args: [],
+    1331             :     );
+    1332             :   }
+    1333             : 
+    1334             :   /// `Unit`
+    1335           0 :   String get unitLabel {
+    1336           0 :     return Intl.message(
+    1337             :       'Unit',
+    1338             :       name: 'unitLabel',
+    1339             :       desc: '',
+    1340           0 :       args: [],
+    1341             :     );
+    1342             :   }
+    1343             : 
+    1344             :   /// `Scan Product`
+    1345           0 :   String get scanProductLabel {
+    1346           0 :     return Intl.message(
+    1347             :       'Scan Product',
+    1348             :       name: 'scanProductLabel',
+    1349             :       desc: '',
+    1350           0 :       args: [],
+    1351             :     );
+    1352             :   }
+    1353             : 
+    1354             :   /// `g`
+    1355           0 :   String get gramUnit {
+    1356           0 :     return Intl.message(
+    1357             :       'g',
+    1358             :       name: 'gramUnit',
+    1359             :       desc: '',
+    1360           0 :       args: [],
+    1361             :     );
+    1362             :   }
+    1363             : 
+    1364             :   /// `ml`
+    1365           0 :   String get milliliterUnit {
+    1366           0 :     return Intl.message(
+    1367             :       'ml',
+    1368             :       name: 'milliliterUnit',
+    1369             :       desc: '',
+    1370           0 :       args: [],
+    1371             :     );
+    1372             :   }
+    1373             : 
+    1374             :   /// `g/ml`
+    1375           0 :   String get gramMilliliterUnit {
+    1376           0 :     return Intl.message(
+    1377             :       'g/ml',
+    1378             :       name: 'gramMilliliterUnit',
+    1379             :       desc: '',
+    1380           0 :       args: [],
+    1381             :     );
+    1382             :   }
+    1383             : 
+    1384             :   /// `oz`
+    1385           0 :   String get ozUnit {
+    1386           0 :     return Intl.message(
+    1387             :       'oz',
+    1388             :       name: 'ozUnit',
+    1389             :       desc: '',
+    1390           0 :       args: [],
+    1391             :     );
+    1392             :   }
+    1393             : 
+    1394             :   /// `fl.oz`
+    1395           0 :   String get flOzUnit {
+    1396           0 :     return Intl.message(
+    1397             :       'fl.oz',
+    1398             :       name: 'flOzUnit',
+    1399             :       desc: '',
+    1400           0 :       args: [],
+    1401             :     );
+    1402             :   }
+    1403             : 
+    1404             :   /// `N/A`
+    1405           0 :   String get notAvailableLabel {
+    1406           0 :     return Intl.message(
+    1407             :       'N/A',
+    1408             :       name: 'notAvailableLabel',
+    1409             :       desc: '',
+    1410           0 :       args: [],
+    1411             :     );
+    1412             :   }
+    1413             : 
+    1414             :   /// `Product missing required kcal or macronutrients information`
+    1415           0 :   String get missingProductInfo {
+    1416           0 :     return Intl.message(
+    1417             :       'Product missing required kcal or macronutrients information',
+    1418             :       name: 'missingProductInfo',
+    1419             :       desc: '',
+    1420           0 :       args: [],
+    1421             :     );
+    1422             :   }
+    1423             : 
+    1424             :   /// `Added new intake`
+    1425           0 :   String get infoAddedIntakeLabel {
+    1426           0 :     return Intl.message(
+    1427             :       'Added new intake',
+    1428             :       name: 'infoAddedIntakeLabel',
+    1429             :       desc: '',
+    1430           0 :       args: [],
+    1431             :     );
+    1432             :   }
+    1433             : 
+    1434             :   /// `Added new activity`
+    1435           0 :   String get infoAddedActivityLabel {
+    1436           0 :     return Intl.message(
+    1437             :       'Added new activity',
+    1438             :       name: 'infoAddedActivityLabel',
+    1439             :       desc: '',
+    1440           0 :       args: [],
+    1441             :     );
+    1442             :   }
+    1443             : 
+    1444             :   /// `Edit meal`
+    1445           0 :   String get editMealLabel {
+    1446           0 :     return Intl.message(
+    1447             :       'Edit meal',
+    1448             :       name: 'editMealLabel',
+    1449             :       desc: '',
+    1450           0 :       args: [],
+    1451             :     );
+    1452             :   }
+    1453             : 
+    1454             :   /// `Meal name`
+    1455           0 :   String get mealNameLabel {
+    1456           0 :     return Intl.message(
+    1457             :       'Meal name',
+    1458             :       name: 'mealNameLabel',
+    1459             :       desc: '',
+    1460           0 :       args: [],
+    1461             :     );
+    1462             :   }
+    1463             : 
+    1464             :   /// `Brands`
+    1465           0 :   String get mealBrandsLabel {
+    1466           0 :     return Intl.message(
+    1467             :       'Brands',
+    1468             :       name: 'mealBrandsLabel',
+    1469             :       desc: '',
+    1470           0 :       args: [],
+    1471             :     );
+    1472             :   }
+    1473             : 
+    1474             :   /// `Meal size (g/ml)`
+    1475           0 :   String get mealSizeLabel {
+    1476           0 :     return Intl.message(
+    1477             :       'Meal size (g/ml)',
+    1478             :       name: 'mealSizeLabel',
+    1479             :       desc: '',
+    1480           0 :       args: [],
+    1481             :     );
+    1482             :   }
+    1483             : 
+    1484             :   /// `Meal size (oz/fl oz)`
+    1485           0 :   String get mealSizeLabelImperial {
+    1486           0 :     return Intl.message(
+    1487             :       'Meal size (oz/fl oz)',
+    1488             :       name: 'mealSizeLabelImperial',
+    1489             :       desc: '',
+    1490           0 :       args: [],
+    1491             :     );
+    1492             :   }
+    1493             : 
+    1494             :   /// `Serving`
+    1495           0 :   String get servingLabel {
+    1496           0 :     return Intl.message(
+    1497             :       'Serving',
+    1498             :       name: 'servingLabel',
+    1499             :       desc: '',
+    1500           0 :       args: [],
+    1501             :     );
+    1502             :   }
+    1503             : 
+    1504             :   /// `Per Serving`
+    1505           0 :   String get perServingLabel {
+    1506           0 :     return Intl.message(
+    1507             :       'Per Serving',
+    1508             :       name: 'perServingLabel',
+    1509             :       desc: '',
+    1510           0 :       args: [],
+    1511             :     );
+    1512             :   }
+    1513             : 
+    1514             :   /// `Serving size (g/ml)`
+    1515           0 :   String get servingSizeLabelMetric {
+    1516           0 :     return Intl.message(
+    1517             :       'Serving size (g/ml)',
+    1518             :       name: 'servingSizeLabelMetric',
+    1519             :       desc: '',
+    1520           0 :       args: [],
+    1521             :     );
+    1522             :   }
+    1523             : 
+    1524             :   /// `Serving size (oz/fl oz)`
+    1525           0 :   String get servingSizeLabelImperial {
+    1526           0 :     return Intl.message(
+    1527             :       'Serving size (oz/fl oz)',
+    1528             :       name: 'servingSizeLabelImperial',
+    1529             :       desc: '',
+    1530           0 :       args: [],
+    1531             :     );
+    1532             :   }
+    1533             : 
+    1534             :   /// `Meal unit`
+    1535           0 :   String get mealUnitLabel {
+    1536           0 :     return Intl.message(
+    1537             :       'Meal unit',
+    1538             :       name: 'mealUnitLabel',
+    1539             :       desc: '',
+    1540           0 :       args: [],
+    1541             :     );
+    1542             :   }
+    1543             : 
+    1544             :   /// `kcal per`
+    1545           0 :   String get mealKcalLabel {
+    1546           0 :     return Intl.message(
+    1547             :       'kcal per',
+    1548             :       name: 'mealKcalLabel',
+    1549             :       desc: '',
+    1550           0 :       args: [],
+    1551             :     );
+    1552             :   }
+    1553             : 
+    1554             :   /// `carbs per`
+    1555           0 :   String get mealCarbsLabel {
+    1556           0 :     return Intl.message(
+    1557             :       'carbs per',
+    1558             :       name: 'mealCarbsLabel',
+    1559             :       desc: '',
+    1560           0 :       args: [],
+    1561             :     );
+    1562             :   }
+    1563             : 
+    1564             :   /// `fat per`
+    1565           0 :   String get mealFatLabel {
+    1566           0 :     return Intl.message(
+    1567             :       'fat per',
+    1568             :       name: 'mealFatLabel',
+    1569             :       desc: '',
+    1570           0 :       args: [],
+    1571             :     );
+    1572             :   }
+    1573             : 
+    1574             :   /// `protein per 100 g/ml`
+    1575           0 :   String get mealProteinLabel {
+    1576           0 :     return Intl.message(
+    1577             :       'protein per 100 g/ml',
+    1578             :       name: 'mealProteinLabel',
+    1579             :       desc: '',
+    1580           0 :       args: [],
+    1581             :     );
+    1582             :   }
+    1583             : 
+    1584             :   /// `Error while saving meal. Did you input the correct meal information?`
+    1585           0 :   String get errorMealSave {
+    1586           0 :     return Intl.message(
+    1587             :       'Error while saving meal. Did you input the correct meal information?',
+    1588             :       name: 'errorMealSave',
+    1589             :       desc: '',
+    1590           0 :       args: [],
+    1591             :     );
+    1592             :   }
+    1593             : 
+    1594             :   /// `BMI`
+    1595           0 :   String get bmiLabel {
+    1596           0 :     return Intl.message(
+    1597             :       'BMI',
+    1598             :       name: 'bmiLabel',
+    1599             :       desc: '',
+    1600           0 :       args: [],
+    1601             :     );
+    1602             :   }
+    1603             : 
+    1604             :   /// `Body Mass Index (BMI) is a index to classify overweight and obesity in adults. It is defined as weight in kilograms divided by the square of height in meters (kg/m²).\n\nBMI does not differentiate between fat and muscle mass and can be misleading for some individuals.`
+    1605           0 :   String get bmiInfo {
+    1606           0 :     return Intl.message(
+    1607             :       'Body Mass Index (BMI) is a index to classify overweight and obesity in adults. It is defined as weight in kilograms divided by the square of height in meters (kg/m²).\n\nBMI does not differentiate between fat and muscle mass and can be misleading for some individuals.',
+    1608             :       name: 'bmiInfo',
+    1609             :       desc: '',
+    1610           0 :       args: [],
+    1611             :     );
+    1612             :   }
+    1613             : 
+    1614             :   /// `I have read and accept the privacy policy.`
+    1615           0 :   String get readLabel {
+    1616           0 :     return Intl.message(
+    1617             :       'I have read and accept the privacy policy.',
+    1618             :       name: 'readLabel',
+    1619             :       desc: '',
+    1620           0 :       args: [],
+    1621             :     );
+    1622             :   }
+    1623             : 
+    1624             :   /// `Privacy policy`
+    1625           0 :   String get privacyPolicyLabel {
+    1626           0 :     return Intl.message(
+    1627             :       'Privacy policy',
+    1628             :       name: 'privacyPolicyLabel',
+    1629             :       desc: '',
+    1630           0 :       args: [],
+    1631             :     );
+    1632             :   }
+    1633             : 
+    1634             :   /// `Support development by providing anonymous usage data`
+    1635           0 :   String get dataCollectionLabel {
+    1636           0 :     return Intl.message(
+    1637             :       'Support development by providing anonymous usage data',
+    1638             :       name: 'dataCollectionLabel',
+    1639             :       desc: '',
+    1640           0 :       args: [],
+    1641             :     );
+    1642             :   }
+    1643             : 
+    1644             :   /// `Sedentary`
+    1645           0 :   String get palSedentaryLabel {
+    1646           0 :     return Intl.message(
+    1647             :       'Sedentary',
+    1648             :       name: 'palSedentaryLabel',
+    1649             :       desc: '',
+    1650           0 :       args: [],
+    1651             :     );
+    1652             :   }
+    1653             : 
+    1654             :   /// `e.g. office job and mostly sitting free time activities`
+    1655           0 :   String get palSedentaryDescriptionLabel {
+    1656           0 :     return Intl.message(
+    1657             :       'e.g. office job and mostly sitting free time activities',
+    1658             :       name: 'palSedentaryDescriptionLabel',
+    1659             :       desc: '',
+    1660           0 :       args: [],
+    1661             :     );
+    1662             :   }
+    1663             : 
+    1664             :   /// `Low Active`
+    1665           0 :   String get palLowLActiveLabel {
+    1666           0 :     return Intl.message(
+    1667             :       'Low Active',
+    1668             :       name: 'palLowLActiveLabel',
+    1669             :       desc: '',
+    1670           0 :       args: [],
+    1671             :     );
+    1672             :   }
+    1673             : 
+    1674             :   /// `e.g. sitting or standing in job and light free time activities`
+    1675           0 :   String get palLowActiveDescriptionLabel {
+    1676           0 :     return Intl.message(
+    1677             :       'e.g. sitting or standing in job and light free time activities',
+    1678             :       name: 'palLowActiveDescriptionLabel',
+    1679             :       desc: '',
+    1680           0 :       args: [],
+    1681             :     );
+    1682             :   }
+    1683             : 
+    1684             :   /// `Active`
+    1685           0 :   String get palActiveLabel {
+    1686           0 :     return Intl.message(
+    1687             :       'Active',
+    1688             :       name: 'palActiveLabel',
+    1689             :       desc: '',
+    1690           0 :       args: [],
+    1691             :     );
+    1692             :   }
+    1693             : 
+    1694             :   /// `Mostly standing or walking in job and active free time activities`
+    1695           0 :   String get palActiveDescriptionLabel {
+    1696           0 :     return Intl.message(
+    1697             :       'Mostly standing or walking in job and active free time activities',
+    1698             :       name: 'palActiveDescriptionLabel',
+    1699             :       desc: '',
+    1700           0 :       args: [],
+    1701             :     );
+    1702             :   }
+    1703             : 
+    1704             :   /// `Very Active`
+    1705           0 :   String get palVeryActiveLabel {
+    1706           0 :     return Intl.message(
+    1707             :       'Very Active',
+    1708             :       name: 'palVeryActiveLabel',
+    1709             :       desc: '',
+    1710           0 :       args: [],
+    1711             :     );
+    1712             :   }
+    1713             : 
+    1714             :   /// `Mostly walking, running or carrying weight in job and active free time activities`
+    1715           0 :   String get palVeryActiveDescriptionLabel {
+    1716           0 :     return Intl.message(
+    1717             :       'Mostly walking, running or carrying weight in job and active free time activities',
+    1718             :       name: 'palVeryActiveDescriptionLabel',
+    1719             :       desc: '',
+    1720           0 :       args: [],
+    1721             :     );
+    1722             :   }
+    1723             : 
+    1724             :   /// `Select Activity Level`
+    1725           0 :   String get selectPalCategoryLabel {
+    1726           0 :     return Intl.message(
+    1727             :       'Select Activity Level',
+    1728             :       name: 'selectPalCategoryLabel',
+    1729             :       desc: '',
+    1730           0 :       args: [],
+    1731             :     );
+    1732             :   }
+    1733             : 
+    1734             :   /// `Choose Weight Goal`
+    1735           0 :   String get chooseWeightGoalLabel {
+    1736           0 :     return Intl.message(
+    1737             :       'Choose Weight Goal',
+    1738             :       name: 'chooseWeightGoalLabel',
+    1739             :       desc: '',
+    1740           0 :       args: [],
+    1741             :     );
+    1742             :   }
+    1743             : 
+    1744             :   /// `Lose Weight`
+    1745           0 :   String get goalLoseWeight {
+    1746           0 :     return Intl.message(
+    1747             :       'Lose Weight',
+    1748             :       name: 'goalLoseWeight',
+    1749             :       desc: '',
+    1750           0 :       args: [],
+    1751             :     );
+    1752             :   }
+    1753             : 
+    1754             :   /// `Maintain Weight`
+    1755           0 :   String get goalMaintainWeight {
+    1756           0 :     return Intl.message(
+    1757             :       'Maintain Weight',
+    1758             :       name: 'goalMaintainWeight',
+    1759             :       desc: '',
+    1760           0 :       args: [],
+    1761             :     );
+    1762             :   }
+    1763             : 
+    1764             :   /// `Gain Weight`
+    1765           0 :   String get goalGainWeight {
+    1766           0 :     return Intl.message(
+    1767             :       'Gain Weight',
+    1768             :       name: 'goalGainWeight',
+    1769             :       desc: '',
+    1770           0 :       args: [],
+    1771             :     );
+    1772             :   }
+    1773             : 
+    1774             :   /// `Goal`
+    1775           0 :   String get goalLabel {
+    1776           0 :     return Intl.message(
+    1777             :       'Goal',
+    1778             :       name: 'goalLabel',
+    1779             :       desc: '',
+    1780           0 :       args: [],
+    1781             :     );
+    1782             :   }
+    1783             : 
+    1784             :   /// `Select Height`
+    1785           0 :   String get selectHeightDialogLabel {
+    1786           0 :     return Intl.message(
+    1787             :       'Select Height',
+    1788             :       name: 'selectHeightDialogLabel',
+    1789             :       desc: '',
+    1790           0 :       args: [],
+    1791             :     );
+    1792             :   }
+    1793             : 
+    1794             :   /// `Height`
+    1795           0 :   String get heightLabel {
+    1796           0 :     return Intl.message(
+    1797             :       'Height',
+    1798             :       name: 'heightLabel',
+    1799             :       desc: '',
+    1800           0 :       args: [],
+    1801             :     );
+    1802             :   }
+    1803             : 
+    1804             :   /// `cm`
+    1805           0 :   String get cmLabel {
+    1806           0 :     return Intl.message(
+    1807             :       'cm',
+    1808             :       name: 'cmLabel',
+    1809             :       desc: '',
+    1810           0 :       args: [],
+    1811             :     );
+    1812             :   }
+    1813             : 
+    1814             :   /// `ft`
+    1815           0 :   String get ftLabel {
+    1816           0 :     return Intl.message(
+    1817             :       'ft',
+    1818             :       name: 'ftLabel',
+    1819             :       desc: '',
+    1820           0 :       args: [],
+    1821             :     );
+    1822             :   }
+    1823             : 
+    1824             :   /// `Select Weight`
+    1825           0 :   String get selectWeightDialogLabel {
+    1826           0 :     return Intl.message(
+    1827             :       'Select Weight',
+    1828             :       name: 'selectWeightDialogLabel',
+    1829             :       desc: '',
+    1830           0 :       args: [],
+    1831             :     );
+    1832             :   }
+    1833             : 
+    1834             :   /// `Weight`
+    1835           0 :   String get weightLabel {
+    1836           0 :     return Intl.message(
+    1837             :       'Weight',
+    1838             :       name: 'weightLabel',
+    1839             :       desc: '',
+    1840           0 :       args: [],
+    1841             :     );
+    1842             :   }
+    1843             : 
+    1844             :   /// `kg`
+    1845           0 :   String get kgLabel {
+    1846           0 :     return Intl.message(
+    1847             :       'kg',
+    1848             :       name: 'kgLabel',
+    1849             :       desc: '',
+    1850           0 :       args: [],
+    1851             :     );
+    1852             :   }
+    1853             : 
+    1854             :   /// `lbs`
+    1855           0 :   String get lbsLabel {
+    1856           0 :     return Intl.message(
+    1857             :       'lbs',
+    1858             :       name: 'lbsLabel',
+    1859             :       desc: '',
+    1860           0 :       args: [],
+    1861             :     );
+    1862             :   }
+    1863             : 
+    1864             :   /// `Age`
+    1865           0 :   String get ageLabel {
+    1866           0 :     return Intl.message(
+    1867             :       'Age',
+    1868             :       name: 'ageLabel',
+    1869             :       desc: '',
+    1870           0 :       args: [],
+    1871             :     );
+    1872             :   }
+    1873             : 
+    1874             :   /// `{age} years`
+    1875           0 :   String yearsLabel(Object age) {
+    1876           0 :     return Intl.message(
+    1877           0 :       '$age years',
+    1878             :       name: 'yearsLabel',
+    1879             :       desc: '',
+    1880           0 :       args: [age],
+    1881             :     );
+    1882             :   }
+    1883             : 
+    1884             :   /// `Select Gender`
+    1885           0 :   String get selectGenderDialogLabel {
+    1886           0 :     return Intl.message(
+    1887             :       'Select Gender',
+    1888             :       name: 'selectGenderDialogLabel',
+    1889             :       desc: '',
+    1890           0 :       args: [],
+    1891             :     );
+    1892             :   }
+    1893             : 
+    1894             :   /// `Gender`
+    1895           0 :   String get genderLabel {
+    1896           0 :     return Intl.message(
+    1897             :       'Gender',
+    1898             :       name: 'genderLabel',
+    1899             :       desc: '',
+    1900           0 :       args: [],
+    1901             :     );
+    1902             :   }
+    1903             : 
+    1904             :   /// `♂ male`
+    1905           0 :   String get genderMaleLabel {
+    1906           0 :     return Intl.message(
+    1907             :       '♂ male',
+    1908             :       name: 'genderMaleLabel',
+    1909             :       desc: '',
+    1910           0 :       args: [],
+    1911             :     );
+    1912             :   }
+    1913             : 
+    1914             :   /// `♀ female`
+    1915           0 :   String get genderFemaleLabel {
+    1916           0 :     return Intl.message(
+    1917             :       '♀ female',
+    1918             :       name: 'genderFemaleLabel',
+    1919             :       desc: '',
+    1920           0 :       args: [],
+    1921             :     );
+    1922             :   }
+    1923             : 
+    1924             :   /// `Nothing added`
+    1925           0 :   String get nothingAddedLabel {
+    1926           0 :     return Intl.message(
+    1927             :       'Nothing added',
+    1928             :       name: 'nothingAddedLabel',
+    1929             :       desc: '',
+    1930           0 :       args: [],
+    1931             :     );
+    1932             :   }
+    1933             : 
+    1934             :   /// `Underweight`
+    1935           0 :   String get nutritionalStatusUnderweight {
+    1936           0 :     return Intl.message(
+    1937             :       'Underweight',
+    1938             :       name: 'nutritionalStatusUnderweight',
+    1939             :       desc: '',
+    1940           0 :       args: [],
+    1941             :     );
+    1942             :   }
+    1943             : 
+    1944             :   /// `Normal Weight`
+    1945           0 :   String get nutritionalStatusNormalWeight {
+    1946           0 :     return Intl.message(
+    1947             :       'Normal Weight',
+    1948             :       name: 'nutritionalStatusNormalWeight',
+    1949             :       desc: '',
+    1950           0 :       args: [],
+    1951             :     );
+    1952             :   }
+    1953             : 
+    1954             :   /// `Pre-obesity`
+    1955           0 :   String get nutritionalStatusPreObesity {
+    1956           0 :     return Intl.message(
+    1957             :       'Pre-obesity',
+    1958             :       name: 'nutritionalStatusPreObesity',
+    1959             :       desc: '',
+    1960           0 :       args: [],
+    1961             :     );
+    1962             :   }
+    1963             : 
+    1964             :   /// `Obesity Class I`
+    1965           0 :   String get nutritionalStatusObeseClassI {
+    1966           0 :     return Intl.message(
+    1967             :       'Obesity Class I',
+    1968             :       name: 'nutritionalStatusObeseClassI',
+    1969             :       desc: '',
+    1970           0 :       args: [],
+    1971             :     );
+    1972             :   }
+    1973             : 
+    1974             :   /// `Obesity Class II`
+    1975           0 :   String get nutritionalStatusObeseClassII {
+    1976           0 :     return Intl.message(
+    1977             :       'Obesity Class II',
+    1978             :       name: 'nutritionalStatusObeseClassII',
+    1979             :       desc: '',
+    1980           0 :       args: [],
+    1981             :     );
+    1982             :   }
+    1983             : 
+    1984             :   /// `Obesity Class III`
+    1985           0 :   String get nutritionalStatusObeseClassIII {
+    1986           0 :     return Intl.message(
+    1987             :       'Obesity Class III',
+    1988             :       name: 'nutritionalStatusObeseClassIII',
+    1989             :       desc: '',
+    1990           0 :       args: [],
+    1991             :     );
+    1992             :   }
+    1993             : 
+    1994             :   /// `Risk of comorbidities: {riskValue}`
+    1995           0 :   String nutritionalStatusRiskLabel(Object riskValue) {
+    1996           0 :     return Intl.message(
+    1997           0 :       'Risk of comorbidities: $riskValue',
+    1998             :       name: 'nutritionalStatusRiskLabel',
+    1999             :       desc: '',
+    2000           0 :       args: [riskValue],
+    2001             :     );
+    2002             :   }
+    2003             : 
+    2004             :   /// `Low \n(but risk of other \nclinical problems increased)`
+    2005           0 :   String get nutritionalStatusRiskLow {
+    2006           0 :     return Intl.message(
+    2007             :       'Low \n(but risk of other \nclinical problems increased)',
+    2008             :       name: 'nutritionalStatusRiskLow',
+    2009             :       desc: '',
+    2010           0 :       args: [],
+    2011             :     );
+    2012             :   }
+    2013             : 
+    2014             :   /// `Average`
+    2015           0 :   String get nutritionalStatusRiskAverage {
+    2016           0 :     return Intl.message(
+    2017             :       'Average',
+    2018             :       name: 'nutritionalStatusRiskAverage',
+    2019             :       desc: '',
+    2020           0 :       args: [],
+    2021             :     );
+    2022             :   }
+    2023             : 
+    2024             :   /// `Increased`
+    2025           0 :   String get nutritionalStatusRiskIncreased {
+    2026           0 :     return Intl.message(
+    2027             :       'Increased',
+    2028             :       name: 'nutritionalStatusRiskIncreased',
+    2029             :       desc: '',
+    2030           0 :       args: [],
+    2031             :     );
+    2032             :   }
+    2033             : 
+    2034             :   /// `Moderate`
+    2035           0 :   String get nutritionalStatusRiskModerate {
+    2036           0 :     return Intl.message(
+    2037             :       'Moderate',
+    2038             :       name: 'nutritionalStatusRiskModerate',
+    2039             :       desc: '',
+    2040           0 :       args: [],
+    2041             :     );
+    2042             :   }
+    2043             : 
+    2044             :   /// `Severe`
+    2045           0 :   String get nutritionalStatusRiskSevere {
+    2046           0 :     return Intl.message(
+    2047             :       'Severe',
+    2048             :       name: 'nutritionalStatusRiskSevere',
+    2049             :       desc: '',
+    2050           0 :       args: [],
+    2051             :     );
+    2052             :   }
+    2053             : 
+    2054             :   /// `Very severe`
+    2055           0 :   String get nutritionalStatusRiskVerySevere {
+    2056           0 :     return Intl.message(
+    2057             :       'Very severe',
+    2058             :       name: 'nutritionalStatusRiskVerySevere',
+    2059             :       desc: '',
+    2060           0 :       args: [],
+    2061             :     );
+    2062             :   }
+    2063             : 
+    2064             :   /// `Error while opening email app`
+    2065           0 :   String get errorOpeningEmail {
+    2066           0 :     return Intl.message(
+    2067             :       'Error while opening email app',
+    2068             :       name: 'errorOpeningEmail',
+    2069             :       desc: '',
+    2070           0 :       args: [],
+    2071             :     );
+    2072             :   }
+    2073             : 
+    2074             :   /// `Error while opening browser app`
+    2075           0 :   String get errorOpeningBrowser {
+    2076           0 :     return Intl.message(
+    2077             :       'Error while opening browser app',
+    2078             :       name: 'errorOpeningBrowser',
+    2079             :       desc: '',
+    2080           0 :       args: [],
+    2081             :     );
+    2082             :   }
+    2083             : 
+    2084             :   /// `Error while fetching product data`
+    2085           0 :   String get errorFetchingProductData {
+    2086           0 :     return Intl.message(
+    2087             :       'Error while fetching product data',
+    2088             :       name: 'errorFetchingProductData',
+    2089             :       desc: '',
+    2090           0 :       args: [],
+    2091             :     );
+    2092             :   }
+    2093             : 
+    2094             :   /// `Product not found`
+    2095           0 :   String get errorProductNotFound {
+    2096           0 :     return Intl.message(
+    2097             :       'Product not found',
+    2098             :       name: 'errorProductNotFound',
+    2099             :       desc: '',
+    2100           0 :       args: [],
+    2101             :     );
+    2102             :   }
+    2103             : 
+    2104             :   /// `Error while loading activities`
+    2105           0 :   String get errorLoadingActivities {
+    2106           0 :     return Intl.message(
+    2107             :       'Error while loading activities',
+    2108             :       name: 'errorLoadingActivities',
+    2109             :       desc: '',
+    2110           0 :       args: [],
+    2111             :     );
+    2112             :   }
+    2113             : 
+    2114             :   /// `No results found`
+    2115           0 :   String get noResultsFound {
+    2116           0 :     return Intl.message(
+    2117             :       'No results found',
+    2118             :       name: 'noResultsFound',
+    2119             :       desc: '',
+    2120           0 :       args: [],
+    2121             :     );
+    2122             :   }
+    2123             : 
+    2124             :   /// `Retry`
+    2125           0 :   String get retryLabel {
+    2126           0 :     return Intl.message(
+    2127             :       'Retry',
+    2128             :       name: 'retryLabel',
+    2129             :       desc: '',
+    2130           0 :       args: [],
+    2131             :     );
+    2132             :   }
+    2133             : 
+    2134             :   /// `bicycling`
+    2135           0 :   String get paHeadingBicycling {
+    2136           0 :     return Intl.message(
+    2137             :       'bicycling',
+    2138             :       name: 'paHeadingBicycling',
+    2139             :       desc: '',
+    2140           0 :       args: [],
+    2141             :     );
+    2142             :   }
+    2143             : 
+    2144             :   /// `conditioning exercise`
+    2145           0 :   String get paHeadingConditionalExercise {
+    2146           0 :     return Intl.message(
+    2147             :       'conditioning exercise',
+    2148             :       name: 'paHeadingConditionalExercise',
+    2149             :       desc: '',
+    2150           0 :       args: [],
+    2151             :     );
+    2152             :   }
+    2153             : 
+    2154             :   /// `dancing`
+    2155           0 :   String get paHeadingDancing {
+    2156           0 :     return Intl.message(
+    2157             :       'dancing',
+    2158             :       name: 'paHeadingDancing',
+    2159             :       desc: '',
+    2160           0 :       args: [],
+    2161             :     );
+    2162             :   }
+    2163             : 
+    2164             :   /// `running`
+    2165           0 :   String get paHeadingRunning {
+    2166           0 :     return Intl.message(
+    2167             :       'running',
+    2168             :       name: 'paHeadingRunning',
+    2169             :       desc: '',
+    2170           0 :       args: [],
+    2171             :     );
+    2172             :   }
+    2173             : 
+    2174             :   /// `sports`
+    2175           0 :   String get paHeadingSports {
+    2176           0 :     return Intl.message(
+    2177             :       'sports',
+    2178             :       name: 'paHeadingSports',
+    2179             :       desc: '',
+    2180           0 :       args: [],
+    2181             :     );
+    2182             :   }
+    2183             : 
+    2184             :   /// `walking`
+    2185           0 :   String get paHeadingWalking {
+    2186           0 :     return Intl.message(
+    2187             :       'walking',
+    2188             :       name: 'paHeadingWalking',
+    2189             :       desc: '',
+    2190           0 :       args: [],
+    2191             :     );
+    2192             :   }
+    2193             : 
+    2194             :   /// `water activities`
+    2195           0 :   String get paHeadingWaterActivities {
+    2196           0 :     return Intl.message(
+    2197             :       'water activities',
+    2198             :       name: 'paHeadingWaterActivities',
+    2199             :       desc: '',
+    2200           0 :       args: [],
+    2201             :     );
+    2202             :   }
+    2203             : 
+    2204             :   /// `winter activities`
+    2205           0 :   String get paHeadingWinterActivities {
+    2206           0 :     return Intl.message(
+    2207             :       'winter activities',
+    2208             :       name: 'paHeadingWinterActivities',
+    2209             :       desc: '',
+    2210           0 :       args: [],
+    2211             :     );
+    2212             :   }
+    2213             : 
+    2214             :   /// `general`
+    2215           0 :   String get paGeneralDesc {
+    2216           0 :     return Intl.message(
+    2217             :       'general',
+    2218             :       name: 'paGeneralDesc',
+    2219             :       desc: '',
+    2220           0 :       args: [],
+    2221             :     );
+    2222             :   }
+    2223             : 
+    2224             :   /// `bicycling`
+    2225           0 :   String get paBicyclingGeneral {
+    2226           0 :     return Intl.message(
+    2227             :       'bicycling',
+    2228             :       name: 'paBicyclingGeneral',
+    2229             :       desc: '',
+    2230           0 :       args: [],
+    2231             :     );
+    2232             :   }
+    2233             : 
+    2234             :   /// `general`
+    2235           0 :   String get paBicyclingGeneralDesc {
+    2236           0 :     return Intl.message(
+    2237             :       'general',
+    2238             :       name: 'paBicyclingGeneralDesc',
+    2239             :       desc: '',
+    2240           0 :       args: [],
+    2241             :     );
+    2242             :   }
+    2243             : 
+    2244             :   /// `bicycling, mountain`
+    2245           0 :   String get paBicyclingMountainGeneral {
+    2246           0 :     return Intl.message(
+    2247             :       'bicycling, mountain',
+    2248             :       name: 'paBicyclingMountainGeneral',
+    2249             :       desc: '',
+    2250           0 :       args: [],
+    2251             :     );
+    2252             :   }
+    2253             : 
+    2254             :   /// `general`
+    2255           0 :   String get paBicyclingMountainGeneralDesc {
+    2256           0 :     return Intl.message(
+    2257             :       'general',
+    2258             :       name: 'paBicyclingMountainGeneralDesc',
+    2259             :       desc: '',
+    2260           0 :       args: [],
+    2261             :     );
+    2262             :   }
+    2263             : 
+    2264             :   /// `unicycling`
+    2265           0 :   String get paUnicyclingGeneral {
+    2266           0 :     return Intl.message(
+    2267             :       'unicycling',
+    2268             :       name: 'paUnicyclingGeneral',
+    2269             :       desc: '',
+    2270           0 :       args: [],
+    2271             :     );
+    2272             :   }
+    2273             : 
+    2274             :   /// `general`
+    2275           0 :   String get paUnicyclingGeneralDesc {
+    2276           0 :     return Intl.message(
+    2277             :       'general',
+    2278             :       name: 'paUnicyclingGeneralDesc',
+    2279             :       desc: '',
+    2280           0 :       args: [],
+    2281             :     );
+    2282             :   }
+    2283             : 
+    2284             :   /// `bicycling, stationary`
+    2285           0 :   String get paBicyclingStationaryGeneral {
+    2286           0 :     return Intl.message(
+    2287             :       'bicycling, stationary',
+    2288             :       name: 'paBicyclingStationaryGeneral',
+    2289             :       desc: '',
+    2290           0 :       args: [],
+    2291             :     );
+    2292             :   }
+    2293             : 
+    2294             :   /// `general`
+    2295           0 :   String get paBicyclingStationaryGeneralDesc {
+    2296           0 :     return Intl.message(
+    2297             :       'general',
+    2298             :       name: 'paBicyclingStationaryGeneralDesc',
+    2299             :       desc: '',
+    2300           0 :       args: [],
+    2301             :     );
+    2302             :   }
+    2303             : 
+    2304             :   /// `calisthenics`
+    2305           0 :   String get paCalisthenicsGeneral {
+    2306           0 :     return Intl.message(
+    2307             :       'calisthenics',
+    2308             :       name: 'paCalisthenicsGeneral',
+    2309             :       desc: '',
+    2310           0 :       args: [],
+    2311             :     );
+    2312             :   }
+    2313             : 
+    2314             :   /// `light or moderate effort, general (e.g., back exercises)`
+    2315           0 :   String get paCalisthenicsGeneralDesc {
+    2316           0 :     return Intl.message(
+    2317             :       'light or moderate effort, general (e.g., back exercises)',
+    2318             :       name: 'paCalisthenicsGeneralDesc',
+    2319             :       desc: '',
+    2320           0 :       args: [],
+    2321             :     );
+    2322             :   }
+    2323             : 
+    2324             :   /// `resistance training`
+    2325           0 :   String get paResistanceTraining {
+    2326           0 :     return Intl.message(
+    2327             :       'resistance training',
+    2328             :       name: 'paResistanceTraining',
+    2329             :       desc: '',
+    2330           0 :       args: [],
+    2331             :     );
+    2332             :   }
+    2333             : 
+    2334             :   /// `weight lifting, free weight, nautilus or universal`
+    2335           0 :   String get paResistanceTrainingDesc {
+    2336           0 :     return Intl.message(
+    2337             :       'weight lifting, free weight, nautilus or universal',
+    2338             :       name: 'paResistanceTrainingDesc',
+    2339             :       desc: '',
+    2340           0 :       args: [],
+    2341             :     );
+    2342             :   }
+    2343             : 
+    2344             :   /// `rope skipping`
+    2345           0 :   String get paRopeSkippingGeneral {
+    2346           0 :     return Intl.message(
+    2347             :       'rope skipping',
+    2348             :       name: 'paRopeSkippingGeneral',
+    2349             :       desc: '',
+    2350           0 :       args: [],
+    2351             :     );
+    2352             :   }
+    2353             : 
+    2354             :   /// `general`
+    2355           0 :   String get paRopeSkippingGeneralDesc {
+    2356           0 :     return Intl.message(
+    2357             :       'general',
+    2358             :       name: 'paRopeSkippingGeneralDesc',
+    2359             :       desc: '',
+    2360           0 :       args: [],
+    2361             :     );
+    2362             :   }
+    2363             : 
+    2364             :   /// `water exercise`
+    2365           0 :   String get paWaterAerobics {
+    2366           0 :     return Intl.message(
+    2367             :       'water exercise',
+    2368             :       name: 'paWaterAerobics',
+    2369             :       desc: '',
+    2370           0 :       args: [],
+    2371             :     );
+    2372             :   }
+    2373             : 
+    2374             :   /// `water aerobics, water calisthenics`
+    2375           0 :   String get paWaterAerobicsDesc {
+    2376           0 :     return Intl.message(
+    2377             :       'water aerobics, water calisthenics',
+    2378             :       name: 'paWaterAerobicsDesc',
+    2379             :       desc: '',
+    2380           0 :       args: [],
+    2381             :     );
+    2382             :   }
+    2383             : 
+    2384             :   /// `aerobic`
+    2385           0 :   String get paDancingAerobicGeneral {
+    2386           0 :     return Intl.message(
+    2387             :       'aerobic',
+    2388             :       name: 'paDancingAerobicGeneral',
+    2389             :       desc: '',
+    2390           0 :       args: [],
+    2391             :     );
+    2392             :   }
+    2393             : 
+    2394             :   /// `general`
+    2395           0 :   String get paDancingAerobicGeneralDesc {
+    2396           0 :     return Intl.message(
+    2397             :       'general',
+    2398             :       name: 'paDancingAerobicGeneralDesc',
+    2399             :       desc: '',
+    2400           0 :       args: [],
+    2401             :     );
+    2402             :   }
+    2403             : 
+    2404             :   /// `general dancing`
+    2405           0 :   String get paDancingGeneral {
+    2406           0 :     return Intl.message(
+    2407             :       'general dancing',
+    2408             :       name: 'paDancingGeneral',
+    2409             :       desc: '',
+    2410           0 :       args: [],
+    2411             :     );
+    2412             :   }
+    2413             : 
+    2414             :   /// `e.g. disco, folk, Irish step dancing, line dancing, polka, contra, country`
+    2415           0 :   String get paDancingGeneralDesc {
+    2416           0 :     return Intl.message(
+    2417             :       'e.g. disco, folk, Irish step dancing, line dancing, polka, contra, country',
+    2418             :       name: 'paDancingGeneralDesc',
+    2419             :       desc: '',
+    2420           0 :       args: [],
+    2421             :     );
+    2422             :   }
+    2423             : 
+    2424             :   /// `jogging`
+    2425           0 :   String get paJoggingGeneral {
+    2426           0 :     return Intl.message(
+    2427             :       'jogging',
+    2428             :       name: 'paJoggingGeneral',
+    2429             :       desc: '',
+    2430           0 :       args: [],
+    2431             :     );
+    2432             :   }
+    2433             : 
+    2434             :   /// `general`
+    2435           0 :   String get paJoggingGeneralDesc {
+    2436           0 :     return Intl.message(
+    2437             :       'general',
+    2438             :       name: 'paJoggingGeneralDesc',
+    2439             :       desc: '',
+    2440           0 :       args: [],
+    2441             :     );
+    2442             :   }
+    2443             : 
+    2444             :   /// `running`
+    2445           0 :   String get paRunningGeneral {
+    2446           0 :     return Intl.message(
+    2447             :       'running',
+    2448             :       name: 'paRunningGeneral',
+    2449             :       desc: '',
+    2450           0 :       args: [],
+    2451             :     );
+    2452             :   }
+    2453             : 
+    2454             :   /// `general`
+    2455           0 :   String get paRunningGeneralDesc {
+    2456           0 :     return Intl.message(
+    2457             :       'general',
+    2458             :       name: 'paRunningGeneralDesc',
+    2459             :       desc: '',
+    2460           0 :       args: [],
+    2461             :     );
+    2462             :   }
+    2463             : 
+    2464             :   /// `archery`
+    2465           0 :   String get paArcheryGeneral {
+    2466           0 :     return Intl.message(
+    2467             :       'archery',
+    2468             :       name: 'paArcheryGeneral',
+    2469             :       desc: '',
+    2470           0 :       args: [],
+    2471             :     );
+    2472             :   }
+    2473             : 
+    2474             :   /// `non-hunting`
+    2475           0 :   String get paArcheryGeneralDesc {
+    2476           0 :     return Intl.message(
+    2477             :       'non-hunting',
+    2478             :       name: 'paArcheryGeneralDesc',
+    2479             :       desc: '',
+    2480           0 :       args: [],
+    2481             :     );
+    2482             :   }
+    2483             : 
+    2484             :   /// `badminton`
+    2485           0 :   String get paBadmintonGeneral {
+    2486           0 :     return Intl.message(
+    2487             :       'badminton',
+    2488             :       name: 'paBadmintonGeneral',
+    2489             :       desc: '',
+    2490           0 :       args: [],
+    2491             :     );
+    2492             :   }
+    2493             : 
+    2494             :   /// `social singles and doubles, general`
+    2495           0 :   String get paBadmintonGeneralDesc {
+    2496           0 :     return Intl.message(
+    2497             :       'social singles and doubles, general',
+    2498             :       name: 'paBadmintonGeneralDesc',
+    2499             :       desc: '',
+    2500           0 :       args: [],
+    2501             :     );
+    2502             :   }
+    2503             : 
+    2504             :   /// `basketball`
+    2505           0 :   String get paBasketballGeneral {
+    2506           0 :     return Intl.message(
+    2507             :       'basketball',
+    2508             :       name: 'paBasketballGeneral',
+    2509             :       desc: '',
+    2510           0 :       args: [],
+    2511             :     );
+    2512             :   }
+    2513             : 
+    2514             :   /// `general`
+    2515           0 :   String get paBasketballGeneralDesc {
+    2516           0 :     return Intl.message(
+    2517             :       'general',
+    2518             :       name: 'paBasketballGeneralDesc',
+    2519             :       desc: '',
+    2520           0 :       args: [],
+    2521             :     );
+    2522             :   }
+    2523             : 
+    2524             :   /// `billiards`
+    2525           0 :   String get paBilliardsGeneral {
+    2526           0 :     return Intl.message(
+    2527             :       'billiards',
+    2528             :       name: 'paBilliardsGeneral',
+    2529             :       desc: '',
+    2530           0 :       args: [],
+    2531             :     );
+    2532             :   }
+    2533             : 
+    2534             :   /// `general`
+    2535           0 :   String get paBilliardsGeneralDesc {
+    2536           0 :     return Intl.message(
+    2537             :       'general',
+    2538             :       name: 'paBilliardsGeneralDesc',
+    2539             :       desc: '',
+    2540           0 :       args: [],
+    2541             :     );
+    2542             :   }
+    2543             : 
+    2544             :   /// `bowling`
+    2545           0 :   String get paBowlingGeneral {
+    2546           0 :     return Intl.message(
+    2547             :       'bowling',
+    2548             :       name: 'paBowlingGeneral',
+    2549             :       desc: '',
+    2550           0 :       args: [],
+    2551             :     );
+    2552             :   }
+    2553             : 
+    2554             :   /// `general`
+    2555           0 :   String get paBowlingGeneralDesc {
+    2556           0 :     return Intl.message(
+    2557             :       'general',
+    2558             :       name: 'paBowlingGeneralDesc',
+    2559             :       desc: '',
+    2560           0 :       args: [],
+    2561             :     );
+    2562             :   }
+    2563             : 
+    2564             :   /// `boxing`
+    2565           0 :   String get paBoxingBag {
+    2566           0 :     return Intl.message(
+    2567             :       'boxing',
+    2568             :       name: 'paBoxingBag',
+    2569             :       desc: '',
+    2570           0 :       args: [],
+    2571             :     );
+    2572             :   }
+    2573             : 
+    2574             :   /// `punching bag`
+    2575           0 :   String get paBoxingBagDesc {
+    2576           0 :     return Intl.message(
+    2577             :       'punching bag',
+    2578             :       name: 'paBoxingBagDesc',
+    2579             :       desc: '',
+    2580           0 :       args: [],
+    2581             :     );
+    2582             :   }
+    2583             : 
+    2584             :   /// `boxing`
+    2585           0 :   String get paBoxingGeneral {
+    2586           0 :     return Intl.message(
+    2587             :       'boxing',
+    2588             :       name: 'paBoxingGeneral',
+    2589             :       desc: '',
+    2590           0 :       args: [],
+    2591             :     );
+    2592             :   }
+    2593             : 
+    2594             :   /// `in ring, general`
+    2595           0 :   String get paBoxingGeneralDesc {
+    2596           0 :     return Intl.message(
+    2597             :       'in ring, general',
+    2598             :       name: 'paBoxingGeneralDesc',
+    2599             :       desc: '',
+    2600           0 :       args: [],
+    2601             :     );
+    2602             :   }
+    2603             : 
+    2604             :   /// `broomball`
+    2605           0 :   String get paBroomball {
+    2606           0 :     return Intl.message(
+    2607             :       'broomball',
+    2608             :       name: 'paBroomball',
+    2609             :       desc: '',
+    2610           0 :       args: [],
+    2611             :     );
+    2612             :   }
+    2613             : 
+    2614             :   /// `general`
+    2615           0 :   String get paBroomballDesc {
+    2616           0 :     return Intl.message(
+    2617             :       'general',
+    2618             :       name: 'paBroomballDesc',
+    2619             :       desc: '',
+    2620           0 :       args: [],
+    2621             :     );
+    2622             :   }
+    2623             : 
+    2624             :   /// `children’s games`
+    2625           0 :   String get paChildrenGame {
+    2626           0 :     return Intl.message(
+    2627             :       'children’s games',
+    2628             :       name: 'paChildrenGame',
+    2629             :       desc: '',
+    2630           0 :       args: [],
+    2631             :     );
+    2632             :   }
+    2633             : 
+    2634             :   /// `(e.g., hopscotch, 4-square, dodgeball, playground apparatus, t-ball, tetherball, marbles, arcade games), moderate effort`
+    2635           0 :   String get paChildrenGameDesc {
+    2636           0 :     return Intl.message(
+    2637             :       '(e.g., hopscotch, 4-square, dodgeball, playground apparatus, t-ball, tetherball, marbles, arcade games), moderate effort',
+    2638             :       name: 'paChildrenGameDesc',
+    2639             :       desc: '',
+    2640           0 :       args: [],
+    2641             :     );
+    2642             :   }
+    2643             : 
+    2644             :   /// `cheerleading`
+    2645           0 :   String get paCheerleading {
+    2646           0 :     return Intl.message(
+    2647             :       'cheerleading',
+    2648             :       name: 'paCheerleading',
+    2649             :       desc: '',
+    2650           0 :       args: [],
+    2651             :     );
+    2652             :   }
+    2653             : 
+    2654             :   /// `gymnastic moves, competitive`
+    2655           0 :   String get paCheerleadingDesc {
+    2656           0 :     return Intl.message(
+    2657             :       'gymnastic moves, competitive',
+    2658             :       name: 'paCheerleadingDesc',
+    2659             :       desc: '',
+    2660           0 :       args: [],
+    2661             :     );
+    2662             :   }
+    2663             : 
+    2664             :   /// `cricket`
+    2665           0 :   String get paCricket {
+    2666           0 :     return Intl.message(
+    2667             :       'cricket',
+    2668             :       name: 'paCricket',
+    2669             :       desc: '',
+    2670           0 :       args: [],
+    2671             :     );
+    2672             :   }
+    2673             : 
+    2674             :   /// `batting, bowling, fielding`
+    2675           0 :   String get paCricketDesc {
+    2676           0 :     return Intl.message(
+    2677             :       'batting, bowling, fielding',
+    2678             :       name: 'paCricketDesc',
+    2679             :       desc: '',
+    2680           0 :       args: [],
+    2681             :     );
+    2682             :   }
+    2683             : 
+    2684             :   /// `croquet`
+    2685           0 :   String get paCroquet {
+    2686           0 :     return Intl.message(
+    2687             :       'croquet',
+    2688             :       name: 'paCroquet',
+    2689             :       desc: '',
+    2690           0 :       args: [],
+    2691             :     );
+    2692             :   }
+    2693             : 
+    2694             :   /// `general`
+    2695           0 :   String get paCroquetDesc {
+    2696           0 :     return Intl.message(
+    2697             :       'general',
+    2698             :       name: 'paCroquetDesc',
+    2699             :       desc: '',
+    2700           0 :       args: [],
+    2701             :     );
+    2702             :   }
+    2703             : 
+    2704             :   /// `curling`
+    2705           0 :   String get paCurling {
+    2706           0 :     return Intl.message(
+    2707             :       'curling',
+    2708             :       name: 'paCurling',
+    2709             :       desc: '',
+    2710           0 :       args: [],
+    2711             :     );
+    2712             :   }
+    2713             : 
+    2714             :   /// `general`
+    2715           0 :   String get paCurlingDesc {
+    2716           0 :     return Intl.message(
+    2717             :       'general',
+    2718             :       name: 'paCurlingDesc',
+    2719             :       desc: '',
+    2720           0 :       args: [],
+    2721             :     );
+    2722             :   }
+    2723             : 
+    2724             :   /// `darts`
+    2725           0 :   String get paDartsWall {
+    2726           0 :     return Intl.message(
+    2727             :       'darts',
+    2728             :       name: 'paDartsWall',
+    2729             :       desc: '',
+    2730           0 :       args: [],
+    2731             :     );
+    2732             :   }
+    2733             : 
+    2734             :   /// `wall or lawn`
+    2735           0 :   String get paDartsWallDesc {
+    2736           0 :     return Intl.message(
+    2737             :       'wall or lawn',
+    2738             :       name: 'paDartsWallDesc',
+    2739             :       desc: '',
+    2740           0 :       args: [],
+    2741             :     );
+    2742             :   }
+    2743             : 
+    2744             :   /// `auto racing`
+    2745           0 :   String get paAutoRacing {
+    2746           0 :     return Intl.message(
+    2747             :       'auto racing',
+    2748             :       name: 'paAutoRacing',
+    2749             :       desc: '',
+    2750           0 :       args: [],
+    2751             :     );
+    2752             :   }
+    2753             : 
+    2754             :   /// `open wheel`
+    2755           0 :   String get paAutoRacingDesc {
+    2756           0 :     return Intl.message(
+    2757             :       'open wheel',
+    2758             :       name: 'paAutoRacingDesc',
+    2759             :       desc: '',
+    2760           0 :       args: [],
+    2761             :     );
+    2762             :   }
+    2763             : 
+    2764             :   /// `fencing`
+    2765           0 :   String get paFencing {
+    2766           0 :     return Intl.message(
+    2767             :       'fencing',
+    2768             :       name: 'paFencing',
+    2769             :       desc: '',
+    2770           0 :       args: [],
+    2771             :     );
+    2772             :   }
+    2773             : 
+    2774             :   /// `general`
+    2775           0 :   String get paFencingDesc {
+    2776           0 :     return Intl.message(
+    2777             :       'general',
+    2778             :       name: 'paFencingDesc',
+    2779             :       desc: '',
+    2780           0 :       args: [],
+    2781             :     );
+    2782             :   }
+    2783             : 
+    2784             :   /// `football`
+    2785           0 :   String get paAmericanFootballGeneral {
+    2786           0 :     return Intl.message(
+    2787             :       'football',
+    2788             :       name: 'paAmericanFootballGeneral',
+    2789             :       desc: '',
+    2790           0 :       args: [],
+    2791             :     );
+    2792             :   }
+    2793             : 
+    2794             :   /// `touch, flag, general`
+    2795           0 :   String get paAmericanFootballGeneralDesc {
+    2796           0 :     return Intl.message(
+    2797             :       'touch, flag, general',
+    2798             :       name: 'paAmericanFootballGeneralDesc',
+    2799             :       desc: '',
+    2800           0 :       args: [],
+    2801             :     );
+    2802             :   }
+    2803             : 
+    2804             :   /// `football or baseball`
+    2805           0 :   String get paCatch {
+    2806           0 :     return Intl.message(
+    2807             :       'football or baseball',
+    2808             :       name: 'paCatch',
+    2809             :       desc: '',
+    2810           0 :       args: [],
+    2811             :     );
+    2812             :   }
+    2813             : 
+    2814             :   /// `playing catch`
+    2815           0 :   String get paCatchDesc {
+    2816           0 :     return Intl.message(
+    2817             :       'playing catch',
+    2818             :       name: 'paCatchDesc',
+    2819             :       desc: '',
+    2820           0 :       args: [],
+    2821             :     );
+    2822             :   }
+    2823             : 
+    2824             :   /// `frisbee playing`
+    2825           0 :   String get paFrisbee {
+    2826           0 :     return Intl.message(
+    2827             :       'frisbee playing',
+    2828             :       name: 'paFrisbee',
+    2829             :       desc: '',
+    2830           0 :       args: [],
+    2831             :     );
+    2832             :   }
+    2833             : 
+    2834             :   /// `general`
+    2835           0 :   String get paFrisbeeDesc {
+    2836           0 :     return Intl.message(
+    2837             :       'general',
+    2838             :       name: 'paFrisbeeDesc',
+    2839             :       desc: '',
+    2840           0 :       args: [],
+    2841             :     );
+    2842             :   }
+    2843             : 
+    2844             :   /// `golf`
+    2845           0 :   String get paGolfGeneral {
+    2846           0 :     return Intl.message(
+    2847             :       'golf',
+    2848             :       name: 'paGolfGeneral',
+    2849             :       desc: '',
+    2850           0 :       args: [],
+    2851             :     );
+    2852             :   }
+    2853             : 
+    2854             :   /// `general`
+    2855           0 :   String get paGolfGeneralDesc {
+    2856           0 :     return Intl.message(
+    2857             :       'general',
+    2858             :       name: 'paGolfGeneralDesc',
+    2859             :       desc: '',
+    2860           0 :       args: [],
+    2861             :     );
+    2862             :   }
+    2863             : 
+    2864             :   /// `gymnastics`
+    2865           0 :   String get paGymnasticsGeneral {
+    2866           0 :     return Intl.message(
+    2867             :       'gymnastics',
+    2868             :       name: 'paGymnasticsGeneral',
+    2869             :       desc: '',
+    2870           0 :       args: [],
+    2871             :     );
+    2872             :   }
+    2873             : 
+    2874             :   /// `general`
+    2875           0 :   String get paGymnasticsGeneralDesc {
+    2876           0 :     return Intl.message(
+    2877             :       'general',
+    2878             :       name: 'paGymnasticsGeneralDesc',
+    2879             :       desc: '',
+    2880           0 :       args: [],
+    2881             :     );
+    2882             :   }
+    2883             : 
+    2884             :   /// `hacky sack`
+    2885           0 :   String get paHackySack {
+    2886           0 :     return Intl.message(
+    2887             :       'hacky sack',
+    2888             :       name: 'paHackySack',
+    2889             :       desc: '',
+    2890           0 :       args: [],
+    2891             :     );
+    2892             :   }
+    2893             : 
+    2894             :   /// `general`
+    2895           0 :   String get paHackySackDesc {
+    2896           0 :     return Intl.message(
+    2897             :       'general',
+    2898             :       name: 'paHackySackDesc',
+    2899             :       desc: '',
+    2900           0 :       args: [],
+    2901             :     );
+    2902             :   }
+    2903             : 
+    2904             :   /// `handball`
+    2905           0 :   String get paHandballGeneral {
+    2906           0 :     return Intl.message(
+    2907             :       'handball',
+    2908             :       name: 'paHandballGeneral',
+    2909             :       desc: '',
+    2910           0 :       args: [],
+    2911             :     );
+    2912             :   }
+    2913             : 
+    2914             :   /// `general`
+    2915           0 :   String get paHandballGeneralDesc {
+    2916           0 :     return Intl.message(
+    2917             :       'general',
+    2918             :       name: 'paHandballGeneralDesc',
+    2919             :       desc: '',
+    2920           0 :       args: [],
+    2921             :     );
+    2922             :   }
+    2923             : 
+    2924             :   /// `hang gliding`
+    2925           0 :   String get paHangGliding {
+    2926           0 :     return Intl.message(
+    2927             :       'hang gliding',
+    2928             :       name: 'paHangGliding',
+    2929             :       desc: '',
+    2930           0 :       args: [],
+    2931             :     );
+    2932             :   }
+    2933             : 
+    2934             :   /// `general`
+    2935           0 :   String get paHangGlidingDesc {
+    2936           0 :     return Intl.message(
+    2937             :       'general',
+    2938             :       name: 'paHangGlidingDesc',
+    2939             :       desc: '',
+    2940           0 :       args: [],
+    2941             :     );
+    2942             :   }
+    2943             : 
+    2944             :   /// `hockey, field`
+    2945           0 :   String get paHockeyField {
+    2946           0 :     return Intl.message(
+    2947             :       'hockey, field',
+    2948             :       name: 'paHockeyField',
+    2949             :       desc: '',
+    2950           0 :       args: [],
+    2951             :     );
+    2952             :   }
+    2953             : 
+    2954             :   /// `general`
+    2955           0 :   String get paHockeyFieldDesc {
+    2956           0 :     return Intl.message(
+    2957             :       'general',
+    2958             :       name: 'paHockeyFieldDesc',
+    2959             :       desc: '',
+    2960           0 :       args: [],
+    2961             :     );
+    2962             :   }
+    2963             : 
+    2964             :   /// `ice hockey`
+    2965           0 :   String get paIceHockeyGeneral {
+    2966           0 :     return Intl.message(
+    2967             :       'ice hockey',
+    2968             :       name: 'paIceHockeyGeneral',
+    2969             :       desc: '',
+    2970           0 :       args: [],
+    2971             :     );
+    2972             :   }
+    2973             : 
+    2974             :   /// `general`
+    2975           0 :   String get paIceHockeyGeneralDesc {
+    2976           0 :     return Intl.message(
+    2977             :       'general',
+    2978             :       name: 'paIceHockeyGeneralDesc',
+    2979             :       desc: '',
+    2980           0 :       args: [],
+    2981             :     );
+    2982             :   }
+    2983             : 
+    2984             :   /// `horseback riding`
+    2985           0 :   String get paHorseRidingGeneral {
+    2986           0 :     return Intl.message(
+    2987             :       'horseback riding',
+    2988             :       name: 'paHorseRidingGeneral',
+    2989             :       desc: '',
+    2990           0 :       args: [],
+    2991             :     );
+    2992             :   }
+    2993             : 
+    2994             :   /// `general`
+    2995           0 :   String get paHorseRidingGeneralDesc {
+    2996           0 :     return Intl.message(
+    2997             :       'general',
+    2998             :       name: 'paHorseRidingGeneralDesc',
+    2999             :       desc: '',
+    3000           0 :       args: [],
+    3001             :     );
+    3002             :   }
+    3003             : 
+    3004             :   /// `jai alai`
+    3005           0 :   String get paJaiAlai {
+    3006           0 :     return Intl.message(
+    3007             :       'jai alai',
+    3008             :       name: 'paJaiAlai',
+    3009             :       desc: '',
+    3010           0 :       args: [],
+    3011             :     );
+    3012             :   }
+    3013             : 
+    3014             :   /// `general`
+    3015           0 :   String get paJaiAlaiDesc {
+    3016           0 :     return Intl.message(
+    3017             :       'general',
+    3018             :       name: 'paJaiAlaiDesc',
+    3019             :       desc: '',
+    3020           0 :       args: [],
+    3021             :     );
+    3022             :   }
+    3023             : 
+    3024             :   /// `martial arts`
+    3025           0 :   String get paMartialArtsSlower {
+    3026           0 :     return Intl.message(
+    3027             :       'martial arts',
+    3028             :       name: 'paMartialArtsSlower',
+    3029             :       desc: '',
+    3030           0 :       args: [],
+    3031             :     );
+    3032             :   }
+    3033             : 
+    3034             :   /// `different types, slower pace, novice performers, practice`
+    3035           0 :   String get paMartialArtsSlowerDesc {
+    3036           0 :     return Intl.message(
+    3037             :       'different types, slower pace, novice performers, practice',
+    3038             :       name: 'paMartialArtsSlowerDesc',
+    3039             :       desc: '',
+    3040           0 :       args: [],
+    3041             :     );
+    3042             :   }
+    3043             : 
+    3044             :   /// `martial arts`
+    3045           0 :   String get paMartialArtsModerate {
+    3046           0 :     return Intl.message(
+    3047             :       'martial arts',
+    3048             :       name: 'paMartialArtsModerate',
+    3049             :       desc: '',
+    3050           0 :       args: [],
+    3051             :     );
+    3052             :   }
+    3053             : 
+    3054             :   /// `different types, moderate pace (e.g., judo, jujitsu, karate, kick boxing, tae kwan do, tai-bo, Muay Thai boxing)`
+    3055           0 :   String get paMartialArtsModerateDesc {
+    3056           0 :     return Intl.message(
+    3057             :       'different types, moderate pace (e.g., judo, jujitsu, karate, kick boxing, tae kwan do, tai-bo, Muay Thai boxing)',
+    3058             :       name: 'paMartialArtsModerateDesc',
+    3059             :       desc: '',
+    3060           0 :       args: [],
+    3061             :     );
+    3062             :   }
+    3063             : 
+    3064             :   /// `juggling`
+    3065           0 :   String get paJuggling {
+    3066           0 :     return Intl.message(
+    3067             :       'juggling',
+    3068             :       name: 'paJuggling',
+    3069             :       desc: '',
+    3070           0 :       args: [],
+    3071             :     );
+    3072             :   }
+    3073             : 
+    3074             :   /// `general`
+    3075           0 :   String get paJugglingDesc {
+    3076           0 :     return Intl.message(
+    3077             :       'general',
+    3078             :       name: 'paJugglingDesc',
+    3079             :       desc: '',
+    3080           0 :       args: [],
+    3081             :     );
+    3082             :   }
+    3083             : 
+    3084             :   /// `kickball`
+    3085           0 :   String get paKickball {
+    3086           0 :     return Intl.message(
+    3087             :       'kickball',
+    3088             :       name: 'paKickball',
+    3089             :       desc: '',
+    3090           0 :       args: [],
+    3091             :     );
+    3092             :   }
+    3093             : 
+    3094             :   /// `general`
+    3095           0 :   String get paKickballDesc {
+    3096           0 :     return Intl.message(
+    3097             :       'general',
+    3098             :       name: 'paKickballDesc',
+    3099             :       desc: '',
+    3100           0 :       args: [],
+    3101             :     );
+    3102             :   }
+    3103             : 
+    3104             :   /// `lacrosse`
+    3105           0 :   String get paLacrosse {
+    3106           0 :     return Intl.message(
+    3107             :       'lacrosse',
+    3108             :       name: 'paLacrosse',
+    3109             :       desc: '',
+    3110           0 :       args: [],
+    3111             :     );
+    3112             :   }
+    3113             : 
+    3114             :   /// `general`
+    3115           0 :   String get paLacrosseDesc {
+    3116           0 :     return Intl.message(
+    3117             :       'general',
+    3118             :       name: 'paLacrosseDesc',
+    3119             :       desc: '',
+    3120           0 :       args: [],
+    3121             :     );
+    3122             :   }
+    3123             : 
+    3124             :   /// `lawn bowling`
+    3125           0 :   String get paLawnBowling {
+    3126           0 :     return Intl.message(
+    3127             :       'lawn bowling',
+    3128             :       name: 'paLawnBowling',
+    3129             :       desc: '',
+    3130           0 :       args: [],
+    3131             :     );
+    3132             :   }
+    3133             : 
+    3134             :   /// `bocce ball, outdoor`
+    3135           0 :   String get paLawnBowlingDesc {
+    3136           0 :     return Intl.message(
+    3137             :       'bocce ball, outdoor',
+    3138             :       name: 'paLawnBowlingDesc',
+    3139             :       desc: '',
+    3140           0 :       args: [],
+    3141             :     );
+    3142             :   }
+    3143             : 
+    3144             :   /// `moto-cross`
+    3145           0 :   String get paMotoCross {
+    3146           0 :     return Intl.message(
+    3147             :       'moto-cross',
+    3148             :       name: 'paMotoCross',
+    3149             :       desc: '',
+    3150           0 :       args: [],
+    3151             :     );
+    3152             :   }
+    3153             : 
+    3154             :   /// `off-road motor sports, all-terrain vehicle, general`
+    3155           0 :   String get paMotoCrossDesc {
+    3156           0 :     return Intl.message(
+    3157             :       'off-road motor sports, all-terrain vehicle, general',
+    3158             :       name: 'paMotoCrossDesc',
+    3159             :       desc: '',
+    3160           0 :       args: [],
+    3161             :     );
+    3162             :   }
+    3163             : 
+    3164             :   /// `orienteering`
+    3165           0 :   String get paOrienteering {
+    3166           0 :     return Intl.message(
+    3167             :       'orienteering',
+    3168             :       name: 'paOrienteering',
+    3169             :       desc: '',
+    3170           0 :       args: [],
+    3171             :     );
+    3172             :   }
+    3173             : 
+    3174             :   /// `general`
+    3175           0 :   String get paOrienteeringDesc {
+    3176           0 :     return Intl.message(
+    3177             :       'general',
+    3178             :       name: 'paOrienteeringDesc',
+    3179             :       desc: '',
+    3180           0 :       args: [],
+    3181             :     );
+    3182             :   }
+    3183             : 
+    3184             :   /// `paddleball`
+    3185           0 :   String get paPaddleball {
+    3186           0 :     return Intl.message(
+    3187             :       'paddleball',
+    3188             :       name: 'paPaddleball',
+    3189             :       desc: '',
+    3190           0 :       args: [],
+    3191             :     );
+    3192             :   }
+    3193             : 
+    3194             :   /// `casual, general`
+    3195           0 :   String get paPaddleballDesc {
+    3196           0 :     return Intl.message(
+    3197             :       'casual, general',
+    3198             :       name: 'paPaddleballDesc',
+    3199             :       desc: '',
+    3200           0 :       args: [],
+    3201             :     );
+    3202             :   }
+    3203             : 
+    3204             :   /// `polo`
+    3205           0 :   String get paPoloHorse {
+    3206           0 :     return Intl.message(
+    3207             :       'polo',
+    3208             :       name: 'paPoloHorse',
+    3209             :       desc: '',
+    3210           0 :       args: [],
+    3211             :     );
+    3212             :   }
+    3213             : 
+    3214             :   /// `on horseback`
+    3215           0 :   String get paPoloHorseDesc {
+    3216           0 :     return Intl.message(
+    3217             :       'on horseback',
+    3218             :       name: 'paPoloHorseDesc',
+    3219             :       desc: '',
+    3220           0 :       args: [],
+    3221             :     );
+    3222             :   }
+    3223             : 
+    3224             :   /// `racquetball`
+    3225           0 :   String get paRacquetball {
+    3226           0 :     return Intl.message(
+    3227             :       'racquetball',
+    3228             :       name: 'paRacquetball',
+    3229             :       desc: '',
+    3230           0 :       args: [],
+    3231             :     );
+    3232             :   }
+    3233             : 
+    3234             :   /// `general`
+    3235           0 :   String get paRacquetballDesc {
+    3236           0 :     return Intl.message(
+    3237             :       'general',
+    3238             :       name: 'paRacquetballDesc',
+    3239             :       desc: '',
+    3240           0 :       args: [],
+    3241             :     );
+    3242             :   }
+    3243             : 
+    3244             :   /// `climbing`
+    3245           0 :   String get paMountainClimbing {
+    3246           0 :     return Intl.message(
+    3247             :       'climbing',
+    3248             :       name: 'paMountainClimbing',
+    3249             :       desc: '',
+    3250           0 :       args: [],
+    3251             :     );
+    3252             :   }
+    3253             : 
+    3254             :   /// `rock or mountain climbing`
+    3255           0 :   String get paMountainClimbingDesc {
+    3256           0 :     return Intl.message(
+    3257             :       'rock or mountain climbing',
+    3258             :       name: 'paMountainClimbingDesc',
+    3259             :       desc: '',
+    3260           0 :       args: [],
+    3261             :     );
+    3262             :   }
+    3263             : 
+    3264             :   /// `rodeo sports`
+    3265           0 :   String get paRodeoSportGeneralModerate {
+    3266           0 :     return Intl.message(
+    3267             :       'rodeo sports',
+    3268             :       name: 'paRodeoSportGeneralModerate',
+    3269             :       desc: '',
+    3270           0 :       args: [],
+    3271             :     );
+    3272             :   }
+    3273             : 
+    3274             :   /// `general, moderate effort`
+    3275           0 :   String get paRodeoSportGeneralModerateDesc {
+    3276           0 :     return Intl.message(
+    3277             :       'general, moderate effort',
+    3278             :       name: 'paRodeoSportGeneralModerateDesc',
+    3279             :       desc: '',
+    3280           0 :       args: [],
+    3281             :     );
+    3282             :   }
+    3283             : 
+    3284             :   /// `rope jumping`
+    3285           0 :   String get paRopeJumpingGeneral {
+    3286           0 :     return Intl.message(
+    3287             :       'rope jumping',
+    3288             :       name: 'paRopeJumpingGeneral',
+    3289             :       desc: '',
+    3290           0 :       args: [],
+    3291             :     );
+    3292             :   }
+    3293             : 
+    3294             :   /// `moderate pace, 100-120 skips/min, general, 2 foot skip, plain bounce`
+    3295           0 :   String get paRopeJumpingGeneralDesc {
+    3296           0 :     return Intl.message(
+    3297             :       'moderate pace, 100-120 skips/min, general, 2 foot skip, plain bounce',
+    3298             :       name: 'paRopeJumpingGeneralDesc',
+    3299             :       desc: '',
+    3300           0 :       args: [],
+    3301             :     );
+    3302             :   }
+    3303             : 
+    3304             :   /// `rugby`
+    3305           0 :   String get paRugbyCompetitive {
+    3306           0 :     return Intl.message(
+    3307             :       'rugby',
+    3308             :       name: 'paRugbyCompetitive',
+    3309             :       desc: '',
+    3310           0 :       args: [],
+    3311             :     );
+    3312             :   }
+    3313             : 
+    3314             :   /// `union, team, competitive`
+    3315           0 :   String get paRugbyCompetitiveDesc {
+    3316           0 :     return Intl.message(
+    3317             :       'union, team, competitive',
+    3318             :       name: 'paRugbyCompetitiveDesc',
+    3319             :       desc: '',
+    3320           0 :       args: [],
+    3321             :     );
+    3322             :   }
+    3323             : 
+    3324             :   /// `rugby`
+    3325           0 :   String get paRugbyNonCompetitive {
+    3326           0 :     return Intl.message(
+    3327             :       'rugby',
+    3328             :       name: 'paRugbyNonCompetitive',
+    3329             :       desc: '',
+    3330           0 :       args: [],
+    3331             :     );
+    3332             :   }
+    3333             : 
+    3334             :   /// `touch, non-competitive`
+    3335           0 :   String get paRugbyNonCompetitiveDesc {
+    3336           0 :     return Intl.message(
+    3337             :       'touch, non-competitive',
+    3338             :       name: 'paRugbyNonCompetitiveDesc',
+    3339             :       desc: '',
+    3340           0 :       args: [],
+    3341             :     );
+    3342             :   }
+    3343             : 
+    3344             :   /// `shuffleboard`
+    3345           0 :   String get paShuffleboard {
+    3346           0 :     return Intl.message(
+    3347             :       'shuffleboard',
+    3348             :       name: 'paShuffleboard',
+    3349             :       desc: '',
+    3350           0 :       args: [],
+    3351             :     );
+    3352             :   }
+    3353             : 
+    3354             :   /// `general`
+    3355           0 :   String get paShuffleboardDesc {
+    3356           0 :     return Intl.message(
+    3357             :       'general',
+    3358             :       name: 'paShuffleboardDesc',
+    3359             :       desc: '',
+    3360           0 :       args: [],
+    3361             :     );
+    3362             :   }
+    3363             : 
+    3364             :   /// `skateboarding`
+    3365           0 :   String get paSkateboardingGeneral {
+    3366           0 :     return Intl.message(
+    3367             :       'skateboarding',
+    3368             :       name: 'paSkateboardingGeneral',
+    3369             :       desc: '',
+    3370           0 :       args: [],
+    3371             :     );
+    3372             :   }
+    3373             : 
+    3374             :   /// `general, moderate effort`
+    3375           0 :   String get paSkateboardingGeneralDesc {
+    3376           0 :     return Intl.message(
+    3377             :       'general, moderate effort',
+    3378             :       name: 'paSkateboardingGeneralDesc',
+    3379             :       desc: '',
+    3380           0 :       args: [],
+    3381             :     );
+    3382             :   }
+    3383             : 
+    3384             :   /// `roller skating`
+    3385           0 :   String get paSkatingRoller {
+    3386           0 :     return Intl.message(
+    3387             :       'roller skating',
+    3388             :       name: 'paSkatingRoller',
+    3389             :       desc: '',
+    3390           0 :       args: [],
+    3391             :     );
+    3392             :   }
+    3393             : 
+    3394             :   /// `general`
+    3395           0 :   String get paSkatingRollerDesc {
+    3396           0 :     return Intl.message(
+    3397             :       'general',
+    3398             :       name: 'paSkatingRollerDesc',
+    3399             :       desc: '',
+    3400           0 :       args: [],
+    3401             :     );
+    3402             :   }
+    3403             : 
+    3404             :   /// `rollerblading`
+    3405           0 :   String get paRollerbladingLight {
+    3406           0 :     return Intl.message(
+    3407             :       'rollerblading',
+    3408             :       name: 'paRollerbladingLight',
+    3409             :       desc: '',
+    3410           0 :       args: [],
+    3411             :     );
+    3412             :   }
+    3413             : 
+    3414             :   /// `in-line skating`
+    3415           0 :   String get paRollerbladingLightDesc {
+    3416           0 :     return Intl.message(
+    3417             :       'in-line skating',
+    3418             :       name: 'paRollerbladingLightDesc',
+    3419             :       desc: '',
+    3420           0 :       args: [],
+    3421             :     );
+    3422             :   }
+    3423             : 
+    3424             :   /// `skydiving`
+    3425           0 :   String get paSkydiving {
+    3426           0 :     return Intl.message(
+    3427             :       'skydiving',
+    3428             :       name: 'paSkydiving',
+    3429             :       desc: '',
+    3430           0 :       args: [],
+    3431             :     );
+    3432             :   }
+    3433             : 
+    3434             :   /// `skydiving, base jumping, bungee jumping`
+    3435           0 :   String get paSkydivingDesc {
+    3436           0 :     return Intl.message(
+    3437             :       'skydiving, base jumping, bungee jumping',
+    3438             :       name: 'paSkydivingDesc',
+    3439             :       desc: '',
+    3440           0 :       args: [],
+    3441             :     );
+    3442             :   }
+    3443             : 
+    3444             :   /// `soccer`
+    3445           0 :   String get paSoccerGeneral {
+    3446           0 :     return Intl.message(
+    3447             :       'soccer',
+    3448             :       name: 'paSoccerGeneral',
+    3449             :       desc: '',
+    3450           0 :       args: [],
+    3451             :     );
+    3452             :   }
+    3453             : 
+    3454             :   /// `casual, general`
+    3455           0 :   String get paSoccerGeneralDesc {
+    3456           0 :     return Intl.message(
+    3457             :       'casual, general',
+    3458             :       name: 'paSoccerGeneralDesc',
+    3459             :       desc: '',
+    3460           0 :       args: [],
+    3461             :     );
+    3462             :   }
+    3463             : 
+    3464             :   /// `softball / baseball`
+    3465           0 :   String get paSoftballBaseballGeneral {
+    3466           0 :     return Intl.message(
+    3467             :       'softball / baseball',
+    3468             :       name: 'paSoftballBaseballGeneral',
+    3469             :       desc: '',
+    3470           0 :       args: [],
+    3471             :     );
+    3472             :   }
+    3473             : 
+    3474             :   /// `fast or slow pitch, general`
+    3475           0 :   String get paSoftballBaseballGeneralDesc {
+    3476           0 :     return Intl.message(
+    3477             :       'fast or slow pitch, general',
+    3478             :       name: 'paSoftballBaseballGeneralDesc',
+    3479             :       desc: '',
+    3480           0 :       args: [],
+    3481             :     );
+    3482             :   }
+    3483             : 
+    3484             :   /// `squash`
+    3485           0 :   String get paSquashGeneral {
+    3486           0 :     return Intl.message(
+    3487             :       'squash',
+    3488             :       name: 'paSquashGeneral',
+    3489             :       desc: '',
+    3490           0 :       args: [],
+    3491             :     );
+    3492             :   }
+    3493             : 
+    3494             :   /// `general`
+    3495           0 :   String get paSquashGeneralDesc {
+    3496           0 :     return Intl.message(
+    3497             :       'general',
+    3498             :       name: 'paSquashGeneralDesc',
+    3499             :       desc: '',
+    3500           0 :       args: [],
+    3501             :     );
+    3502             :   }
+    3503             : 
+    3504             :   /// `table tennis`
+    3505           0 :   String get paTableTennisGeneral {
+    3506           0 :     return Intl.message(
+    3507             :       'table tennis',
+    3508             :       name: 'paTableTennisGeneral',
+    3509             :       desc: '',
+    3510           0 :       args: [],
+    3511             :     );
+    3512             :   }
+    3513             : 
+    3514             :   /// `table tennis, ping pong`
+    3515           0 :   String get paTableTennisGeneralDesc {
+    3516           0 :     return Intl.message(
+    3517             :       'table tennis, ping pong',
+    3518             :       name: 'paTableTennisGeneralDesc',
+    3519             :       desc: '',
+    3520           0 :       args: [],
+    3521             :     );
+    3522             :   }
+    3523             : 
+    3524             :   /// `tai chi, qi gong`
+    3525           0 :   String get paTaiChiQiGongGeneral {
+    3526           0 :     return Intl.message(
+    3527             :       'tai chi, qi gong',
+    3528             :       name: 'paTaiChiQiGongGeneral',
+    3529             :       desc: '',
+    3530           0 :       args: [],
+    3531             :     );
+    3532             :   }
+    3533             : 
+    3534             :   /// `general`
+    3535           0 :   String get paTaiChiQiGongGeneralDesc {
+    3536           0 :     return Intl.message(
+    3537             :       'general',
+    3538             :       name: 'paTaiChiQiGongGeneralDesc',
+    3539             :       desc: '',
+    3540           0 :       args: [],
+    3541             :     );
+    3542             :   }
+    3543             : 
+    3544             :   /// `tennis`
+    3545           0 :   String get paTennisGeneral {
+    3546           0 :     return Intl.message(
+    3547             :       'tennis',
+    3548             :       name: 'paTennisGeneral',
+    3549             :       desc: '',
+    3550           0 :       args: [],
+    3551             :     );
+    3552             :   }
+    3553             : 
+    3554             :   /// `general`
+    3555           0 :   String get paTennisGeneralDesc {
+    3556           0 :     return Intl.message(
+    3557             :       'general',
+    3558             :       name: 'paTennisGeneralDesc',
+    3559             :       desc: '',
+    3560           0 :       args: [],
+    3561             :     );
+    3562             :   }
+    3563             : 
+    3564             :   /// `trampoline`
+    3565           0 :   String get paTrampolineLight {
+    3566           0 :     return Intl.message(
+    3567             :       'trampoline',
+    3568             :       name: 'paTrampolineLight',
+    3569             :       desc: '',
+    3570           0 :       args: [],
+    3571             :     );
+    3572             :   }
+    3573             : 
+    3574             :   /// `recreational`
+    3575           0 :   String get paTrampolineLightDesc {
+    3576           0 :     return Intl.message(
+    3577             :       'recreational',
+    3578             :       name: 'paTrampolineLightDesc',
+    3579             :       desc: '',
+    3580           0 :       args: [],
+    3581             :     );
+    3582             :   }
+    3583             : 
+    3584             :   /// `volleyball`
+    3585           0 :   String get paVolleyballGeneral {
+    3586           0 :     return Intl.message(
+    3587             :       'volleyball',
+    3588             :       name: 'paVolleyballGeneral',
+    3589             :       desc: '',
+    3590           0 :       args: [],
+    3591             :     );
+    3592             :   }
+    3593             : 
+    3594             :   /// `non-competitive, 6 - 9 member team, general`
+    3595           0 :   String get paVolleyballGeneralDesc {
+    3596           0 :     return Intl.message(
+    3597             :       'non-competitive, 6 - 9 member team, general',
+    3598             :       name: 'paVolleyballGeneralDesc',
+    3599             :       desc: '',
+    3600           0 :       args: [],
+    3601             :     );
+    3602             :   }
+    3603             : 
+    3604             :   /// `wrestling`
+    3605           0 :   String get paWrestling {
+    3606           0 :     return Intl.message(
+    3607             :       'wrestling',
+    3608             :       name: 'paWrestling',
+    3609             :       desc: '',
+    3610           0 :       args: [],
+    3611             :     );
+    3612             :   }
+    3613             : 
+    3614             :   /// `general`
+    3615           0 :   String get paWrestlingDesc {
+    3616           0 :     return Intl.message(
+    3617             :       'general',
+    3618             :       name: 'paWrestlingDesc',
+    3619             :       desc: '',
+    3620           0 :       args: [],
+    3621             :     );
+    3622             :   }
+    3623             : 
+    3624             :   /// `wallyball`
+    3625           0 :   String get paWallyball {
+    3626           0 :     return Intl.message(
+    3627             :       'wallyball',
+    3628             :       name: 'paWallyball',
+    3629             :       desc: '',
+    3630           0 :       args: [],
+    3631             :     );
+    3632             :   }
+    3633             : 
+    3634             :   /// `general`
+    3635           0 :   String get paWallyballDesc {
+    3636           0 :     return Intl.message(
+    3637             :       'general',
+    3638             :       name: 'paWallyballDesc',
+    3639             :       desc: '',
+    3640           0 :       args: [],
+    3641             :     );
+    3642             :   }
+    3643             : 
+    3644             :   /// `track and field`
+    3645           0 :   String get paTrackField {
+    3646           0 :     return Intl.message(
+    3647             :       'track and field',
+    3648             :       name: 'paTrackField',
+    3649             :       desc: '',
+    3650           0 :       args: [],
+    3651             :     );
+    3652             :   }
+    3653             : 
+    3654             :   /// `(e.g. shot, discus, hammer throw)`
+    3655           0 :   String get paTrackField1Desc {
+    3656           0 :     return Intl.message(
+    3657             :       '(e.g. shot, discus, hammer throw)',
+    3658             :       name: 'paTrackField1Desc',
+    3659             :       desc: '',
+    3660           0 :       args: [],
+    3661             :     );
+    3662             :   }
+    3663             : 
+    3664             :   /// `(e.g. high jump, long jump, triple jump, javelin, pole vault)`
+    3665           0 :   String get paTrackField2Desc {
+    3666           0 :     return Intl.message(
+    3667             :       '(e.g. high jump, long jump, triple jump, javelin, pole vault)',
+    3668             :       name: 'paTrackField2Desc',
+    3669             :       desc: '',
+    3670           0 :       args: [],
+    3671             :     );
+    3672             :   }
+    3673             : 
+    3674             :   /// `(e.g. steeplechase, hurdles)`
+    3675           0 :   String get paTrackField3Desc {
+    3676           0 :     return Intl.message(
+    3677             :       '(e.g. steeplechase, hurdles)',
+    3678             :       name: 'paTrackField3Desc',
+    3679             :       desc: '',
+    3680           0 :       args: [],
+    3681             :     );
+    3682             :   }
+    3683             : 
+    3684             :   /// `backpacking`
+    3685           0 :   String get paBackpackingGeneral {
+    3686           0 :     return Intl.message(
+    3687             :       'backpacking',
+    3688             :       name: 'paBackpackingGeneral',
+    3689             :       desc: '',
+    3690           0 :       args: [],
+    3691             :     );
+    3692             :   }
+    3693             : 
+    3694             :   /// `general`
+    3695           0 :   String get paBackpackingGeneralDesc {
+    3696           0 :     return Intl.message(
+    3697             :       'general',
+    3698             :       name: 'paBackpackingGeneralDesc',
+    3699             :       desc: '',
+    3700           0 :       args: [],
+    3701             :     );
+    3702             :   }
+    3703             : 
+    3704             :   /// `climbing hills, no load`
+    3705           0 :   String get paClimbingHillsNoLoadGeneral {
+    3706           0 :     return Intl.message(
+    3707             :       'climbing hills, no load',
+    3708             :       name: 'paClimbingHillsNoLoadGeneral',
+    3709             :       desc: '',
+    3710           0 :       args: [],
+    3711             :     );
+    3712             :   }
+    3713             : 
+    3714             :   /// `no load`
+    3715           0 :   String get paClimbingHillsNoLoadGeneralDesc {
+    3716           0 :     return Intl.message(
+    3717             :       'no load',
+    3718             :       name: 'paClimbingHillsNoLoadGeneralDesc',
+    3719             :       desc: '',
+    3720           0 :       args: [],
+    3721             :     );
+    3722             :   }
+    3723             : 
+    3724             :   /// `hiking`
+    3725           0 :   String get paHikingCrossCountry {
+    3726           0 :     return Intl.message(
+    3727             :       'hiking',
+    3728             :       name: 'paHikingCrossCountry',
+    3729             :       desc: '',
+    3730           0 :       args: [],
+    3731             :     );
+    3732             :   }
+    3733             : 
+    3734             :   /// `cross country`
+    3735           0 :   String get paHikingCrossCountryDesc {
+    3736           0 :     return Intl.message(
+    3737             :       'cross country',
+    3738             :       name: 'paHikingCrossCountryDesc',
+    3739             :       desc: '',
+    3740           0 :       args: [],
+    3741             :     );
+    3742             :   }
+    3743             : 
+    3744             :   /// `walking`
+    3745           0 :   String get paWalkingForPleasure {
+    3746           0 :     return Intl.message(
+    3747             :       'walking',
+    3748             :       name: 'paWalkingForPleasure',
+    3749             :       desc: '',
+    3750           0 :       args: [],
+    3751             :     );
+    3752             :   }
+    3753             : 
+    3754             :   /// `for pleasure`
+    3755           0 :   String get paWalkingForPleasureDesc {
+    3756           0 :     return Intl.message(
+    3757             :       'for pleasure',
+    3758             :       name: 'paWalkingForPleasureDesc',
+    3759             :       desc: '',
+    3760           0 :       args: [],
+    3761             :     );
+    3762             :   }
+    3763             : 
+    3764             :   /// `walking the dog`
+    3765           0 :   String get paWalkingTheDog {
+    3766           0 :     return Intl.message(
+    3767             :       'walking the dog',
+    3768             :       name: 'paWalkingTheDog',
+    3769             :       desc: '',
+    3770           0 :       args: [],
+    3771             :     );
+    3772             :   }
+    3773             : 
+    3774             :   /// `general`
+    3775           0 :   String get paWalkingTheDogDesc {
+    3776           0 :     return Intl.message(
+    3777             :       'general',
+    3778             :       name: 'paWalkingTheDogDesc',
+    3779             :       desc: '',
+    3780           0 :       args: [],
+    3781             :     );
+    3782             :   }
+    3783             : 
+    3784             :   /// `canoeing`
+    3785           0 :   String get paCanoeingGeneral {
+    3786           0 :     return Intl.message(
+    3787             :       'canoeing',
+    3788             :       name: 'paCanoeingGeneral',
+    3789             :       desc: '',
+    3790           0 :       args: [],
+    3791             :     );
+    3792             :   }
+    3793             : 
+    3794             :   /// `rowing, for pleasure, general`
+    3795           0 :   String get paCanoeingGeneralDesc {
+    3796           0 :     return Intl.message(
+    3797             :       'rowing, for pleasure, general',
+    3798             :       name: 'paCanoeingGeneralDesc',
+    3799             :       desc: '',
+    3800           0 :       args: [],
+    3801             :     );
+    3802             :   }
+    3803             : 
+    3804             :   /// `diving`
+    3805           0 :   String get paDivingSpringboardPlatform {
+    3806           0 :     return Intl.message(
+    3807             :       'diving',
+    3808             :       name: 'paDivingSpringboardPlatform',
+    3809             :       desc: '',
+    3810           0 :       args: [],
+    3811             :     );
+    3812             :   }
+    3813             : 
+    3814             :   /// `springboard or platform`
+    3815           0 :   String get paDivingSpringboardPlatformDesc {
+    3816           0 :     return Intl.message(
+    3817             :       'springboard or platform',
+    3818             :       name: 'paDivingSpringboardPlatformDesc',
+    3819             :       desc: '',
+    3820           0 :       args: [],
+    3821             :     );
+    3822             :   }
+    3823             : 
+    3824             :   /// `kayaking`
+    3825           0 :   String get paKayakingModerate {
+    3826           0 :     return Intl.message(
+    3827             :       'kayaking',
+    3828             :       name: 'paKayakingModerate',
+    3829             :       desc: '',
+    3830           0 :       args: [],
+    3831             :     );
+    3832             :   }
+    3833             : 
+    3834             :   /// `moderate effort`
+    3835           0 :   String get paKayakingModerateDesc {
+    3836           0 :     return Intl.message(
+    3837             :       'moderate effort',
+    3838             :       name: 'paKayakingModerateDesc',
+    3839             :       desc: '',
+    3840           0 :       args: [],
+    3841             :     );
+    3842             :   }
+    3843             : 
+    3844             :   /// `paddle boat`
+    3845           0 :   String get paPaddleBoat {
+    3846           0 :     return Intl.message(
+    3847             :       'paddle boat',
+    3848             :       name: 'paPaddleBoat',
+    3849             :       desc: '',
+    3850           0 :       args: [],
+    3851             :     );
+    3852             :   }
+    3853             : 
+    3854             :   /// `general`
+    3855           0 :   String get paPaddleBoatDesc {
+    3856           0 :     return Intl.message(
+    3857             :       'general',
+    3858             :       name: 'paPaddleBoatDesc',
+    3859             :       desc: '',
+    3860           0 :       args: [],
+    3861             :     );
+    3862             :   }
+    3863             : 
+    3864             :   /// `sailing`
+    3865           0 :   String get paSailingGeneral {
+    3866           0 :     return Intl.message(
+    3867             :       'sailing',
+    3868             :       name: 'paSailingGeneral',
+    3869             :       desc: '',
+    3870           0 :       args: [],
+    3871             :     );
+    3872             :   }
+    3873             : 
+    3874             :   /// `boat and board sailing, windsurfing, ice sailing, general`
+    3875           0 :   String get paSailingGeneralDesc {
+    3876           0 :     return Intl.message(
+    3877             :       'boat and board sailing, windsurfing, ice sailing, general',
+    3878             :       name: 'paSailingGeneralDesc',
+    3879             :       desc: '',
+    3880           0 :       args: [],
+    3881             :     );
+    3882             :   }
+    3883             : 
+    3884             :   /// `water skiing`
+    3885           0 :   String get paSkiingWaterWakeboarding {
+    3886           0 :     return Intl.message(
+    3887             :       'water skiing',
+    3888             :       name: 'paSkiingWaterWakeboarding',
+    3889             :       desc: '',
+    3890           0 :       args: [],
+    3891             :     );
+    3892             :   }
+    3893             : 
+    3894             :   /// `water or wakeboarding`
+    3895           0 :   String get paSkiingWaterWakeboardingDesc {
+    3896           0 :     return Intl.message(
+    3897             :       'water or wakeboarding',
+    3898             :       name: 'paSkiingWaterWakeboardingDesc',
+    3899             :       desc: '',
+    3900           0 :       args: [],
+    3901             :     );
+    3902             :   }
+    3903             : 
+    3904             :   /// `diving`
+    3905           0 :   String get paDivingGeneral {
+    3906           0 :     return Intl.message(
+    3907             :       'diving',
+    3908             :       name: 'paDivingGeneral',
+    3909             :       desc: '',
+    3910           0 :       args: [],
+    3911             :     );
+    3912             :   }
+    3913             : 
+    3914             :   /// `skindiving, scuba diving, general`
+    3915           0 :   String get paDivingGeneralDesc {
+    3916           0 :     return Intl.message(
+    3917             :       'skindiving, scuba diving, general',
+    3918             :       name: 'paDivingGeneralDesc',
+    3919             :       desc: '',
+    3920           0 :       args: [],
+    3921             :     );
+    3922             :   }
+    3923             : 
+    3924             :   /// `snorkeling`
+    3925           0 :   String get paSnorkeling {
+    3926           0 :     return Intl.message(
+    3927             :       'snorkeling',
+    3928             :       name: 'paSnorkeling',
+    3929             :       desc: '',
+    3930           0 :       args: [],
+    3931             :     );
+    3932             :   }
+    3933             : 
+    3934             :   /// `general`
+    3935           0 :   String get paSnorkelingDesc {
+    3936           0 :     return Intl.message(
+    3937             :       'general',
+    3938             :       name: 'paSnorkelingDesc',
+    3939             :       desc: '',
+    3940           0 :       args: [],
+    3941             :     );
+    3942             :   }
+    3943             : 
+    3944             :   /// `surfing`
+    3945           0 :   String get paSurfing {
+    3946           0 :     return Intl.message(
+    3947             :       'surfing',
+    3948             :       name: 'paSurfing',
+    3949             :       desc: '',
+    3950           0 :       args: [],
+    3951             :     );
+    3952             :   }
+    3953             : 
+    3954             :   /// `body or board, general`
+    3955           0 :   String get paSurfingDesc {
+    3956           0 :     return Intl.message(
+    3957             :       'body or board, general',
+    3958             :       name: 'paSurfingDesc',
+    3959             :       desc: '',
+    3960           0 :       args: [],
+    3961             :     );
+    3962             :   }
+    3963             : 
+    3964             :   /// `paddle boarding`
+    3965           0 :   String get paPaddleBoarding {
+    3966           0 :     return Intl.message(
+    3967             :       'paddle boarding',
+    3968             :       name: 'paPaddleBoarding',
+    3969             :       desc: '',
+    3970           0 :       args: [],
+    3971             :     );
+    3972             :   }
+    3973             : 
+    3974             :   /// `standing`
+    3975           0 :   String get paPaddleBoardingDesc {
+    3976           0 :     return Intl.message(
+    3977             :       'standing',
+    3978             :       name: 'paPaddleBoardingDesc',
+    3979             :       desc: '',
+    3980           0 :       args: [],
+    3981             :     );
+    3982             :   }
+    3983             : 
+    3984             :   /// `swimming`
+    3985           0 :   String get paSwimmingGeneral {
+    3986           0 :     return Intl.message(
+    3987             :       'swimming',
+    3988             :       name: 'paSwimmingGeneral',
+    3989             :       desc: '',
+    3990           0 :       args: [],
+    3991             :     );
+    3992             :   }
+    3993             : 
+    3994             :   /// `treading water, moderate effort, general`
+    3995           0 :   String get paSwimmingGeneralDesc {
+    3996           0 :     return Intl.message(
+    3997             :       'treading water, moderate effort, general',
+    3998             :       name: 'paSwimmingGeneralDesc',
+    3999             :       desc: '',
+    4000           0 :       args: [],
+    4001             :     );
+    4002             :   }
+    4003             : 
+    4004             :   /// `water aerobics`
+    4005           0 :   String get paWateraerobicsCalisthenics {
+    4006           0 :     return Intl.message(
+    4007             :       'water aerobics',
+    4008             :       name: 'paWateraerobicsCalisthenics',
+    4009             :       desc: '',
+    4010           0 :       args: [],
+    4011             :     );
+    4012             :   }
+    4013             : 
+    4014             :   /// `water aerobics, water calisthenics`
+    4015           0 :   String get paWateraerobicsCalisthenicsDesc {
+    4016           0 :     return Intl.message(
+    4017             :       'water aerobics, water calisthenics',
+    4018             :       name: 'paWateraerobicsCalisthenicsDesc',
+    4019             :       desc: '',
+    4020           0 :       args: [],
+    4021             :     );
+    4022             :   }
+    4023             : 
+    4024             :   /// `water polo`
+    4025           0 :   String get paWaterPolo {
+    4026           0 :     return Intl.message(
+    4027             :       'water polo',
+    4028             :       name: 'paWaterPolo',
+    4029             :       desc: '',
+    4030           0 :       args: [],
+    4031             :     );
+    4032             :   }
+    4033             : 
+    4034             :   /// `general`
+    4035           0 :   String get paWaterPoloDesc {
+    4036           0 :     return Intl.message(
+    4037             :       'general',
+    4038             :       name: 'paWaterPoloDesc',
+    4039             :       desc: '',
+    4040           0 :       args: [],
+    4041             :     );
+    4042             :   }
+    4043             : 
+    4044             :   /// `water volleyball`
+    4045           0 :   String get paWaterVolleyball {
+    4046           0 :     return Intl.message(
+    4047             :       'water volleyball',
+    4048             :       name: 'paWaterVolleyball',
+    4049             :       desc: '',
+    4050           0 :       args: [],
+    4051             :     );
+    4052             :   }
+    4053             : 
+    4054             :   /// `general`
+    4055           0 :   String get paWaterVolleyballDesc {
+    4056           0 :     return Intl.message(
+    4057             :       'general',
+    4058             :       name: 'paWaterVolleyballDesc',
+    4059             :       desc: '',
+    4060           0 :       args: [],
+    4061             :     );
+    4062             :   }
+    4063             : 
+    4064             :   /// `ice skating`
+    4065           0 :   String get paIceSkatingGeneral {
+    4066           0 :     return Intl.message(
+    4067             :       'ice skating',
+    4068             :       name: 'paIceSkatingGeneral',
+    4069             :       desc: '',
+    4070           0 :       args: [],
+    4071             :     );
+    4072             :   }
+    4073             : 
+    4074             :   /// `general`
+    4075           0 :   String get paIceSkatingGeneralDesc {
+    4076           0 :     return Intl.message(
+    4077             :       'general',
+    4078             :       name: 'paIceSkatingGeneralDesc',
+    4079             :       desc: '',
+    4080           0 :       args: [],
+    4081             :     );
+    4082             :   }
+    4083             : 
+    4084             :   /// `skiing`
+    4085           0 :   String get paSkiingGeneral {
+    4086           0 :     return Intl.message(
+    4087             :       'skiing',
+    4088             :       name: 'paSkiingGeneral',
+    4089             :       desc: '',
+    4090           0 :       args: [],
+    4091             :     );
+    4092             :   }
+    4093             : 
+    4094             :   /// `general`
+    4095           0 :   String get paSkiingGeneralDesc {
+    4096           0 :     return Intl.message(
+    4097             :       'general',
+    4098             :       name: 'paSkiingGeneralDesc',
+    4099             :       desc: '',
+    4100           0 :       args: [],
+    4101             :     );
+    4102             :   }
+    4103             : 
+    4104             :   /// `snow shoveling`
+    4105           0 :   String get paSnowShovingModerate {
+    4106           0 :     return Intl.message(
+    4107             :       'snow shoveling',
+    4108             :       name: 'paSnowShovingModerate',
+    4109             :       desc: '',
+    4110           0 :       args: [],
+    4111             :     );
+    4112             :   }
+    4113             : 
+    4114             :   /// `by hand, moderate effort`
+    4115           0 :   String get paSnowShovingModerateDesc {
+    4116           0 :     return Intl.message(
+    4117             :       'by hand, moderate effort',
+    4118             :       name: 'paSnowShovingModerateDesc',
+    4119             :       desc: '',
+    4120           0 :       args: [],
+    4121             :     );
+    4122             :   }
+    4123             : }
+    4124             : 
+    4125             : class AppLocalizationDelegate extends LocalizationsDelegate<S> {
+    4126           6 :   const AppLocalizationDelegate();
+    4127             : 
+    4128           1 :   List<Locale> get supportedLocales {
+    4129             :     return const <Locale>[
+    4130             :       Locale.fromSubtags(languageCode: 'en'),
+    4131             :       Locale.fromSubtags(languageCode: 'de'),
+    4132             :       Locale.fromSubtags(languageCode: 'tr'),
+    4133             :     ];
+    4134             :   }
+    4135             : 
+    4136           1 :   @override
+    4137           1 :   bool isSupported(Locale locale) => _isSupported(locale);
+    4138           1 :   @override
+    4139           1 :   Future<S> load(Locale locale) => S.load(locale);
+    4140           0 :   @override
+    4141             :   bool shouldReload(AppLocalizationDelegate old) => false;
+    4142             : 
+    4143           1 :   bool _isSupported(Locale locale) {
+    4144           2 :     for (var supportedLocale in supportedLocales) {
+    4145           3 :       if (supportedLocale.languageCode == locale.languageCode) {
+    4146             :         return true;
+    4147             :       }
+    4148             :     }
+    4149             :     return false;
+    4150             :   }
+    4151             : }
+
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/glass.png b/coverage/html/glass.png new file mode 100644 index 000000000..e1abc0068 Binary files /dev/null and b/coverage/html/glass.png differ diff --git a/coverage/html/index-sort-f.html b/coverage/html/index-sort-f.html new file mode 100644 index 000000000..48c6d3a81 --- /dev/null +++ b/coverage/html/index-sort-f.html @@ -0,0 +1,233 @@ + + + + + + + LCOV - lcov.info + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top levelHitTotalCoverage
Test:lcov.infoLines:819475817.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directory Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
core/data/data_source +
4.0%4.0%
+
4.0 %11 / 276-0 / 0
features/add_meal/data/dto/off +
0.0%
+
0.0 %0 / 72-0 / 0
core/utils/calc +
24.3%24.3%
+
24.3 %36 / 148-0 / 0
core/domain/entity +
3.0%3.0%
+
3.0 %14 / 473-0 / 0
features/add_meal/data/dto/fdc_sp +
0.0%
+
0.0 %0 / 60-0 / 0
features/add_meal/domain/entity +
22.5%22.5%
+
22.5 %29 / 129-0 / 0
core/utils +
0.0%
+
0.0 %0 / 28-0 / 0
features/home/presentation/widgets +
99.3%99.3%
+
99.3 %139 / 140-0 / 0
features/add_meal/data/dto/fdc +
0.0%
+
0.0 %0 / 48-0 / 0
generated +
3.2%3.2%
+
3.2 %40 / 1251-0 / 0
core/data/dbo +
16.0%16.0%
+
16.0 %104 / 648-0 / 0
generated/intl +
34.5%34.5%
+
34.5 %424 / 1228-0 / 0
core/domain/usecase +
0.0%
+
0.0 %0 / 51-0 / 0
features/meal_detail/presentation/bloc +
17.3%17.3%
+
17.3 %14 / 81-0 / 0
core/data/repository +
6.4%6.4%
+
6.4 %8 / 125-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/index-sort-l.html b/coverage/html/index-sort-l.html new file mode 100644 index 000000000..8a41a87cf --- /dev/null +++ b/coverage/html/index-sort-l.html @@ -0,0 +1,233 @@ + + + + + + + LCOV - lcov.info + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top levelHitTotalCoverage
Test:lcov.infoLines:819475817.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directory Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
core/utils +
0.0%
+
0.0 %0 / 28-0 / 0
features/add_meal/data/dto/fdc +
0.0%
+
0.0 %0 / 48-0 / 0
core/domain/usecase +
0.0%
+
0.0 %0 / 51-0 / 0
features/add_meal/data/dto/fdc_sp +
0.0%
+
0.0 %0 / 60-0 / 0
features/add_meal/data/dto/off +
0.0%
+
0.0 %0 / 72-0 / 0
core/domain/entity +
3.0%3.0%
+
3.0 %14 / 473-0 / 0
generated +
3.2%3.2%
+
3.2 %40 / 1251-0 / 0
core/data/data_source +
4.0%4.0%
+
4.0 %11 / 276-0 / 0
core/data/repository +
6.4%6.4%
+
6.4 %8 / 125-0 / 0
core/data/dbo +
16.0%16.0%
+
16.0 %104 / 648-0 / 0
features/meal_detail/presentation/bloc +
17.3%17.3%
+
17.3 %14 / 81-0 / 0
features/add_meal/domain/entity +
22.5%22.5%
+
22.5 %29 / 129-0 / 0
core/utils/calc +
24.3%24.3%
+
24.3 %36 / 148-0 / 0
generated/intl +
34.5%34.5%
+
34.5 %424 / 1228-0 / 0
features/home/presentation/widgets +
99.3%99.3%
+
99.3 %139 / 140-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/index.html b/coverage/html/index.html new file mode 100644 index 000000000..ac8ad261d --- /dev/null +++ b/coverage/html/index.html @@ -0,0 +1,233 @@ + + + + + + + LCOV - lcov.info + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top levelHitTotalCoverage
Test:lcov.infoLines:819475817.2 %
Date:2025-06-20 20:07:02Functions:00-
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directory Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
core/data/data_source +
4.0%4.0%
+
4.0 %11 / 276-0 / 0
core/data/dbo +
16.0%16.0%
+
16.0 %104 / 648-0 / 0
core/data/repository +
6.4%6.4%
+
6.4 %8 / 125-0 / 0
core/domain/entity +
3.0%3.0%
+
3.0 %14 / 473-0 / 0
core/domain/usecase +
0.0%
+
0.0 %0 / 51-0 / 0
core/utils +
0.0%
+
0.0 %0 / 28-0 / 0
core/utils/calc +
24.3%24.3%
+
24.3 %36 / 148-0 / 0
features/add_meal/data/dto/fdc +
0.0%
+
0.0 %0 / 48-0 / 0
features/add_meal/data/dto/fdc_sp +
0.0%
+
0.0 %0 / 60-0 / 0
features/add_meal/data/dto/off +
0.0%
+
0.0 %0 / 72-0 / 0
features/add_meal/domain/entity +
22.5%22.5%
+
22.5 %29 / 129-0 / 0
features/home/presentation/widgets +
99.3%99.3%
+
99.3 %139 / 140-0 / 0
features/meal_detail/presentation/bloc +
17.3%17.3%
+
17.3 %14 / 81-0 / 0
generated +
3.2%3.2%
+
3.2 %40 / 1251-0 / 0
generated/intl +
34.5%34.5%
+
34.5 %424 / 1228-0 / 0
+
+
+ + + + +
Generated by: LCOV version 1.14
+
+ + + diff --git a/coverage/html/ruby.png b/coverage/html/ruby.png new file mode 100644 index 000000000..991b6d4ec Binary files /dev/null and b/coverage/html/ruby.png differ diff --git a/coverage/html/snow.png b/coverage/html/snow.png new file mode 100644 index 000000000..2cdae107f Binary files /dev/null and b/coverage/html/snow.png differ diff --git a/coverage/html/updown.png b/coverage/html/updown.png new file mode 100644 index 000000000..aa56a238b Binary files /dev/null and b/coverage/html/updown.png differ diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 000000000..0118a5154 --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,5110 @@ +SF:lib/core/domain/entity/physical_activity_entity.dart +DA:17,0 +DA:23,1 +DA:26,0 +DA:27,0 +DA:29,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:70,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:77,0 +DA:78,0 +DA:79,0 +DA:80,0 +DA:81,0 +DA:82,0 +DA:83,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:91,0 +DA:92,0 +DA:93,0 +DA:94,0 +DA:95,0 +DA:96,0 +DA:97,0 +DA:98,0 +DA:99,0 +DA:100,0 +DA:101,0 +DA:102,0 +DA:103,0 +DA:104,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:109,0 +DA:110,0 +DA:111,0 +DA:112,0 +DA:113,0 +DA:114,0 +DA:115,0 +DA:116,0 +DA:117,0 +DA:118,0 +DA:119,0 +DA:120,0 +DA:121,0 +DA:122,0 +DA:124,0 +DA:127,0 +DA:128,0 +DA:129,0 +DA:130,0 +DA:131,0 +DA:132,0 +DA:133,0 +DA:134,0 +DA:135,0 +DA:136,0 +DA:137,0 +DA:138,0 +DA:139,0 +DA:140,0 +DA:141,0 +DA:142,0 +DA:143,0 +DA:144,0 +DA:145,0 +DA:146,0 +DA:147,0 +DA:148,0 +DA:149,0 +DA:150,0 +DA:151,0 +DA:152,0 +DA:153,0 +DA:154,0 +DA:155,0 +DA:156,0 +DA:157,0 +DA:158,0 +DA:159,0 +DA:160,0 +DA:161,0 +DA:162,0 +DA:163,0 +DA:164,0 +DA:165,0 +DA:166,0 +DA:167,0 +DA:168,0 +DA:169,0 +DA:170,0 +DA:171,0 +DA:172,0 +DA:173,0 +DA:174,0 +DA:175,0 +DA:176,0 +DA:177,0 +DA:178,0 +DA:179,0 +DA:180,0 +DA:181,0 +DA:182,0 +DA:183,0 +DA:184,0 +DA:185,0 +DA:186,0 +DA:187,0 +DA:188,0 +DA:189,0 +DA:190,0 +DA:191,0 +DA:192,0 +DA:193,0 +DA:194,0 +DA:195,0 +DA:196,0 +DA:197,0 +DA:198,0 +DA:199,0 +DA:200,0 +DA:201,0 +DA:202,0 +DA:203,0 +DA:204,0 +DA:205,0 +DA:206,0 +DA:207,0 +DA:208,0 +DA:209,0 +DA:210,0 +DA:211,0 +DA:212,0 +DA:213,0 +DA:214,0 +DA:215,0 +DA:216,0 +DA:217,0 +DA:218,0 +DA:219,0 +DA:220,0 +DA:222,0 +DA:225,0 +DA:227,0 +DA:228,0 +DA:231,0 +DA:234,0 +DA:237,0 +DA:240,0 +DA:243,0 +DA:246,0 +DA:249,0 +DA:252,0 +DA:255,0 +DA:258,0 +DA:261,0 +DA:264,0 +DA:267,0 +DA:270,0 +DA:273,0 +DA:276,0 +DA:279,0 +DA:282,0 +DA:285,0 +DA:288,0 +DA:291,0 +DA:294,0 +DA:297,0 +DA:300,0 +DA:303,0 +DA:306,0 +DA:309,0 +DA:312,0 +DA:315,0 +DA:318,0 +DA:321,0 +DA:324,0 +DA:327,0 +DA:330,0 +DA:333,0 +DA:336,0 +DA:339,0 +DA:342,0 +DA:345,0 +DA:348,0 +DA:351,0 +DA:354,0 +DA:357,0 +DA:360,0 +DA:363,0 +DA:366,0 +DA:369,0 +DA:372,0 +DA:375,0 +DA:378,0 +DA:381,0 +DA:384,0 +DA:387,0 +DA:390,0 +DA:393,0 +DA:396,0 +DA:399,0 +DA:402,0 +DA:405,0 +DA:408,0 +DA:411,0 +DA:414,0 +DA:417,0 +DA:420,0 +DA:423,0 +DA:426,0 +DA:429,0 +DA:432,0 +DA:435,0 +DA:438,0 +DA:441,0 +DA:444,0 +DA:447,0 +DA:450,0 +DA:453,0 +DA:456,0 +DA:459,0 +DA:462,0 +DA:465,0 +DA:468,0 +DA:471,0 +DA:474,0 +DA:483,0 +DA:485,0 +DA:486,0 +DA:487,0 +DA:488,0 +DA:489,0 +DA:490,0 +DA:491,0 +DA:492,0 +DA:496,0 +DA:499,0 +DA:500,0 +DA:502,0 +DA:503,0 +DA:505,0 +DA:506,0 +DA:508,0 +DA:509,0 +DA:511,0 +DA:512,0 +DA:514,0 +DA:515,0 +DA:517,0 +DA:518,0 +DA:524,0 +DA:527,0 +DA:530,0 +DA:533,0 +DA:536,0 +DA:539,0 +DA:542,0 +DA:545,0 +DA:562,0 +DA:566,0 +DA:569,0 +DA:572,0 +DA:575,0 +DA:578,0 +DA:581,0 +DA:584,0 +LF:319 +LH:1 +end_of_record +SF:lib/core/domain/entity/user_entity.dart +DA:14,3 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:32,12 +LF:10 +LH:2 +end_of_record +SF:lib/core/domain/entity/user_gender_entity.dart +DA:9,0 +DA:12,0 +DA:15,0 +DA:22,0 +DA:25,0 +DA:26,0 +DA:28,0 +DA:29,0 +DA:35,0 +DA:38,0 +DA:41,0 +LF:11 +LH:0 +end_of_record +SF:lib/core/domain/entity/user_pal_entity.dart +DA:11,0 +DA:14,0 +DA:17,0 +DA:20,0 +DA:23,0 +DA:30,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:37,0 +DA:39,0 +DA:40,0 +DA:42,0 +DA:43,0 +LF:14 +LH:0 +end_of_record +SF:lib/core/domain/entity/user_weight_goal_entity.dart +DA:10,0 +DA:14,0 +DA:17,0 +DA:20,0 +DA:27,0 +DA:30,0 +DA:31,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:37,0 +LF:11 +LH:0 +end_of_record +SF:lib/core/utils/calc/met_calc.dart +DA:10,1 +DA:12,5 +LF:2 +LH:2 +end_of_record +SF:lib/core/data/dbo/physical_activity_dbo.dart +DA:29,0 +DA:32,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:43,0 +DA:44,0 +DA:46,0 +DA:66,0 +DA:70,0 +DA:73,0 +DA:76,0 +DA:79,0 +DA:82,0 +DA:85,0 +DA:88,0 +LF:20 +LH:0 +end_of_record +SF:lib/core/data/dbo/physical_activity_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:29,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:47,0 +DA:48,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:63,0 +DA:65,0 +DA:66,0 +DA:68,0 +DA:70,0 +DA:72,0 +DA:74,0 +DA:76,0 +DA:78,0 +DA:85,0 +DA:88,0 +DA:89,0 +DA:91,0 +DA:92,0 +DA:94,0 +DA:95,0 +DA:97,0 +DA:98,0 +DA:100,0 +DA:101,0 +DA:103,0 +DA:104,0 +DA:106,0 +DA:107,0 +DA:112,0 +DA:113,0 +DA:115,0 +DA:118,0 +DA:119,0 +DA:120,0 +DA:127,0 +DA:128,0 +DA:129,0 +DA:130,0 +DA:131,0 +DA:132,0 +DA:133,0 +DA:134,0 +DA:137,0 +DA:139,0 +DA:140,0 +DA:141,0 +DA:142,0 +DA:143,0 +DA:144,0 +DA:145,0 +LF:77 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_dbo.dart +DA:24,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +LF:9 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:29,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:47,0 +DA:48,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:55,0 +LF:31 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_gender_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:25,0 +DA:28,0 +DA:29,0 +DA:31,0 +DA:32,0 +DA:37,0 +DA:38,0 +DA:40,0 +DA:43,0 +DA:44,0 +DA:45,0 +LF:15 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_gender_dbo.dart +DA:13,0 +DA:16,0 +DA:19,0 +LF:3 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_pal_dbo.dart +DA:17,0 +DA:20,0 +DA:23,0 +DA:26,0 +DA:29,0 +LF:5 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_pal_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:20,0 +DA:22,0 +DA:29,0 +DA:32,0 +DA:33,0 +DA:35,0 +DA:36,0 +DA:38,0 +DA:39,0 +DA:41,0 +DA:42,0 +DA:47,0 +DA:48,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:55,0 +LF:21 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_weight_goal_dbo.dart +DA:15,0 +DA:19,0 +DA:22,0 +DA:25,0 +LF:4 +LH:0 +end_of_record +SF:lib/core/data/dbo/user_weight_goal_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:20,0 +DA:27,0 +DA:30,0 +DA:31,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:37,0 +DA:42,0 +DA:43,0 +DA:45,0 +DA:48,0 +DA:49,0 +DA:50,0 +LF:18 +LH:0 +end_of_record +SF:lib/core/utils/custom_icons.dart +DA:26,0 +LF:1 +LH:0 +end_of_record +SF:lib/generated/l10n.dart +DA:16,1 +DA:20,0 +DA:21,0 +DA:28,1 +DA:29,1 +DA:30,0 +DA:31,1 +DA:32,1 +DA:33,3 +DA:34,1 +DA:35,1 +DA:42,1 +DA:43,1 +DA:44,1 +DA:49,1 +DA:50,1 +DA:54,0 +DA:55,0 +DA:59,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:69,0 +DA:74,0 +DA:75,0 +DA:79,0 +DA:84,0 +DA:85,0 +DA:89,0 +DA:94,0 +DA:95,0 +DA:99,0 +DA:104,0 +DA:105,0 +DA:109,0 +DA:114,0 +DA:115,0 +DA:119,0 +DA:124,0 +DA:125,0 +DA:129,0 +DA:134,0 +DA:135,0 +DA:139,0 +DA:144,0 +DA:145,0 +DA:149,0 +DA:154,0 +DA:155,0 +DA:159,0 +DA:164,0 +DA:165,0 +DA:169,0 +DA:174,0 +DA:175,0 +DA:179,0 +DA:184,0 +DA:185,0 +DA:189,0 +DA:194,0 +DA:195,0 +DA:199,0 +DA:204,0 +DA:205,0 +DA:209,0 +DA:214,0 +DA:215,0 +DA:219,0 +DA:224,0 +DA:225,0 +DA:229,0 +DA:234,0 +DA:235,0 +DA:239,0 +DA:244,0 +DA:245,0 +DA:249,0 +DA:254,0 +DA:255,0 +DA:259,0 +DA:264,0 +DA:265,0 +DA:269,0 +DA:274,0 +DA:275,0 +DA:279,0 +DA:284,0 +DA:285,0 +DA:289,0 +DA:294,0 +DA:295,0 +DA:299,0 +DA:304,0 +DA:305,0 +DA:309,0 +DA:314,0 +DA:315,0 +DA:319,0 +DA:324,0 +DA:325,0 +DA:329,0 +DA:334,0 +DA:335,0 +DA:339,0 +DA:344,0 +DA:345,0 +DA:349,0 +DA:354,0 +DA:355,0 +DA:359,0 +DA:364,0 +DA:365,0 +DA:369,0 +DA:374,0 +DA:375,0 +DA:379,0 +DA:384,0 +DA:385,0 +DA:389,0 +DA:394,0 +DA:395,0 +DA:399,0 +DA:404,0 +DA:405,0 +DA:409,0 +DA:414,0 +DA:415,0 +DA:419,0 +DA:424,0 +DA:425,0 +DA:429,0 +DA:434,0 +DA:435,0 +DA:439,0 +DA:444,0 +DA:445,0 +DA:449,0 +DA:454,0 +DA:455,0 +DA:459,0 +DA:464,0 +DA:465,0 +DA:469,0 +DA:474,0 +DA:475,0 +DA:479,0 +DA:484,0 +DA:485,0 +DA:489,0 +DA:494,0 +DA:495,0 +DA:499,0 +DA:504,0 +DA:505,0 +DA:509,0 +DA:514,0 +DA:515,0 +DA:519,0 +DA:524,0 +DA:525,0 +DA:529,0 +DA:534,0 +DA:535,0 +DA:539,0 +DA:544,0 +DA:545,0 +DA:549,0 +DA:554,0 +DA:555,0 +DA:559,0 +DA:564,0 +DA:565,0 +DA:569,0 +DA:574,0 +DA:575,0 +DA:579,0 +DA:584,0 +DA:585,0 +DA:589,0 +DA:594,0 +DA:595,0 +DA:599,0 +DA:604,0 +DA:605,0 +DA:609,0 +DA:614,0 +DA:615,0 +DA:619,0 +DA:624,0 +DA:625,0 +DA:629,0 +DA:634,0 +DA:635,0 +DA:639,0 +DA:644,0 +DA:645,0 +DA:649,0 +DA:654,0 +DA:655,0 +DA:659,0 +DA:664,0 +DA:665,0 +DA:669,0 +DA:674,0 +DA:675,0 +DA:679,0 +DA:684,0 +DA:685,0 +DA:689,0 +DA:694,0 +DA:695,0 +DA:699,0 +DA:704,0 +DA:705,0 +DA:709,0 +DA:714,0 +DA:715,0 +DA:719,0 +DA:724,0 +DA:725,0 +DA:729,0 +DA:734,0 +DA:735,0 +DA:739,0 +DA:744,0 +DA:745,0 +DA:749,0 +DA:754,0 +DA:755,0 +DA:759,0 +DA:764,0 +DA:765,0 +DA:769,0 +DA:774,0 +DA:775,0 +DA:779,0 +DA:784,0 +DA:785,0 +DA:789,0 +DA:794,0 +DA:795,0 +DA:799,0 +DA:804,0 +DA:805,0 +DA:809,0 +DA:814,0 +DA:816,0 +DA:817,0 +DA:820,0 +DA:825,0 +DA:826,0 +DA:830,0 +DA:835,0 +DA:836,0 +DA:840,0 +DA:845,0 +DA:846,0 +DA:850,0 +DA:855,0 +DA:856,0 +DA:860,0 +DA:865,0 +DA:866,0 +DA:870,0 +DA:875,0 +DA:876,0 +DA:880,0 +DA:885,0 +DA:886,0 +DA:890,0 +DA:895,0 +DA:896,0 +DA:900,0 +DA:905,0 +DA:906,0 +DA:910,0 +DA:915,0 +DA:916,0 +DA:920,0 +DA:925,0 +DA:926,0 +DA:930,0 +DA:935,0 +DA:936,0 +DA:940,0 +DA:945,0 +DA:946,0 +DA:950,0 +DA:955,0 +DA:956,0 +DA:960,0 +DA:965,0 +DA:966,0 +DA:970,0 +DA:975,0 +DA:976,0 +DA:980,0 +DA:985,0 +DA:986,0 +DA:990,0 +DA:995,0 +DA:996,0 +DA:1000,0 +DA:1005,0 +DA:1006,0 +DA:1010,0 +DA:1015,0 +DA:1016,0 +DA:1020,0 +DA:1025,0 +DA:1026,0 +DA:1030,0 +DA:1035,0 +DA:1036,0 +DA:1040,0 +DA:1045,0 +DA:1046,0 +DA:1050,0 +DA:1055,0 +DA:1056,0 +DA:1060,0 +DA:1065,0 +DA:1066,0 +DA:1070,0 +DA:1075,0 +DA:1076,0 +DA:1080,0 +DA:1085,0 +DA:1086,0 +DA:1090,0 +DA:1095,0 +DA:1096,0 +DA:1100,0 +DA:1105,0 +DA:1106,0 +DA:1110,0 +DA:1115,1 +DA:1116,1 +DA:1120,1 +DA:1125,1 +DA:1126,1 +DA:1130,1 +DA:1135,1 +DA:1136,1 +DA:1140,1 +DA:1145,0 +DA:1146,0 +DA:1150,0 +DA:1155,0 +DA:1156,0 +DA:1160,0 +DA:1165,1 +DA:1166,1 +DA:1170,1 +DA:1175,1 +DA:1176,1 +DA:1180,1 +DA:1185,1 +DA:1186,1 +DA:1190,1 +DA:1195,0 +DA:1196,0 +DA:1200,0 +DA:1205,0 +DA:1206,0 +DA:1210,0 +DA:1215,0 +DA:1216,0 +DA:1220,0 +DA:1225,0 +DA:1226,0 +DA:1230,0 +DA:1235,0 +DA:1236,0 +DA:1240,0 +DA:1245,0 +DA:1246,0 +DA:1250,0 +DA:1255,0 +DA:1256,0 +DA:1260,0 +DA:1265,0 +DA:1266,0 +DA:1270,0 +DA:1275,0 +DA:1276,0 +DA:1280,0 +DA:1285,0 +DA:1286,0 +DA:1290,0 +DA:1295,0 +DA:1296,0 +DA:1300,0 +DA:1305,0 +DA:1306,0 +DA:1310,0 +DA:1315,0 +DA:1316,0 +DA:1320,0 +DA:1325,0 +DA:1326,0 +DA:1330,0 +DA:1335,0 +DA:1336,0 +DA:1340,0 +DA:1345,0 +DA:1346,0 +DA:1350,0 +DA:1355,0 +DA:1356,0 +DA:1360,0 +DA:1365,0 +DA:1366,0 +DA:1370,0 +DA:1375,0 +DA:1376,0 +DA:1380,0 +DA:1385,0 +DA:1386,0 +DA:1390,0 +DA:1395,0 +DA:1396,0 +DA:1400,0 +DA:1405,0 +DA:1406,0 +DA:1410,0 +DA:1415,0 +DA:1416,0 +DA:1420,0 +DA:1425,0 +DA:1426,0 +DA:1430,0 +DA:1435,0 +DA:1436,0 +DA:1440,0 +DA:1445,0 +DA:1446,0 +DA:1450,0 +DA:1455,0 +DA:1456,0 +DA:1460,0 +DA:1465,0 +DA:1466,0 +DA:1470,0 +DA:1475,0 +DA:1476,0 +DA:1480,0 +DA:1485,0 +DA:1486,0 +DA:1490,0 +DA:1495,0 +DA:1496,0 +DA:1500,0 +DA:1505,0 +DA:1506,0 +DA:1510,0 +DA:1515,0 +DA:1516,0 +DA:1520,0 +DA:1525,0 +DA:1526,0 +DA:1530,0 +DA:1535,0 +DA:1536,0 +DA:1540,0 +DA:1545,0 +DA:1546,0 +DA:1550,0 +DA:1555,0 +DA:1556,0 +DA:1560,0 +DA:1565,0 +DA:1566,0 +DA:1570,0 +DA:1575,0 +DA:1576,0 +DA:1580,0 +DA:1585,0 +DA:1586,0 +DA:1590,0 +DA:1595,0 +DA:1596,0 +DA:1600,0 +DA:1605,0 +DA:1606,0 +DA:1610,0 +DA:1615,0 +DA:1616,0 +DA:1620,0 +DA:1625,0 +DA:1626,0 +DA:1630,0 +DA:1635,0 +DA:1636,0 +DA:1640,0 +DA:1645,0 +DA:1646,0 +DA:1650,0 +DA:1655,0 +DA:1656,0 +DA:1660,0 +DA:1665,0 +DA:1666,0 +DA:1670,0 +DA:1675,0 +DA:1676,0 +DA:1680,0 +DA:1685,0 +DA:1686,0 +DA:1690,0 +DA:1695,0 +DA:1696,0 +DA:1700,0 +DA:1705,0 +DA:1706,0 +DA:1710,0 +DA:1715,0 +DA:1716,0 +DA:1720,0 +DA:1725,0 +DA:1726,0 +DA:1730,0 +DA:1735,0 +DA:1736,0 +DA:1740,0 +DA:1745,0 +DA:1746,0 +DA:1750,0 +DA:1755,0 +DA:1756,0 +DA:1760,0 +DA:1765,0 +DA:1766,0 +DA:1770,0 +DA:1775,0 +DA:1776,0 +DA:1780,0 +DA:1785,0 +DA:1786,0 +DA:1790,0 +DA:1795,0 +DA:1796,0 +DA:1800,0 +DA:1805,0 +DA:1806,0 +DA:1810,0 +DA:1815,0 +DA:1816,0 +DA:1820,0 +DA:1825,0 +DA:1826,0 +DA:1830,0 +DA:1835,0 +DA:1836,0 +DA:1840,0 +DA:1845,0 +DA:1846,0 +DA:1850,0 +DA:1855,0 +DA:1856,0 +DA:1860,0 +DA:1865,0 +DA:1866,0 +DA:1870,0 +DA:1875,0 +DA:1876,0 +DA:1877,0 +DA:1880,0 +DA:1885,0 +DA:1886,0 +DA:1890,0 +DA:1895,0 +DA:1896,0 +DA:1900,0 +DA:1905,0 +DA:1906,0 +DA:1910,0 +DA:1915,0 +DA:1916,0 +DA:1920,0 +DA:1925,0 +DA:1926,0 +DA:1930,0 +DA:1935,0 +DA:1936,0 +DA:1940,0 +DA:1945,0 +DA:1946,0 +DA:1950,0 +DA:1955,0 +DA:1956,0 +DA:1960,0 +DA:1965,0 +DA:1966,0 +DA:1970,0 +DA:1975,0 +DA:1976,0 +DA:1980,0 +DA:1985,0 +DA:1986,0 +DA:1990,0 +DA:1995,0 +DA:1996,0 +DA:1997,0 +DA:2000,0 +DA:2005,0 +DA:2006,0 +DA:2010,0 +DA:2015,0 +DA:2016,0 +DA:2020,0 +DA:2025,0 +DA:2026,0 +DA:2030,0 +DA:2035,0 +DA:2036,0 +DA:2040,0 +DA:2045,0 +DA:2046,0 +DA:2050,0 +DA:2055,0 +DA:2056,0 +DA:2060,0 +DA:2065,0 +DA:2066,0 +DA:2070,0 +DA:2075,0 +DA:2076,0 +DA:2080,0 +DA:2085,0 +DA:2086,0 +DA:2090,0 +DA:2095,0 +DA:2096,0 +DA:2100,0 +DA:2105,0 +DA:2106,0 +DA:2110,0 +DA:2115,0 +DA:2116,0 +DA:2120,0 +DA:2125,0 +DA:2126,0 +DA:2130,0 +DA:2135,0 +DA:2136,0 +DA:2140,0 +DA:2145,0 +DA:2146,0 +DA:2150,0 +DA:2155,0 +DA:2156,0 +DA:2160,0 +DA:2165,0 +DA:2166,0 +DA:2170,0 +DA:2175,0 +DA:2176,0 +DA:2180,0 +DA:2185,0 +DA:2186,0 +DA:2190,0 +DA:2195,0 +DA:2196,0 +DA:2200,0 +DA:2205,0 +DA:2206,0 +DA:2210,0 +DA:2215,0 +DA:2216,0 +DA:2220,0 +DA:2225,0 +DA:2226,0 +DA:2230,0 +DA:2235,0 +DA:2236,0 +DA:2240,0 +DA:2245,0 +DA:2246,0 +DA:2250,0 +DA:2255,0 +DA:2256,0 +DA:2260,0 +DA:2265,0 +DA:2266,0 +DA:2270,0 +DA:2275,0 +DA:2276,0 +DA:2280,0 +DA:2285,0 +DA:2286,0 +DA:2290,0 +DA:2295,0 +DA:2296,0 +DA:2300,0 +DA:2305,0 +DA:2306,0 +DA:2310,0 +DA:2315,0 +DA:2316,0 +DA:2320,0 +DA:2325,0 +DA:2326,0 +DA:2330,0 +DA:2335,0 +DA:2336,0 +DA:2340,0 +DA:2345,0 +DA:2346,0 +DA:2350,0 +DA:2355,0 +DA:2356,0 +DA:2360,0 +DA:2365,0 +DA:2366,0 +DA:2370,0 +DA:2375,0 +DA:2376,0 +DA:2380,0 +DA:2385,0 +DA:2386,0 +DA:2390,0 +DA:2395,0 +DA:2396,0 +DA:2400,0 +DA:2405,0 +DA:2406,0 +DA:2410,0 +DA:2415,0 +DA:2416,0 +DA:2420,0 +DA:2425,0 +DA:2426,0 +DA:2430,0 +DA:2435,0 +DA:2436,0 +DA:2440,0 +DA:2445,0 +DA:2446,0 +DA:2450,0 +DA:2455,0 +DA:2456,0 +DA:2460,0 +DA:2465,0 +DA:2466,0 +DA:2470,0 +DA:2475,0 +DA:2476,0 +DA:2480,0 +DA:2485,0 +DA:2486,0 +DA:2490,0 +DA:2495,0 +DA:2496,0 +DA:2500,0 +DA:2505,0 +DA:2506,0 +DA:2510,0 +DA:2515,0 +DA:2516,0 +DA:2520,0 +DA:2525,0 +DA:2526,0 +DA:2530,0 +DA:2535,0 +DA:2536,0 +DA:2540,0 +DA:2545,0 +DA:2546,0 +DA:2550,0 +DA:2555,0 +DA:2556,0 +DA:2560,0 +DA:2565,0 +DA:2566,0 +DA:2570,0 +DA:2575,0 +DA:2576,0 +DA:2580,0 +DA:2585,0 +DA:2586,0 +DA:2590,0 +DA:2595,0 +DA:2596,0 +DA:2600,0 +DA:2605,0 +DA:2606,0 +DA:2610,0 +DA:2615,0 +DA:2616,0 +DA:2620,0 +DA:2625,0 +DA:2626,0 +DA:2630,0 +DA:2635,0 +DA:2636,0 +DA:2640,0 +DA:2645,0 +DA:2646,0 +DA:2650,0 +DA:2655,0 +DA:2656,0 +DA:2660,0 +DA:2665,0 +DA:2666,0 +DA:2670,0 +DA:2675,0 +DA:2676,0 +DA:2680,0 +DA:2685,0 +DA:2686,0 +DA:2690,0 +DA:2695,0 +DA:2696,0 +DA:2700,0 +DA:2705,0 +DA:2706,0 +DA:2710,0 +DA:2715,0 +DA:2716,0 +DA:2720,0 +DA:2725,0 +DA:2726,0 +DA:2730,0 +DA:2735,0 +DA:2736,0 +DA:2740,0 +DA:2745,0 +DA:2746,0 +DA:2750,0 +DA:2755,0 +DA:2756,0 +DA:2760,0 +DA:2765,0 +DA:2766,0 +DA:2770,0 +DA:2775,0 +DA:2776,0 +DA:2780,0 +DA:2785,0 +DA:2786,0 +DA:2790,0 +DA:2795,0 +DA:2796,0 +DA:2800,0 +DA:2805,0 +DA:2806,0 +DA:2810,0 +DA:2815,0 +DA:2816,0 +DA:2820,0 +DA:2825,0 +DA:2826,0 +DA:2830,0 +DA:2835,0 +DA:2836,0 +DA:2840,0 +DA:2845,0 +DA:2846,0 +DA:2850,0 +DA:2855,0 +DA:2856,0 +DA:2860,0 +DA:2865,0 +DA:2866,0 +DA:2870,0 +DA:2875,0 +DA:2876,0 +DA:2880,0 +DA:2885,0 +DA:2886,0 +DA:2890,0 +DA:2895,0 +DA:2896,0 +DA:2900,0 +DA:2905,0 +DA:2906,0 +DA:2910,0 +DA:2915,0 +DA:2916,0 +DA:2920,0 +DA:2925,0 +DA:2926,0 +DA:2930,0 +DA:2935,0 +DA:2936,0 +DA:2940,0 +DA:2945,0 +DA:2946,0 +DA:2950,0 +DA:2955,0 +DA:2956,0 +DA:2960,0 +DA:2965,0 +DA:2966,0 +DA:2970,0 +DA:2975,0 +DA:2976,0 +DA:2980,0 +DA:2985,0 +DA:2986,0 +DA:2990,0 +DA:2995,0 +DA:2996,0 +DA:3000,0 +DA:3005,0 +DA:3006,0 +DA:3010,0 +DA:3015,0 +DA:3016,0 +DA:3020,0 +DA:3025,0 +DA:3026,0 +DA:3030,0 +DA:3035,0 +DA:3036,0 +DA:3040,0 +DA:3045,0 +DA:3046,0 +DA:3050,0 +DA:3055,0 +DA:3056,0 +DA:3060,0 +DA:3065,0 +DA:3066,0 +DA:3070,0 +DA:3075,0 +DA:3076,0 +DA:3080,0 +DA:3085,0 +DA:3086,0 +DA:3090,0 +DA:3095,0 +DA:3096,0 +DA:3100,0 +DA:3105,0 +DA:3106,0 +DA:3110,0 +DA:3115,0 +DA:3116,0 +DA:3120,0 +DA:3125,0 +DA:3126,0 +DA:3130,0 +DA:3135,0 +DA:3136,0 +DA:3140,0 +DA:3145,0 +DA:3146,0 +DA:3150,0 +DA:3155,0 +DA:3156,0 +DA:3160,0 +DA:3165,0 +DA:3166,0 +DA:3170,0 +DA:3175,0 +DA:3176,0 +DA:3180,0 +DA:3185,0 +DA:3186,0 +DA:3190,0 +DA:3195,0 +DA:3196,0 +DA:3200,0 +DA:3205,0 +DA:3206,0 +DA:3210,0 +DA:3215,0 +DA:3216,0 +DA:3220,0 +DA:3225,0 +DA:3226,0 +DA:3230,0 +DA:3235,0 +DA:3236,0 +DA:3240,0 +DA:3245,0 +DA:3246,0 +DA:3250,0 +DA:3255,0 +DA:3256,0 +DA:3260,0 +DA:3265,0 +DA:3266,0 +DA:3270,0 +DA:3275,0 +DA:3276,0 +DA:3280,0 +DA:3285,0 +DA:3286,0 +DA:3290,0 +DA:3295,0 +DA:3296,0 +DA:3300,0 +DA:3305,0 +DA:3306,0 +DA:3310,0 +DA:3315,0 +DA:3316,0 +DA:3320,0 +DA:3325,0 +DA:3326,0 +DA:3330,0 +DA:3335,0 +DA:3336,0 +DA:3340,0 +DA:3345,0 +DA:3346,0 +DA:3350,0 +DA:3355,0 +DA:3356,0 +DA:3360,0 +DA:3365,0 +DA:3366,0 +DA:3370,0 +DA:3375,0 +DA:3376,0 +DA:3380,0 +DA:3385,0 +DA:3386,0 +DA:3390,0 +DA:3395,0 +DA:3396,0 +DA:3400,0 +DA:3405,0 +DA:3406,0 +DA:3410,0 +DA:3415,0 +DA:3416,0 +DA:3420,0 +DA:3425,0 +DA:3426,0 +DA:3430,0 +DA:3435,0 +DA:3436,0 +DA:3440,0 +DA:3445,0 +DA:3446,0 +DA:3450,0 +DA:3455,0 +DA:3456,0 +DA:3460,0 +DA:3465,0 +DA:3466,0 +DA:3470,0 +DA:3475,0 +DA:3476,0 +DA:3480,0 +DA:3485,0 +DA:3486,0 +DA:3490,0 +DA:3495,0 +DA:3496,0 +DA:3500,0 +DA:3505,0 +DA:3506,0 +DA:3510,0 +DA:3515,0 +DA:3516,0 +DA:3520,0 +DA:3525,0 +DA:3526,0 +DA:3530,0 +DA:3535,0 +DA:3536,0 +DA:3540,0 +DA:3545,0 +DA:3546,0 +DA:3550,0 +DA:3555,0 +DA:3556,0 +DA:3560,0 +DA:3565,0 +DA:3566,0 +DA:3570,0 +DA:3575,0 +DA:3576,0 +DA:3580,0 +DA:3585,0 +DA:3586,0 +DA:3590,0 +DA:3595,0 +DA:3596,0 +DA:3600,0 +DA:3605,0 +DA:3606,0 +DA:3610,0 +DA:3615,0 +DA:3616,0 +DA:3620,0 +DA:3625,0 +DA:3626,0 +DA:3630,0 +DA:3635,0 +DA:3636,0 +DA:3640,0 +DA:3645,0 +DA:3646,0 +DA:3650,0 +DA:3655,0 +DA:3656,0 +DA:3660,0 +DA:3665,0 +DA:3666,0 +DA:3670,0 +DA:3675,0 +DA:3676,0 +DA:3680,0 +DA:3685,0 +DA:3686,0 +DA:3690,0 +DA:3695,0 +DA:3696,0 +DA:3700,0 +DA:3705,0 +DA:3706,0 +DA:3710,0 +DA:3715,0 +DA:3716,0 +DA:3720,0 +DA:3725,0 +DA:3726,0 +DA:3730,0 +DA:3735,0 +DA:3736,0 +DA:3740,0 +DA:3745,0 +DA:3746,0 +DA:3750,0 +DA:3755,0 +DA:3756,0 +DA:3760,0 +DA:3765,0 +DA:3766,0 +DA:3770,0 +DA:3775,0 +DA:3776,0 +DA:3780,0 +DA:3785,0 +DA:3786,0 +DA:3790,0 +DA:3795,0 +DA:3796,0 +DA:3800,0 +DA:3805,0 +DA:3806,0 +DA:3810,0 +DA:3815,0 +DA:3816,0 +DA:3820,0 +DA:3825,0 +DA:3826,0 +DA:3830,0 +DA:3835,0 +DA:3836,0 +DA:3840,0 +DA:3845,0 +DA:3846,0 +DA:3850,0 +DA:3855,0 +DA:3856,0 +DA:3860,0 +DA:3865,0 +DA:3866,0 +DA:3870,0 +DA:3875,0 +DA:3876,0 +DA:3880,0 +DA:3885,0 +DA:3886,0 +DA:3890,0 +DA:3895,0 +DA:3896,0 +DA:3900,0 +DA:3905,0 +DA:3906,0 +DA:3910,0 +DA:3915,0 +DA:3916,0 +DA:3920,0 +DA:3925,0 +DA:3926,0 +DA:3930,0 +DA:3935,0 +DA:3936,0 +DA:3940,0 +DA:3945,0 +DA:3946,0 +DA:3950,0 +DA:3955,0 +DA:3956,0 +DA:3960,0 +DA:3965,0 +DA:3966,0 +DA:3970,0 +DA:3975,0 +DA:3976,0 +DA:3980,0 +DA:3985,0 +DA:3986,0 +DA:3990,0 +DA:3995,0 +DA:3996,0 +DA:4000,0 +DA:4005,0 +DA:4006,0 +DA:4010,0 +DA:4015,0 +DA:4016,0 +DA:4020,0 +DA:4025,0 +DA:4026,0 +DA:4030,0 +DA:4035,0 +DA:4036,0 +DA:4040,0 +DA:4045,0 +DA:4046,0 +DA:4050,0 +DA:4055,0 +DA:4056,0 +DA:4060,0 +DA:4065,0 +DA:4066,0 +DA:4070,0 +DA:4075,0 +DA:4076,0 +DA:4080,0 +DA:4085,0 +DA:4086,0 +DA:4090,0 +DA:4095,0 +DA:4096,0 +DA:4100,0 +DA:4105,0 +DA:4106,0 +DA:4110,0 +DA:4115,0 +DA:4116,0 +DA:4120,0 +DA:4126,6 +DA:4128,1 +DA:4136,1 +DA:4137,1 +DA:4138,1 +DA:4139,1 +DA:4140,0 +DA:4143,1 +DA:4144,2 +DA:4145,3 +LF:1251 +LH:40 +end_of_record +SF:lib/generated/intl/messages_all.dart +DA:24,3 +DA:25,0 +DA:26,2 +DA:27,0 +DA:30,1 +DA:32,1 +DA:33,0 +DA:34,1 +DA:35,1 +DA:36,0 +DA:37,0 +DA:44,1 +DA:45,1 +DA:46,3 +DA:47,0 +DA:49,0 +DA:51,2 +DA:52,1 +DA:53,3 +DA:54,2 +DA:55,1 +DA:58,1 +DA:60,1 +DA:66,1 +DA:68,1 +DA:70,1 +LF:26 +LH:19 +end_of_record +SF:lib/generated/intl/messages_de.dart +DA:16,0 +DA:21,0 +DA:23,0 +DA:25,0 +DA:26,0 +DA:28,0 +DA:30,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:43,0 +DA:44,0 +DA:46,0 +DA:49,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:53,0 +DA:56,0 +DA:57,0 +DA:59,0 +DA:60,0 +DA:62,0 +DA:63,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:69,0 +DA:70,0 +DA:71,0 +DA:72,0 +DA:74,0 +DA:78,0 +DA:79,0 +DA:82,0 +DA:84,0 +DA:85,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:91,0 +DA:94,0 +DA:95,0 +DA:97,0 +DA:100,0 +DA:101,0 +DA:103,0 +DA:106,0 +DA:107,0 +DA:109,0 +DA:110,0 +DA:111,0 +DA:112,0 +DA:113,0 +DA:115,0 +DA:116,0 +DA:119,0 +DA:121,0 +DA:122,0 +DA:123,0 +DA:125,0 +DA:127,0 +DA:129,0 +DA:131,0 +DA:134,0 +DA:135,0 +DA:136,0 +DA:139,0 +DA:140,0 +DA:143,0 +DA:144,0 +DA:145,0 +DA:146,0 +DA:147,0 +DA:148,0 +DA:149,0 +DA:151,0 +DA:152,0 +DA:154,0 +DA:156,0 +DA:157,0 +DA:158,0 +DA:159,0 +DA:160,0 +DA:161,0 +DA:163,0 +DA:165,0 +DA:167,0 +DA:169,0 +DA:170,0 +DA:171,0 +DA:172,0 +DA:173,0 +DA:175,0 +DA:177,0 +DA:178,0 +DA:180,0 +DA:182,0 +DA:184,0 +DA:185,0 +DA:187,0 +DA:189,0 +DA:191,0 +DA:193,0 +DA:194,0 +DA:195,0 +DA:197,0 +DA:199,0 +DA:202,0 +DA:203,0 +DA:205,0 +DA:207,0 +DA:209,0 +DA:211,0 +DA:213,0 +DA:215,0 +DA:217,0 +DA:219,0 +DA:221,0 +DA:223,0 +DA:226,0 +DA:228,0 +DA:230,0 +DA:232,0 +DA:233,0 +DA:236,0 +DA:239,0 +DA:241,0 +DA:243,0 +DA:245,0 +DA:246,0 +DA:249,0 +DA:251,0 +DA:252,0 +DA:255,0 +DA:257,0 +DA:258,0 +DA:261,0 +DA:263,0 +DA:266,0 +DA:267,0 +DA:269,0 +DA:272,0 +DA:273,0 +DA:275,0 +DA:277,0 +DA:279,0 +DA:281,0 +DA:283,0 +DA:284,0 +DA:286,0 +DA:288,0 +DA:290,0 +DA:291,0 +DA:292,0 +DA:295,0 +DA:297,0 +DA:298,0 +DA:300,0 +DA:302,0 +DA:304,0 +DA:306,0 +DA:308,0 +DA:309,0 +DA:311,0 +DA:312,0 +DA:314,0 +DA:315,0 +DA:316,0 +DA:317,0 +DA:319,0 +DA:320,0 +DA:321,0 +DA:323,0 +DA:324,0 +DA:326,0 +DA:327,0 +DA:330,0 +DA:331,0 +DA:332,0 +DA:333,0 +DA:335,0 +DA:336,0 +DA:339,0 +DA:341,0 +DA:342,0 +DA:343,0 +DA:345,0 +DA:346,0 +DA:347,0 +DA:348,0 +DA:350,0 +DA:352,0 +DA:354,0 +DA:355,0 +DA:357,0 +DA:359,0 +DA:360,0 +DA:361,0 +DA:364,0 +DA:366,0 +DA:367,0 +DA:368,0 +DA:369,0 +DA:370,0 +DA:371,0 +DA:372,0 +DA:373,0 +DA:375,0 +DA:377,0 +DA:378,0 +DA:379,0 +DA:380,0 +DA:382,0 +DA:383,0 +DA:384,0 +DA:385,0 +DA:387,0 +DA:388,0 +DA:389,0 +DA:390,0 +DA:391,0 +DA:393,0 +DA:395,0 +DA:396,0 +DA:398,0 +DA:399,0 +DA:400,0 +DA:401,0 +DA:403,0 +DA:404,0 +DA:406,0 +DA:408,0 +DA:410,0 +DA:411,0 +DA:412,0 +DA:413,0 +DA:415,0 +DA:416,0 +DA:417,0 +DA:419,0 +DA:421,0 +DA:422,0 +DA:423,0 +DA:424,0 +DA:425,0 +DA:426,0 +DA:428,0 +DA:430,0 +DA:431,0 +DA:434,0 +DA:435,0 +DA:437,0 +DA:438,0 +DA:440,0 +DA:442,0 +DA:444,0 +DA:445,0 +DA:447,0 +DA:448,0 +DA:449,0 +DA:450,0 +DA:451,0 +DA:453,0 +DA:454,0 +DA:456,0 +DA:457,0 +DA:458,0 +DA:460,0 +DA:461,0 +DA:464,0 +DA:465,0 +DA:468,0 +DA:470,0 +DA:472,0 +DA:473,0 +DA:476,0 +DA:478,0 +DA:479,0 +DA:480,0 +DA:482,0 +DA:483,0 +DA:485,0 +DA:487,0 +DA:488,0 +DA:489,0 +DA:491,0 +DA:492,0 +DA:494,0 +DA:496,0 +DA:498,0 +DA:500,0 +DA:501,0 +DA:503,0 +DA:505,0 +DA:507,0 +DA:508,0 +DA:510,0 +DA:511,0 +DA:513,0 +DA:515,0 +DA:516,0 +DA:518,0 +DA:520,0 +DA:521,0 +DA:523,0 +DA:525,0 +DA:526,0 +DA:527,0 +DA:529,0 +DA:530,0 +DA:533,0 +DA:535,0 +DA:537,0 +DA:539,0 +DA:540,0 +DA:542,0 +DA:543,0 +DA:544,0 +DA:546,0 +DA:548,0 +DA:550,0 +DA:552,0 +DA:554,0 +DA:556,0 +DA:558,0 +DA:559,0 +DA:562,0 +DA:564,0 +DA:565,0 +DA:567,0 +DA:568,0 +DA:569,0 +DA:571,0 +DA:572,0 +DA:574,0 +DA:575,0 +DA:577,0 +DA:579,0 +DA:581,0 +DA:582,0 +DA:584,0 +DA:585,0 +DA:586,0 +DA:588,0 +DA:589,0 +DA:592,0 +DA:593,0 +DA:595,0 +DA:596,0 +DA:599,0 +DA:600,0 +DA:601,0 +DA:603,0 +DA:604,0 +DA:605,0 +DA:606,0 +DA:607,0 +DA:609,0 +DA:610,0 +DA:612,0 +DA:614,0 +DA:616,0 +DA:617,0 +DA:619,0 +DA:620,0 +DA:621,0 +DA:623,0 +DA:625,0 +DA:627,0 +DA:629,0 +DA:631,0 +DA:632,0 +DA:634,0 +DA:636,0 +DA:638,0 +DA:639,0 +DA:641,0 +DA:643,0 +DA:645,0 +DA:647,0 +DA:648,0 +DA:650,0 +DA:651,0 +DA:653,0 +DA:655,0 +DA:657,0 +DA:659,0 +DA:660,0 +DA:661,0 +DA:663,0 +DA:664,0 +DA:665,0 +DA:666,0 +DA:668,0 +DA:669,0 +DA:670,0 +DA:671,0 +DA:672,0 +LF:402 +LH:0 +end_of_record +SF:lib/generated/intl/messages_en.dart +DA:16,3 +DA:21,0 +DA:23,0 +DA:25,0 +DA:26,0 +DA:28,0 +DA:30,0 +DA:33,2 +DA:34,1 +DA:36,1 +DA:37,1 +DA:38,1 +DA:39,1 +DA:42,1 +DA:43,1 +DA:45,1 +DA:48,1 +DA:49,1 +DA:50,1 +DA:51,1 +DA:52,1 +DA:55,1 +DA:56,1 +DA:59,1 +DA:60,1 +DA:61,1 +DA:63,1 +DA:64,1 +DA:66,1 +DA:67,1 +DA:68,1 +DA:69,1 +DA:70,1 +DA:71,1 +DA:72,1 +DA:74,1 +DA:77,1 +DA:78,1 +DA:81,1 +DA:83,1 +DA:84,1 +DA:86,1 +DA:87,1 +DA:88,1 +DA:90,1 +DA:93,1 +DA:94,1 +DA:97,1 +DA:99,1 +DA:100,1 +DA:102,1 +DA:105,1 +DA:106,1 +DA:108,1 +DA:109,1 +DA:110,1 +DA:111,1 +DA:112,1 +DA:114,1 +DA:115,1 +DA:118,1 +DA:119,1 +DA:120,1 +DA:121,1 +DA:123,1 +DA:125,1 +DA:127,1 +DA:129,1 +DA:132,1 +DA:133,1 +DA:134,1 +DA:137,1 +DA:139,1 +DA:141,1 +DA:142,1 +DA:143,1 +DA:144,1 +DA:145,1 +DA:146,1 +DA:147,1 +DA:148,1 +DA:149,1 +DA:150,1 +DA:151,1 +DA:153,1 +DA:154,1 +DA:155,1 +DA:156,1 +DA:157,1 +DA:158,1 +DA:160,1 +DA:162,1 +DA:164,1 +DA:166,1 +DA:167,1 +DA:168,1 +DA:169,1 +DA:170,1 +DA:172,1 +DA:173,1 +DA:175,1 +DA:176,1 +DA:177,1 +DA:178,1 +DA:179,1 +DA:180,1 +DA:182,1 +DA:184,1 +DA:186,1 +DA:187,1 +DA:188,1 +DA:189,1 +DA:192,1 +DA:194,1 +DA:196,1 +DA:197,1 +DA:199,1 +DA:201,1 +DA:203,1 +DA:205,1 +DA:207,1 +DA:209,1 +DA:211,1 +DA:213,1 +DA:215,1 +DA:217,1 +DA:220,1 +DA:222,1 +DA:224,1 +DA:226,1 +DA:227,1 +DA:230,1 +DA:233,1 +DA:235,1 +DA:237,1 +DA:239,1 +DA:240,1 +DA:243,1 +DA:245,1 +DA:247,1 +DA:248,1 +DA:251,1 +DA:253,1 +DA:254,1 +DA:257,1 +DA:259,1 +DA:261,1 +DA:263,1 +DA:265,1 +DA:267,1 +DA:269,1 +DA:271,1 +DA:272,1 +DA:274,1 +DA:276,1 +DA:277,1 +DA:279,1 +DA:280,1 +DA:281,1 +DA:283,1 +DA:285,1 +DA:286,1 +DA:287,1 +DA:290,1 +DA:292,1 +DA:293,1 +DA:295,1 +DA:297,1 +DA:299,1 +DA:301,1 +DA:303,1 +DA:304,1 +DA:306,1 +DA:307,1 +DA:308,1 +DA:309,1 +DA:310,1 +DA:311,1 +DA:313,1 +DA:314,1 +DA:315,1 +DA:317,1 +DA:318,1 +DA:320,1 +DA:321,1 +DA:323,1 +DA:324,1 +DA:325,1 +DA:326,1 +DA:329,1 +DA:330,1 +DA:333,1 +DA:335,1 +DA:336,1 +DA:338,1 +DA:339,1 +DA:340,1 +DA:341,1 +DA:342,1 +DA:344,1 +DA:346,1 +DA:348,1 +DA:349,1 +DA:351,1 +DA:352,1 +DA:353,1 +DA:354,1 +DA:357,1 +DA:359,1 +DA:360,1 +DA:361,1 +DA:362,1 +DA:363,1 +DA:364,1 +DA:365,1 +DA:366,1 +DA:368,1 +DA:370,1 +DA:371,1 +DA:372,1 +DA:373,1 +DA:375,1 +DA:376,1 +DA:377,1 +DA:378,1 +DA:380,1 +DA:381,1 +DA:382,1 +DA:383,1 +DA:384,1 +DA:386,1 +DA:388,1 +DA:389,1 +DA:391,1 +DA:392,1 +DA:393,1 +DA:395,1 +DA:397,1 +DA:399,1 +DA:401,1 +DA:403,1 +DA:405,1 +DA:406,1 +DA:407,1 +DA:408,1 +DA:409,1 +DA:410,1 +DA:411,1 +DA:412,1 +DA:414,1 +DA:415,1 +DA:416,1 +DA:417,1 +DA:418,1 +DA:419,1 +DA:421,1 +DA:423,1 +DA:424,1 +DA:427,1 +DA:428,1 +DA:430,1 +DA:431,1 +DA:433,1 +DA:435,1 +DA:436,1 +DA:437,1 +DA:439,1 +DA:441,1 +DA:442,1 +DA:443,1 +DA:444,1 +DA:446,1 +DA:447,1 +DA:448,1 +DA:449,1 +DA:450,1 +DA:452,1 +DA:453,1 +DA:456,1 +DA:458,1 +DA:460,1 +DA:462,1 +DA:464,1 +DA:465,1 +DA:468,1 +DA:470,1 +DA:471,1 +DA:473,1 +DA:474,1 +DA:476,1 +DA:477,1 +DA:478,1 +DA:479,1 +DA:480,1 +DA:482,1 +DA:483,1 +DA:485,1 +DA:487,1 +DA:489,1 +DA:490,1 +DA:491,1 +DA:492,1 +DA:494,1 +DA:496,1 +DA:497,1 +DA:498,1 +DA:500,1 +DA:501,1 +DA:503,1 +DA:505,1 +DA:506,1 +DA:508,1 +DA:510,1 +DA:512,1 +DA:513,1 +DA:514,1 +DA:515,1 +DA:517,1 +DA:518,1 +DA:519,1 +DA:522,1 +DA:524,1 +DA:526,1 +DA:528,1 +DA:529,1 +DA:530,1 +DA:531,1 +DA:532,1 +DA:534,1 +DA:536,1 +DA:538,1 +DA:540,1 +DA:542,1 +DA:544,1 +DA:546,1 +DA:547,1 +DA:549,1 +DA:551,1 +DA:553,1 +DA:554,1 +DA:555,1 +DA:556,1 +DA:558,1 +DA:559,1 +DA:561,1 +DA:562,1 +DA:564,1 +DA:566,1 +DA:568,1 +DA:569,1 +DA:571,1 +DA:572,1 +DA:573,1 +DA:575,1 +DA:576,1 +DA:579,1 +DA:580,1 +DA:582,1 +DA:583,1 +DA:586,1 +DA:587,1 +DA:588,1 +DA:590,1 +DA:591,1 +DA:592,1 +DA:593,1 +DA:594,1 +DA:596,1 +DA:597,1 +DA:599,1 +DA:601,1 +DA:603,1 +DA:605,1 +DA:606,1 +DA:607,1 +DA:608,1 +DA:610,1 +DA:612,1 +DA:614,1 +DA:616,1 +DA:618,1 +DA:620,1 +DA:621,1 +DA:623,1 +DA:625,1 +DA:626,1 +DA:628,1 +DA:630,1 +DA:632,1 +DA:634,1 +DA:636,1 +DA:637,1 +DA:639,1 +DA:640,1 +DA:642,1 +DA:644,1 +DA:646,1 +DA:648,1 +DA:649,1 +DA:650,1 +DA:651,1 +DA:653,1 +DA:655,1 +DA:656,1 +DA:657,1 +DA:658,1 +DA:660,1 +DA:661,1 +DA:662,1 +DA:663,1 +DA:664,1 +LF:411 +LH:405 +end_of_record +SF:lib/generated/intl/messages_tr.dart +DA:16,0 +DA:21,0 +DA:23,0 +DA:25,0 +DA:26,0 +DA:28,0 +DA:30,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:42,0 +DA:43,0 +DA:45,0 +DA:48,0 +DA:49,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:55,0 +DA:56,0 +DA:58,0 +DA:59,0 +DA:61,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:71,0 +DA:74,0 +DA:76,0 +DA:78,0 +DA:80,0 +DA:81,0 +DA:83,0 +DA:84,0 +DA:85,0 +DA:87,0 +DA:90,0 +DA:91,0 +DA:93,0 +DA:95,0 +DA:97,0 +DA:100,0 +DA:101,0 +DA:103,0 +DA:104,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:109,0 +DA:110,0 +DA:113,0 +DA:114,0 +DA:115,0 +DA:116,0 +DA:118,0 +DA:120,0 +DA:122,0 +DA:124,0 +DA:127,0 +DA:128,0 +DA:129,0 +DA:130,0 +DA:131,0 +DA:132,0 +DA:133,0 +DA:134,0 +DA:135,0 +DA:137,0 +DA:138,0 +DA:139,0 +DA:140,0 +DA:141,0 +DA:143,0 +DA:145,0 +DA:147,0 +DA:149,0 +DA:150,0 +DA:151,0 +DA:152,0 +DA:153,0 +DA:155,0 +DA:156,0 +DA:157,0 +DA:160,0 +DA:162,0 +DA:163,0 +DA:165,0 +DA:167,0 +DA:169,0 +DA:170,0 +DA:171,0 +DA:172,0 +DA:174,0 +DA:176,0 +DA:179,0 +DA:181,0 +DA:183,0 +DA:185,0 +DA:187,0 +DA:189,0 +DA:191,0 +DA:193,0 +DA:195,0 +DA:197,0 +DA:199,0 +DA:202,0 +DA:204,0 +DA:206,0 +DA:208,0 +DA:209,0 +DA:212,0 +DA:215,0 +DA:217,0 +DA:219,0 +DA:221,0 +DA:222,0 +DA:225,0 +DA:227,0 +DA:228,0 +DA:231,0 +DA:233,0 +DA:234,0 +DA:237,0 +DA:239,0 +DA:241,0 +DA:243,0 +DA:245,0 +DA:247,0 +DA:249,0 +DA:251,0 +DA:253,0 +DA:254,0 +DA:256,0 +DA:257,0 +DA:259,0 +DA:261,0 +DA:263,0 +DA:264,0 +DA:265,0 +DA:268,0 +DA:270,0 +DA:272,0 +DA:273,0 +DA:275,0 +DA:277,0 +DA:279,0 +DA:281,0 +DA:282,0 +DA:283,0 +DA:284,0 +DA:285,0 +DA:286,0 +DA:287,0 +DA:288,0 +DA:290,0 +DA:291,0 +DA:292,0 +DA:294,0 +DA:295,0 +DA:297,0 +DA:298,0 +DA:300,0 +DA:301,0 +DA:302,0 +DA:303,0 +DA:306,0 +DA:307,0 +DA:310,0 +DA:312,0 +DA:313,0 +DA:314,0 +DA:316,0 +DA:317,0 +DA:318,0 +DA:319,0 +DA:321,0 +DA:323,0 +DA:324,0 +DA:325,0 +DA:327,0 +DA:329,0 +DA:330,0 +DA:331,0 +DA:334,0 +DA:336,0 +DA:337,0 +DA:338,0 +DA:339,0 +DA:340,0 +DA:341,0 +DA:342,0 +DA:343,0 +DA:345,0 +DA:347,0 +DA:348,0 +DA:349,0 +DA:350,0 +DA:351,0 +DA:352,0 +DA:353,0 +DA:355,0 +DA:357,0 +DA:358,0 +DA:359,0 +DA:360,0 +DA:361,0 +DA:363,0 +DA:365,0 +DA:367,0 +DA:369,0 +DA:370,0 +DA:371,0 +DA:373,0 +DA:375,0 +DA:377,0 +DA:378,0 +DA:380,0 +DA:382,0 +DA:383,0 +DA:384,0 +DA:385,0 +DA:386,0 +DA:387,0 +DA:388,0 +DA:389,0 +DA:391,0 +DA:392,0 +DA:393,0 +DA:394,0 +DA:395,0 +DA:396,0 +DA:398,0 +DA:400,0 +DA:401,0 +DA:404,0 +DA:405,0 +DA:407,0 +DA:408,0 +DA:410,0 +DA:412,0 +DA:413,0 +DA:414,0 +DA:416,0 +DA:417,0 +DA:418,0 +DA:419,0 +DA:420,0 +DA:422,0 +DA:423,0 +DA:424,0 +DA:425,0 +DA:426,0 +DA:428,0 +DA:429,0 +DA:432,0 +DA:434,0 +DA:435,0 +DA:437,0 +DA:439,0 +DA:440,0 +DA:443,0 +DA:445,0 +DA:446,0 +DA:448,0 +DA:449,0 +DA:451,0 +DA:452,0 +DA:453,0 +DA:454,0 +DA:455,0 +DA:457,0 +DA:458,0 +DA:460,0 +DA:462,0 +DA:463,0 +DA:464,0 +DA:465,0 +DA:466,0 +DA:468,0 +DA:470,0 +DA:471,0 +DA:472,0 +DA:474,0 +DA:475,0 +DA:477,0 +DA:479,0 +DA:480,0 +DA:482,0 +DA:484,0 +DA:485,0 +DA:487,0 +DA:488,0 +DA:489,0 +DA:491,0 +DA:492,0 +DA:493,0 +DA:496,0 +DA:498,0 +DA:500,0 +DA:502,0 +DA:503,0 +DA:504,0 +DA:505,0 +DA:506,0 +DA:508,0 +DA:510,0 +DA:512,0 +DA:514,0 +DA:516,0 +DA:518,0 +DA:519,0 +DA:520,0 +DA:522,0 +DA:524,0 +DA:526,0 +DA:527,0 +DA:528,0 +DA:529,0 +DA:530,0 +DA:532,0 +DA:533,0 +DA:534,0 +DA:536,0 +DA:537,0 +DA:539,0 +DA:541,0 +DA:542,0 +DA:543,0 +DA:544,0 +DA:546,0 +DA:547,0 +DA:549,0 +DA:550,0 +DA:552,0 +DA:553,0 +DA:555,0 +DA:557,0 +DA:559,0 +DA:560,0 +DA:561,0 +DA:562,0 +DA:563,0 +DA:566,0 +DA:567,0 +DA:569,0 +DA:570,0 +DA:571,0 +DA:572,0 +DA:574,0 +DA:575,0 +DA:576,0 +DA:578,0 +DA:580,0 +DA:582,0 +DA:584,0 +DA:586,0 +DA:587,0 +DA:590,0 +DA:592,0 +DA:593,0 +DA:595,0 +DA:597,0 +DA:599,0 +DA:600,0 +DA:601,0 +DA:603,0 +DA:604,0 +DA:606,0 +DA:608,0 +DA:610,0 +DA:611,0 +DA:612,0 +DA:613,0 +DA:615,0 +DA:616,0 +DA:617,0 +DA:618,0 +DA:620,0 +DA:621,0 +DA:622,0 +DA:623,0 +DA:624,0 +LF:389 +LH:0 +end_of_record +SF:lib/features/meal_detail/presentation/bloc/meal_detail_bloc.dart +DA:27,0 +DA:29,0 +DA:31,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:38,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:48,0 +DA:52,0 +DA:54,0 +DA:55,0 +DA:57,0 +DA:58,0 +DA:59,0 +DA:60,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:71,0 +DA:72,0 +DA:77,0 +DA:79,0 +DA:81,0 +DA:82,0 +DA:88,0 +DA:89,0 +DA:92,0 +DA:94,0 +DA:96,0 +DA:98,0 +DA:100,0 +DA:102,0 +DA:104,0 +DA:108,0 +DA:109,0 +DA:110,0 +DA:111,0 +DA:112,0 +DA:124,1 +DA:126,1 +DA:128,1 +DA:130,1 +DA:132,1 +DA:134,2 +DA:136,1 +DA:143,1 +DA:146,1 +DA:148,1 +DA:150,1 +DA:152,1 +DA:154,1 +DA:156,1 +LF:59 +LH:14 +end_of_record +SF:lib/features/meal_detail/presentation/bloc/meal_detail_state.dart +DA:12,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:30,0 +DA:38,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:51,0 +LF:18 +LH:0 +end_of_record +SF:lib/features/meal_detail/presentation/bloc/meal_detail_event.dart +DA:4,0 +DA:15,0 +DA:23,0 +DA:25,0 +LF:4 +LH:0 +end_of_record +SF:lib/core/data/data_source/config_data_source.dart +DA:12,0 +DA:14,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:32,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:46,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:79,0 +DA:80,0 +DA:81,0 +DA:82,0 +DA:83,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:93,0 +DA:94,0 +DA:97,0 +DA:98,0 +DA:99,0 +LF:60 +LH:0 +end_of_record +SF:lib/core/data/dbo/app_theme_dbo.dart +DA:15,0 +DA:17,0 +DA:20,0 +DA:23,0 +DA:26,0 +LF:5 +LH:0 +end_of_record +SF:lib/core/data/dbo/app_theme_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:20,0 +DA:27,0 +DA:30,0 +DA:31,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:37,0 +DA:42,0 +DA:43,0 +DA:45,0 +DA:48,0 +DA:49,0 +DA:50,0 +LF:18 +LH:0 +end_of_record +SF:lib/core/data/dbo/config_dbo.dart +DA:30,0 +DA:34,0 +DA:35,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:44,0 +DA:45,0 +DA:47,0 +LF:12 +LH:0 +end_of_record +SF:lib/core/data/dbo/config_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:53,0 +DA:56,0 +DA:57,0 +DA:59,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:77,0 +DA:79,0 +DA:80,0 +DA:81,0 +DA:83,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:91,0 +DA:92,0 +LF:60 +LH:0 +end_of_record +SF:lib/core/data/data_source/intake_data_source.dart +DA:12,1 +DA:14,1 +DA:15,2 +DA:16,2 +DA:19,0 +DA:20,0 +DA:21,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:39,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:53,0 +DA:54,0 +DA:57,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:66,1 +DA:67,3 +DA:71,7 +DA:75,2 +DA:76,3 +DA:77,1 +DA:79,2 +LF:40 +LH:11 +end_of_record +SF:lib/core/data/dbo/intake_dbo.dart +DA:27,1 +DA:35,1 +DA:36,1 +DA:37,1 +DA:38,1 +DA:39,1 +DA:40,2 +DA:41,2 +DA:42,1 +DA:45,0 +DA:46,0 +DA:48,0 +LF:12 +LH:9 +end_of_record +SF:lib/core/data/dbo/intake_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:29,1 +DA:32,1 +DA:33,1 +DA:34,2 +DA:35,1 +DA:36,2 +DA:37,1 +DA:38,2 +DA:39,1 +DA:40,2 +DA:41,1 +DA:42,2 +DA:43,1 +DA:44,2 +DA:47,0 +DA:48,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:77,0 +LF:45 +LH:14 +end_of_record +SF:lib/core/data/dbo/intake_type_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:20,0 +DA:22,0 +DA:29,1 +DA:32,1 +DA:33,1 +DA:35,0 +DA:36,0 +DA:38,0 +DA:39,0 +DA:41,0 +DA:42,0 +DA:47,0 +DA:48,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:55,0 +LF:21 +LH:3 +end_of_record +SF:lib/core/data/dbo/intake_type_dbo.dart +DA:17,1 +DA:20,1 +DA:23,0 +DA:26,0 +DA:29,0 +LF:5 +LH:2 +end_of_record +SF:lib/core/data/data_source/tracked_day_data_source.dart +DA:10,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:25,0 +DA:26,0 +DA:29,0 +DA:30,0 +DA:33,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:42,0 +DA:43,0 +DA:45,0 +DA:46,0 +DA:47,0 +DA:50,0 +DA:51,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:60,0 +DA:61,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:70,0 +DA:71,0 +DA:75,0 +DA:76,0 +DA:77,0 +DA:80,0 +DA:81,0 +DA:85,0 +DA:87,0 +DA:88,0 +DA:91,0 +DA:92,0 +DA:96,0 +DA:98,0 +DA:100,0 +DA:104,0 +DA:107,0 +DA:110,0 +DA:112,0 +DA:116,0 +DA:118,0 +DA:119,0 +DA:123,0 +DA:126,0 +DA:129,0 +DA:131,0 +DA:135,0 +DA:137,0 +DA:138,0 +DA:142,0 +DA:145,0 +DA:148,0 +DA:150,0 +DA:154,0 +DA:156,0 +DA:157,0 +DA:161,0 +DA:164,0 +DA:167,0 +DA:168,0 +DA:170,0 +DA:174,0 +DA:176,0 +DA:177,0 +DA:181,0 +DA:184,0 +DA:187,0 +DA:188,0 +DA:190,0 +LF:82 +LH:0 +end_of_record +SF:lib/core/data/dbo/tracked_day_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:53,0 +DA:56,0 +DA:57,0 +DA:59,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:77,0 +DA:78,0 +DA:79,0 +DA:80,0 +DA:81,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:91,0 +DA:92,0 +DA:93,0 +DA:94,0 +LF:62 +LH:0 +end_of_record +SF:lib/core/data/dbo/tracked_day_dbo.dart +DA:29,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:56,0 +LF:15 +LH:0 +end_of_record +SF:lib/core/utils/extensions.dart +DA:7,0 +DA:9,0 +DA:11,0 +DA:12,0 +DA:14,0 +DA:16,0 +DA:26,0 +DA:27,0 +DA:34,0 +DA:35,0 +DA:38,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:51,0 +DA:55,0 +DA:61,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:71,0 +LF:22 +LH:0 +end_of_record +SF:lib/core/data/data_source/user_activity_data_source.dart +DA:10,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:33,0 +DA:34,0 +DA:36,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:43,0 +DA:45,0 +DA:49,0 +DA:50,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:60,0 +DA:61,0 +DA:62,0 +LF:30 +LH:0 +end_of_record +SF:lib/core/data/data_source/user_activity_dbo.dart +DA:23,0 +DA:26,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:37,0 +DA:38,0 +DA:40,0 +LF:12 +LH:0 +end_of_record +SF:lib/core/data/data_source/user_activity_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:28,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:45,0 +DA:47,0 +DA:50,0 +DA:51,0 +DA:52,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:69,0 +DA:70,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +LF:43 +LH:0 +end_of_record +SF:lib/core/domain/entity/user_activity_entity.dart +DA:14,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:27,0 +DA:28,0 +DA:30,0 +LF:12 +LH:0 +end_of_record +SF:lib/core/data/data_source/user_data_source.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:20,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +LF:9 +LH:0 +end_of_record +SF:lib/core/domain/entity/app_theme_entity.dart +DA:9,0 +DA:12,0 +DA:15,0 +DA:18,0 +DA:25,0 +DA:28,0 +DA:31,0 +DA:34,0 +LF:8 +LH:0 +end_of_record +SF:lib/core/domain/entity/config_entity.dart +DA:16,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +LF:21 +LH:0 +end_of_record +SF:lib/core/data/dbo/meal_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:36,1 +DA:39,1 +DA:40,1 +DA:41,2 +DA:42,1 +DA:43,2 +DA:44,1 +DA:45,2 +DA:46,1 +DA:47,2 +DA:48,1 +DA:49,2 +DA:50,1 +DA:51,2 +DA:52,1 +DA:53,2 +DA:54,1 +DA:55,2 +DA:56,1 +DA:57,2 +DA:58,1 +DA:59,2 +DA:60,1 +DA:61,2 +DA:62,1 +DA:63,2 +DA:64,1 +DA:65,2 +DA:68,0 +DA:69,0 +DA:71,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:83,0 +DA:85,0 +DA:86,0 +DA:88,0 +DA:90,0 +DA:92,0 +DA:99,1 +DA:102,1 +DA:103,0 +DA:105,1 +DA:106,1 +DA:108,0 +DA:109,0 +DA:111,0 +DA:112,0 +DA:117,0 +DA:118,0 +DA:120,0 +DA:123,0 +DA:124,0 +DA:125,0 +DA:132,0 +DA:133,0 +DA:134,0 +DA:135,0 +DA:136,0 +DA:137,0 +DA:138,0 +DA:139,0 +DA:140,0 +DA:141,0 +DA:142,0 +DA:143,0 +DA:144,0 +DA:145,0 +DA:146,0 +DA:149,0 +DA:150,0 +DA:151,0 +DA:152,0 +DA:153,0 +DA:154,0 +DA:155,0 +DA:156,0 +DA:157,0 +DA:158,0 +DA:159,0 +DA:160,0 +DA:161,0 +DA:162,0 +LF:102 +LH:32 +end_of_record +SF:lib/core/data/dbo/meal_dbo.dart +DA:45,1 +DA:60,2 +DA:61,1 +DA:62,1 +DA:63,1 +DA:64,1 +DA:65,1 +DA:66,1 +DA:67,1 +DA:68,1 +DA:69,1 +DA:70,1 +DA:71,1 +DA:73,2 +DA:74,2 +DA:77,0 +DA:78,0 +DA:80,0 +DA:94,1 +DA:97,1 +DA:100,1 +DA:103,0 +DA:106,0 +LF:23 +LH:18 +end_of_record +SF:lib/core/domain/entity/intake_entity.dart +DA:15,1 +DA:23,1 +DA:24,1 +DA:25,1 +DA:26,1 +DA:27,1 +DA:28,2 +DA:29,2 +DA:30,1 +DA:33,0 +DA:35,0 +DA:36,0 +DA:38,0 +DA:40,0 +DA:41,0 +DA:43,0 +DA:44,0 +LF:17 +LH:9 +end_of_record +SF:lib/core/domain/entity/intake_type_entity.dart +DA:11,1 +DA:14,1 +DA:17,0 +DA:20,0 +DA:23,0 +DA:30,0 +DA:33,0 +DA:36,0 +DA:39,0 +DA:42,0 +LF:10 +LH:2 +end_of_record +SF:lib/core/data/dbo/meal_nutriments_dbo.dart +DA:25,1 +DA:34,1 +DA:36,1 +DA:37,1 +DA:38,1 +DA:39,1 +DA:40,1 +DA:41,1 +DA:42,1 +DA:43,1 +DA:46,0 +DA:47,0 +DA:49,0 +LF:13 +LH:10 +end_of_record +SF:lib/core/data/dbo/meal_nutriments_dbo.g.dart +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:30,1 +DA:33,1 +DA:34,1 +DA:35,2 +DA:36,1 +DA:37,2 +DA:38,1 +DA:39,2 +DA:40,1 +DA:41,2 +DA:42,1 +DA:43,2 +DA:44,1 +DA:45,2 +DA:46,1 +DA:47,2 +DA:50,0 +DA:51,0 +DA:53,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:70,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:76,0 +DA:77,0 +DA:78,0 +DA:79,0 +DA:80,0 +DA:81,0 +DA:82,0 +DA:83,0 +DA:84,0 +LF:52 +LH:16 +end_of_record +SF:lib/features/add_meal/domain/entity/meal_entity.dart +DA:39,0 +DA:45,0 +DA:47,0 +DA:49,1 +DA:64,0 +DA:65,0 +DA:73,0 +DA:76,2 +DA:77,1 +DA:78,1 +DA:79,1 +DA:80,1 +DA:81,1 +DA:82,1 +DA:83,1 +DA:84,1 +DA:85,1 +DA:86,1 +DA:87,1 +DA:89,2 +DA:90,2 +DA:92,0 +DA:93,0 +DA:94,0 +DA:96,0 +DA:97,0 +DA:98,0 +DA:99,0 +DA:100,0 +DA:101,0 +DA:102,0 +DA:103,0 +DA:104,0 +DA:105,0 +DA:107,0 +DA:111,0 +DA:112,0 +DA:114,0 +DA:116,0 +DA:117,0 +DA:118,0 +DA:119,0 +DA:120,0 +DA:121,0 +DA:122,0 +DA:123,0 +DA:125,0 +DA:129,0 +DA:130,0 +DA:132,0 +DA:134,0 +DA:135,0 +DA:137,0 +DA:140,0 +DA:143,0 +DA:144,0 +DA:150,0 +DA:155,0 +DA:157,0 +DA:158,0 +DA:159,0 +DA:160,0 +DA:162,0 +DA:170,0 +DA:173,0 +DA:182,0 +DA:183,0 +DA:192,1 +DA:195,1 +DA:198,1 +DA:201,0 +DA:204,0 +LF:72 +LH:18 +end_of_record +SF:lib/features/add_meal/domain/entity/meal_nutriments_entity.dart +DA:19,0 +DA:21,0 +DA:23,0 +DA:25,0 +DA:27,5 +DA:36,1 +DA:45,1 +DA:47,1 +DA:48,1 +DA:49,1 +DA:50,1 +DA:51,1 +DA:52,1 +DA:53,1 +DA:54,1 +DA:57,0 +DA:62,0 +DA:64,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:71,0 +DA:72,0 +DA:75,0 +DA:80,0 +DA:81,0 +DA:82,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:93,0 +DA:94,0 +DA:95,0 +DA:98,0 +DA:99,0 +DA:100,0 +DA:103,0 +DA:104,0 +DA:105,0 +DA:108,0 +DA:109,0 +DA:110,0 +DA:113,0 +DA:114,0 +DA:115,0 +DA:118,0 +DA:119,0 +DA:120,0 +DA:122,0 +DA:132,0 +DA:134,0 +DA:140,0 +DA:142,0 +LF:57 +LH:11 +end_of_record +SF:lib/core/domain/entity/tracked_day_entity.dart +DA:19,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:48,0 +DA:52,0 +DA:53,0 +DA:54,0 +DA:56,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:64,0 +DA:68,0 +DA:70,0 +DA:72,0 +DA:73,0 +DA:75,0 +DA:79,0 +DA:80,0 +DA:81,0 +DA:82,0 +DA:83,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +LF:40 +LH:0 +end_of_record +SF:lib/core/data/repository/config_repository.dart +DA:10,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:17,0 +DA:18,0 +DA:21,0 +DA:23,0 +DA:26,0 +DA:27,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:45,0 +DA:46,0 +DA:49,0 +DA:50,0 +DA:53,0 +DA:54,0 +DA:57,0 +DA:58,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:64,0 +LF:31 +LH:0 +end_of_record +SF:lib/core/data/repository/intake_repository.dart +DA:10,1 +DA:12,1 +DA:13,1 +DA:15,2 +DA:18,0 +DA:19,0 +DA:22,0 +DA:23,0 +DA:26,0 +DA:28,0 +DA:29,0 +DA:32,0 +DA:33,0 +DA:36,0 +DA:38,0 +DA:39,0 +DA:42,0 +DA:43,0 +DA:46,1 +DA:47,2 +DA:50,3 +DA:51,1 +DA:54,0 +DA:55,0 +DA:56,0 +LF:25 +LH:8 +end_of_record +SF:lib/core/data/repository/tracked_day_repository.dart +DA:8,0 +DA:10,0 +DA:11,0 +DA:14,0 +DA:15,0 +DA:17,0 +DA:23,0 +DA:24,0 +DA:32,0 +DA:35,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:43,0 +DA:44,0 +DA:47,0 +DA:48,0 +DA:51,0 +DA:52,0 +DA:55,0 +DA:61,0 +DA:73,0 +DA:74,0 +DA:77,0 +DA:78,0 +DA:79,0 +DA:83,0 +DA:85,0 +DA:86,0 +DA:90,0 +DA:92,0 +DA:96,0 +DA:98,0 +DA:102,0 +DA:104,0 +DA:108,0 +DA:112,0 +DA:118,0 +DA:122,0 +LF:39 +LH:0 +end_of_record +SF:lib/core/data/repository/user_activity_repository.dart +DA:8,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:16,0 +DA:18,0 +DA:21,0 +DA:22,0 +DA:25,0 +DA:26,0 +DA:29,0 +DA:32,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:40,0 +DA:42,0 +DA:44,0 +DA:45,0 +DA:46,0 +LF:20 +LH:0 +end_of_record +SF:lib/core/data/repository/user_repository.dart +DA:8,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:15,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:22,0 +DA:23,0 +LF:10 +LH:0 +end_of_record +SF:lib/core/domain/usecase/add_intake_usecase.dart +DA:7,0 +DA:9,0 +DA:10,0 +LF:3 +LH:0 +end_of_record +SF:lib/core/domain/usecase/add_tracked_day_usecase.dart +DA:6,0 +DA:8,0 +DA:9,0 +DA:12,0 +DA:13,0 +DA:16,0 +DA:17,0 +DA:20,0 +DA:21,0 +DA:24,0 +DA:30,0 +DA:34,0 +DA:36,0 +DA:39,0 +DA:41,0 +DA:44,0 +DA:46,0 +DA:50,0 +DA:52,0 +DA:56,0 +DA:58,0 +DA:62,0 +DA:64,0 +DA:68,0 +DA:70,0 +LF:25 +LH:0 +end_of_record +SF:lib/core/domain/usecase/get_kcal_goal_usecase.dart +DA:13,0 +DA:16,0 +DA:20,0 +DA:21,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +LF:10 +LH:0 +end_of_record +SF:lib/core/utils/calc/calorie_goal_calc.dart +DA:10,0 +DA:12,0 +DA:14,1 +DA:15,1 +DA:17,1 +DA:20,2 +DA:21,3 +DA:22,1 +DA:25,1 +DA:27,1 +DA:29,1 +LF:11 +LH:9 +end_of_record +SF:lib/core/domain/usecase/get_macro_goal_usecase.dart +DA:7,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:21,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:29,0 +LF:13 +LH:0 +end_of_record +SF:lib/core/utils/calc/macro_calc.dart +DA:17,0 +DA:19,0 +DA:24,0 +DA:26,0 +DA:31,0 +DA:33,0 +DA:34,0 +LF:7 +LH:0 +end_of_record +SF:lib/core/utils/calc/bmr_calc.dart +DA:11,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:37,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:46,0 +DA:47,0 +DA:48,0 +DA:49,0 +DA:50,0 +DA:63,0 +DA:65,0 +DA:66,0 +DA:69,0 +DA:73,0 +DA:82,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:90,0 +DA:91,0 +DA:93,0 +DA:94,0 +DA:96,0 +DA:97,0 +DA:99,0 +DA:100,0 +DA:103,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:110,0 +DA:111,0 +DA:113,0 +DA:114,0 +DA:116,0 +DA:117,0 +DA:119,0 +DA:120,0 +DA:123,0 +LF:56 +LH:0 +end_of_record +SF:lib/core/utils/calc/tdee_calc.dart +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:27,2 +DA:29,4 +DA:30,2 +DA:31,6 +DA:32,2 +DA:33,4 +DA:34,2 +DA:35,4 +DA:36,6 +DA:38,2 +DA:39,6 +DA:40,2 +DA:41,4 +DA:42,2 +DA:43,4 +DA:44,6 +LF:20 +LH:16 +end_of_record +SF:lib/core/utils/calc/pal_calc.dart +DA:15,2 +DA:17,2 +DA:18,2 +DA:21,2 +DA:24,2 +DA:27,0 +DA:44,2 +DA:46,2 +DA:48,2 +DA:49,0 +DA:52,2 +DA:55,0 +LF:12 +LH:9 +end_of_record +SF:lib/core/utils/calc/unit_calc.dart +DA:6,0 +DA:7,0 +DA:10,0 +DA:11,0 +DA:15,0 +DA:16,0 +DA:20,0 +DA:21,0 +DA:25,0 +DA:26,0 +DA:30,0 +DA:31,0 +DA:34,0 +DA:35,0 +DA:38,0 +DA:39,0 +DA:42,0 +DA:43,0 +DA:46,0 +DA:47,0 +DA:50,0 +DA:52,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:61,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:72,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:77,0 +DA:83,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +LF:40 +LH:0 +end_of_record +SF:lib/core/utils/id_generator.dart +DA:6,0 +LF:1 +LH:0 +end_of_record +SF:lib/core/utils/supported_language.dart +DA:5,0 +DA:6,0 +DA:8,0 +DA:10,0 +LF:4 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc/fdc_const.dart +DA:155,0 +DA:159,0 +DA:160,0 +DA:161,0 +DA:166,0 +DA:168,0 +DA:169,0 +DA:172,0 +DA:177,0 +LF:9 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc/fdc_food_dto.dart +DA:21,0 +DA:32,0 +DA:33,0 +DA:35,0 +LF:4 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc/fdc_food_dto.g.dart +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,0 +LF:23 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.dart +DA:12,0 +DA:14,0 +DA:15,0 +DA:17,0 +LF:4 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc/fdc_food_nutriment_dto.g.dart +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:15,0 +DA:17,0 +DA:18,0 +DA:19,0 +LF:8 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc_sp/sp_const.dart +DA:23,0 +DA:25,0 +DA:27,0 +LF:3 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.dart +DA:26,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:31,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:48,0 +DA:51,0 +DA:52,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:57,0 +DA:64,0 +DA:65,0 +DA:67,0 +LF:26 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc_sp/sp_fdc_food_dto.g.dart +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +LF:17 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.dart +DA:14,0 +DA:19,0 +DA:20,0 +DA:22,0 +LF:4 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/fdc_sp/sp_fdc_portion_dto.g.dart +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +LF:10 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/off/off_product_dto.dart +DA:34,0 +DA:37,0 +DA:38,0 +DA:40,0 +DA:41,0 +DA:46,0 +DA:48,0 +DA:53,0 +DA:72,0 +DA:73,0 +DA:75,0 +LF:11 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/off/off_product_dto.g.dart +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:47,0 +DA:48,0 +DA:49,0 +LF:39 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/off/off_product_nutriments_dto.dart +DA:63,0 +DA:101,0 +DA:102,0 +DA:104,0 +LF:4 +LH:0 +end_of_record +SF:lib/features/add_meal/data/dto/off/off_product_nutriments_dto.g.dart +DA:9,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:21,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:30,0 +LF:18 +LH:0 +end_of_record +SF:lib/features/home/presentation/widgets/dashboard_widget.dart +DA:19,1 +DA:32,1 +DA:33,1 +DA:37,1 +DA:41,5 +DA:42,0 +DA:44,3 +DA:48,2 +DA:49,6 +DA:50,2 +DA:52,1 +DA:54,1 +DA:56,1 +DA:58,1 +DA:61,1 +DA:62,1 +DA:64,1 +DA:65,1 +DA:66,1 +DA:67,1 +DA:69,3 +DA:71,5 +DA:72,1 +DA:73,1 +DA:74,1 +DA:75,1 +DA:77,3 +DA:78,3 +DA:79,1 +DA:80,1 +DA:81,1 +DA:82,1 +DA:84,3 +DA:87,1 +DA:93,3 +DA:95,4 +DA:96,1 +DA:98,1 +DA:99,1 +DA:101,1 +DA:102,1 +DA:103,1 +DA:104,1 +DA:105,1 +DA:107,3 +DA:109,1 +DA:110,2 +DA:111,1 +DA:112,1 +DA:113,1 +DA:114,1 +DA:116,3 +DA:122,1 +DA:123,1 +DA:124,1 +DA:125,3 +DA:126,5 +DA:127,1 +DA:128,1 +DA:129,1 +DA:130,1 +DA:132,3 +DA:133,3 +DA:134,1 +DA:135,1 +DA:136,1 +DA:137,1 +DA:139,3 +DA:144,1 +DA:145,2 +DA:146,2 +DA:147,2 +DA:148,2 +DA:149,2 +DA:150,2 +LF:75 +LH:74 +end_of_record +SF:lib/features/home/presentation/widgets/macro_nutriments_widget.dart +DA:13,1 +DA:22,1 +DA:23,1 +DA:27,1 +DA:29,1 +DA:31,1 +DA:32,1 +DA:33,1 +DA:34,1 +DA:38,1 +DA:39,4 +DA:40,3 +DA:42,4 +DA:45,1 +DA:47,1 +DA:48,1 +DA:49,1 +DA:50,7 +DA:51,4 +DA:53,3 +DA:55,1 +DA:56,2 +DA:57,4 +DA:59,3 +DA:66,1 +DA:67,1 +DA:68,1 +DA:72,1 +DA:73,4 +DA:74,3 +DA:76,4 +DA:79,1 +DA:81,1 +DA:82,1 +DA:83,1 +DA:84,7 +DA:85,4 +DA:87,3 +DA:89,3 +DA:90,4 +DA:91,1 +DA:92,1 +DA:93,1 +DA:99,1 +DA:100,1 +DA:101,1 +DA:105,1 +DA:106,4 +DA:107,3 +DA:109,4 +DA:112,1 +DA:114,1 +DA:115,1 +DA:116,1 +DA:117,7 +DA:118,4 +DA:120,3 +DA:122,1 +DA:123,2 +DA:124,4 +DA:126,3 +DA:137,1 +DA:138,2 +DA:140,1 +DA:143,1 +LF:65 +LH:65 +end_of_record diff --git a/test/feature_test/add_meal/presentation/bloc/unit_dropdown_item_test.dart b/test/feature_test/add_meal/presentation/bloc/unit_dropdown_item_test.dart new file mode 100644 index 000000000..6c68f7512 --- /dev/null +++ b/test/feature_test/add_meal/presentation/bloc/unit_dropdown_item_test.dart @@ -0,0 +1,41 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:opennutritracker/features/meal_detail/presentation/bloc/meal_detail_bloc.dart'; + +void main() { + group('UnitDropdownItem Enum Tests', () { + test('toString() returns correct string representation', () { + expect(UnitDropdownItem.g.toString(), 'g'); + expect(UnitDropdownItem.ml.toString(), 'ml'); + expect(UnitDropdownItem.gml.toString(), 'g/ml'); + expect(UnitDropdownItem.oz.toString(), 'oz'); + expect(UnitDropdownItem.flOz.toString(), 'fl.oz'); + expect(UnitDropdownItem.serving.toString(), 'serving'); + }); + + group('fromString()', () { + test('returns correct enum for standard cases', () { + expect(UnitDropdownItem.g.fromString('g'), UnitDropdownItem.g); + expect(UnitDropdownItem.ml.fromString('ml'), UnitDropdownItem.ml); + expect(UnitDropdownItem.gml.fromString('g/ml'), UnitDropdownItem.gml); + expect(UnitDropdownItem.oz.fromString('oz'), UnitDropdownItem.oz); + expect(UnitDropdownItem.serving.fromString('serving'), UnitDropdownItem.serving); + }); + + test('handles fl oz variations correctly', () { + expect(UnitDropdownItem.flOz.fromString('fl oz'), UnitDropdownItem.flOz); + expect(UnitDropdownItem.flOz.fromString('fl.oz'), UnitDropdownItem.flOz); + }); + + test('returns gml as default for unknown values', () { + expect(UnitDropdownItem.g.fromString('unknown'), UnitDropdownItem.gml); + expect(UnitDropdownItem.g.fromString(''), UnitDropdownItem.gml); + expect(UnitDropdownItem.g.fromString('123'), UnitDropdownItem.gml); + }); + + test('is case sensitive', () { + expect(UnitDropdownItem.g.fromString('G'), UnitDropdownItem.gml); + expect(UnitDropdownItem.ml.fromString('ML'), UnitDropdownItem.gml); + }); + }); + }); +}