diff --git a/asset/image/alternatives_arrow.png b/asset/image/alternatives_arrow.png
new file mode 100644
index 0000000..78311b9
Binary files /dev/null and b/asset/image/alternatives_arrow.png differ
diff --git a/asset/image/sizes_q.jpg b/asset/image/sizes_q.jpg
new file mode 100644
index 0000000..9b58ddc
Binary files /dev/null and b/asset/image/sizes_q.jpg differ
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index a2b8604..d0c6822 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -8,76 +8,76 @@ PODS:
- Flutter
- devicelocale (0.0.1):
- Flutter
- - FBAEMKit (11.1.0):
- - FBAEMKit/AEM (= 11.1.0)
- - FBAEMKit/AEM (11.1.0):
- - FBSDKCoreKit_Basics (~> 11.1.0)
- - FBSDKCoreKit (11.1.0):
- - FBSDKCoreKit/Core (= 11.1.0)
- - FBSDKCoreKit/Core (11.1.0):
- - FBAEMKit (~> 11.1.0)
- - FBSDKCoreKit_Basics (~> 11.1.0)
- - FBSDKCoreKit_Basics (11.1.0):
- - FBSDKCoreKit_Basics/Basics (= 11.1.0)
- - FBSDKCoreKit_Basics/Basics (11.1.0)
- - FBSDKLoginKit (11.1.0):
- - FBSDKLoginKit/Login (= 11.1.0)
- - FBSDKLoginKit/Login (11.1.0):
- - FBSDKCoreKit (~> 11.1.0)
- - FBSDKCoreKit_Basics (~> 11.1.0)
- - Firebase/Analytics (8.5.0):
+ - FBAEMKit (11.2.1):
+ - FBAEMKit/AEM (= 11.2.1)
+ - FBAEMKit/AEM (11.2.1):
+ - FBSDKCoreKit_Basics (~> 11.2.1)
+ - FBSDKCoreKit (11.2.1):
+ - FBSDKCoreKit/Core (= 11.2.1)
+ - FBSDKCoreKit/Core (11.2.1):
+ - FBAEMKit (~> 11.2.1)
+ - FBSDKCoreKit_Basics (~> 11.2.1)
+ - FBSDKCoreKit_Basics (11.2.1):
+ - FBSDKCoreKit_Basics/Basics (= 11.2.1)
+ - FBSDKCoreKit_Basics/Basics (11.2.1)
+ - FBSDKLoginKit (11.2.1):
+ - FBSDKLoginKit/Login (= 11.2.1)
+ - FBSDKLoginKit/Login (11.2.1):
+ - FBSDKCoreKit (~> 11.2.1)
+ - FBSDKCoreKit_Basics (~> 11.2.1)
+ - Firebase/Analytics (8.7.0):
- Firebase/Core
- - Firebase/Auth (8.5.0):
+ - Firebase/Auth (8.7.0):
- Firebase/CoreOnly
- - FirebaseAuth (~> 8.5.0)
- - Firebase/Core (8.5.0):
+ - FirebaseAuth (~> 8.7.0)
+ - Firebase/Core (8.7.0):
- Firebase/CoreOnly
- - FirebaseAnalytics (~> 8.5.0)
- - Firebase/CoreOnly (8.5.0):
- - FirebaseCore (= 8.5.0)
- - Firebase/DynamicLinks (8.5.0):
+ - FirebaseAnalytics (~> 8.7.0)
+ - Firebase/CoreOnly (8.7.0):
+ - FirebaseCore (= 8.7.0)
+ - Firebase/DynamicLinks (8.7.0):
- Firebase/CoreOnly
- - FirebaseDynamicLinks (~> 8.5.0)
- - Firebase/InAppMessaging (8.5.0):
+ - FirebaseDynamicLinks (~> 8.7.0)
+ - Firebase/InAppMessaging (8.7.0):
- Firebase/CoreOnly
- - FirebaseInAppMessaging (~> 8.5.0-beta)
- - Firebase/Messaging (8.5.0):
+ - FirebaseInAppMessaging (~> 8.7.0-beta)
+ - Firebase/Messaging (8.7.0):
- Firebase/CoreOnly
- - FirebaseMessaging (~> 8.5.0)
- - Firebase/RemoteConfig (8.5.0):
+ - FirebaseMessaging (~> 8.7.0)
+ - Firebase/RemoteConfig (8.7.0):
- Firebase/CoreOnly
- - FirebaseRemoteConfig (~> 8.5.0)
- - firebase_analytics (8.3.0):
- - Firebase/Analytics (= 8.5.0)
+ - FirebaseRemoteConfig (~> 8.7.0)
+ - firebase_analytics (8.3.3):
+ - Firebase/Analytics (= 8.7.0)
- firebase_core
- Flutter
- - firebase_auth (3.0.2):
- - Firebase/Auth (= 8.5.0)
+ - firebase_auth (3.1.2):
+ - Firebase/Auth (= 8.7.0)
- firebase_core
- Flutter
- - firebase_core (1.5.0):
- - Firebase/CoreOnly (= 8.5.0)
+ - firebase_core (1.7.0):
+ - Firebase/CoreOnly (= 8.7.0)
- Flutter
- - firebase_dynamic_links (2.0.8):
- - Firebase/DynamicLinks (= 8.5.0)
+ - firebase_dynamic_links (2.0.10):
+ - Firebase/DynamicLinks (= 8.7.0)
- firebase_core
- Flutter
- - firebase_in_app_messaging (0.5.0-8):
- - Firebase/InAppMessaging (= 8.5.0)
+ - firebase_in_app_messaging (0.5.0-10):
+ - Firebase/InAppMessaging (= 8.7.0)
- firebase_core
- Flutter
- - firebase_messaging (10.0.5):
- - Firebase/Messaging (= 8.5.0)
+ - firebase_messaging (10.0.8):
+ - Firebase/Messaging (= 8.7.0)
- firebase_core
- Flutter
- - firebase_remote_config (0.10.0-4):
- - Firebase/RemoteConfig (= 8.5.0)
+ - firebase_remote_config (0.10.0-5):
+ - Firebase/RemoteConfig (= 8.7.0)
- firebase_core
- Flutter
- - FirebaseABTesting (8.6.0):
+ - FirebaseABTesting (8.8.0):
- FirebaseCore (~> 8.0)
- - FirebaseAnalytics (8.5.0):
- - FirebaseAnalytics/AdIdSupport (= 8.5.0)
+ - FirebaseAnalytics (8.7.0):
+ - FirebaseAnalytics/AdIdSupport (= 8.7.0)
- FirebaseCore (~> 8.0)
- FirebaseInstallations (~> 8.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.4)
@@ -85,85 +85,87 @@ PODS:
- GoogleUtilities/Network (~> 7.4)
- "GoogleUtilities/NSData+zlib (~> 7.4)"
- nanopb (~> 2.30908.0)
- - FirebaseAnalytics/AdIdSupport (8.5.0):
+ - FirebaseAnalytics/AdIdSupport (8.7.0):
- FirebaseCore (~> 8.0)
- FirebaseInstallations (~> 8.0)
- - GoogleAppMeasurement (= 8.5.0)
+ - GoogleAppMeasurement (= 8.7.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.4)
- GoogleUtilities/MethodSwizzler (~> 7.4)
- GoogleUtilities/Network (~> 7.4)
- "GoogleUtilities/NSData+zlib (~> 7.4)"
- nanopb (~> 2.30908.0)
- - FirebaseAuth (8.5.0):
+ - FirebaseAuth (8.7.0):
- FirebaseCore (~> 8.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.4)
- GoogleUtilities/Environment (~> 7.4)
- GTMSessionFetcher/Core (~> 1.5)
- - FirebaseCore (8.5.0):
+ - FirebaseCore (8.7.0):
- FirebaseCoreDiagnostics (~> 8.0)
- GoogleUtilities/Environment (~> 7.4)
- GoogleUtilities/Logger (~> 7.4)
- - FirebaseCoreDiagnostics (8.6.0):
+ - FirebaseCoreDiagnostics (8.8.0):
- GoogleDataTransport (~> 9.0)
- GoogleUtilities/Environment (~> 7.4)
- GoogleUtilities/Logger (~> 7.4)
- nanopb (~> 2.30908.0)
- - FirebaseDynamicLinks (8.5.0):
+ - FirebaseDynamicLinks (8.7.0):
- FirebaseCore (~> 8.0)
- - FirebaseInAppMessaging (8.5.0-beta):
+ - FirebaseInAppMessaging (8.7.0-beta):
- FirebaseABTesting (~> 8.0)
- FirebaseCore (~> 8.0)
- FirebaseInstallations (~> 8.0)
- GoogleUtilities/Environment (~> 7.4)
- nanopb (~> 2.30908.0)
- - FirebaseInstallations (8.6.0):
+ - FirebaseInstallations (8.8.0):
- FirebaseCore (~> 8.0)
- GoogleUtilities/Environment (~> 7.4)
- GoogleUtilities/UserDefaults (~> 7.4)
- PromisesObjC (< 3.0, >= 1.2)
- - FirebaseMessaging (8.5.0):
+ - FirebaseMessaging (8.7.0):
- FirebaseCore (~> 8.0)
- FirebaseInstallations (~> 8.0)
+ - GoogleDataTransport (~> 9.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.4)
- GoogleUtilities/Environment (~> 7.4)
- GoogleUtilities/Reachability (~> 7.4)
- GoogleUtilities/UserDefaults (~> 7.4)
- - FirebaseRemoteConfig (8.5.0):
+ - nanopb (~> 2.30908.0)
+ - FirebaseRemoteConfig (8.7.0):
- FirebaseABTesting (~> 8.0)
- FirebaseCore (~> 8.0)
- FirebaseInstallations (~> 8.0)
- GoogleUtilities/Environment (~> 7.4)
- "GoogleUtilities/NSData+zlib (~> 7.4)"
- - Flurry-iOS-SDK/FlurrySDK (11.2.1)
+ - Flurry-iOS-SDK/FlurrySDK (11.3.0)
- flurry_data (0.0.1):
- Flurry-iOS-SDK/FlurrySDK
- Flutter
- Flutter (1.0.0)
- flutter_app_badger (0.0.1):
- Flutter
- - flutter_facebook_auth (2.0.0):
- - FBSDKCoreKit (~> 11.1.0)
- - FBSDKLoginKit (~> 11.1.0)
+ - flutter_facebook_auth (3.5.1):
+ - FBSDKCoreKit (~> 11.2.0)
+ - FBSDKLoginKit (~> 11.2.0)
- Flutter
- flutter_secure_storage (3.3.1):
- Flutter
- - flutter_uxcam (2.0.0):
+ - flutter_uxcam (2.0.1):
- Flutter
- - UXCam (~> 3.3.4)
+ - UXCam (~> 3.3.6)
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- google_sign_in (0.0.1):
- Flutter
- GoogleSignIn (~> 5.0)
- - GoogleAppMeasurement (8.5.0):
- - GoogleAppMeasurement/AdIdSupport (= 8.5.0)
+ - GoogleAppMeasurement (8.7.0):
+ - GoogleAppMeasurement/AdIdSupport (= 8.7.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.4)
- GoogleUtilities/MethodSwizzler (~> 7.4)
- GoogleUtilities/Network (~> 7.4)
- "GoogleUtilities/NSData+zlib (~> 7.4)"
- nanopb (~> 2.30908.0)
- - GoogleAppMeasurement/AdIdSupport (8.5.0):
+ - GoogleAppMeasurement/AdIdSupport (8.7.0):
- GoogleUtilities/AppDelegateSwizzler (~> 7.4)
- GoogleUtilities/MethodSwizzler (~> 7.4)
- GoogleUtilities/Network (~> 7.4)
@@ -177,29 +179,29 @@ PODS:
- AppAuth (~> 1.2)
- GTMAppAuth (~> 1.0)
- GTMSessionFetcher/Core (~> 1.1)
- - GoogleUtilities/AppDelegateSwizzler (7.5.1):
+ - GoogleUtilities/AppDelegateSwizzler (7.5.2):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- - GoogleUtilities/Environment (7.5.1):
+ - GoogleUtilities/Environment (7.5.2):
- PromisesObjC (< 3.0, >= 1.2)
- - GoogleUtilities/Logger (7.5.1):
+ - GoogleUtilities/Logger (7.5.2):
- GoogleUtilities/Environment
- - GoogleUtilities/MethodSwizzler (7.5.1):
+ - GoogleUtilities/MethodSwizzler (7.5.2):
- GoogleUtilities/Logger
- - GoogleUtilities/Network (7.5.1):
+ - GoogleUtilities/Network (7.5.2):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- - "GoogleUtilities/NSData+zlib (7.5.1)"
- - GoogleUtilities/Reachability (7.5.1):
+ - "GoogleUtilities/NSData+zlib (7.5.2)"
+ - GoogleUtilities/Reachability (7.5.2):
- GoogleUtilities/Logger
- - GoogleUtilities/UserDefaults (7.5.1):
+ - GoogleUtilities/UserDefaults (7.5.2):
- GoogleUtilities/Logger
- GTMAppAuth (1.2.2):
- AppAuth/Core (~> 1.4)
- GTMSessionFetcher/Core (~> 1.5)
- - GTMSessionFetcher/Core (1.5.0)
+ - GTMSessionFetcher/Core (1.7.0)
- modal_progress_hud_nsn (0.0.1):
- Flutter
- nanopb (2.30908.0):
@@ -222,25 +224,27 @@ PODS:
- PurchasesCoreSwift (3.11.1)
- PurchasesHybridCommon (1.6.3):
- Purchases (= 3.11.1)
- - Sentry (7.0.3):
- - Sentry/Core (= 7.0.3)
- - Sentry/Core (7.0.3)
+ - Sentry (7.1.4):
+ - Sentry/Core (= 7.1.4)
+ - Sentry/Core (7.1.4)
- sentry_flutter (0.0.1):
- Flutter
- FlutterMacOS
- - Sentry (~> 7.0.3)
+ - Sentry (~> 7.1.3)
- share (0.0.1):
- Flutter
- shared_preferences (0.0.1):
- Flutter
- sign_in_with_apple (0.0.1):
- Flutter
+ - smartlook (0.0.5):
+ - Flutter
- sqflite (0.0.2):
- Flutter
- FMDB (>= 2.7.5)
- url_launcher (0.0.1):
- Flutter
- - UXCam (3.3.4)
+ - UXCam (3.3.7)
- video_player (0.0.1):
- Flutter
- wakelock (0.0.1):
@@ -274,6 +278,7 @@ DEPENDENCIES:
- share (from `.symlinks/plugins/share/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- sign_in_with_apple (from `.symlinks/plugins/sign_in_with_apple/ios`)
+ - smartlook (from `.symlinks/plugins/smartlook/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
- video_player (from `.symlinks/plugins/video_player/ios`)
@@ -365,6 +370,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/shared_preferences/ios"
sign_in_with_apple:
:path: ".symlinks/plugins/sign_in_with_apple/ios"
+ smartlook:
+ :path: ".symlinks/plugins/smartlook/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
url_launcher:
@@ -380,43 +387,43 @@ SPEC CHECKSUMS:
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
devicelocale: b22617f40038496deffba44747101255cee005b0
- FBAEMKit: 5c8a8d08e5b2c79628490784883e0fcc75b12615
- FBSDKCoreKit: 7ccb8b4bb2b5ee2ad94327b774dc23f03509675d
- FBSDKCoreKit_Basics: 8f978bce195845f609b0ec6b425949d0d24f525b
- FBSDKLoginKit: d65eb587a9eaa89295338fb0bb3b358bde0b7ae4
- Firebase: ff8c73105b90e33e1dc6c8e5445d7adc2ccdc7c1
- firebase_analytics: 3b7d92b8d1a3482f557c201e5e46c2f7fa2644ff
- firebase_auth: 214ff86facd807bbb0ccff32f4b2d3865e3bc4f3
- firebase_core: 82d486a6231b636aea229bd471bceca82cbe00a6
- firebase_dynamic_links: 0768a32e69be5b6f9af258f8e072537dff6b8969
- firebase_in_app_messaging: 04572963cf1ef212ac23e188cb0324316e948bf9
- firebase_messaging: 0c5342aa6d92d09429ef67c81a1345189fcb76c9
- firebase_remote_config: cd43874ff082605023b5913bb1d3206452f1ad48
- FirebaseABTesting: c3e48ebf5e7e5c674c5a131c68e941d7921d83dc
- FirebaseAnalytics: 96325c1e0acbd2bb805c6a613028b1fe599d6a37
- FirebaseAuth: b152ea261b60eeb9419ae7e5bf34761382b33277
- FirebaseCore: 1c1ca72483b59b17050f5b4cec4fb748425a3901
- FirebaseCoreDiagnostics: 3721920bde3a9a6d5aa093c1d25e9d3e47f694af
- FirebaseDynamicLinks: 6e406b3bb669f8c8a63e7254bb63251fa3f88a43
- FirebaseInAppMessaging: ee6cd4397d1e81d34b14f90ec38697dc4ef9fe93
- FirebaseInstallations: 0ede6ffcd215b8f93c19d9b06c1c54e2d4107e98
- FirebaseMessaging: 0705ec705c21705efc51c071fba924c8e25c63e7
- FirebaseRemoteConfig: 693c1f150408e9a727daf4d8c55c7f9c29ef9ad5
- Flurry-iOS-SDK: 5831da8fc6bedb31fa1f94aac6fd204d36dd351d
+ FBAEMKit: 5de0a7aaa854eec69bb5be20795952a63d38a5f6
+ FBSDKCoreKit: bf655f808b040ed66a72b9922911b39d703e64f4
+ FBSDKCoreKit_Basics: 73ebe3a27eb688ac5b5aa7e99f68992993042115
+ FBSDKLoginKit: 2e76831ef08d356b8f9150ea51cce865074ea304
+ Firebase: bc9325d5ee2041524bac78a5213d0e530c651309
+ firebase_analytics: 72e3c5d712e43eeb0cb6f194f7cc10bc81e7d3fe
+ firebase_auth: 3193124aa14a62b8abec3fd069df73ef378d2c5b
+ firebase_core: f5ac1f2726a2bd0468cea0161eddeea3d83d7e3e
+ firebase_dynamic_links: 3c5f941aee6d2364c59e0ccb97218f55733a535c
+ firebase_in_app_messaging: 28508aa171a3032569910af896ca98a32cdfc827
+ firebase_messaging: cfee8830477d2f1875e027a65cce7f6239ebf583
+ firebase_remote_config: 1835382fd6c6de8f44a196548b5ebe317726ff3e
+ FirebaseABTesting: 981336dd14d84787e33466e4247f77ec2343f8d9
+ FirebaseAnalytics: 52768800c2add1d84b751420cb4caaf8195f2c41
+ FirebaseAuth: 2e7d029977648c67a5d51a263d4cbab76d34cf12
+ FirebaseCore: f4804c1d3f4bbbefc88904d15653038f2c99ddf7
+ FirebaseCoreDiagnostics: fe77f42da6329d6d83d21fd9d621a6b704413bfc
+ FirebaseDynamicLinks: e3fd315f43196811df8eac95803f10ff47c3b026
+ FirebaseInAppMessaging: d1cff11faa69d294bef9c0773b91a6c84f771ac5
+ FirebaseInstallations: 2563cb18a723ef9c6ef18318a49519b75dce613c
+ FirebaseMessaging: 93227dd71d7888e200baef65043f81acb2b6596e
+ FirebaseRemoteConfig: 34300dd83055c06e2768d0932dd8fb2c1575745f
+ Flurry-iOS-SDK: 494e340b623f1413711603dc0184f1fd4183e0d3
flurry_data: 49b7066a283aa41f4306974c1f2d74c61231ad74
Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
flutter_app_badger: 65de4d6f0c34a891df49e6cfb8a1c0496426fa68
- flutter_facebook_auth: 528d51ea1324741b366fa87fa5dfd41016422364
+ flutter_facebook_auth: 870a465b1afff3ace7a592bd44665d921991726c
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
- flutter_uxcam: 5b2418884a3bf41284a888c7ecc50317c8a84727
+ flutter_uxcam: 32e4e8b4355be6bf9d512ad36aed6d86c98a5cdf
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
- google_sign_in: 6bd214b9c154f881422f5fe27b66aaa7bbd580cc
- GoogleAppMeasurement: 8d10c1c470fcb0e5143ed74fddd164f0a0384800
+ google_sign_in: de494e5e993986afae63e22a32441e30c35c9823
+ GoogleAppMeasurement: 2be61ce546ad074dbe4dd545f222ac6033bb1d9e
GoogleDataTransport: 85fd18ff3019bb85d3f2c551d04c481dedf71fc9
GoogleSignIn: 7137d297ddc022a7e0aa4619c86d72c909fa7213
- GoogleUtilities: 3df19e3c24f7bbc291d8b5809aa6b0d41e642437
+ GoogleUtilities: 8de2a97a17e15b6b98e38e8770e2d129a57c0040
GTMAppAuth: ad5c2b70b9a8689e1a04033c9369c4915bfcbe89
- GTMSessionFetcher: b3503b20a988c4e20cc189aa798fd18220133f52
+ GTMSessionFetcher: 43748f93435c2aa068b1cbe39655aaf600652e91
modal_progress_hud_nsn: f6fb744cd060653d66ed8f325360ef3650eb2fde
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
@@ -427,18 +434,19 @@ SPEC CHECKSUMS:
purchases_flutter: 627527b070d80cdaf486fabe8b3d1dbe8d5cad92
PurchasesCoreSwift: ee857e4c21e6254b09d7e303a756fcf2b9164408
PurchasesHybridCommon: d65a799a61d688588534b80338edbcbf604ca93d
- Sentry: 5b16f877da362d23716d827e04db642455b26b40
- sentry_flutter: 602dc1902e152269256115e2386e1029511f3440
+ Sentry: 1d3eb1a25f8c5333c88dd5603904a6d461cd9fcf
+ sentry_flutter: f20d4f199442900fbdab2b8496f1d2091d8b94d9
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
- sign_in_with_apple: 34f3f5456a45fd7ac5fb42905e2ad31dae061b4a
+ sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440
+ smartlook: bbc5c73a85c752a31dabf100c8930838c646342e
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
- UXCam: c2c00873595ab89be227f197213dc3679ff88ae5
+ UXCam: 846259f745486b5d702423c8cbedf08e2cd8eb2c
video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e
wakelock: b0843b2479edbf6504d8d262c2959446f35373aa
webview_flutter: 9f491a9b5a66f2573946a389b2677987b0ff8c0b
PODFILE CHECKSUM: f10c0438b63bc24e6bbc207956dc27d16c4408f2
-COCOAPODS: 1.11.0.beta.2
+COCOAPODS: 1.11.2
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 6e4f3a9..2bc8233 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 = 5;
+ 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.23;
+ MARKETING_VERSION = 1.1.24;
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 = 5;
+ 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.23;
+ MARKETING_VERSION = 1.1.24;
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 = 5;
+ 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.23;
+ MARKETING_VERSION = 1.1.24;
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 2d4236f..7d0290a 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -74,6 +74,8 @@
UIBackgroundModes
+ audio
+ fetch
remote-notification
UILaunchStoryboardName
diff --git a/lib/bloc/customer_change/customer_change_bloc.dart b/lib/bloc/customer_change/customer_change_bloc.dart
index 5123564..8ebf3dd 100644
--- a/lib/bloc/customer_change/customer_change_bloc.dart
+++ b/lib/bloc/customer_change/customer_change_bloc.dart
@@ -4,6 +4,7 @@ import 'package:aitrainer_app/model/cache.dart';
import 'package:aitrainer_app/model/sport.dart';
import 'package:aitrainer_app/repository/customer_repository.dart';
import 'package:aitrainer_app/repository/mautic_repository.dart';
+import 'package:aitrainer_app/util/app_language.dart';
import 'package:aitrainer_app/util/common.dart';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
@@ -138,6 +139,10 @@ class CustomerChangeBloc extends Bloc
customerRepository.customer!.sportId = selectedSport!.sportId;
}
+ if (customerRepository.customer!.lang == null) {
+ customerRepository.customer!.lang = AppLanguage().appLocal.languageCode;
+ }
+
await customerRepository.saveCustomer();
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
await mauticRepository.sendMauticDataChange();
diff --git a/lib/bloc/login/login_bloc.dart b/lib/bloc/login/login_bloc.dart
index 90457a4..fb99baf 100644
--- a/lib/bloc/login/login_bloc.dart
+++ b/lib/bloc/login/login_bloc.dart
@@ -8,6 +8,7 @@ import 'package:aitrainer_app/repository/mautic_repository.dart';
import 'package:aitrainer_app/repository/split_test_respository.dart';
import 'package:aitrainer_app/repository/training_plan_repository.dart';
import 'package:aitrainer_app/repository/user_repository.dart';
+import 'package:aitrainer_app/util/app_language.dart';
import 'package:aitrainer_app/util/common.dart';
import 'package:aitrainer_app/util/enums.dart';
import 'package:aitrainer_app/util/track.dart';
@@ -170,6 +171,7 @@ class LoginBloc extends Bloc with Trans {
customerRepository!.customer!.dataPolicyAllowed = 1;
customerRepository!.customer!.emailSubscription = 1;
customerRepository!.customer!.syncedDate = DateTime.now();
+ customerRepository!.customer!.lang = AppLanguage().appLocal.languageCode;
customerRepository!.setCustomerProperty("Weight", tempCustomer.getProperty("Weight"));
customerRepository!.setCustomerProperty("Height", tempCustomer.getProperty("Height"));
await customerRepository!.saveCustomer();
diff --git a/lib/bloc/training_plan/training_plan_bloc.dart b/lib/bloc/training_plan/training_plan_bloc.dart
index 5c734d4..3cbe557 100644
--- a/lib/bloc/training_plan/training_plan_bloc.dart
+++ b/lib/bloc/training_plan/training_plan_bloc.dart
@@ -43,6 +43,8 @@ class TrainingPlanBloc extends Bloc {
bool celebrating = false;
int activeDayIndex = 0;
+ double base1RM = 0;
+
CustomerTrainingPlan? getMyPlan() => this._myPlan;
setMyPlan(CustomerTrainingPlan? myPlan) => this._myPlan = myPlan;
@@ -106,21 +108,13 @@ class TrainingPlanBloc extends Bloc {
} else if (event is TrainingPlanWeightChangeRecalculate) {
yield TrainingPlanExerciseLoading();
- /* double weightFromPlan = trainingPlanRepository.getOriginalWeight(this.getMyPlan()!.trainingPlanId!, event.detail);
- print("Plan Wieght: $weightFromPlan");
- if (weightFromPlan != -1 || (weightFromPlan == -1 && event.detail.set! > 1)) {
- bool isTest = weightFromPlan != -1 || weightFromPlan != -2;
- if (!isTest || (isTest && event.detail.set! > 1)) {
- //&& event.detail.exercises.length > 0
+ print("Base1RM ${event.detail.base1RM}");
+ if (event.detail.base1RM > 0) {
event.detail.repeats =
- Common.reCalculateRepeatsByChangedWeight(event.detail.weight!, event.detail.repeats!.toDouble(), event.weight);
-
- if (event.detail.repeats! < 3) {
- event.detail.repeats = 4;
- }
+ Common.calculateQuantityByChangedWeight(event.detail.base1RM, event.weight, event.detail.repeats!.toDouble());
ExerciseSaveStream().repeats = event.detail.repeats!;
ExerciseSaveStream().getStreamController().add(true);
- } */
+ }
event.detail.weight = event.weight;
yield TrainingPlanExerciseReady();
yield TrainingPlanReady();
@@ -171,18 +165,22 @@ class TrainingPlanBloc extends Bloc {
nextDetail.customerTrainingPlanDetailsId != event.detail.customerTrainingPlanDetailsId) {
print("recalculating -2 ${event.detail.customerTrainingPlanDetailsId}");
trainingPlanRepository.recalculateDetail(_myPlan!.trainingPlanId!, event.detail, nextDetail);
+ nextDetail.base1RM = Common.calculate1RM(nextDetail.weight!, nextDetail.repeats!.toDouble());
} else if (nextDetail.exerciseTypeId == event.detail.exerciseTypeId && weightFromPlan == -1 && nextDetail.set! > 1) {
print("recalculating -1 ${event.detail.customerTrainingPlanDetailsId}");
nextDetail = trainingPlanRepository.recalculateDetailFixRepeats(_myPlan!.trainingPlanId!, nextDetail);
+ nextDetail.base1RM = Common.calculate1RM(nextDetail.weight!, nextDetail.repeats!.toDouble());
} else if (nextDetail.exerciseTypeId == event.detail.exerciseTypeId && nextDetail.weight == -1 && nextDetail.set! == 1) {
print("recalculating -1, set 1 ${event.detail.customerTrainingPlanDetailsId}");
nextDetail = trainingPlanRepository.recalculateDetailFixRepeatsSet1(_myPlan!.trainingPlanId!, nextDetail, event.detail);
+ nextDetail.base1RM = Common.calculate1RM(nextDetail.weight!, nextDetail.repeats!.toDouble());
} else if (nextDetail.exerciseTypeId == event.detail.exerciseTypeId &&
weightFromPlan == -2 &&
nextDetail.set! == 1 &&
nextDetail.exercises.length == 0) {
print("recalculating -1/ no exercise, set 1 ${event.detail.customerTrainingPlanDetailsId}");
nextDetail = trainingPlanRepository.recalculateDetailFixRepeatsSet1(_myPlan!.trainingPlanId!, nextDetail, event.detail);
+ nextDetail.base1RM = Common.calculate1RM(nextDetail.weight!, nextDetail.repeats!.toDouble());
}
}
}
@@ -427,9 +425,7 @@ class TrainingPlanBloc extends Bloc {
String getSummary(TrainingPlanDetail detail) {
String summary = "";
- String set = "1";
- set = detail.set.toString() + "/ ";
List details = getAllTrainingPlanDetailsSameExercise(detail);
int index = 0;
@@ -622,7 +618,7 @@ class TrainingPlanBloc extends Bloc {
}
int index = indexInStart > indexInProgress ? indexInStart : indexInProgress;
offset = (index) * 300;
- print("Offset: $offset day: $day ($indexInStart, $indexInProgress)");
+ //print("Offset: $offset day: $day ($indexInStart, $indexInProgress)");
return offset;
}
diff --git a/lib/model/customer.dart b/lib/model/customer.dart
index ce30d85..e2f7e06 100644
--- a/lib/model/customer.dart
+++ b/lib/model/customer.dart
@@ -27,6 +27,7 @@ class Customer {
DateTime? syncedDate;
DateTime? trialDate;
String? firebaseRegToken;
+ String? lang;
LinkedHashMap properties = LinkedHashMap();
@@ -70,6 +71,7 @@ class Customer {
this.trainer = json['trainer'];
this.firebaseUid = json['firebaseUid'];
this.firebaseRegToken = json['firebaseRegToken'];
+ this.lang = json['lang'];
this.dataPolicyAllowed = json['dataPolicyAllowed'];
this.emailSubscription = json['emailSubscription'];
@@ -103,6 +105,7 @@ class Customer {
"syncedDate": this.syncedDate == null ? null : DateFormat('yyyy-MM-dd HH:mm:ss').format(this.syncedDate!),
"trialDate": this.trialDate == null ? null : DateFormat('yyyy-MM-dd HH:mm:ss').format(this.trialDate!),
"firebaseRegToken": this.firebaseRegToken,
+ "lang": this.lang,
};
@override
diff --git a/lib/model/customer_training_plan_details.dart b/lib/model/customer_training_plan_details.dart
index 75c9653..f73e64b 100644
--- a/lib/model/customer_training_plan_details.dart
+++ b/lib/model/customer_training_plan_details.dart
@@ -38,6 +38,8 @@ class CustomerTrainingPlanDetails {
bool isTest = false;
+ double base1RM = -1;
+
CustomerTrainingPlanDetails();
CustomerTrainingPlanDetails.fromJson(Map json) {
@@ -89,6 +91,8 @@ class CustomerTrainingPlanDetails {
this.isTest = json['isTest'] == "true" ? true : false;
this.exerciseType = Cache().getExerciseTypeById(exerciseTypeId!);
+
+ this.base1RM = json['base1RM'];
}
ExerciseType? getExerciseType() => exerciseType;
@@ -118,6 +122,7 @@ class CustomerTrainingPlanDetails {
'state': this.state.toStr(),
"isTest": this.isTest,
"dayId": this.dayId,
+ "base1RM": this.base1RM,
};
//print("Detail toJson $jsonMap");
diff --git a/lib/model/mautic.dart b/lib/model/mautic.dart
index 9ddc338..e07d39e 100644
--- a/lib/model/mautic.dart
+++ b/lib/model/mautic.dart
@@ -21,7 +21,7 @@ class Mautic {
"goal": this.goal,
"databaseId": this.databaseId,
"subscriptionDate": this.subscriptionDate,
- "language": this.language
+ "lang": this.language
};
String toForm() {
@@ -33,7 +33,7 @@ class Mautic {
form += this.goal == null ? "" : "&mauticform[goal]=${this.goal}";
form += this.subscriptionDate == null ? "" : "&mauticform[subscribed]=${this.subscriptionDate}";
form += this.databaseId == null ? "" : "&mauticform[databaseid]=${this.databaseId}";
- form += this.language == null ? "" : "&mauticform[language]=${this.language}";
+ form += this.language == null ? "" : "&mauticform[lang]=${this.language}";
form += this.purchaseDate == null ? "" : "&mauticform[purchase_date]=${this.purchaseDate}";
form += this.exerciseDate == null ? "" : "&mauticform[last_exercise]=${this.exerciseDate}";
form += this.trialDate == null ? "" : "&mauticform[trialdate]=${this.trialDate}";
diff --git a/lib/model/training_plan_detail.dart b/lib/model/training_plan_detail.dart
index 58ae838..ccac359 100644
--- a/lib/model/training_plan_detail.dart
+++ b/lib/model/training_plan_detail.dart
@@ -36,7 +36,7 @@ class TrainingPlanDetail {
"parallel": this.parallel,
"dayId": this.dayId,
"day": this.day,
- "summary": this.summary
+ "summary": this.summary,
};
@override
diff --git a/lib/repository/mautic_repository.dart b/lib/repository/mautic_repository.dart
index 4a683db..ff56400 100644
--- a/lib/repository/mautic_repository.dart
+++ b/lib/repository/mautic_repository.dart
@@ -43,6 +43,7 @@ class MauticRepository {
}
mautic.fitnessLevel = customerRepository.customer!.fitnessLevel == null ? "" : customerRepository.customer!.fitnessLevel!;
mautic.goal = customerRepository.customer!.goal == null ? "" : customerRepository.customer!.goal!;
+ mautic.language = AppLanguage().appLocal.languageCode;
await MauticApi().sendMauticForm(mautic);
}
diff --git a/lib/repository/training_plan_repository.dart b/lib/repository/training_plan_repository.dart
index 77767f8..a6aa7cf 100644
--- a/lib/repository/training_plan_repository.dart
+++ b/lib/repository/training_plan_repository.dart
@@ -102,6 +102,9 @@ class TrainingPlanRepository {
//print("Detail $detail exerciseType: ${detail.exerciseType}");
detail.state = ExercisePlanDetailState.start;
+ if (detail.weight != null && detail.weight! > 0) {
+ detail.base1RM = Common.calculate1RM(detail.weight!, detail.repeats!.toDouble());
+ }
plan.details.add(detail);
});
diff --git a/lib/util/common.dart b/lib/util/common.dart
index 03b5d6d..459729b 100644
--- a/lib/util/common.dart
+++ b/lib/util/common.dart
@@ -194,11 +194,8 @@ mixin Common {
}
static int calculateQuantityByChangedWeight(double initialRM, double weight, double repeat) {
- final double rmWendler = weight * repeat * 0.0333 + weight;
- final double rmOconner = weight * (1 + repeat / 40);
-
- final double repeatWendler = (rmWendler - weight) / 0.0333 / weight;
- final double repeatOconner = (rmOconner / weight - 1) * 40;
+ final double repeatWendler = (initialRM - weight) / 0.0333 / weight;
+ final double repeatOconner = (initialRM / weight - 1) * 40;
final newRepeat = ((repeatOconner + repeatWendler) / 2).ceil();
print("Initial 1RM: $initialRM Weight: $weight repeatWendler: $repeatWendler repeat Oconner: $repeatOconner. NEW REPEAT: $newRepeat");
return newRepeat;
diff --git a/lib/util/track.dart b/lib/util/track.dart
index 727e03f..7a7d449 100644
--- a/lib/util/track.dart
+++ b/lib/util/track.dart
@@ -26,7 +26,6 @@ class Track with Logging {
Smartlook.setGlobalEventProperty(event.toString(), eventValue, false);
FlutterUxcam.logEventWithProperties(event.enumToString(), {"value": eventValue});
model.Tracking tracking = model.Tracking();
- //analytics.logEvent(name: event.enumToString(), parameters: {"value": eventValue});
tracking.customerId = Cache().userLoggedIn == null ? 0 : Cache().userLoggedIn!.customerId!;
tracking.event = event.enumToString();
if (eventValue.isNotEmpty) {
diff --git a/lib/view/customer_welcome_page.dart b/lib/view/customer_welcome_page.dart
index 183b61d..693a5c4 100644
--- a/lib/view/customer_welcome_page.dart
+++ b/lib/view/customer_welcome_page.dart
@@ -21,7 +21,7 @@ class _CustomerWelcomePageState extends State with Trans {
setContext(context);
return Scaffold(
appBar: AppBarMin(
- back: true,
+ back: false,
),
body: Container(
decoration: BoxDecoration(
diff --git a/lib/view/exercise_new_page.dart b/lib/view/exercise_new_page.dart
index ba9cf0c..5f465db 100644
--- a/lib/view/exercise_new_page.dart
+++ b/lib/view/exercise_new_page.dart
@@ -134,9 +134,6 @@ class _ExerciseNewPageState extends State with Trans, Logging {
child: ExerciseSave(
exerciseName: exerciseBloc.exerciseRepository.exerciseType!.nameTranslation,
exerciseDescription: exerciseBloc.exerciseRepository.exerciseType!.descriptionTranslation,
- exerciseTask: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit != null
- ? t("Please take a relative bigger weight and repeat 12-20 times and do your best! MAXIMIZE it!")
- : t("Please repeat as much times as you can! MAXIMIZE it!"),
unit: exerciseBloc.exerciseRepository.exerciseType!.unit,
unitQuantityUnit: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit,
hasUnitQuantity: exerciseBloc.exerciseRepository.exerciseType!.unitQuantityUnit != null,
diff --git a/lib/view/registration.dart b/lib/view/registration.dart
index 532dd6c..85195a0 100644
--- a/lib/view/registration.dart
+++ b/lib/view/registration.dart
@@ -54,10 +54,10 @@ class RegistrationPage extends StatelessWidget with Trans {
title: t("Successful Registration"),
descriptions: t("Based on your initial data, we will generate the personalized training plan for you."),
text: "OK",
- onTap: () => {Navigator.of(context).pushNamed('customerWelcomePage')},
+ onTap: () => {Navigator.of(context).popAndPushNamed('customerWelcomePage')},
onCancel: () => {
trainingPlanRepository.generateTrainingPlan(),
- Navigator.of(context).pushNamed("customerWelcomePage"),
+ Navigator.of(context).popAndPushNamed("customerWelcomePage"),
},
);
});
diff --git a/lib/view/test_set_new.dart b/lib/view/test_set_new.dart
index ce17367..0848fbb 100644
--- a/lib/view/test_set_new.dart
+++ b/lib/view/test_set_new.dart
@@ -96,9 +96,6 @@ class TestSetNew extends StatelessWidget with Trans {
return ExerciseSave(
exerciseName: bloc.exerciseType.nameTranslation,
exerciseDescription: bloc.exerciseType.descriptionTranslation,
- exerciseTask: bloc.exerciseType.unitQuantityUnit != null
- ? t("Please take a relative bigger weight and repeat 12-20 times and do your best! MAXIMIZE it!")
- : t("Please repeat as much times as you can! MAXIMIZE it!"),
unit: bloc.exerciseType.unit,
unitQuantityUnit: bloc.exerciseType.unitQuantityUnit,
hasUnitQuantity: bloc.exerciseType.unitQuantityUnit != null,
diff --git a/lib/view/training_plan_execute.dart b/lib/view/training_plan_execute.dart
index b349b2f..fb09cac 100644
--- a/lib/view/training_plan_execute.dart
+++ b/lib/view/training_plan_execute.dart
@@ -308,7 +308,7 @@ class _ExerciseListState extends State with Trans {
void animate() {
offset = widget.bloc.getOffset();
- print("Offset: $offset");
+ //print("Offset: $offset");
if (scrollController.hasClients) {
scrollController.animateTo(offset, duration: Duration(milliseconds: 300), curve: Curves.easeIn);
}
diff --git a/lib/view/training_plan_exercise.dart b/lib/view/training_plan_exercise.dart
index 0f45507..b9ea9fa 100644
--- a/lib/view/training_plan_exercise.dart
+++ b/lib/view/training_plan_exercise.dart
@@ -21,6 +21,7 @@ class TrainingPlanExercise extends StatelessWidget with Trans {
final CustomerTrainingPlanDetails detail = args['customerTrainingPlanDetails'];
// ignore: close_sinks
final TrainingPlanBloc bloc = BlocProvider.of(context);
+
setContext(context);
return Scaffold(
appBar: AppBarNav(depth: 1),
@@ -89,7 +90,6 @@ class TrainingPlanExercise extends StatelessWidget with Trans {
return ExerciseSave(
exerciseName: detail.exerciseType!.nameTranslation,
exerciseDescription: detail.exerciseType!.descriptionTranslation,
- exerciseTask: getExerciseTask(detail),
unit: detail.exerciseType!.unit,
unitQuantityUnit: detail.exerciseType!.unitQuantityUnit,
hasUnitQuantity: detail.exerciseType!.unitQuantityUnit != null,
@@ -116,28 +116,6 @@ class TrainingPlanExercise extends StatelessWidget with Trans {
}
}
- String getExerciseTask(CustomerTrainingPlanDetails detail) {
- String desc = "";
- if (detail.exerciseType!.unit == "second") {
- return desc;
- }
- if (detail.exerciseType!.unitQuantityUnit != null) {
- if (detail.weight == -1) {
- return "Please take a relative bigger weight and at least 12 times and do your best! MAXIMIZE it!";
- } else if (detail.repeats == -1) {
- return "Please repeat as much times as you can! MAXIMIZE it!";
- } else {
- return "Please try to execute this exercise with exact weight and repeats what is suggested";
- }
- } else {
- if (detail.repeats == -1) {
- return "Please repeat as much times as you can! MAXIMIZE it!";
- } else {
- return "Please try to execute this exercise with exact repeats what is suggested";
- }
- }
- }
-
Widget getDropSet(TrainingPlanBloc bloc, CustomerTrainingPlanDetails detail) {
return Container(
decoration: BoxDecoration(
diff --git a/lib/widgets/exercise_save.dart b/lib/widgets/exercise_save.dart
index f6e4d31..02d49a0 100644
--- a/lib/widgets/exercise_save.dart
+++ b/lib/widgets/exercise_save.dart
@@ -138,7 +138,6 @@ class ExerciseSave extends StatefulWidget {
final String unit;
final String exerciseName;
final String exerciseDescription;
- final String exerciseTask;
final int exerciseTypeId;
final double? weight;
final int? repeats;
@@ -159,7 +158,6 @@ class ExerciseSave extends StatefulWidget {
required this.unit,
required this.exerciseName,
required this.exerciseDescription,
- required this.exerciseTask,
required this.exerciseTypeId,
this.weight,
this.repeats,
@@ -214,7 +212,7 @@ class _ExerciseSaveState extends State with Trans {
SchedulerBinding.instance!.addPostFrameCallback((_) {
subscription = stream.listen((event) {
- _controller1.text = ExerciseSaveStream().weight.toStringAsFixed(0);
+ //_controller1.text = ExerciseSaveStream().weight.toStringAsFixed(0);
_controller2.text = ExerciseSaveStream().repeats.toStringAsFixed(0);
});
print("ExerciseSave weight ${widget.weight}");
diff --git a/pubspec.lock b/pubspec.lock
index b7277ca..62b1cb4 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,14 +7,14 @@ packages:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
source: hosted
- version: "27.0.0"
+ version: "22.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
- version: "2.4.0"
+ version: "1.7.1"
animated_widgets:
dependency: "direct main"
description:
@@ -42,7 +42,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.8.1"
+ version: "2.6.1"
badges:
dependency: "direct main"
description:
@@ -77,7 +77,7 @@ packages:
name: build
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.1"
+ version: "2.1.0"
build_config:
dependency: transitive
description:
@@ -91,7 +91,7 @@ packages:
name: build_daemon
url: "https://pub.dartlang.org"
source: hosted
- version: "3.0.1"
+ version: "3.0.0"
build_resolvers:
dependency: transitive
description:
@@ -105,14 +105,14 @@ packages:
name: build_runner
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.4"
+ version: "2.1.2"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.dartlang.org"
source: hosted
- version: "7.2.2"
+ version: "7.1.0"
built_collection:
dependency: transitive
description:
@@ -147,7 +147,7 @@ packages:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.1"
+ version: "1.2.0"
checked_yaml:
dependency: transitive
description:
@@ -161,7 +161,7 @@ packages:
name: chewie
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.0.0"
chewie_audio:
dependency: transitive
description:
@@ -259,7 +259,7 @@ packages:
name: dart_style
url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.0"
+ version: "2.1.1"
device_info:
dependency: transitive
description:
@@ -434,7 +434,7 @@ packages:
name: firebase_remote_config
url: "https://pub.dartlang.org"
source: hosted
- version: "0.11.0+1"
+ version: "0.10.0+5"
firebase_remote_config_platform_interface:
dependency: transitive
description:
@@ -462,7 +462,7 @@ packages:
name: flurry_data
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.1"
+ version: "0.0.2"
flutter:
dependency: "direct main"
description: flutter
@@ -474,14 +474,14 @@ packages:
name: flutter_app_badger
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0"
+ version: "1.3.0"
flutter_bloc:
dependency: "direct main"
description:
name: flutter_bloc
url: "https://pub.dartlang.org"
source: hosted
- version: "7.2.0"
+ version: "7.3.0"
flutter_facebook_auth:
dependency: "direct main"
description:
@@ -568,7 +568,7 @@ packages:
name: flutter_uxcam
url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.0"
+ version: "2.0.1"
flutter_web_plugins:
dependency: transitive
description: flutter
@@ -601,7 +601,7 @@ packages:
name: google_sign_in
url: "https://pub.dartlang.org"
source: hosted
- version: "5.1.1"
+ version: "5.1.0"
google_sign_in_platform_interface:
dependency: transitive
description:
@@ -734,7 +734,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.7.0"
+ version: "1.3.0"
mime:
dependency: transitive
description:
@@ -748,7 +748,7 @@ packages:
name: mockito
url: "https://pub.dartlang.org"
source: hosted
- version: "5.0.16"
+ version: "5.0.15"
mocktail:
dependency: transitive
description:
@@ -1014,14 +1014,14 @@ packages:
name: sentry
url: "https://pub.dartlang.org"
source: hosted
- version: "6.0.1"
+ version: "5.1.0"
sentry_flutter:
dependency: "direct main"
description:
name: sentry_flutter
url: "https://pub.dartlang.org"
source: hosted
- version: "6.0.1"
+ version: "5.1.0"
share:
dependency: transitive
description:
@@ -1124,7 +1124,7 @@ packages:
name: source_gen
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.1"
+ version: "1.0.3"
source_map_stack_trace:
dependency: transitive
description:
@@ -1264,21 +1264,21 @@ packages:
name: test
url: "https://pub.dartlang.org"
source: hosted
- version: "1.17.10"
+ version: "1.16.8"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.2"
+ version: "0.3.0"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.0"
+ version: "0.3.19"
timeline_tile:
dependency: "direct main"
description:
@@ -1439,35 +1439,28 @@ packages:
name: wakelock
url: "https://pub.dartlang.org"
source: hosted
- version: "0.5.6"
+ version: "0.4.0"
wakelock_macos:
dependency: transitive
description:
name: wakelock_macos
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.0"
+ version: "0.1.0+3"
wakelock_platform_interface:
dependency: transitive
description:
name: wakelock_platform_interface
url: "https://pub.dartlang.org"
source: hosted
- version: "0.3.0"
+ version: "0.2.1+3"
wakelock_web:
dependency: transitive
description:
name: wakelock_web
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.0"
- wakelock_windows:
- dependency: transitive
- description:
- name: wakelock_windows
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.2.0"
+ version: "0.2.0+3"
watcher:
dependency: transitive
description:
@@ -1539,5 +1532,5 @@ packages:
source: hosted
version: "3.1.0"
sdks:
- dart: ">=2.14.0 <3.0.0"
- flutter: ">=2.5.0"
+ dart: ">=2.12.0 <3.0.0"
+ flutter: ">=2.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 5d10f84..47623b3 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -27,8 +27,8 @@ dependencies:
cupertino_icons: ^1.0.0
google_fonts: ^2.1.0
devicelocale: ^0.4.1
- sentry_flutter: ^6.0.1
- flutter_bloc: ^7.2.0
+ sentry_flutter: ^5.1.0-beta.1
+ flutter_bloc: ^7.1.0
equatable: ^2.0.3
spider_chart: ^0.1.5
@@ -44,7 +44,7 @@ dependencies:
#location: ^3.2.4
modal_progress_hud_nsn: ^0.1.0-nullsafety-1
flutter_html: ^2.0.0
- wakelock: ^ 0.5.6
+ wakelock: ^ 0.4.0
timeline_tile: ^2.0.0
purchases_flutter: ^3.2.2
package_info: ^2.0.0
@@ -61,32 +61,32 @@ dependencies:
mailto: ^2.0.0
url_launcher: ^6.0.9
- firebase_core: ^1.7.0
- firebase_analytics: ^8.3.2
- firebase_messaging: ^10.0.8
- firebase_auth: ^3.1.2
- firebase_remote_config: ^0.11.0+1
- firebase_dynamic_links: ^2.0.10
- firebase_in_app_messaging: ^0.5.0+10
+ firebase_core: ^1.5.0
+ firebase_analytics: ^8.1.0
+ firebase_messaging: ^10.0.0
+ firebase_auth: ^3.0.2
+ firebase_remote_config: ^0.10.0+4
+ firebase_dynamic_links: ^2.0.8
+ firebase_in_app_messaging: ^0.5.0+8
syncfusion_flutter_gauges: ^19.2.60
syncfusion_flutter_datagrid: ^19.1.63
syncfusion_flutter_charts: ^19.2.60
syncfusion_flutter_calendar: ^19.2.60
- flutter_facebook_auth: ^3.5.2
- google_sign_in: ^5.1.1
- sign_in_with_apple: ^3.2.0
+ flutter_facebook_auth: ^3.5.1
+ google_sign_in: ^5.0.3
+ sign_in_with_apple: ^3.0.0
smartlook: ^2.0.1
flurry_data: ^0.0.1
- flutter_uxcam: ^2.0.0
+ flutter_uxcam: ^2.0.1
animated_widgets: ^1.0.6
- mockito: ^5.0.16
- sqflite: ^2.0.0+4
- flutter_secure_storage: ^4.2.1
+ mockito: ^5.0.3
+ sqflite: ^2.0.0+3
+ flutter_secure_storage: ^4.2.0
#social_share: ^2.1.1
flutter_localizations:
@@ -161,6 +161,7 @@ flutter:
- asset/image/WT_cup_victory400.png
- asset/image/WT_zold.jpg
+ - asset/image/alternatives_arrow.png
- asset/image/button_fb.png
- asset/image/button_apple.png
- asset/image/button_google.png
@@ -185,6 +186,7 @@ flutter:
- asset/image/gain_strength.jpg
- asset/image/muscle_endurance.jpg
- asset/image/shape_forming.jpg
+ - asset/image/sizes_q.jpg
- asset/image/woman_sizes.png
- asset/image/weight_loss.jpg