diff --git a/.gitignore b/.gitignore
index 55ad4693..d5b295f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,7 @@ pubspec.lock
.pub/
/build/
/ios/Frameworks/
+/ios_old/
# Web related
lib/generated_plugin_registrant.dart
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 19e888fc..a9c4d5e9 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -148,6 +148,7 @@ dependencies {
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
implementation 'com.mapbox.maps:android:11.5.0'
+ implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:7.3.1'
// implementation 'com.mapbox.maps:android:11.4.0'
// AARs
diff --git a/android/app/libs/PenNavUI.aar b/android/app/libs/PenNavUI.aar
index d423bc11..7832df8c 100644
Binary files a/android/app/libs/PenNavUI.aar and b/android/app/libs/PenNavUI.aar differ
diff --git a/android/app/libs/Penguin.aar b/android/app/libs/Penguin.aar
index 5c789c6f..a769c7a2 100644
Binary files a/android/app/libs/Penguin.aar and b/android/app/libs/Penguin.aar differ
diff --git a/android/app/libs/PenguinRenderer.aar b/android/app/libs/PenguinRenderer.aar
index b657ac66..2926e9ad 100644
Binary files a/android/app/libs/PenguinRenderer.aar and b/android/app/libs/PenguinRenderer.aar differ
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 9eef1012..67140928 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -52,7 +52,7 @@
-
+
@@ -138,6 +138,8 @@
android:name="push_kit_auto_init_enabled"
android:value="true" />
+
+
?) {
+ TODO("Not yet implemented")
+ }
+
+ override fun onLocationMessage(locationMessage: LocationMessage?) {
+ TODO("Not yet implemented")
+ }
}
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index 6c4ac3df..6d9e5c53 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -19,5 +19,5 @@
Geofence requests happened too frequently.
- sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg
+ pk.eyJ1IjoicndhaWQiLCJhIjoiY2x5cGo4aHNjMGNsbTJyc2djempobGQxaSJ9.RCaC6WrUt4A4YnZNfxnONQ
diff --git a/assets/images/new/services.zip b/assets/images/new/services.zip
new file mode 100644
index 00000000..dc5292d6
Binary files /dev/null and b/assets/images/new/services.zip differ
diff --git a/ios/Podfile b/ios/Podfile
index 8706dcdb..f82b82b0 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -30,7 +30,7 @@ flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
use_modular_headers!
-
+
pod 'OpenTok', '~> 2.22.0'
pod 'VTO2Lib'
pod 'MapboxMaps', '10.19.0'
@@ -54,6 +54,8 @@ post_install do |installer|
'PERMISSION_EVENTS_FULL_ACCESS=1',
## dart: PermissionGroup.reminders
'PERMISSION_REMINDERS=1',
+ ## dart: PermissionGroup.notifications
+ 'PERMISSION_NOTIFICATIONS=1',
]
build_configuration.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64 i386'
build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 6b99a743..0faecb4f 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -14,18 +14,18 @@
306FE6C8271D790C002D6EFC /* OpenTokPlatformBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 306FE6C7271D790C002D6EFC /* OpenTokPlatformBridge.swift */; };
306FE6CB271D8B73002D6EFC /* OpenTok.swift in Sources */ = {isa = PBXBuildFile; fileRef = 306FE6CA271D8B73002D6EFC /* OpenTok.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 3DB328A4BC3A43F45E064B43 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E19F7CAE4CB09D1D186CB8A0 /* Pods_Runner.framework */; };
+ 55AA48E49B1975752B97D5AC /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 722389C8A524DEC951FB496C /* Pods_Runner.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
762D738E274E42650063CE73 /* ring_30Sec.caf in Resources */ = {isa = PBXBuildFile; fileRef = 762D738C274E42650063CE73 /* ring_30Sec.caf */; };
762D738F274E42650063CE73 /* ring_30Sec.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 762D738D274E42650063CE73 /* ring_30Sec.mp3 */; };
- 7651B82F2D3E9CA40066B33A /* PenguinINRenderer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7651B82C2D3E9CA40066B33A /* PenguinINRenderer.xcframework */; };
- 7651B8302D3E9CA40066B33A /* PenguinINRenderer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7651B82C2D3E9CA40066B33A /* PenguinINRenderer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 7651B8312D3E9CA40066B33A /* Penguin.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7651B82D2D3E9CA40066B33A /* Penguin.xcframework */; };
- 7651B8322D3E9CA40066B33A /* Penguin.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7651B82D2D3E9CA40066B33A /* Penguin.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 7651B8332D3E9CA40066B33A /* PenNavUI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7651B82E2D3E9CA40066B33A /* PenNavUI.xcframework */; };
- 7651B8342D3E9CA40066B33A /* PenNavUI.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7651B82E2D3E9CA40066B33A /* PenNavUI.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
76815B27275F381C00E66E94 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 76815B26275F381C00E66E94 /* HealthKit.framework */; };
76962ECE28AE5C10004EAE09 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 76962ECD28AE5C10004EAE09 /* GoogleService-Info.plist */; };
+ 769B40D72F28A3BB00FC6445 /* Penguin.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 769B40D12F28A3B800FC6445 /* Penguin.xcframework */; };
+ 769B40D82F28A3BB00FC6445 /* Penguin.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 769B40D12F28A3B800FC6445 /* Penguin.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 769B40D92F28A3BC00FC6445 /* PenguinINRenderer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 769B40D22F28A3B800FC6445 /* PenguinINRenderer.xcframework */; };
+ 769B40DA2F28A3BC00FC6445 /* PenguinINRenderer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 769B40D22F28A3B800FC6445 /* PenguinINRenderer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 769B40DB2F28A3BD00FC6445 /* PenNavUI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 769B40D32F28A3B800FC6445 /* PenNavUI.xcframework */; };
+ 769B40DC2F28A3BD00FC6445 /* PenNavUI.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 769B40D32F28A3B800FC6445 /* PenNavUI.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
76D71B672C6B7F9C00DAFB84 /* HMGPenguinInPlatformBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D71B662C6B7F9C00DAFB84 /* HMGPenguinInPlatformBridge.swift */; };
76D71B6A2C6B819000DAFB84 /* PenguinModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D71B692C6B819000DAFB84 /* PenguinModel.swift */; };
76D71B6C2C6B81B300DAFB84 /* PenguinView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D71B6B2C6B81B300DAFB84 /* PenguinView.swift */; };
@@ -61,9 +61,9 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 7651B8322D3E9CA40066B33A /* Penguin.xcframework in Embed Frameworks */,
- 7651B8302D3E9CA40066B33A /* PenguinINRenderer.xcframework in Embed Frameworks */,
- 7651B8342D3E9CA40066B33A /* PenNavUI.xcframework in Embed Frameworks */,
+ 769B40DA2F28A3BC00FC6445 /* PenguinINRenderer.xcframework in Embed Frameworks */,
+ 769B40D82F28A3BB00FC6445 /* Penguin.xcframework in Embed Frameworks */,
+ 769B40DC2F28A3BD00FC6445 /* PenNavUI.xcframework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -74,13 +74,14 @@
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
29631B9D2C96C7F600DF5916 /* PenguinNavigator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PenguinNavigator.swift; sourceTree = ""; };
+ 2C6B6DB9E23FC83C372DD365 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
301C79AD27200D9F0016307B /* OpenTokRemoteVideoFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenTokRemoteVideoFactory.swift; sourceTree = ""; };
301C79AF27200DED0016307B /* OpenTokLocalVideoFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenTokLocalVideoFactory.swift; sourceTree = ""; };
306FE6C7271D790C002D6EFC /* OpenTokPlatformBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenTokPlatformBridge.swift; sourceTree = ""; };
306FE6CA271D8B73002D6EFC /* OpenTok.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenTok.swift; sourceTree = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 54B166B4DC892AC4907E4EC3 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
- 7289ADA1C0D9050B5D84D72D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ 6CD649749BB2F47B452A6202 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
+ 722389C8A524DEC951FB496C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
762D738C274E42650063CE73 /* ring_30Sec.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = ring_30Sec.caf; path = ../../assets/sounds/ring_30Sec.caf; sourceTree = ""; };
@@ -88,11 +89,11 @@
7643E4042BE0D0B400BD2F25 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Main_Custom.strings; sourceTree = ""; };
7643E4052BE0D0B400BD2F25 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Main.strings; sourceTree = ""; };
7643E4062BE0D0B400BD2F25 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/LaunchScreen.strings; sourceTree = ""; };
- 7651B82C2D3E9CA40066B33A /* PenguinINRenderer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = PenguinINRenderer.xcframework; path = Frameworks/PenguinINRenderer.xcframework; sourceTree = ""; };
- 7651B82D2D3E9CA40066B33A /* Penguin.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Penguin.xcframework; path = Frameworks/Penguin.xcframework; sourceTree = ""; };
- 7651B82E2D3E9CA40066B33A /* PenNavUI.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = PenNavUI.xcframework; path = Frameworks/PenNavUI.xcframework; sourceTree = ""; };
76815B26275F381C00E66E94 /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = System/Library/Frameworks/HealthKit.framework; sourceTree = SDKROOT; };
76962ECD28AE5C10004EAE09 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
+ 769B40D12F28A3B800FC6445 /* Penguin.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = Penguin.xcframework; sourceTree = ""; };
+ 769B40D22F28A3B800FC6445 /* PenguinINRenderer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = PenguinINRenderer.xcframework; sourceTree = ""; };
+ 769B40D32F28A3B800FC6445 /* PenNavUI.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = PenNavUI.xcframework; sourceTree = ""; };
76D71B662C6B7F9C00DAFB84 /* HMGPenguinInPlatformBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HMGPenguinInPlatformBridge.swift; sourceTree = ""; };
76D71B692C6B819000DAFB84 /* PenguinModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PenguinModel.swift; sourceTree = ""; };
76D71B6B2C6B81B300DAFB84 /* PenguinView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PenguinView.swift; sourceTree = ""; };
@@ -100,6 +101,7 @@
76D71B6F2C6B81EA00DAFB84 /* PenguinViewFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PenguinViewFactory.swift; sourceTree = ""; };
76F2556027F1FFED0062C1CD /* PassKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PassKit.framework; path = System/Library/Frameworks/PassKit.framework; sourceTree = SDKROOT; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
+ 95022A170D86E777A3E61383 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -107,8 +109,6 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- B3049EEB8BADB14F6A5B7CB0 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
- E19F7CAE4CB09D1D186CB8A0 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
E91B538D256AAA6500E96549 /* GlobalHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalHelper.swift; sourceTree = ""; };
E91B538E256AAA6500E96549 /* Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; };
E91B538F256AAA6500E96549 /* API.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; };
@@ -134,13 +134,13 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 7651B8312D3E9CA40066B33A /* Penguin.xcframework in Frameworks */,
76F2556127F1FFED0062C1CD /* PassKit.framework in Frameworks */,
76815B27275F381C00E66E94 /* HealthKit.framework in Frameworks */,
E9620805255C2ED100D3A35D /* NetworkExtension.framework in Frameworks */,
- 7651B8332D3E9CA40066B33A /* PenNavUI.xcframework in Frameworks */,
- 7651B82F2D3E9CA40066B33A /* PenguinINRenderer.xcframework in Frameworks */,
- 3DB328A4BC3A43F45E064B43 /* Pods_Runner.framework in Frameworks */,
+ 769B40DB2F28A3BD00FC6445 /* PenNavUI.xcframework in Frameworks */,
+ 769B40D72F28A3BB00FC6445 /* Penguin.xcframework in Frameworks */,
+ 769B40D92F28A3BC00FC6445 /* PenguinINRenderer.xcframework in Frameworks */,
+ 55AA48E49B1975752B97D5AC /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -160,13 +160,13 @@
555EAAA626EFB641859EF0BE /* Frameworks */ = {
isa = PBXGroup;
children = (
- 7651B82D2D3E9CA40066B33A /* Penguin.xcframework */,
- 7651B82C2D3E9CA40066B33A /* PenguinINRenderer.xcframework */,
- 7651B82E2D3E9CA40066B33A /* PenNavUI.xcframework */,
+ 769B40D12F28A3B800FC6445 /* Penguin.xcframework */,
+ 769B40D22F28A3B800FC6445 /* PenguinINRenderer.xcframework */,
+ 769B40D32F28A3B800FC6445 /* PenNavUI.xcframework */,
76F2556027F1FFED0062C1CD /* PassKit.framework */,
76815B26275F381C00E66E94 /* HealthKit.framework */,
E9620804255C2ED100D3A35D /* NetworkExtension.framework */,
- E19F7CAE4CB09D1D186CB8A0 /* Pods_Runner.framework */,
+ 722389C8A524DEC951FB496C /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -174,9 +174,9 @@
605039E5DDF72C245F9765FE /* Pods */ = {
isa = PBXGroup;
children = (
- 7289ADA1C0D9050B5D84D72D /* Pods-Runner.debug.xcconfig */,
- B3049EEB8BADB14F6A5B7CB0 /* Pods-Runner.release.xcconfig */,
- 54B166B4DC892AC4907E4EC3 /* Pods-Runner.profile.xcconfig */,
+ 2C6B6DB9E23FC83C372DD365 /* Pods-Runner.debug.xcconfig */,
+ 6CD649749BB2F47B452A6202 /* Pods-Runner.release.xcconfig */,
+ 95022A170D86E777A3E61383 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -293,15 +293,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- 60AC8DEBE8BAE4B2EDC244F6 /* [CP] Check Pods Manifest.lock */,
+ 45F878899E79CC5E1FB4EC58 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
7651B8352D3E9CA50066B33A /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- F3C6EFB26D98B53D80BE1D19 /* [CP] Embed Pods Frameworks */,
- 5193A841765CF1882FA9CCE8 /* [CP] Copy Pods Resources */,
+ BB3C9FF59088A86CD7C1B673 /* [CP] Embed Pods Frameworks */,
+ E9BC15C0E47D70948E8DA8FE /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -384,24 +384,7 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n";
};
- 5193A841765CF1882FA9CCE8 /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Copy Pods Resources";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 60AC8DEBE8BAE4B2EDC244F6 /* [CP] Check Pods Manifest.lock */ = {
+ 45F878899E79CC5E1FB4EC58 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -438,7 +421,7 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
};
- F3C6EFB26D98B53D80BE1D19 /* [CP] Embed Pods Frameworks */ = {
+ BB3C9FF59088A86CD7C1B673 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -455,6 +438,23 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
+ E9BC15C0E47D70948E8DA8FE /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -583,7 +583,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 4;
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -601,7 +601,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- MARKETING_VERSION = 4.6.017;
+ MARKETING_VERSION = 4.6.028;
PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -735,7 +735,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 4;
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -753,7 +753,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- MARKETING_VERSION = 4.6.017;
+ MARKETING_VERSION = 4.6.028;
PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -779,7 +779,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 4;
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 3A359E86ZF;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -797,7 +797,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
- MARKETING_VERSION = 4.6.017;
+ MARKETING_VERSION = 4.6.028;
PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted file mode 100644
index 41b17082..00000000
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift
index 16ac97f2..84ae647d 100644
--- a/ios/Runner/AppDelegate.swift
+++ b/ios/Runner/AppDelegate.swift
@@ -26,7 +26,7 @@ var userNotificationCenterDelegate:UNUserNotificationCenterDelegate? = nil
func initializePlatformChannels(){
- if let mainViewController = window.rootViewController as? MainFlutterVC{ // platform initialization suppose to be in foreground
+ if let mainViewController = window!.rootViewController as? MainFlutterVC{ // platform initialization suppose to be in foreground
flutterViewController = mainViewController
HMGPlatformBridge.initialize(flutterViewController: flutterViewController)
OpenTokPlatformBridge.initialize(flutterViewController: flutterViewController, registrar: self.registrar(forPlugin: "open-tok"))
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
index 08f3422c..1eb27a20 100644
--- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -109,7 +109,7 @@
"size" : "83.5x83.5"
},
{
- "filename" : "icon 1.jpg",
+ "filename" : "icon.jpg",
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
diff --git a/lib/config/config.dart b/lib/config/config.dart
index 755c9739..483138d6 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -357,7 +357,7 @@ var CAN_PAY_FOR_FOR_WALKIN_APPOINTMENT = 'Services/Doctors.svc/REST/CanPayForWal
var CHANNEL = 3;
var GENERAL_ID = 'Cs2020@2016\$2958';
var IP_ADDRESS = '10.20.10.20';
-var VERSION_ID = 20.5;
+var VERSION_ID = 20.1;
var SETUP_ID = '91877';
var LANGUAGE = 2;
// var PATIENT_OUT_SA = 0;
@@ -617,6 +617,7 @@ var SEND_DENTAL_APPOINTMENT_INVOICE_EMAIL = "Services/Notifications.svc/REST/Sen
var GET_TAMARA_PLAN = 'https://mdlaboratories.com/tamaralive/Home/GetInstallments';
var GET_TAMARA_PAYMENT_STATUS = 'https://mdlaboratories.com/tamaralive/api/OnlineTamara/order_status?orderid=';
+// var GET_TAMARA_PAYMENT_STATUS = 'https://epharmacy.hmg.com/tamara/api/OnlineTamara/order_status?orderid=';
var UPDATE_TAMARA_STATUS = 'Services/PayFort_Serv.svc/REST/Tamara_UpdateRequestStatus';
@@ -705,9 +706,14 @@ var GET_OFFER_DETAILS = 'Services/Authentication.svc/REST/GetNDOfferData';
var GET_PRESCRIPTION_INSTRUCTIONS_PDF = 'Services/ChatBot_Service.svc/REST/Chatbot_SendMedicationInstructionByWhatsApp';
+var SEND_PATIENT_IMMEDIATE_UPDATE_INSURANCE_REQUEST = 'Services/OUTPs.svc/REST/PatientCompanyUpdate';
+
//PAYFORT
var getPayFortProjectDetails = "Services/PayFort_Serv.svc/REST/GetPayFortProjectDetails";
var addPayFortApplePayResponse = "Services/PayFort_Serv.svc/REST/AddResponse";
+
+var GET_SERVICES_PRICE_LIST = 'Services/OUTPs.svc/REST/GetServicesPriceList';
+
var payFortEnvironment = FortEnvironment.production;
var applePayMerchantId = "merchant.com.hmgwebservices";
// var payFortEnvironment = FortEnvironment.test;
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 857d7ffb..9dbcfa56 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -1366,7 +1366,7 @@ const Map localizedValues = {
"livecare-option-1": {"en": "Get consultation immediately", "ar": "الحصول على الاستشارة فورا"},
"livecare-option-2": {"en": "Instant video call", "ar": "اتصال فيديو فوري"},
"livecare-option-3": {"en": "Book Appointment", "ar": "حجز موعد"},
- "livecare-option-4": {"en": "Schedule video call", "ar": "اتصال فيديو مجدول"},
+ "livecare-option-4": {"en": "Schedule Virtual Appointment", "ar": "جدولة موعد افتراضي"},
"sms_code": {"en": "Enter SMS Code here", "ar": "أدخل رمز التحقق هنا"},
"code_failure": {"en": "Didn’t received the code", "ar": "لم أستلم رمز التحقق"},
"resend": {"en": "Resend", "ar": "إعادة إرسال"},
@@ -2846,4 +2846,15 @@ const Map localizedValues = {
"seeAllGraphValues": {"en": "View all results", "ar": "عرض جميع النتائج"},
"verify-with-biometric": {"en": "Biometric", "ar": "الحيوية"},
"medicationInstructions": {"en": "Medication Instructions", "ar": "تعليمات الدواء"},
+ "servicePriceList": {"en": "Services Price List", "ar": "قائمة أسعار الخدمات"},
+
+ "servicePriceListDesc": {"en": "Below is the services price list outline the healthcare services fees for cash payments, where the insurance coverage, eligibility, and co-payment deductions will be processed in accordance with the insurance policy terms and the table of benefits of each insurance providers:", "ar": "توضح قائمة أسعار الخدمات أدناه رسوم الخدمات الصحية المقدمة للمرضى بنظام الدفع النقدي. أما فيما يتعلق بالخدمات المشمولة بالتأمين، فسيتم تطبيق التغطية التأمينية والتحقق من الأهلية واحتساب نسب التحمل وفقًا لشروط وثيقة التأمين وجدول المنافع المعتمد لكل شركة تأمين."},
+ "servicePriceList1": {"en": "Consultant Physician Consultation", "ar": "كشف طبيب استشاري"},
+ "servicePriceList2": {"en": "Specialist Physician Consultation", "ar": "كشف طبيب أخصائي"},
+ "servicePriceList3": {"en": "General Physician Consultation", "ar": "كشف طبيب عام"},
+ "servicePriceList4": {"en": "Dental Consultation", "ar": "كشف طبيب أسنان"},
+ "servicePriceList5": {"en": "Optometrist Consultation", "ar": "كشف أخصائي بصريات"},
+ "servicePriceList6": {"en": "Dietician Consultation", "ar": "كشف أخصائي تغذية"},
+ "servicePriceList7": {"en": "LiveCare Consultation", "ar": "كشف استشارة عن بعد ( لايف كير )"},
+ "servicePriceListRights": {"en": "The patient has the right to a free follow-up within 14 days of initial visit", "ar": "يحق للمريض الحصول على متابعة مجانية في غضون 14 يومًا من الزيارة الأولى"},
};
diff --git a/lib/core/model/services_price_list_response_model.dart b/lib/core/model/services_price_list_response_model.dart
new file mode 100644
index 00000000..bb60094a
--- /dev/null
+++ b/lib/core/model/services_price_list_response_model.dart
@@ -0,0 +1,54 @@
+class ServicesPriceListResponseModel {
+ int? createdBy;
+ String? createdOn;
+ int? editedBy;
+ String? editedOn;
+ int? id;
+ bool? isEnabled;
+ String? nameAR;
+ String? nameEN;
+ num? price;
+ int? rowID;
+
+ ServicesPriceListResponseModel({
+ this.createdBy,
+ this.createdOn,
+ this.editedBy,
+ this.editedOn,
+ this.id,
+ this.isEnabled,
+ this.nameAR,
+ this.nameEN,
+ this.price,
+ this.rowID,
+ });
+
+ ServicesPriceListResponseModel.fromJson(Map json) {
+ createdBy = json['CreatedBy'];
+ createdOn = json['CreatedOn'];
+ editedBy = json['EditedBy'];
+ editedOn = json['EditedOn'];
+ id = json['ID'];
+ isEnabled = json['IsEnabled'];
+ nameAR = json['NameAR'];
+ nameEN = json['NameEN'];
+ price = json['Price'];
+ rowID = json['RowID'];
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['CreatedBy'] = createdBy;
+ data['CreatedOn'] = createdOn;
+ data['EditedBy'] = editedBy;
+ data['EditedOn'] = editedOn;
+ data['ID'] = id;
+ data['IsEnabled'] = isEnabled;
+ data['NameAR'] = nameAR;
+ data['NameEN'] = nameEN;
+ data['Price'] = price;
+ data['RowID'] = rowID;
+ return data;
+ }
+}
+
diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart
index 8506ad73..30d5958a 100644
--- a/lib/core/service/client/base_app_client.dart
+++ b/lib/core/service/client/base_app_client.dart
@@ -1,7 +1,9 @@
import 'dart:async';
import 'dart:convert';
+import 'dart:developer';
import 'dart:io' show Platform;
+import 'package:flutter/foundation.dart';
import 'package:hmg_patient_app/analytics/google-analytics.dart';
import 'package:hmg_patient_app/config/config.dart';
import 'package:hmg_patient_app/config/shared_pref_kay.dart';
@@ -187,7 +189,7 @@ class BaseAppClient {
// body['IdentificationNo'] = 1023854217;
// body['MobileNo'] = "531940021"; //0560717232
- // body['PatientID'] = 4772161; //4609100
+ // body['PatientID'] = 4773715; //4609100
// body['TokenID'] = "@dm!n";
// Patient ID: 3027574
@@ -202,9 +204,11 @@ class BaseAppClient {
// }
// if (AppGlobal.isNetworkDebugEnabled) {
- debugPrint("URL : $url");
- final jsonBody = json.encode(body);
- debugPrint(jsonBody);
+ if(!kReleaseMode) {
+ log("URL : $url");
+ final jsonBody = json.encode(body);
+ log(jsonBody);
+ }
// }
if (await Utils.checkConnection(bypassConnectionCheck: bypassConnectionCheck)) {
diff --git a/lib/core/service/medical/labs_service.dart b/lib/core/service/medical/labs_service.dart
index b0a9e874..aec1c801 100644
--- a/lib/core/service/medical/labs_service.dart
+++ b/lib/core/service/medical/labs_service.dart
@@ -237,9 +237,12 @@ class LabsService extends BaseService {
_requestSendLabReportEmail.languageID = languageID;
// await baseAppClient.post(SEND_LAB_RESULT_EMAIL, onSuccess: (dynamic response, int statusCode) {
- await baseAppClient.post(isVidaPlus ? SEND_LAB_RESULT_EMAIL : SEND_LAB_RESULT_EMAIL_NEW, onSuccess: (dynamic response, int statusCode) {
+ // await baseAppClient.post(isVidaPlus ? SEND_LAB_RESULT_EMAIL : SEND_LAB_RESULT_EMAIL_NEW, onSuccess: (dynamic response, int statusCode) {
+ await baseAppClient.post(SEND_LAB_RESULT_EMAIL_NEW, onSuccess: (dynamic response, int statusCode) {
if (isDownload) {
- labReportPDF = isVidaPlus ? response['LabReportsPDFContent'] : response['PdfContent'];
+ // labReportPDF = isVidaPlus ? response['LabReportsPDFContent'] : response['PdfContent'];
+ labReportPDF = response['PdfContent'];
+ hasError = false;
}
}, onFailure: (String error, int statusCode) {
hasError = true;
@@ -279,15 +282,12 @@ class LabsService extends BaseService {
return copy;
}
- Map mapFirstItemByPriority(
- List sortedResults) {
+ Map mapFirstItemByPriority(List sortedResults) {
final Map priorityMap = {};
const priorityOrder = ['LCL', 'CL', 'L', 'N', 'H', 'CH', 'HCH'];
for (final result in sortedResults) {
final priority = result.calculatedResultFlag?.trim();
- if (priority != null &&
- priorityOrder.contains(priority) &&
- !priorityMap.containsKey(priority)) {
+ if (priority != null && priorityOrder.contains(priority) && !priorityMap.containsKey(priority)) {
priorityMap[priority] = result;
}
@@ -307,8 +307,7 @@ class LabsService extends BaseService {
print("the match iss not null");
final millis = int.tryParse(match.group(1)!);
if (millis != null) {
- print(
- "the data and time is ${DateTime.fromMillisecondsSinceEpoch(millis)}");
+ print("the data and time is ${DateTime.fromMillisecondsSinceEpoch(millis)}");
return DateTime.fromMillisecondsSinceEpoch(millis);
}
}
@@ -335,14 +334,9 @@ class LabsService extends BaseService {
return mapResultToThreshold(topResults, mapOfPriority);
}
- List mapResultToThreshold(
- List results, Map mapOfPriority) {
+ List mapResultToThreshold(List results, Map mapOfPriority) {
// Extract valid numeric results
- List actualValues = results
- .map((e) => double.tryParse(e.resultValue ?? ''))
- .where((v) => v != null)
- .cast()
- .toList();
+ List actualValues = results.map((e) => double.tryParse(e.resultValue ?? '')).where((v) => v != null).cast().toList();
if (actualValues.isEmpty) return [];
@@ -376,14 +370,10 @@ class LabsService extends BaseService {
var mapOfValues = inferThresholds(mapOfPriority);
var item = results.first;
- String? realCriticalLow =
- (item.criticalLow == "0") ? null : item.criticalLow;
- String? realReferenceHigh =
- (item.referenceHigh == "0") ? null : item.referenceHigh;
- String? realCriticalHigh =
- (item.criticalHigh == "0") ? null : item.criticalHigh;
- String? realReferenceLow =
- (item.referenceLow == "0") ? null : item.referenceLow;
+ String? realCriticalLow = (item.criticalLow == "0") ? null : item.criticalLow;
+ String? realReferenceHigh = (item.referenceHigh == "0") ? null : item.referenceHigh;
+ String? realCriticalHigh = (item.criticalHigh == "0") ? null : item.criticalHigh;
+ String? realReferenceLow = (item.referenceLow == "0") ? null : item.referenceLow;
final adjustedValues = adjustValues(
criticalLow: mapOfValues['criticalLow'],
low: mapOfValues['low'],
@@ -393,53 +383,26 @@ class LabsService extends BaseService {
);
return [
- ThresholdRange(
- label: 'Critical Low',
- value: adjustedValues["criticalLow"]!,
- color: Color(0xffffffff),
- lineColor: Color(0xFFe9a2a4),
- actualValue: realCriticalLow),
- ThresholdRange(
- label: 'Low',
- value: adjustedValues['low']!,
- color: Color(0xFFf2fbf5),
- lineColor: Color(0xFFefc481),
- actualValue: realReferenceLow),
- ThresholdRange(
- label: 'Normal',
- value: adjustedValues['normal']!,
- color: Color(0xFFf2fbf5),
- lineColor: Color(0xFF5dc36b)),
- ThresholdRange(
- label: 'High',
- value: adjustedValues['high']!,
- color: Color(0xffffffff),
- lineColor: Color(0xFFefc481),
- actualValue: realReferenceHigh),
- ThresholdRange(
- label: 'Critical High',
- value: adjustedValues['criticalHigh']!,
- color: Color(0xffffffff),
- lineColor: Color(0xFFe9a2a4),
- actualValue: realCriticalHigh),
+ ThresholdRange(label: 'Critical Low', value: adjustedValues["criticalLow"]!, color: Color(0xffffffff), lineColor: Color(0xFFe9a2a4), actualValue: realCriticalLow),
+ ThresholdRange(label: 'Low', value: adjustedValues['low']!, color: Color(0xFFf2fbf5), lineColor: Color(0xFFefc481), actualValue: realReferenceLow),
+ ThresholdRange(label: 'Normal', value: adjustedValues['normal']!, color: Color(0xFFf2fbf5), lineColor: Color(0xFF5dc36b)),
+ ThresholdRange(label: 'High', value: adjustedValues['high']!, color: Color(0xffffffff), lineColor: Color(0xFFefc481), actualValue: realReferenceHigh),
+ ThresholdRange(label: 'Critical High', value: adjustedValues['criticalHigh']!, color: Color(0xffffffff), lineColor: Color(0xFFe9a2a4), actualValue: realCriticalHigh),
];
}
- Map inferThresholds(
- Map mapOfPriority) {
+ Map inferThresholds(Map mapOfPriority) {
double? parse(String? v) {
final parsed = double.tryParse(v ?? '');
return (parsed == null || parsed < 0) ? null : parsed;
}
// Parse inputs
- double? criticalLow = parse(
- mapOfPriority['LCL']?.resultValue ?? mapOfPriority['CL']?.resultValue);
+ double? criticalLow = parse(mapOfPriority['LCL']?.resultValue ?? mapOfPriority['CL']?.resultValue);
double? low = parse(mapOfPriority['L']?.resultValue);
double? normal = parse(mapOfPriority['N']?.resultValue);
double? high = parse(mapOfPriority['H']?.resultValue);
- double? criticalHigh = parse(
- mapOfPriority['CH']?.resultValue ?? mapOfPriority['HCH']?.resultValue);
+ double? criticalHigh = parse(mapOfPriority['CH']?.resultValue ?? mapOfPriority['HCH']?.resultValue);
const step = 5.0;
List values = [criticalLow, low, normal, high, criticalHigh];
@@ -453,11 +416,11 @@ class LabsService extends BaseService {
return v < 0 ? 0 : v;
});
var mapresult = {
- 'criticalLow': values[0]??-1,
- 'low': values[1]??-1,
- 'normal': values[2]??-1,
- 'high': values[3]??-1,
- 'criticalHigh': values[4]??-1,
+ 'criticalLow': values[0] ?? -1,
+ 'low': values[1] ?? -1,
+ 'normal': values[2] ?? -1,
+ 'high': values[3] ?? -1,
+ 'criticalHigh': values[4] ?? -1,
};
print("the result is $mapresult");
@@ -480,20 +443,23 @@ class LabsService extends BaseService {
if (criticalLow == null || criticalLow == -1) criticalLowHasValue = false;
if (low == null || low == -1) lowHasValue = false;
- if (normal == null ||normal ==-1) normaHasValue = false;
- if (high == null ||high ==-1) highHasValue = false;
- if (criticalHigh == null ||criticalHigh ==-1) criticalHighHasValue = false;
+ if (normal == null || normal == -1) normaHasValue = false;
+ if (high == null || high == -1) highHasValue = false;
+ if (criticalHigh == null || criticalHigh == -1) criticalHighHasValue = false;
print("the values arre $criticalLowHasValue $lowHasValue $normaHasValue $highHasValue $criticalHighHasValue");
if (!criticalLowHasValue) {
criticalLow = 0;
if (lowHasValue) {
low = low! - step;
- } if (normaHasValue && (criticalLow!= 0 || criticalLow != -1)) {
+ }
+ if (normaHasValue && (criticalLow != 0 || criticalLow != -1)) {
low = normal! - step * 2;
- } if (highHasValue && (criticalLow!= 0 || criticalLow != -1)) {
+ }
+ if (highHasValue && (criticalLow != 0 || criticalLow != -1)) {
low = high! - step * 3;
- } if (criticalHighHasValue && (criticalLow!= 0 || criticalLow != -1)) {
+ }
+ if (criticalHighHasValue && (criticalLow != 0 || criticalLow != -1)) {
low = criticalHigh! - step * 4;
}
}
@@ -503,25 +469,30 @@ class LabsService extends BaseService {
if (criticalLowHasValue && (low != 0 || low != -1)) {
low = criticalLow! + step;
- } if (normaHasValue && (low != 0 || low != -1)) {
+ }
+ if (normaHasValue && (low != 0 || low != -1)) {
low = normal! - step;
- } if (highHasValue && (low != 0 || low != -1)) {
+ }
+ if (highHasValue && (low != 0 || low != -1)) {
low = high! - step * 2;
- } if (criticalHighHasValue && (low != 0 || low != -1)) {
+ }
+ if (criticalHighHasValue && (low != 0 || low != -1)) {
low = criticalHigh! - step * 3;
}
-
}
if (!normaHasValue) {
normal = 0;
if (criticalLowHasValue && (normal != 0 || normal != -1)) {
normal = criticalLow! + step * 2;
- } if (lowHasValue) {
+ }
+ if (lowHasValue) {
normal = low! + step;
- } if (highHasValue) {
+ }
+ if (highHasValue) {
normal = high! - step;
- } if (criticalHighHasValue) {
+ }
+ if (criticalHighHasValue) {
normal = criticalHigh! - step * 2;
}
}
@@ -530,59 +501,62 @@ class LabsService extends BaseService {
if (criticalLowHasValue) {
high = criticalLow! + step * 3;
- } if (lowHasValue) {
+ }
+ if (lowHasValue) {
high = low! + step * 2;
- } if (normaHasValue) {
+ }
+ if (normaHasValue) {
high = normal! + step;
- } if (criticalHighHasValue) {
+ }
+ if (criticalHighHasValue) {
high = criticalHigh! - step;
}
}
if (!criticalHighHasValue) {
-
criticalHigh = 0;
if (criticalLowHasValue) {
criticalHigh = criticalLow! + step * 4;
- } if (lowHasValue) {
+ }
+ if (lowHasValue) {
criticalHigh = low! + step * 3;
- } if (normaHasValue) {
+ }
+ if (normaHasValue) {
criticalHigh = normal! + step * 2;
- } if (highHasValue) {
+ }
+ if (highHasValue) {
criticalHigh = high! + step;
}
}
- if(((criticalLow??0)<0) == true){
- var mod = ((low ?? 0) + (normal??0) )/2;
+ if (((criticalLow ?? 0) < 0) == true) {
+ var mod = ((low ?? 0) + (normal ?? 0)) / 2;
criticalLow = mod;
}
- if(((low??0)<0) == true){
- var mod = ((criticalLow ?? 0) + (normal??0) )/2;
+ if (((low ?? 0) < 0) == true) {
+ var mod = ((criticalLow ?? 0) + (normal ?? 0)) / 2;
low = mod;
}
- if(((normal??0)<0) == true){
- var mod = ((low ?? 0) + (high??0) )/2;
+ if (((normal ?? 0) < 0) == true) {
+ var mod = ((low ?? 0) + (high ?? 0)) / 2;
normal = mod;
}
- if(((high??0)<0) == true){
- var mod = ((normal ?? 0) + (criticalHigh??0) )/2;
+ if (((high ?? 0) < 0) == true) {
+ var mod = ((normal ?? 0) + (criticalHigh ?? 0)) / 2;
high = mod;
}
- if(((criticalHigh??0)<0) == true){
- criticalHigh = (high??0)+step;
+ if (((criticalHigh ?? 0) < 0) == true) {
+ criticalHigh = (high ?? 0) + step;
}
-
-
Map values = {
- 'criticalLow':criticalLow ,
+ 'criticalLow': criticalLow,
'low': low,
- 'normal': normal ,
- 'high': high ,
- 'criticalHigh': criticalHigh,
+ 'normal': normal,
+ 'high': high,
+ 'criticalHigh': criticalHigh,
};
print("thee adjusted values `are $values");
@@ -628,9 +602,7 @@ class LabsService extends BaseService {
const priorityOrder = ['LCL', 'CL', 'L', 'N', 'H', 'CH', 'HCH'];
// Sort results by priority order
- results.sort((a, b) => priorityOrder
- .indexOf(a.calculatedResultFlag ?? '')
- .compareTo(priorityOrder.indexOf(b.calculatedResultFlag ?? '')));
+ results.sort((a, b) => priorityOrder.indexOf(a.calculatedResultFlag ?? '').compareTo(priorityOrder.indexOf(b.calculatedResultFlag ?? '')));
// Extract values
List values = results.map((r) {
@@ -716,54 +688,15 @@ class LabsService extends BaseService {
return transformedValue;
}
-
-
List getThresholdValue() {
return [
- ThresholdRange(
- label: 'LCL',
- value: 0,
- color: Color(0xffffffff),
- lineColor: Color(0xFFe9a2a4)), ThresholdRange(
- label: 'CL',
- value: 0,
- color: Color(0xffffffff),
- lineColor: Color(0xFFe9a2a4)),
- ThresholdRange(
- label: 'L',
- value: 20,
- color: Color(0xFFf2fbf5),
- lineColor: Color(0xFFeecd94)),
- ThresholdRange(
- label: 'N',
- value: 40,
- color: Color(0xFFf2fbf5),
- lineColor: Color(0xFF5dc36b)),
- ThresholdRange(
- label: 'H',
- value: 60,
- color: Color(0xffffffff),
- lineColor: Color(0xFFeecd94)),
- ThresholdRange(
- label: 'CH',
- value: 80,
- color: Color(0xffffffff),
- lineColor: Color(0xFFe9a2a4)), ThresholdRange(
- label: 'HCH',
- value: 80,
- color: Color(0xffffffff),
- lineColor: Color(0xFFe9a2a4)),
+ ThresholdRange(label: 'LCL', value: 0, color: Color(0xffffffff), lineColor: Color(0xFFe9a2a4)),
+ ThresholdRange(label: 'CL', value: 0, color: Color(0xffffffff), lineColor: Color(0xFFe9a2a4)),
+ ThresholdRange(label: 'L', value: 20, color: Color(0xFFf2fbf5), lineColor: Color(0xFFeecd94)),
+ ThresholdRange(label: 'N', value: 40, color: Color(0xFFf2fbf5), lineColor: Color(0xFF5dc36b)),
+ ThresholdRange(label: 'H', value: 60, color: Color(0xffffffff), lineColor: Color(0xFFeecd94)),
+ ThresholdRange(label: 'CH', value: 80, color: Color(0xffffffff), lineColor: Color(0xFFe9a2a4)),
+ ThresholdRange(label: 'HCH', value: 80, color: Color(0xffffffff), lineColor: Color(0xFFe9a2a4)),
];
}
-
-
}
-
-
-
-
-
-
-
-
-
diff --git a/lib/core/service/privilege_service.dart b/lib/core/service/privilege_service.dart
index a572d1a8..cd4a2be7 100644
--- a/lib/core/service/privilege_service.dart
+++ b/lib/core/service/privilege_service.dart
@@ -3,6 +3,7 @@ import 'package:hmg_patient_app/core/model/privilege/HMCProjectListModel.dart';
import 'package:hmg_patient_app/core/model/privilege/PrivilegeModel.dart';
import 'package:hmg_patient_app/core/model/privilege/ProjectDetailListModel.dart';
import 'package:hmg_patient_app/core/model/privilege/VidaPlusProjectListModel.dart';
+import 'package:hmg_patient_app/core/model/services_price_list_response_model.dart';
import 'package:hmg_patient_app/core/service/base_service.dart';
import 'package:hmg_patient_app/main.dart';
@@ -12,6 +13,8 @@ class PrivilegeService extends BaseService {
List hMCProjectListModel = [];
List projectDetailListModel = [];
+ List servicesPriceList = [];
+
dynamic hisOffersList;
Future