diff --git a/android/.gitignore b/android/.gitignore
index bc2100d..b37a358 100644
--- a/android/.gitignore
+++ b/android/.gitignore
@@ -4,4 +4,5 @@ gradle-wrapper.jar
/gradlew
/gradlew.bat
/local.properties
+key.properties
GeneratedPluginRegistrant.java
diff --git a/asset/image/man_sizes.png b/asset/image/man_sizes.png
index dea4786..5e0397e 100644
Binary files a/asset/image/man_sizes.png and b/asset/image/man_sizes.png differ
diff --git a/asset/image/woman_sizes.png b/asset/image/woman_sizes.png
index 4c43331..1ffeb46 100644
Binary files a/asset/image/woman_sizes.png and b/asset/image/woman_sizes.png differ
diff --git a/asset/menu/2.1.4.squats.jpg b/asset/menu/2.1.4.squats.jpg
new file mode 100644
index 0000000..8a24cdd
Binary files /dev/null and b/asset/menu/2.1.4.squats.jpg differ
diff --git a/asset/menu/bent_over_rows.jpg b/asset/menu/bent_over_rows.jpg
new file mode 100644
index 0000000..bc9397e
Binary files /dev/null and b/asset/menu/bent_over_rows.jpg differ
diff --git a/asset/menu/close_grip_bench_press.jpg b/asset/menu/close_grip_bench_press.jpg
new file mode 100644
index 0000000..dbae95c
Binary files /dev/null and b/asset/menu/close_grip_bench_press.jpg differ
diff --git a/asset/menu/hyperextension_floor.jpg b/asset/menu/hyperextension_floor.jpg
new file mode 100644
index 0000000..94ff75f
Binary files /dev/null and b/asset/menu/hyperextension_floor.jpg differ
diff --git a/asset/menu/pulldown_machine.jpg b/asset/menu/pulldown_machine.jpg
new file mode 100644
index 0000000..c05eb39
Binary files /dev/null and b/asset/menu/pulldown_machine.jpg differ
diff --git a/asset/menu/row_machine.jpg b/asset/menu/row_machine.jpg
new file mode 100644
index 0000000..a0376c3
Binary files /dev/null and b/asset/menu/row_machine.jpg differ
diff --git a/asset/wine-glass.mp3 b/asset/wine-glass.mp3
new file mode 100644
index 0000000..13c3273
Binary files /dev/null and b/asset/wine-glass.mp3 differ
diff --git a/i18n/en.json b/i18n/en.json
index 107ddcc..78d4c92 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -361,33 +361,36 @@
"Body Type Analyser":"Body Type Analyser",
"How likely is it true about you?":"How likely is it true about you?",
- "Very unlikely":"Very unlikely",
+ "Very unlikely":"Not True",
"Maybe":"Maybe",
- "Very likely":"Very likely",
+ "Very likely":"True",
"« Back":"« Back",
- "1. Basicly I am skinny and bonny":"1. Basicly I am skinny and bonny",
- "2. question":"2. question",
- "3. question":"3. question",
- "4. question":"4. question",
- "5. question":"5. question",
- "6. question":"6. question",
- "7. question":"7. question",
- "8. question":"8. question",
- "9. question":"9. question",
- "10. question":"10. question",
- "11. question":"11. question",
- "12. question":"12. question",
- "13. question":"13. question",
- "14. question":"14. question",
- "15. question":"15. question",
- "16. question":"16. question",
- "17. question":"17. question",
- "18. question":"18. question",
- "19. question":"19. question",
- "20. question":"20. question",
- "21. question":"21. question",
- "22. question":"22. question",
+ "1. Basicly I am skinny and bonny":"1. I have basically a thin and bony physique",
+ "2. question":"2. Long limbs and narrow shoulders are typical of me",
+ "3. question":"3. It is difficult for me to build muscle",
+ "4. question":"4. My chest and waist are nearly the same width",
+ "5. question":"5. ’Chopstick’ was my nickname in the kindergarten",
+ "6. question":"6. I easily lose the muscle I built up",
+ "7. question":"7. To my knowledge, my body fat percentage is low",
+ "8. question":"8. Basically, I have a sporty and athletic physique",
+ "9. question":"9. I have a wide collarbone and shoulders",
+ "10. question":"10. My hips are narrow and my waist is sporty",
+ "11. question":"11. I get muscular quickly",
+ "12. question":"12. My chest is wider than my waist",
+ "13. question":"13. I could be the statue of David",
+ "14. question":"14. I have a strong calf and forearm",
+ "15. question":"15. I have a wide rib cage",
+ "16. question":"16. I have thick and wide joints",
+ "17. question":"17. My bones are strong",
+ "18. question":"18. My body is muscular but a little fatter",
+ "19. question":"19. My hips are wider than my chest",
+ "20. question":"20. Tun’ could be my nickname too",
+ "21. question":"21. I lose weight hard and gain weight more easily",
+ "22. question":"22. I have a strong and chunky physique",
"Your Bodytype result":"Your Bodytype result",
- "Change the weight to":"Change the weight to"
+ "Change the weight to":"Change the weight to",
+
+ "Search Exercises...":"Search Exercises...",
+ "No exercise found":"No exercise found"
}
\ No newline at end of file
diff --git a/i18n/hu.json b/i18n/hu.json
index 149b0d2..1aa1001 100644
--- a/i18n/hu.json
+++ b/i18n/hu.json
@@ -361,7 +361,7 @@
"Maybe":"Talán",
"Very likely":"Biztosan",
"« Back":"« Vissza",
- "1. Basicly I am skinny and bonny":"1. Alapvetően vékony csontos testalkat vagyok",
+ "1. Basicly I am skinny and bonny":"1. Alapvetően vékony, csontos testalkat vagyok",
"2. question":"2. Hosszú végtagok, keskeny vállak jellemzőek rám",
"3. question":"3. Nehezen tudok izmot növelni",
"4. question":"4. Mellkasom, derekam közel egyforma szélességű",
@@ -374,16 +374,19 @@
"11. question":"11. Gyorsan izmosodok",
"12. question":"12. Szélesebb a mellkasom a derekamnál",
"13. question":"13. Akár lehetnék én a Dávid szobor",
- "14. question":"14. Erős vádli és alkar",
+ "14. question":"14. Erős vádli és alkar jellemez",
"15. question":"15. Széles bordakosaram van",
- "16. question":"16. Vastag széles ízületeim vannak",
+ "16. question":"16. Vastag, széles ízületeim vannak",
"17. question":"17. Erős a csontozatom",
"18. question":"18. Zsírosabb, de izmos vagyok",
"19. question":"19. Szélesebb a csípőm a mellkasomnál",
"20. question":"20. Hordó is lehetne a becenevem",
"21. question":"21. Nehezen fogyok, könnyebben hízok",
- "22. question":"22. Erős vaskos testalkat vagyok",
+ "22. question":"22. Erős, vaskos testalkat vagyok",
"Your Bodytype result":"Testtípus eredményed",
- "Change the weight to":"Súly változtatása"
+ "Change the weight to":"Súly változtatása",
+
+ "Search Exercises...":"Gyakorlat keresése...",
+ "No exercise found":"Nincs ilyen gyakorlat"
}
\ No newline at end of file
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 1bc6c3d..0920532 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -6,6 +6,8 @@ PODS:
- AppAuth/ExternalUserAgent (1.4.0)
- apple_sign_in (0.0.1):
- Flutter
+ - audioplayer (0.0.1):
+ - Flutter
- devicelocale (0.0.1):
- Flutter
- FBSDKCoreKit (9.0.0):
@@ -181,6 +183,7 @@ PODS:
DEPENDENCIES:
- apple_sign_in (from `.symlinks/plugins/apple_sign_in/ios`)
+ - audioplayer (from `.symlinks/plugins/audioplayer/ios`)
- devicelocale (from `.symlinks/plugins/devicelocale/ios`)
- firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`)
- firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
@@ -232,6 +235,8 @@ SPEC REPOS:
EXTERNAL SOURCES:
apple_sign_in:
:path: ".symlinks/plugins/apple_sign_in/ios"
+ audioplayer:
+ :path: ".symlinks/plugins/audioplayer/ios"
devicelocale:
:path: ".symlinks/plugins/devicelocale/ios"
firebase_analytics:
@@ -274,6 +279,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
apple_sign_in: 7716c7ddfa195aeab7dec0dc374ef4ff45d1adb4
+ audioplayer: 0584f31a697e4b0bbad405ae7903d7a93585e784
devicelocale: feebbe5e7a30adb8c4f83185de1b50ff19b44f00
FBSDKCoreKit: ac6cc500b8e104bb9a4dd20b1527b5d199123c2e
FBSDKLoginKit: e9b6542fdee322333502ab497f628b011dce7d78
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index dbacf6c..91c705e 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -388,7 +388,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_TEAM = SFJJBDCU6Z;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -405,7 +405,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- MARKETING_VERSION = 1.1.6;
+ MARKETING_VERSION = 1.1.7;
PRODUCT_BUNDLE_IDENTIFIER = com.aitrainer.app;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -531,7 +531,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_TEAM = SFJJBDCU6Z;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -548,7 +548,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- MARKETING_VERSION = 1.1.6;
+ MARKETING_VERSION = 1.1.7;
PRODUCT_BUNDLE_IDENTIFIER = com.aitrainer.app;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -566,7 +566,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_TEAM = SFJJBDCU6Z;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -583,7 +583,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- MARKETING_VERSION = 1.1.6;
+ MARKETING_VERSION = 1.1.7;
PRODUCT_BUNDLE_IDENTIFIER = com.aitrainer.app;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index d6084d5..c1bb7ff 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -47,8 +47,14 @@
10.0
LSRequiresIPhoneOS
+ NSAppTransportSecurity
+
+ NSAllowsArbitraryLoads
+
+
UIBackgroundModes
+ audio
fetch
remote-notification
diff --git a/lib/bloc/development_by_muscle/development_by_muscle_bloc.dart b/lib/bloc/development_by_muscle/development_by_muscle_bloc.dart
index cf14bd7..94f8cd7 100644
--- a/lib/bloc/development_by_muscle/development_by_muscle_bloc.dart
+++ b/lib/bloc/development_by_muscle/development_by_muscle_bloc.dart
@@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:collection';
-import 'package:aitrainer_app/localization/app_language.dart';
+import 'package:aitrainer_app/util/app_language.dart';
import 'package:aitrainer_app/model/exercise.dart';
import 'package:aitrainer_app/model/workout_menu_tree.dart';
import 'package:aitrainer_app/repository/exercise_repository.dart';
diff --git a/lib/bloc/development_sizes/development_sizes_bloc.dart b/lib/bloc/development_sizes/development_sizes_bloc.dart
new file mode 100644
index 0000000..88cc1b7
--- /dev/null
+++ b/lib/bloc/development_sizes/development_sizes_bloc.dart
@@ -0,0 +1,32 @@
+import 'dart:async';
+
+import 'package:aitrainer_app/model/cache.dart';
+import 'package:aitrainer_app/repository/customer_repository.dart';
+import 'package:bloc/bloc.dart';
+import 'package:equatable/equatable.dart';
+
+part 'development_sizes_event.dart';
+part 'development_sizes_state.dart';
+
+class DevelopmentSizesBloc extends Bloc {
+ final CustomerRepository customerRepository;
+ DevelopmentSizesBloc({this.customerRepository}) : super(DevelopmentSizesInitial()) {
+ isMan = Cache().userLoggedIn.sex == "m";
+ }
+
+ bool isMan;
+
+ @override
+ Stream mapEventToState(
+ DevelopmentSizesEvent event,
+ ) async* {
+ try {
+ if (state is DevelopmentSizesLoad) {
+ yield DevelopmentSizesLoading();
+ yield DevelopmentSizesReady();
+ }
+ } on Exception catch (e) {
+ yield DevelopmentSizesError(message: e.toString());
+ }
+ }
+}
diff --git a/lib/bloc/development_sizes/development_sizes_event.dart b/lib/bloc/development_sizes/development_sizes_event.dart
new file mode 100644
index 0000000..3468e59
--- /dev/null
+++ b/lib/bloc/development_sizes/development_sizes_event.dart
@@ -0,0 +1,12 @@
+part of 'development_sizes_bloc.dart';
+
+abstract class DevelopmentSizesEvent extends Equatable {
+ const DevelopmentSizesEvent();
+
+ @override
+ List