Merge branch 'master' into google_play_dependency

This commit is contained in:
Roland Geider
2023-06-20 11:06:16 +02:00
committed by GitHub
31 changed files with 1004 additions and 203 deletions

View File

@@ -2,6 +2,7 @@
## Developers
- Jigar Prajapati - <https://github.com/Jiggy9>
- Roland Geider <https://github.com/rolandgeider>
- Dylan Aird - <https://github.com/Dolaned>
- Jannik Norden - <https://github.com/Jannik-dev>
@@ -20,6 +21,7 @@
- Sandi Milohanic - <https://github.com/sandimilohanic>
- Miroslav Mazel - <https://gitlab.com/12people>
- artchiee - <https://github.com/artchiee>
- Tejas Bir Singh - <https://github.com/tejasbirsingh>
## Translators

View File

@@ -23,6 +23,7 @@
"--share=network",
"--socket=fallback-x11",
"--socket=wayland",
"--socket=pulseaudio",
"--device=dri"
]
}

View File

@@ -21,6 +21,6 @@
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>9.0</string>
<string>11.0</string>
</dict>
</plist>

View File

@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
platform :ios, '12.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@@ -1,70 +1,71 @@
PODS:
- camera (0.0.1):
- Flutter
- Flutter (1.0.0)
- flutter_barcode_scanner (2.0.0):
- Flutter
- flutter_keyboard_visibility (0.0.1):
- Flutter
- image_picker (0.0.1):
- image_picker_ios (0.0.1):
- Flutter
- package_info (0.0.1):
- integration_test (0.0.1):
- Flutter
- shared_preferences_ios (0.0.1):
- package_info_plus (0.4.5):
- Flutter
- rive_common (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- url_launcher_ios (0.0.1):
- Flutter
- video_player (0.0.1):
- Flutter
- wakelock (0.0.1):
- Flutter
- webview_flutter_wkwebview (0.0.1):
- video_player_avfoundation (0.0.1):
- Flutter
DEPENDENCIES:
- camera (from `.symlinks/plugins/camera/ios`)
- Flutter (from `Flutter`)
- flutter_barcode_scanner (from `.symlinks/plugins/flutter_barcode_scanner/ios`)
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
- image_picker (from `.symlinks/plugins/image_picker/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`)
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- integration_test (from `.symlinks/plugins/integration_test/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- rive_common (from `.symlinks/plugins/rive_common/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- video_player (from `.symlinks/plugins/video_player/ios`)
- wakelock (from `.symlinks/plugins/wakelock/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/ios`)
EXTERNAL SOURCES:
camera:
:path: ".symlinks/plugins/camera/ios"
Flutter:
:path: Flutter
flutter_barcode_scanner:
:path: ".symlinks/plugins/flutter_barcode_scanner/ios"
flutter_keyboard_visibility:
:path: ".symlinks/plugins/flutter_keyboard_visibility/ios"
image_picker:
:path: ".symlinks/plugins/image_picker/ios"
package_info:
:path: ".symlinks/plugins/package_info/ios"
shared_preferences_ios:
:path: ".symlinks/plugins/shared_preferences_ios/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
integration_test:
:path: ".symlinks/plugins/integration_test/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
rive_common:
:path: ".symlinks/plugins/rive_common/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
video_player:
:path: ".symlinks/plugins/video_player/ios"
wakelock:
:path: ".symlinks/plugins/wakelock/ios"
webview_flutter_wkwebview:
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
video_player_avfoundation:
:path: ".symlinks/plugins/video_player_avfoundation/ios"
SPEC CHECKSUMS:
camera: fe33292aff715a981eb34d7ce7b35b54337ff34c
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_barcode_scanner: 7a1144744c28dc0c57a8de7218ffe5ec59a9e4bf
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
image_picker: 9aa50e1d8cdacdbed739e925b7eea16d014367e6
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
shared_preferences_ios: aef470a42dc4675a1cdd50e3158b42e3d1232b32
url_launcher_ios: 02f1989d4e14e998335b02b67a7590fa34f971af
video_player: ecd305f42e9044793efd34846e1ce64c31ea6fcb
wakelock: d0fc7c864128eac40eba1617cb5264d9c940b46f
webview_flutter_wkwebview: 005fbd90c888a42c5690919a1527ecc6649e1162
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
integration_test: a1e7d09bd98eca2fc37aefd79d4f41ad37bdbbe5
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
rive_common: 60ae7896ab40f9513974f36f015de33f70d2c5c5
shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
video_player_avfoundation: 81e49bb3d9fb63dccf9fa0f6d877dc3ddbeac126
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
PODFILE CHECKSUM: 4e8f8b2be68aeea4c0d5beb6ff1e79fface1d048
COCOAPODS: 1.11.2
COCOAPODS: 1.12.0

View File

@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -199,6 +199,7 @@
/* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -252,6 +253,7 @@
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -339,7 +341,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -425,7 +427,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -474,7 +476,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;

View File

@@ -43,5 +43,7 @@
<false/>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>

View File

@@ -2,3 +2,4 @@ arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
nullable-getter: false
preferred-supported-locales: [ en ]

View File

@@ -36,8 +36,12 @@ const DEFAULT_WEIGHT_UNIT = 1;
/// Default impression for a workout session (neutral)
const DEFAULT_IMPRESSION = 2;
/// Default weight unit is "repetition"
const DEFAULT_REPETITION_UNIT = 1;
// Weight and repetition units for the workout logs
const REP_UNIT_REPETITIONS = 1;
const REP_UNIT_TILL_FAILURE = 2;
const WEIGHT_UNIT_KG = 1;
const WEIGHT_UNIT_LB = 2;
/// Time to locally cache values such as ingredients, etc
const DAYS_TO_CACHE = 20;

View File

@@ -28,6 +28,9 @@ String getTranslation(String value, BuildContext context) {
case 'Biceps':
return AppLocalizations.of(context).biceps;
case 'Body Weight':
return AppLocalizations.of(context).body_weight;
case 'Calves':
return AppLocalizations.of(context).calves;
@@ -58,21 +61,30 @@ String getTranslation(String value, BuildContext context) {
case 'Kilometers':
return AppLocalizations.of(context).kilometers;
case 'Kilometers Per Hour':
return AppLocalizations.of(context).kilometers_per_hour;
case 'Lats':
return AppLocalizations.of(context).lats;
case 'Legs':
return AppLocalizations.of(context).legs;
case 'Lower back':
return AppLocalizations.of(context).lower_back;
case 'Max Reps':
return AppLocalizations.of(context).max_reps;
case 'Miles':
return AppLocalizations.of(context).miles;
case 'Miles Per Hour':
return AppLocalizations.of(context).miles_per_hour;
case 'Minutes':
return AppLocalizations.of(context).minutes;
case 'Plates':
return AppLocalizations.of(context).plates;
case 'Pull-up bar':
return AppLocalizations.of(context).pull_up_bar;
@@ -100,6 +112,12 @@ String getTranslation(String value, BuildContext context) {
case 'Until Failure':
return AppLocalizations.of(context).until_failure;
case 'kg':
return AppLocalizations.of(context).kg;
case 'lb':
return AppLocalizations.of(context).lb;
case 'none (bodyweight exercise)':
return AppLocalizations.of(context).none__bodyweight_exercise_;

View File

@@ -42,7 +42,7 @@ String repText(
// rather "8 repetitions". If there is weight we want to output "8 x 50kg",
// since the repetitions are implied. If other units are used, we always
// print them
if (repetitionUnitObj.id != DEFAULT_REPETITION_UNIT || weight == 0 || weight == null) {
if (repetitionUnitObj.id != REP_UNIT_REPETITIONS || weight == 0 || weight == null) {
out.add(repetitionUnitObj.name);
}
}

View File

@@ -241,6 +241,8 @@
},
"save": "Save",
"@save": {},
"verify": "Verify",
"@verify": {},
"addSet": "Add set",
"@addSet": {
"description": "Label for the button that adds a set (to a workout day)"
@@ -635,37 +637,154 @@
}
},
"cacheWarning": "Due to caching it might take some time till the changes are visible throughout the application.",
"abs": "Abs",
"arms": "Arms",
"back": "Back",
"barbell": "Barbell",
"bench": "Bench",
"biceps": "Biceps",
"calves": "Calves",
"cardio": "Cardio",
"chest": "Chest",
"dumbbell": "Dumbbell",
"glutes": "Glutes",
"gym_mat": "Gym mat",
"hamstrings": "Hamstrings",
"incline_bench": "Incline bench",
"kettlebell": "Kettlebell",
"kilometers": "Kilometers",
"lats": "Lats",
"legs": "Legs",
"lower_back": "Lower back",
"miles": "Miles",
"minutes": "Minutes",
"pull_up_bar": "Pull-up bar",
"quads": "Quads",
"repetitions": "Repetitions",
"sz_bar": "SZ-Bar",
"seconds": "Seconds",
"shoulders": "Shoulders",
"swiss_ball": "Swiss Ball",
"triceps": "Triceps",
"until_failure": "Until Failure",
"none__bodyweight_exercise_": "none (bodyweight exercise)",
"textPromptTitle": "Ready to start?",
"textPromptSubheading": "Press the action button to begin"
"textPromptSubheading": "Press the action button to begin",
"abs": "Abs",
"@abs": {
"description": "Generated entry for translation for server strings"
},
"arms": "Arms",
"@arms": {
"description": "Generated entry for translation for server strings"
},
"back": "Back",
"@back": {
"description": "Generated entry for translation for server strings"
},
"barbell": "Barbell",
"@barbell": {
"description": "Generated entry for translation for server strings"
},
"bench": "Bench",
"@bench": {
"description": "Generated entry for translation for server strings"
},
"biceps": "Biceps",
"@biceps": {
"description": "Generated entry for translation for server strings"
},
"body_weight": "Body Weight",
"@body_weight": {
"description": "Generated entry for translation for server strings"
},
"calves": "Calves",
"@calves": {
"description": "Generated entry for translation for server strings"
},
"cardio": "Cardio",
"@cardio": {
"description": "Generated entry for translation for server strings"
},
"chest": "Chest",
"@chest": {
"description": "Generated entry for translation for server strings"
},
"dumbbell": "Dumbbell",
"@dumbbell": {
"description": "Generated entry for translation for server strings"
},
"glutes": "Glutes",
"@glutes": {
"description": "Generated entry for translation for server strings"
},
"gym_mat": "Gym mat",
"@gym_mat": {
"description": "Generated entry for translation for server strings"
},
"hamstrings": "Hamstrings",
"@hamstrings": {
"description": "Generated entry for translation for server strings"
},
"incline_bench": "Incline bench",
"@incline_bench": {
"description": "Generated entry for translation for server strings"
},
"kettlebell": "Kettlebell",
"@kettlebell": {
"description": "Generated entry for translation for server strings"
},
"kilometers": "Kilometers",
"@kilometers": {
"description": "Generated entry for translation for server strings"
},
"kilometers_per_hour": "Kilometers Per Hour",
"@kilometers_per_hour": {
"description": "Generated entry for translation for server strings"
},
"lats": "Lats",
"@lats": {
"description": "Generated entry for translation for server strings"
},
"legs": "Legs",
"@legs": {
"description": "Generated entry for translation for server strings"
},
"max_reps": "Max Reps",
"@max_reps": {
"description": "Generated entry for translation for server strings"
},
"miles": "Miles",
"@miles": {
"description": "Generated entry for translation for server strings"
},
"miles_per_hour": "Miles Per Hour",
"@miles_per_hour": {
"description": "Generated entry for translation for server strings"
},
"minutes": "Minutes",
"@minutes": {
"description": "Generated entry for translation for server strings"
},
"plates": "Plates",
"@plates": {
"description": "Generated entry for translation for server strings"
},
"pull_up_bar": "Pull-up bar",
"@pull_up_bar": {
"description": "Generated entry for translation for server strings"
},
"quads": "Quads",
"@quads": {
"description": "Generated entry for translation for server strings"
},
"repetitions": "Repetitions",
"@repetitions": {
"description": "Generated entry for translation for server strings"
},
"sz_bar": "SZ-Bar",
"@sz_bar": {
"description": "Generated entry for translation for server strings"
},
"seconds": "Seconds",
"@seconds": {
"description": "Generated entry for translation for server strings"
},
"shoulders": "Shoulders",
"@shoulders": {
"description": "Generated entry for translation for server strings"
},
"swiss_ball": "Swiss Ball",
"@swiss_ball": {
"description": "Generated entry for translation for server strings"
},
"triceps": "Triceps",
"@triceps": {
"description": "Generated entry for translation for server strings"
},
"until_failure": "Until Failure",
"@until_failure": {
"description": "Generated entry for translation for server strings"
},
"kg": "kg",
"@kg": {
"description": "Generated entry for translation for server strings"
},
"lb": "lb",
"@lb": {
"description": "Generated entry for translation for server strings"
},
"none__bodyweight_exercise_": "none (bodyweight exercise)",
"@none__bodyweight_exercise_": {
"description": "Generated entry for translation for server strings"
}
}

View File

@@ -725,5 +725,35 @@
"seconds": "Secondes",
"@seconds": {},
"until_failure": "Jusqu'à l'échec",
"@until_failure": {}
"@until_failure": {},
"textPromptTitle": "Prêt à commencer ?",
"@textPromptTitle": {},
"textPromptSubheading": "Cliquez sur le bouton pour commencer",
"@textPromptSubheading": {},
"body_weight": "Poids corporel",
"@body_weight": {
"description": "Generated entry for translation for server strings"
},
"kilometers_per_hour": "Kilomètres Par Heure",
"@kilometers_per_hour": {
"description": "Generated entry for translation for server strings"
},
"miles_per_hour": "Miles Par Heure",
"@miles_per_hour": {
"description": "Generated entry for translation for server strings"
},
"plates": "Disques de poids",
"@plates": {
"description": "Generated entry for translation for server strings"
},
"kg": "kg",
"@kg": {
"description": "Generated entry for translation for server strings"
},
"lb": "lb",
"@lb": {
"description": "Generated entry for translation for server strings"
},
"searchNamesInEnglish": "Chercher également en termes anglais",
"@searchNamesInEnglish": {}
}

View File

@@ -47,13 +47,13 @@
"@customServerUrl": {
"description": "Label in the form where the users can enter their own wger instance"
},
"customServerHint": "Upiši adresu vlastitog poslužitelja, inače će se koristiti zadana",
"customServerHint": "Upiši adresu tvog poslužitelja, inače će se koristiti zadani",
"@customServerHint": {
"description": "Hint text for the form where the users can enter their own wger instance"
},
"registerInstead": "Umjesto toga se registriraj",
"registerInstead": "Nemaš račun? Registriraj se",
"@registerInstead": {},
"loginInstead": "Umjesto toga se prijavi",
"loginInstead": "Već imaš račun? Prijavi se",
"@loginInstead": {},
"labelWorkoutPlans": "Planovi treninga",
"@labelWorkoutPlans": {
@@ -221,7 +221,7 @@
"@selectExercise": {
"description": "Error message when the user hasn't selected an exercise in the form"
},
"enterCharacters": "Upiši znakove između {min} i {max}",
"enterCharacters": "Upiši {min} do {max} znakova",
"@enterCharacters": {
"description": "Error message when the user hasn't entered the correct number of characters in a form",
"type": "text",
@@ -556,5 +556,250 @@
"close": "Zatvori",
"@close": {
"description": "Translation for close"
},
"enterMinCharacters": "Upiši barem {min} znakova",
"@enterMinCharacters": {
"description": "Error message when the user hasn't entered the minimum amount characters in a form",
"type": "text",
"placeholders": {
"min": {}
}
},
"add_exercise_image_license": "Slike moraju biti kompatibilne s licencom CC BY SA. Ako si u nedoumici, prenesi samo svoje vlastite fotografije.",
"@add_exercise_image_license": {},
"whatVariationsExist": "Koje varijante ove vježbe postoje?",
"@whatVariationsExist": {},
"images": "Slike",
"@images": {},
"alternativeNames": "Alternativna imena",
"@alternativeNames": {},
"previous": "Prethodno",
"@previous": {},
"oneNamePerLine": "Jedno ime po retku",
"@oneNamePerLine": {},
"translation": "Prijevod",
"@translation": {},
"addExercise": "Dodaj vježbu",
"@addExercise": {},
"translateExercise": "Prevedi ovu vježbu",
"@translateExercise": {},
"baseData": "Osnovni podaci na engleskom jeziku",
"@baseData": {
"description": "The base data for an exercise such as category, trained muscles, etc."
},
"arms": "Ruke",
"@arms": {
"description": "Generated entry for translation for server strings"
},
"back": "Leđa",
"@back": {
"description": "Generated entry for translation for server strings"
},
"chest": "Prsa",
"@chest": {
"description": "Generated entry for translation for server strings"
},
"sz_bar": "SZ šipka",
"@sz_bar": {
"description": "Generated entry for translation for server strings"
},
"userProfile": "Tvoj profil",
"@userProfile": {},
"exerciseList": "Popis vježbi",
"@exerciseList": {},
"exercises": "Vježbe",
"@exercises": {
"description": "Multiple exercises for a workout"
},
"exerciseName": "Ime vježbe",
"@exerciseName": {
"description": "Label for the name of a workout exercise"
},
"selectEntry": "Odaberi unos",
"@selectEntry": {},
"success": "Uspjeh",
"@success": {
"description": "Message when an action completed successfully, usually used as a heading"
},
"noMeasurementEntries": "Nemaš unose mjerenja",
"@noMeasurementEntries": {},
"moreMeasurementEntries": "Dodaj novo mjerenje",
"@moreMeasurementEntries": {
"description": "Message shown when the user wants to add new measurement"
},
"variations": "Varijante",
"@variations": {
"description": "Variations of one exercise (e.g. benchpress and benchpress narrow)"
},
"alsoKnownAs": "Poznato i kao: {aliases}",
"@alsoKnownAs": {
"placeholders": {
"aliases": {}
},
"description": "List of alternative names for an exercise"
},
"verifiedEmail": "Potvrđena e-mail adresa",
"@verifiedEmail": {},
"unVerifiedEmail": "Nepotvrđena e-mail adresa",
"@unVerifiedEmail": {},
"verifiedEmailInfo": "E-mail poruka za potvrdu je poslana na {email}",
"@verifiedEmailInfo": {
"placeholders": {
"email": {}
}
},
"contributeExerciseWarning": "Vježbe možeš dodati samo ako je tvoj račun stariji od {days} dana i ako si potvrdio/la tvoju e-mail adresu",
"@contributeExerciseWarning": {
"description": "Number of days before which a person can add exercise",
"placeholders": {
"days": {
"type": "String",
"example": "14"
}
}
},
"cacheWarning": "Zbog predmemoriranja, vidljivost promjena u aplikaciji može nešto potrajati.",
"@cacheWarning": {},
"verifiedEmailReason": "Za dodavanje vježbi moraš potvrditi tvoju e-mail adresu",
"@verifiedEmailReason": {},
"cardio": "Kardio",
"@cardio": {
"description": "Generated entry for translation for server strings"
},
"quads": "Ekstenzije nogu",
"@quads": {
"description": "Generated entry for translation for server strings"
},
"pull_up_bar": "Šipka za povlačenje",
"@pull_up_bar": {
"description": "Generated entry for translation for server strings"
},
"shoulders": "Ramena",
"@shoulders": {
"description": "Generated entry for translation for server strings"
},
"triceps": "Triceps",
"@triceps": {
"description": "Generated entry for translation for server strings"
},
"swiss_ball": "Lopta za fitness",
"@swiss_ball": {
"description": "Generated entry for translation for server strings"
},
"until_failure": "Do neuspjeha",
"@until_failure": {
"description": "Generated entry for translation for server strings"
},
"none__bodyweight_exercise_": "ništa (vježba za tjelesnu težinu)",
"@none__bodyweight_exercise_": {
"description": "Generated entry for translation for server strings"
},
"seconds": "Sekunde",
"@seconds": {
"description": "Generated entry for translation for server strings"
},
"textPromptTitle": "Spreman?",
"@textPromptTitle": {},
"barbell": "Utezi",
"@barbell": {
"description": "Generated entry for translation for server strings"
},
"calves": "Lisni mišići",
"@calves": {
"description": "Generated entry for translation for server strings"
},
"textPromptSubheading": "Počni pritiskom gumba radnje",
"@textPromptSubheading": {},
"body_weight": "Tjelesna težina",
"@body_weight": {
"description": "Generated entry for translation for server strings"
},
"kilometers": "Kilometri",
"@kilometers": {
"description": "Generated entry for translation for server strings"
},
"kilometers_per_hour": "Kilometara na sat",
"@kilometers_per_hour": {
"description": "Generated entry for translation for server strings"
},
"lats": "Leđni mišići",
"@lats": {
"description": "Generated entry for translation for server strings"
},
"miles_per_hour": "Milja na sat",
"@miles_per_hour": {
"description": "Generated entry for translation for server strings"
},
"minutes": "Minute",
"@minutes": {
"description": "Generated entry for translation for server strings"
},
"plates": "Ploče",
"@plates": {
"description": "Generated entry for translation for server strings"
},
"kg": "kg",
"@kg": {
"description": "Generated entry for translation for server strings"
},
"lb": "lb",
"@lb": {
"description": "Generated entry for translation for server strings"
},
"searchNamesInEnglish": "Također traži imena na engleskom jeziku",
"@searchNamesInEnglish": {},
"language": "Jezik",
"@language": {},
"aboutPageTitle": "Wger informacije",
"@aboutPageTitle": {},
"abs": "Trbuh",
"@abs": {
"description": "Generated entry for translation for server strings"
},
"gym_mat": "Podloga za treniranje",
"@gym_mat": {
"description": "Generated entry for translation for server strings"
},
"incline_bench": "Nagnuta klupa",
"@incline_bench": {
"description": "Generated entry for translation for server strings"
},
"baseNameEnglish": "Sve vježbe trebaju osnovno ime na engleskom jeziku",
"@baseNameEnglish": {},
"next": "Sljedeće",
"@next": {},
"contributeExercise": "Dodaj vježbu",
"@contributeExercise": {},
"bench": "Klupa",
"@bench": {
"description": "Generated entry for translation for server strings"
},
"dumbbell": "Ručni uteg",
"@dumbbell": {
"description": "Generated entry for translation for server strings"
},
"biceps": "Bicepsi",
"@biceps": {
"description": "Generated entry for translation for server strings"
},
"glutes": "Stražnjica",
"@glutes": {
"description": "Generated entry for translation for server strings"
},
"hamstrings": "Tetive koljena",
"@hamstrings": {
"description": "Generated entry for translation for server strings"
},
"kettlebell": "Kuglasti uteg",
"@kettlebell": {
"description": "Generated entry for translation for server strings"
},
"legs": "Noge",
"@legs": {
"description": "Generated entry for translation for server strings"
},
"miles": "Milje",
"@miles": {
"description": "Generated entry for translation for server strings"
}
}

View File

@@ -584,5 +584,25 @@
"previous": "Precedente",
"@previous": {},
"next": "Successivo",
"@next": {}
"@next": {},
"gym_mat": "Materassino da palestra",
"@gym_mat": {
"description": "Generated entry for translation for server strings"
},
"verifiedEmailInfo": "Un'email di verifica è stata inviata a {email}",
"@verifiedEmailInfo": {
"placeholders": {
"email": {}
}
},
"oneNamePerLine": "Un nome per linea",
"@oneNamePerLine": {},
"textPromptTitle": "Pronto a iniziare?",
"@textPromptTitle": {},
"moreMeasurementEntries": "Aggiungi una nuova misura",
"@moreMeasurementEntries": {
"description": "Message shown when the user wants to add new measurement"
},
"searchNamesInEnglish": "Cerca anche nei nomi in inglese",
"@searchNamesInEnglish": {}
}

View File

@@ -29,7 +29,7 @@
"@invalidUsername": {
"description": "Error message when the user enters an invalid username"
},
"customServerHint": "Digite o endereço do seu próprio servidor, caso contrário, o padrão será usado",
"customServerHint": "Digite o endereço do seu próprio servidor, ou então o padrão será usado",
"@customServerHint": {
"description": "Hint text for the form where the users can enter their own wger instance"
},
@@ -715,5 +715,35 @@
}
},
"cardio": "Cardio",
"@cardio": {}
"@cardio": {},
"textPromptTitle": "Podemos começar?",
"@textPromptTitle": {},
"textPromptSubheading": "Aperte o botão de ação para começar",
"@textPromptSubheading": {},
"body_weight": "Peso Corporal",
"@body_weight": {
"description": "Generated entry for translation for server strings"
},
"kilometers_per_hour": "Quilômetros Por Hora",
"@kilometers_per_hour": {
"description": "Generated entry for translation for server strings"
},
"miles_per_hour": "Milhas por Hora",
"@miles_per_hour": {
"description": "Generated entry for translation for server strings"
},
"plates": "Pratos",
"@plates": {
"description": "Generated entry for translation for server strings"
},
"kg": "kg",
"@kg": {
"description": "Generated entry for translation for server strings"
},
"lb": "lb",
"@lb": {
"description": "Generated entry for translation for server strings"
},
"searchNamesInEnglish": "Também buscar nomes em inglês",
"@searchNamesInEnglish": {}
}

1
lib/l10n/app_pt_BR.arb Normal file
View File

@@ -0,0 +1 @@
{}

View File

@@ -9,9 +9,9 @@
"@labelWorkoutPlans": {
"description": "Title for screen workout plans"
},
"registerInstead": "Зарегистроваться вместо этого",
"registerInstead": "У вас нет аккаунта? Зарегистрируйтесь сейчас",
"@registerInstead": {},
"loginInstead": "Войти вместо этого",
"loginInstead": "Уже есть аккаунт? Войти",
"@loginInstead": {},
"labelDashboard": "Панель управления",
"@labelDashboard": {
@@ -564,5 +564,238 @@
"placeholders": {
"min": {}
}
},
"noMeasurementEntries": "У вас нет записей измерений",
"@noMeasurementEntries": {},
"moreMeasurementEntries": "Добавить новое измерение",
"@moreMeasurementEntries": {
"description": "Message shown when the user wants to add new measurement"
},
"userProfile": "Ваш профиль",
"@userProfile": {},
"exerciseList": "Список упражнений",
"@exerciseList": {},
"baseNameEnglish": "Для всех упражнений необходимо базовое название на английском языке",
"@baseNameEnglish": {},
"verifiedEmail": "Подтвержденный адрес электронной почты",
"@verifiedEmail": {},
"swiss_ball": "Гимнастический мяч",
"@swiss_ball": {
"description": "Generated entry for translation for server strings"
},
"chest": "Грудь",
"@chest": {
"description": "Generated entry for translation for server strings"
},
"kettlebell": "Гиря",
"@kettlebell": {
"description": "Generated entry for translation for server strings"
},
"calves": "Икры",
"@calves": {
"description": "Generated entry for translation for server strings"
},
"success": "Успешно",
"@success": {
"description": "Message when an action completed successfully, usually used as a heading"
},
"exerciseName": "Название упражнения",
"@exerciseName": {
"description": "Label for the name of a workout exercise"
},
"textPromptTitle": "Готовы начать?",
"@textPromptTitle": {},
"body_weight": "Вес тела",
"@body_weight": {
"description": "Generated entry for translation for server strings"
},
"cardio": "Кардио",
"@cardio": {
"description": "Generated entry for translation for server strings"
},
"dumbbell": "Гантели",
"@dumbbell": {
"description": "Generated entry for translation for server strings"
},
"gym_mat": "Спортивный коврик",
"@gym_mat": {
"description": "Generated entry for translation for server strings"
},
"incline_bench": "Наклонная скамья",
"@incline_bench": {
"description": "Generated entry for translation for server strings"
},
"kilometers_per_hour": "км/ч",
"@kilometers_per_hour": {
"description": "Generated entry for translation for server strings"
},
"lats": "Широчайшие",
"@lats": {
"description": "Generated entry for translation for server strings"
},
"miles": "Мили",
"@miles": {
"description": "Generated entry for translation for server strings"
},
"miles_per_hour": "миль/ч",
"@miles_per_hour": {
"description": "Generated entry for translation for server strings"
},
"plates": "Блины",
"@plates": {
"description": "Generated entry for translation for server strings"
},
"quads": "Четырехглавые",
"@quads": {
"description": "Generated entry for translation for server strings"
},
"sz_bar": "SZ-гриф",
"@sz_bar": {
"description": "Generated entry for translation for server strings"
},
"kg": "кг",
"@kg": {
"description": "Generated entry for translation for server strings"
},
"lb": "фунт",
"@lb": {
"description": "Generated entry for translation for server strings"
},
"images": "Изображения",
"@images": {},
"language": "Язык",
"@language": {},
"abs": "Пресс",
"@abs": {
"description": "Generated entry for translation for server strings"
},
"arms": "Руки",
"@arms": {
"description": "Generated entry for translation for server strings"
},
"back": "Спина",
"@back": {
"description": "Generated entry for translation for server strings"
},
"biceps": "Бицепсы",
"@biceps": {
"description": "Generated entry for translation for server strings"
},
"translation": "Перевод",
"@translation": {},
"baseData": "Основы на английском",
"@baseData": {
"description": "The base data for an exercise such as category, trained muscles, etc."
},
"glutes": "Ягодицы",
"@glutes": {
"description": "Generated entry for translation for server strings"
},
"kilometers": "Километры",
"@kilometers": {
"description": "Generated entry for translation for server strings"
},
"seconds": "Секунд",
"@seconds": {
"description": "Generated entry for translation for server strings"
},
"until_failure": "До отказа",
"@until_failure": {
"description": "Generated entry for translation for server strings"
},
"bench": "Скамья",
"@bench": {
"description": "Generated entry for translation for server strings"
},
"barbell": "Штанга",
"@barbell": {
"description": "Generated entry for translation for server strings"
},
"none__bodyweight_exercise_": "без (с собственным весом)",
"@none__bodyweight_exercise_": {
"description": "Generated entry for translation for server strings"
},
"shoulders": "Плечи",
"@shoulders": {
"description": "Generated entry for translation for server strings"
},
"next": "Следующее",
"@next": {},
"pull_up_bar": "Турник",
"@pull_up_bar": {
"description": "Generated entry for translation for server strings"
},
"exercises": "Упражнения",
"@exercises": {
"description": "Multiple exercises for a workout"
},
"add_exercise_image_license": "Изображения должны быть совместимы с CC BY SA лицензией. Если вы сомневаетесь, загружайте только те фотографии, которые вы сделали сами",
"@add_exercise_image_license": {},
"unVerifiedEmail": "Неподтвержденный адрес электронной почты",
"@unVerifiedEmail": {},
"contributeExercise": "Добавить упражнение",
"@contributeExercise": {},
"addExercise": "Добавить упражнение",
"@addExercise": {},
"translateExercise": "Перевести это упражнение",
"@translateExercise": {},
"contributeExerciseWarning": "Вы можете добавлять упражнения только в том случае, если ваша учетная запись старше {days} дней и вы подтвердили свою электронную почту",
"@contributeExerciseWarning": {
"description": "Number of days before which a person can add exercise",
"placeholders": {
"days": {
"type": "String",
"example": "14"
}
}
},
"textPromptSubheading": "Нажмите кнопку действия, чтобы начать",
"@textPromptSubheading": {},
"minutes": "Минут",
"@minutes": {
"description": "Generated entry for translation for server strings"
},
"triceps": "Трицепс",
"@triceps": {
"description": "Generated entry for translation for server strings"
},
"searchNamesInEnglish": "Также ищите названия на английском",
"@searchNamesInEnglish": {},
"selectEntry": "Пожалуйста, выберите запись",
"@selectEntry": {},
"variations": "Варианты",
"@variations": {
"description": "Variations of one exercise (e.g. benchpress and benchpress narrow)"
},
"alsoKnownAs": "Также известно как: {aliases}",
"@alsoKnownAs": {
"placeholders": {
"aliases": {}
},
"description": "List of alternative names for an exercise"
},
"verifiedEmailReason": "Вам необходимо подтвердить свой адрес электронной почты, чтобы добавлять упражнения",
"@verifiedEmailReason": {},
"verifiedEmailInfo": "Письмо с подтверждением отправлено на {email}",
"@verifiedEmailInfo": {
"placeholders": {
"email": {}
}
},
"alternativeNames": "Альтернативные названия",
"@alternativeNames": {},
"oneNamePerLine": "Одно название на строку",
"@oneNamePerLine": {},
"whatVariationsExist": "Какие варианты этого упражнения существуют, если таковые имеются?",
"@whatVariationsExist": {},
"previous": "Предыдущее",
"@previous": {},
"aboutPageTitle": "О Wger",
"@aboutPageTitle": {},
"cacheWarning": "Из-за кэширования может пройти некоторое время, прежде чем изменения станут видны во всем приложении.",
"@cacheWarning": {},
"legs": "Ноги",
"@legs": {
"description": "Generated entry for translation for server strings"
}
}

View File

@@ -717,5 +717,9 @@
"cacheWarning": "Önbelleğe alma nedeniyle değişikliklerin uygulama genelinde görünür olması biraz zaman alabilir.",
"@cacheWarning": {},
"searchNamesInEnglish": "Ayrıca İngilizce adları da arayın",
"@searchNamesInEnglish": {}
"@searchNamesInEnglish": {},
"textPromptTitle": "Başlamaya hazır mısınız?",
"@textPromptTitle": {},
"textPromptSubheading": "Başlamak için eylem düğmesine basın",
"@textPromptSubheading": {}
}

View File

@@ -621,7 +621,7 @@
"@legs": {},
"back": "Спина",
"@back": {},
"quads": "Квадроцикли",
"quads": "Квадрицепс",
"@quads": {},
"arms": "Руки",
"@arms": {},
@@ -721,5 +721,35 @@
"textPromptTitle": "Готові почати?",
"@textPromptTitle": {},
"textPromptSubheading": "Натисніть кнопку дії, щоб почати",
"@textPromptSubheading": {}
"@textPromptSubheading": {},
"body_weight": "Вага тіла",
"@body_weight": {
"description": "Generated entry for translation for server strings"
},
"kg": "кг",
"@kg": {
"description": "Generated entry for translation for server strings"
},
"kilometers_per_hour": "Кілометрів на годину",
"@kilometers_per_hour": {
"description": "Generated entry for translation for server strings"
},
"miles_per_hour": "Миль на годину",
"@miles_per_hour": {
"description": "Generated entry for translation for server strings"
},
"lb": "фунт",
"@lb": {
"description": "Generated entry for translation for server strings"
},
"plates": "Пластини",
"@plates": {
"description": "Generated entry for translation for server strings"
},
"verify": "Підтвердити",
"@verify": {},
"max_reps": "Максимальна кількість повторень",
"@max_reps": {
"description": "Generated entry for translation for server strings"
}
}

View File

@@ -162,21 +162,6 @@ class MyApp extends StatelessWidget {
},
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
// Workaround for https://github.com/flutter/flutter/issues/100857
localeResolutionCallback: (deviceLocale, supportedLocales) {
if (deviceLocale != null) {
for (final supportedLocale in supportedLocales) {
// Since we currently don't support any country specific locales
// such as de-DE and de-AT, it's sufficient to just check it like
// this. Otherwise we will need more logic with .countryCode
if (supportedLocale.languageCode == deviceLocale.languageCode) {
return supportedLocale;
}
}
}
return const Locale('en');
},
),
),
);

View File

@@ -34,7 +34,7 @@ class Ingredient {
@JsonKey(required: true)
final String name;
@JsonKey(required: true, name: 'creation_date', toJson: toDate)
@JsonKey(required: true, name: 'creation_date')
final DateTime creationDate;
/// Energy in kJ per 100g of product

View File

@@ -47,7 +47,7 @@ Map<String, dynamic> _$IngredientToJson(Ingredient instance) => <String, dynamic
'id': instance.id,
'code': instance.code,
'name': instance.name,
'creation_date': toDate(instance.creationDate),
'creation_date': instance.creationDate.toIso8601String(),
'energy': instance.energy,
'carbohydrates': numToString(instance.carbohydrates),
'carbohydrates_sugar': numToString(instance.carbohydratesSugar),

View File

@@ -85,7 +85,7 @@ class WorkoutPlansProvider with ChangeNotifier {
/// Return the default weight unit (reps)
RepetitionUnit get defaultRepetitionUnit {
return _repetitionUnit.firstWhere((element) => element.id == DEFAULT_REPETITION_UNIT);
return _repetitionUnit.firstWhere((element) => element.id == REP_UNIT_REPETITIONS);
}
List<WorkoutPlan> getPlans() {

View File

@@ -246,12 +246,13 @@ class _AuthCardState extends State<AuthCard> {
textInputAction: TextInputAction.next,
keyboardType: TextInputType.emailAddress,
validator: (value) {
if (value == null || value.isEmpty) {
return AppLocalizations.of(context).invalidUsername;
}
if (!RegExp(r'^[\w.@+-]+$').hasMatch(value!)) {
return AppLocalizations.of(context).usernameValidChars;
}
if (value.isEmpty) {
return AppLocalizations.of(context).invalidUsername;
}
return null;
},
inputFormatters: [FilteringTextInputFormatter.deny(RegExp(r'\s\b|\b\s'))],

View File

@@ -22,6 +22,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:provider/provider.dart';
import 'package:wger/models/user/profile.dart';
import 'package:wger/providers/user.dart';
import 'package:wger/theme/theme.dart';
class UserProfileForm extends StatelessWidget {
late final Profile _profile;
@@ -40,39 +41,23 @@ class UserProfileForm extends StatelessWidget {
child: Column(
children: [
ListTile(
leading: const Icon(Icons.person, color: wgerPrimaryColor),
title: Text(AppLocalizations.of(context).username),
subtitle: Text(_profile.username),
),
ListTile(
title: Text(
_profile.emailVerified
? AppLocalizations.of(context).verifiedEmail
: AppLocalizations.of(context).unVerifiedEmail,
),
subtitle: Text(AppLocalizations.of(context).verifiedEmailReason),
trailing: _profile.emailVerified
? const Icon(Icons.mark_email_read, color: Colors.green)
: const Icon(Icons.forward_to_inbox),
onTap: () async {
// Email is already verified
if (_profile.emailVerified) {
return;
}
// Verify
await context.read<UserProvider>().verifyEmail();
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
AppLocalizations.of(context).verifiedEmailInfo(_profile.email),
),
),
);
},
),
ListTile(
leading: const Icon(Icons.email_rounded, color: wgerPrimaryColor),
title: TextFormField(
decoration: InputDecoration(labelText: AppLocalizations.of(context).email),
decoration: InputDecoration(
labelText: _profile.emailVerified
? AppLocalizations.of(context).verifiedEmail
: AppLocalizations.of(context).unVerifiedEmail,
suffixIcon: _profile.emailVerified
? const Icon(
Icons.check_circle,
color: Colors.green,
)
: null),
controller: emailController,
keyboardType: TextInputType.emailAddress,
onSaved: (newValue) {
@@ -86,8 +71,30 @@ class UserProfileForm extends StatelessWidget {
},
),
),
if (!_profile.emailVerified)
OutlinedButton(
onPressed: () async {
// Email is already verified
if (_profile.emailVerified) {
return;
}
// Verify
await context.read<UserProvider>().verifyEmail();
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
AppLocalizations.of(context).verifiedEmailInfo(_profile.email),
),
),
);
},
child: Text(AppLocalizations.of(context).verify),
),
ElevatedButton(
child: Text(AppLocalizations.of(context).save),
style: ElevatedButton.styleFrom(
backgroundColor: wgerPrimaryButtonColor,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50))),
onPressed: () async {
// Validate and save the current values to the weightEntry
final isValid = _form.currentState!.validate();
@@ -103,6 +110,7 @@ class UserProfileForm extends StatelessWidget {
SnackBar(content: Text(AppLocalizations.of(context).successfullySaved)),
);
},
child: Text(AppLocalizations.of(context).save),
),
],
),

View File

@@ -5,18 +5,18 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: "405666cd3cf0ee0a48d21ec67e65406aad2c726d9fa58840d3375e7bdcd32a07"
sha256: "8880b4cfe7b5b17d57c052a5a3a8cc1d4f546261c7cc8fbd717bd53f48db0568"
url: "https://pub.dev"
source: hosted
version: "60.0.0"
version: "59.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: "1952250bd005bacb895a01bf1b4dc00e3ba1c526cf47dca54dfe24979c65f5b3"
sha256: a89627f49b0e70e068130a36571409726b04dab12da7e5625941d2c8ec278b96
url: "https://pub.dev"
source: hosted
version: "5.12.0"
version: "5.11.1"
android_metadata:
dependency: "direct main"
description:
@@ -229,10 +229,10 @@ packages:
dependency: "direct dev"
description:
name: cider
sha256: "714a853bf92701b982496df0bd601c0cf2d882cfc1f2d41ae9aff2b20cee016a"
sha256: "74d96930575f97d83e0a3a5cd26d27d10c38961b1b41346eebe5baabf0f56940"
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.1.6"
cli_launcher:
dependency: transitive
description:
@@ -349,10 +349,10 @@ packages:
dependency: transitive
description:
name: ffi
sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
url: "https://pub.dev"
source: hosted
version: "2.0.2"
version: "2.0.1"
file:
dependency: transitive
description:
@@ -361,6 +361,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.1.4"
file_selector_linux:
dependency: transitive
description:
name: file_selector_linux
sha256: d17c5e450192cdc40b718804dfb4eaf79a71bed60ee9530703900879ba50baa3
url: "https://pub.dev"
source: hosted
version: "0.9.1+3"
file_selector_macos:
dependency: transitive
description:
name: file_selector_macos
sha256: "6290eec24fc4cc62535fe609e0c6714d3c1306191dc8c3b0319eaecc09423a3a"
url: "https://pub.dev"
source: hosted
version: "0.9.2"
file_selector_platform_interface:
dependency: transitive
description:
name: file_selector_platform_interface
sha256: "2a7f4bbf7bd2f022ecea85bfb1754e87f7dd403a9abc17a84a4fa2ddfe2abc0a"
url: "https://pub.dev"
source: hosted
version: "2.5.1"
file_selector_windows:
dependency: transitive
description:
name: file_selector_windows
sha256: ef246380b66d1fb9089fc65622c387bf3780bca79f533424c31d07f12c2c7fd8
url: "https://pub.dev"
source: hosted
version: "0.9.2"
fixnum:
dependency: transitive
description:
@@ -399,10 +431,10 @@ packages:
dependency: "direct main"
description:
name: flutter_html
sha256: "850c07bc6c1ed060d3eb3e88469a598260a13eb45d8978b197c1348e0a2b101f"
sha256: "02ad69e813ecfc0728a455e4bf892b9379983e050722b1dce00192ee2e41d1ee"
url: "https://pub.dev"
source: hosted
version: "3.0.0-beta.1"
version: "3.0.0-beta.2"
flutter_keyboard_visibility:
dependency: transitive
description:
@@ -505,10 +537,10 @@ packages:
dependency: "direct main"
description:
name: flutter_typeahead
sha256: "721610b3d61814efa13fb5f720a6781bc123cd51b7e01f5a45d7c92124376644"
sha256: d72e7079d01b4ec109a12b01b06a85c09a41ae4531f8a0ca5ef9f759ce4e64a2
url: "https://pub.dev"
source: hosted
version: "4.3.8"
version: "4.6.1"
flutter_web_plugins:
dependency: transitive
description: flutter
@@ -555,10 +587,10 @@ packages:
dependency: transitive
description:
name: graphs
sha256: "772db3d53d23361d4ffcf5a9bb091cf3ee9b22f2be52cd107cd7a2683a89ba0e"
sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
url: "https://pub.dev"
source: hosted
version: "2.3.0"
version: "2.2.0"
html:
dependency: transitive
description:
@@ -603,18 +635,18 @@ packages:
dependency: "direct main"
description:
name: image_picker
sha256: "9978d3510af4e6a902e545ce19229b926e6de6a1828d6134d3aab2e129a4d270"
sha256: b6951e25b795d053a6ba03af5f710069c99349de9341af95155d52665cb4607c
url: "https://pub.dev"
source: hosted
version: "0.8.7+5"
version: "0.8.9"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
sha256: "89ba2aa6904d8180ca44fd5f5014523f02319101904e3e571fbe792e395b77ed"
sha256: "271e0448e82268b3fa1cb2a48e4a911cbc2135587123d7df8e7ca703c5b10da2"
url: "https://pub.dev"
source: hosted
version: "0.8.6+14"
version: "0.8.6+11"
image_picker_for_web:
dependency: transitive
description:
@@ -627,18 +659,42 @@ packages:
dependency: transitive
description:
name: image_picker_ios
sha256: d779210bda268a03b57e923fb1e410f32f5c5e708ad256348bcbf1f44f558fd0
sha256: a1546ff5861fc15812953d4733b520c3d371cec3d2859a001ff04c46c4d81883
url: "https://pub.dev"
source: hosted
version: "0.8.7+4"
version: "0.8.7+3"
image_picker_linux:
dependency: transitive
description:
name: image_picker_linux
sha256: "1d8f9a97178d6b8a035f1d2765f17f8ca3d36a40d5594e742a481b1e002f20be"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
image_picker_macos:
dependency: transitive
description:
name: image_picker_macos
sha256: ff094b36d6c06200808f733144a033e45b4e17d59524e1cf7d2af7e4cb94e1ab
url: "https://pub.dev"
source: hosted
version: "0.2.0"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
sha256: "1991219d9dbc42a99aff77e663af8ca51ced592cd6685c9485e3458302d3d4f8"
sha256: "7c7b96bb9413a9c28229e717e6fd1e3edd1cc5569c1778fcca060ecf729b65ee"
url: "https://pub.dev"
source: hosted
version: "2.6.3"
version: "2.8.0"
image_picker_windows:
dependency: transitive
description:
name: image_picker_windows
sha256: bf77b819eb62c487e6af53b9eb213adc12bd060ef7e43f3b1dd69c53cc24a61d
url: "https://pub.dev"
source: hosted
version: "0.2.0"
integration_test:
dependency: "direct dev"
description: flutter
@@ -824,10 +880,10 @@ packages:
dependency: "direct main"
description:
name: package_info_plus
sha256: "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745"
sha256: ceb027f6bc6a60674a233b4a90a7658af1aebdea833da0b5b53c1e9821a78c7b
url: "https://pub.dev"
source: hosted
version: "3.1.2"
version: "4.0.2"
package_info_plus_platform_interface:
dependency: transitive
description:
@@ -900,6 +956,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
pointer_interceptor:
dependency: transitive
description:
name: pointer_interceptor
sha256: "6aa680b30d96dccef496933d00208ad25f07e047f644dc98ce03ec6141633a9a"
url: "https://pub.dev"
source: hosted
version: "0.9.3+4"
pool:
dependency: transitive
description:
@@ -984,26 +1048,26 @@ packages:
dependency: "direct main"
description:
name: rive
sha256: f7f365ee0e6cf0af99fb239bc3424370ca6ee2b9ad6fc879b1a79ba5e3b40770
sha256: "55e1f8bf249444545a7c832830d2bbb9adae759193fb879294bc6018b9f0eedd"
url: "https://pub.dev"
source: hosted
version: "0.10.4"
version: "0.11.3"
rive_common:
dependency: transitive
description:
name: rive_common
sha256: "7c4be235d75c34a0f257b4487c0cc314188aa2f9a6c177d34f02df53d7c25831"
sha256: "7e17937b790bb2f631767b3d505da8c298309c0a6ab08cd317fa6fe081ed5b63"
url: "https://pub.dev"
source: hosted
version: "0.0.5"
version: "0.0.10"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
sha256: "16d3fb6b3692ad244a695c0183fca18cf81fd4b821664394a781de42386bf022"
sha256: "396f85b8afc6865182610c0a2fc470853d56499f75f7499e2a73a9f0539d23d0"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.1.2"
shared_preferences_android:
dependency: transitive
description:
@@ -1016,10 +1080,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb
sha256: "0c1c16c56c9708aa9c361541a6f0e5cc6fc12a3232d866a687a7b7db30032b07"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
version: "2.2.1"
shared_preferences_linux:
dependency: transitive
description:
@@ -1085,10 +1149,10 @@ packages:
dependency: transitive
description:
name: source_gen
sha256: "373f96cf5a8744bc9816c1ff41cf5391bbdbe3d7a96fe98c622b6738a8a7bd33"
sha256: b20e191de6964e98032573cecb1d2b169d96ba63fdb586d24dcd1003ba7e94f6
url: "https://pub.dev"
source: hosted
version: "1.3.2"
version: "1.3.0"
source_helper:
dependency: transitive
description:
@@ -1205,10 +1269,10 @@ packages:
dependency: transitive
description:
name: url_launcher_android
sha256: "7aac14be5f4731b923cc697ae2d42043945076cd0dbb8806baecc92c1dc88891"
sha256: "22f8db4a72be26e9e3a4aa3f194b1f7afbc76d20ec141f84be1d787db2155cbd"
url: "https://pub.dev"
source: hosted
version: "6.0.33"
version: "6.0.31"
url_launcher_ios:
dependency: transitive
description:
@@ -1325,10 +1389,10 @@ packages:
dependency: transitive
description:
name: video_player_avfoundation
sha256: "4c274e439f349a0ee5cb3c42978393ede173a443b98f50de6ffe6900eaa19216"
sha256: "824dad3e2986a13766fcccfd1c48c83eef9f896c220a53292e3019b9e98615bb"
url: "https://pub.dev"
source: hosted
version: "2.4.6"
version: "2.4.5"
video_player_platform_interface:
dependency: transitive
description:
@@ -1418,5 +1482,5 @@ packages:
source: hosted
version: "2.1.1"
sdks:
dart: ">=2.19.0 <4.0.0"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.7.0-0"

View File

@@ -24,7 +24,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
version: 1.5.4+31
environment:
sdk: ">=2.12.0 <3.0.0"
sdk: '>=2.17.0 <3.0.0'
dependencies:
flutter:
@@ -38,20 +38,20 @@ dependencies:
cupertino_icons: ^1.0.5
equatable: ^2.0.5
flutter_calendar_carousel: ^2.4.1
flutter_html: ^3.0.0-alpha.6
flutter_typeahead: ^4.3.8
flutter_html: ^3.0.0-beta.2
flutter_typeahead: ^4.6.1
font_awesome_flutter: ^10.4.0
http: ^0.13.5
image_picker: ^0.8.7+3
image_picker: ^0.8.9
intl: ^0.17.0
json_annotation: ^4.8.0
json_annotation: ^4.8.1
version: ^3.0.2
package_info_plus: ^3.1.2
package_info_plus: ^4.0.2
provider: ^6.0.5
rive: ^0.10.4
shared_preferences: ^2.1.0
rive: ^0.11.3
shared_preferences: ^2.1.2
table_calendar: ^3.0.8
url_launcher: ^6.1.10
url_launcher: ^6.1.11
flutter_barcode_scanner: ^2.0.0
video_player: ^2.6.1
flutter_staggered_grid_view: ^0.6.2
@@ -71,7 +71,7 @@ dev_dependencies:
mockito: ^5.4.0
network_image_mock: ^2.1.1
flutter_lints: ^2.0.1
cider: ^0.1.5
cider: ^0.1.6
flutter_icons:
android: true

View File

@@ -2,8 +2,8 @@
"id": 10065,
"code": "0043647440020",
"name": "'Old Times' Orange Fine Cut Marmalade",
"creation_date": "2020-12-20",
"update_date": "2022-08-09",
"creation_date": "2020-12-20T01:00:00+01:00",
"update_date": "2022-08-09T10:23:11+02:00",
"energy": 269,
"protein": "0.000",
"carbohydrates": "67.000",

View File

@@ -2,8 +2,8 @@
"id": 58300,
"code": "4071800000992",
"name": "1688 Mehrkorn",
"creation_date": "2020-12-20",
"update_date": "2022-08-09",
"creation_date": "2020-12-20T01:00:00+02:00",
"update_date": "2022-08-09T18:55:00+02:00",
"energy": 229,
"protein": "7.680",
"carbohydrates": "35.700",

View File

@@ -2,8 +2,8 @@
"id": 59887,
"code": "4311501354155",
"name": "Baked Beans",
"creation_date": "2020-12-20",
"update_date": "2022-08-09",
"creation_date": "2020-12-20T23:10:54+01:00",
"update_date": "2022-08-09T13:32:41+01:00",
"energy": 86,
"protein": "4.400",
"carbohydrates": "11.000",