diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro
index ab7b2ca..9c1827a 100644
--- a/android/app/proguard-rules.pro
+++ b/android/app/proguard-rules.pro
@@ -69,4 +69,7 @@
# Penguin classes
-keep class com.peng.pennavmap.models.** { *; }
--keep class com.peng.pennavmap.db.** { *; }
\ No newline at end of file
+-keep class com.peng.pennavmap.db.** { *; }
+
+-keep class com.hiennv.flutter_callkit_incoming.** { *; }
+-keepattributes Signature, Annotation, InnerClasses, EnclosingMethod
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 6a1c47e..4f7ef74 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -30,9 +30,6 @@
-
@@ -91,6 +88,12 @@
+
+
+
+
+
+
@@ -115,6 +118,7 @@
+ sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg
+
\ No newline at end of file
diff --git a/assets/images/png/zoom/chat-send@2x.png b/assets/images/png/zoom/chat-send@2x.png
new file mode 100644
index 0000000..73e7cd3
Binary files /dev/null and b/assets/images/png/zoom/chat-send@2x.png differ
diff --git a/assets/images/png/zoom/chat-send@3x.png b/assets/images/png/zoom/chat-send@3x.png
new file mode 100644
index 0000000..2c18a6b
Binary files /dev/null and b/assets/images/png/zoom/chat-send@3x.png differ
diff --git a/assets/images/png/zoom/default-avatar.png b/assets/images/png/zoom/default-avatar.png
new file mode 100644
index 0000000..c5fd1e7
Binary files /dev/null and b/assets/images/png/zoom/default-avatar.png differ
diff --git a/assets/images/png/zoom/hamburger@2x.png b/assets/images/png/zoom/hamburger@2x.png
new file mode 100644
index 0000000..9b490c2
Binary files /dev/null and b/assets/images/png/zoom/hamburger@2x.png differ
diff --git a/assets/images/png/zoom/hamburger@3x.png b/assets/images/png/zoom/hamburger@3x.png
new file mode 100644
index 0000000..434601f
Binary files /dev/null and b/assets/images/png/zoom/hamburger@3x.png differ
diff --git a/assets/images/png/zoom/index.ts b/assets/images/png/zoom/index.ts
new file mode 100644
index 0000000..fce1d50
--- /dev/null
+++ b/assets/images/png/zoom/index.ts
@@ -0,0 +1,22 @@
+export const icons = {
+ chatSend: require('./chat-send.png'),
+ defaultAvatar: require('./default-avatar.png'),
+ locked: require('./locked.png'),
+ more: require('./more.png'),
+ mute: require('./mute.png'),
+ muted: require('./muted.png'),
+ shareOn: require('./share-on.png'),
+ shareOff: require('./share-off.png'),
+ speakerOn: require('./speaker-on.png'),
+ speakerOff: require('./speaker-off.png'),
+ switchCamera: require('./switch-camera.png'),
+ hamburger: require('./hamburger.png'),
+ questionBalloon: require('./question-ballon.png'),
+ talking: require('./talking.png'),
+ unmute: require('./unmute.png'),
+ unlocked: require('./unlocked.png'),
+ videoOn: require('./video-on.png'),
+ videoOff: require('./video-off.png'),
+};
+
+export type IconTypes = keyof typeof icons;
diff --git a/assets/images/png/zoom/locked@2x.png b/assets/images/png/zoom/locked@2x.png
new file mode 100644
index 0000000..c6d9806
Binary files /dev/null and b/assets/images/png/zoom/locked@2x.png differ
diff --git a/assets/images/png/zoom/locked@3x.png b/assets/images/png/zoom/locked@3x.png
new file mode 100644
index 0000000..170f6e2
Binary files /dev/null and b/assets/images/png/zoom/locked@3x.png differ
diff --git a/assets/images/png/zoom/more@2x.png b/assets/images/png/zoom/more@2x.png
new file mode 100644
index 0000000..e98bc18
Binary files /dev/null and b/assets/images/png/zoom/more@2x.png differ
diff --git a/assets/images/png/zoom/more@3x.png b/assets/images/png/zoom/more@3x.png
new file mode 100644
index 0000000..e69710c
Binary files /dev/null and b/assets/images/png/zoom/more@3x.png differ
diff --git a/assets/images/png/zoom/mute@2x.png b/assets/images/png/zoom/mute@2x.png
new file mode 100644
index 0000000..65b555a
Binary files /dev/null and b/assets/images/png/zoom/mute@2x.png differ
diff --git a/assets/images/png/zoom/mute@3x.png b/assets/images/png/zoom/mute@3x.png
new file mode 100644
index 0000000..da7b29c
Binary files /dev/null and b/assets/images/png/zoom/mute@3x.png differ
diff --git a/assets/images/png/zoom/muted@2x.png b/assets/images/png/zoom/muted@2x.png
new file mode 100644
index 0000000..3504363
Binary files /dev/null and b/assets/images/png/zoom/muted@2x.png differ
diff --git a/assets/images/png/zoom/muted@3x.png b/assets/images/png/zoom/muted@3x.png
new file mode 100644
index 0000000..808ef3e
Binary files /dev/null and b/assets/images/png/zoom/muted@3x.png differ
diff --git a/assets/images/png/zoom/question-ballon@2x.png b/assets/images/png/zoom/question-ballon@2x.png
new file mode 100644
index 0000000..ba79fd3
Binary files /dev/null and b/assets/images/png/zoom/question-ballon@2x.png differ
diff --git a/assets/images/png/zoom/question-ballon@3x.png b/assets/images/png/zoom/question-ballon@3x.png
new file mode 100644
index 0000000..019c69d
Binary files /dev/null and b/assets/images/png/zoom/question-ballon@3x.png differ
diff --git a/assets/images/png/zoom/share-off@2x.png b/assets/images/png/zoom/share-off@2x.png
new file mode 100644
index 0000000..1dba94c
Binary files /dev/null and b/assets/images/png/zoom/share-off@2x.png differ
diff --git a/assets/images/png/zoom/share-off@3x.png b/assets/images/png/zoom/share-off@3x.png
new file mode 100644
index 0000000..46989fe
Binary files /dev/null and b/assets/images/png/zoom/share-off@3x.png differ
diff --git a/assets/images/png/zoom/share-on@2x.png b/assets/images/png/zoom/share-on@2x.png
new file mode 100644
index 0000000..285118e
Binary files /dev/null and b/assets/images/png/zoom/share-on@2x.png differ
diff --git a/assets/images/png/zoom/share-on@3x.png b/assets/images/png/zoom/share-on@3x.png
new file mode 100644
index 0000000..9ed5713
Binary files /dev/null and b/assets/images/png/zoom/share-on@3x.png differ
diff --git a/assets/images/png/zoom/speaker-off.png b/assets/images/png/zoom/speaker-off.png
new file mode 100644
index 0000000..9763a5a
Binary files /dev/null and b/assets/images/png/zoom/speaker-off.png differ
diff --git a/assets/images/png/zoom/speaker-on.png b/assets/images/png/zoom/speaker-on.png
new file mode 100644
index 0000000..f3355ba
Binary files /dev/null and b/assets/images/png/zoom/speaker-on.png differ
diff --git a/assets/images/png/zoom/switch-camera.png b/assets/images/png/zoom/switch-camera.png
new file mode 100644
index 0000000..5927b7b
Binary files /dev/null and b/assets/images/png/zoom/switch-camera.png differ
diff --git a/assets/images/png/zoom/talking@2x.png b/assets/images/png/zoom/talking@2x.png
new file mode 100644
index 0000000..676d61d
Binary files /dev/null and b/assets/images/png/zoom/talking@2x.png differ
diff --git a/assets/images/png/zoom/talking@3x.png b/assets/images/png/zoom/talking@3x.png
new file mode 100644
index 0000000..7028a35
Binary files /dev/null and b/assets/images/png/zoom/talking@3x.png differ
diff --git a/assets/images/png/zoom/unlocked@2x.png b/assets/images/png/zoom/unlocked@2x.png
new file mode 100644
index 0000000..aa5403e
Binary files /dev/null and b/assets/images/png/zoom/unlocked@2x.png differ
diff --git a/assets/images/png/zoom/unlocked@3x.png b/assets/images/png/zoom/unlocked@3x.png
new file mode 100644
index 0000000..25f9390
Binary files /dev/null and b/assets/images/png/zoom/unlocked@3x.png differ
diff --git a/assets/images/png/zoom/unmute@2x.png b/assets/images/png/zoom/unmute@2x.png
new file mode 100644
index 0000000..4c6d239
Binary files /dev/null and b/assets/images/png/zoom/unmute@2x.png differ
diff --git a/assets/images/png/zoom/unmute@3x.png b/assets/images/png/zoom/unmute@3x.png
new file mode 100644
index 0000000..dad68fa
Binary files /dev/null and b/assets/images/png/zoom/unmute@3x.png differ
diff --git a/assets/images/png/zoom/video-off@2x.png b/assets/images/png/zoom/video-off@2x.png
new file mode 100644
index 0000000..3e209dd
Binary files /dev/null and b/assets/images/png/zoom/video-off@2x.png differ
diff --git a/assets/images/png/zoom/video-off@3x.png b/assets/images/png/zoom/video-off@3x.png
new file mode 100644
index 0000000..0667405
Binary files /dev/null and b/assets/images/png/zoom/video-off@3x.png differ
diff --git a/assets/images/png/zoom/video-on@2x.png b/assets/images/png/zoom/video-on@2x.png
new file mode 100644
index 0000000..cdd8544
Binary files /dev/null and b/assets/images/png/zoom/video-on@2x.png differ
diff --git a/assets/images/png/zoom/video-on@3x.png b/assets/images/png/zoom/video-on@3x.png
new file mode 100644
index 0000000..03e6976
Binary files /dev/null and b/assets/images/png/zoom/video-on@3x.png differ
diff --git a/assets/images/svg/bulb_icon.svg b/assets/images/svg/bulb_icon.svg
new file mode 100644
index 0000000..62afc17
--- /dev/null
+++ b/assets/images/svg/bulb_icon.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/svg/call_for_doctor.svg b/assets/images/svg/call_for_doctor.svg
new file mode 100644
index 0000000..9644d3a
--- /dev/null
+++ b/assets/images/svg/call_for_doctor.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/call_for_vitals.svg b/assets/images/svg/call_for_vitals.svg
new file mode 100644
index 0000000..ceacdf5
--- /dev/null
+++ b/assets/images/svg/call_for_vitals.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/doctor_profile_rating_icon.svg b/assets/images/svg/doctor_profile_rating_icon.svg
new file mode 100644
index 0000000..f658411
--- /dev/null
+++ b/assets/images/svg/doctor_profile_rating_icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/doctor_profile_reviews_icon.svg b/assets/images/svg/doctor_profile_reviews_icon.svg
new file mode 100644
index 0000000..9ef9f71
--- /dev/null
+++ b/assets/images/svg/doctor_profile_reviews_icon.svg
@@ -0,0 +1,7 @@
+
diff --git a/assets/images/svg/select_city_icon.svg b/assets/images/svg/select_city_icon.svg
new file mode 100644
index 0000000..ff66079
--- /dev/null
+++ b/assets/images/svg/select_city_icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/waitingAppo.svg b/assets/images/svg/waitingAppo.svg
new file mode 100644
index 0000000..c9bd009
--- /dev/null
+++ b/assets/images/svg/waitingAppo.svg
@@ -0,0 +1,6 @@
+
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
index d36b1fa..08f3422 100644
--- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,122 +1,128 @@
{
"images" : [
{
- "size" : "20x20",
- "idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
},
{
- "size" : "20x20",
- "idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
- "scale" : "3x"
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
},
{
- "size" : "29x29",
- "idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
+ "idiom" : "iphone",
+ "scale" : "1x",
+ "size" : "29x29"
},
{
- "size" : "29x29",
- "idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
},
{
- "size" : "29x29",
- "idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
- "scale" : "3x"
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
},
{
- "size" : "40x40",
- "idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
},
{
- "size" : "40x40",
- "idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
- "scale" : "3x"
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
},
{
- "size" : "60x60",
- "idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
- "scale" : "2x"
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
},
{
- "size" : "60x60",
- "idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
- "scale" : "3x"
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
},
{
- "size" : "20x20",
- "idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
- "scale" : "1x"
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
},
{
- "size" : "20x20",
- "idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
},
{
- "size" : "29x29",
- "idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
},
{
- "size" : "29x29",
- "idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
},
{
- "size" : "40x40",
- "idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
- "scale" : "1x"
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
},
{
- "size" : "40x40",
- "idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
},
{
- "size" : "76x76",
- "idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
- "scale" : "1x"
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
},
{
- "size" : "76x76",
- "idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
- "scale" : "2x"
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
},
{
- "size" : "83.5x83.5",
- "idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
- "scale" : "2x"
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
},
{
- "size" : "1024x1024",
+ "filename" : "icon 1.jpg",
"idiom" : "ios-marketing",
- "filename" : "Icon-App-1024x1024@1x.png",
- "scale" : "1x"
+ "scale" : "1x",
+ "size" : "1024x1024"
+ },
+ {
+ "filename" : "Icon-App-76x76@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "76x76"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
}
}
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
deleted file mode 100644
index dc9ada4..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
index 7353c41..0e65243 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
index 797d452..2e4c796 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
index 6ed2d93..59435c7 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
index 4cd7b00..20855aa 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
index fe73094..11d35da 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
index 321773c..93523cb 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
index 797d452..2e4c796 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
index 502f463..00bb8db 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
index 0ec3034..3eaa1fb 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
index 0ec3034..3eaa1fb 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
index e9f5fea..fd80aa4 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
index 84ac32a..39c7958 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
index 8953cba..47a96a4 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
index 0467bf1..8c4ca7b 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ
diff --git a/lib/core/api/api_client.dart b/lib/core/api/api_client.dart
index aa534f6..888f704 100644
--- a/lib/core/api/api_client.dart
+++ b/lib/core/api/api_client.dart
@@ -175,8 +175,7 @@ class ApiClientImp implements ApiClient {
}
// body['TokenID'] = "@dm!n";
- // body['PatientID'] = 4772429;
- // body['PatientID'] = 1231755;
+ // body['PatientID'] = 1018977;
// body['PatientTypeID'] = 1;
//
// body['PatientOutSA'] = 0;
@@ -184,9 +183,6 @@ class ApiClientImp implements ApiClient {
}
body.removeWhere((key, value) => value == null);
- log("uri: ${Uri.parse(url.trim())}");
-
- log("body: ${json.encode(body)}");
final bool networkStatus = await Utils.checkConnection(bypassConnectionCheck: bypassConnectionCheck);
@@ -204,7 +200,7 @@ class ApiClientImp implements ApiClient {
final int statusCode = response.statusCode;
log("uri: ${Uri.parse(url.trim())}");
log("body: ${json.encode(body)}");
- log("response.body: ${response.body}");
+ // log("response.body: ${response.body}");
// log("response.body: ${response.body}");
if (statusCode < 200 || statusCode >= 400) {
onFailure('Error While Fetching data', statusCode, failureType: StatusCodeFailure("Error While Fetching data"));
diff --git a/lib/core/api_consts.dart b/lib/core/api_consts.dart
index 2be40d0..b92461e 100644
--- a/lib/core/api_consts.dart
+++ b/lib/core/api_consts.dart
@@ -710,7 +710,7 @@ var GET_PRESCRIPTION_INSTRUCTIONS_PDF = 'Services/ChatBot_Service.svc/REST/Chatb
class ApiConsts {
static const maxSmallScreen = 660;
- static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod;
+ static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.uat;
// static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT
@@ -749,7 +749,7 @@ class ApiConsts {
baseUrl = "https://uat.hmgwebservices.com/";
payFortEnvironment = FortEnvironment.test;
applePayMerchantId = "merchant.com.hmgwebservices.uat";
- SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx';
+ SERVICE_URL = 'https://uat.hmgwebservices.com/HMGPayment/pages/SendPayFortRequest.aspx';
TAMARA_URL = "https://epharmacy.hmg.com/tamara/Home/Checkout";
GET_TAMARA_INSTALLMENTS_URL = "https://epharmacy.hmg.com/tamara/Home/getinstallments";
GET_TAMARA_PAYMENT_STATUS = 'https://epharmacy.hmg.com/tamara/api/OnlineTamara/order_status?orderid=';
@@ -759,7 +759,7 @@ class ApiConsts {
baseUrl = "https://uat.hmgwebservices.com/";
payFortEnvironment = FortEnvironment.test;
applePayMerchantId = "merchant.com.hmgwebservices.uat";
- SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx';
+ SERVICE_URL = 'https://uat.hmgwebservices.com/HMGPayment/pages/SendPayFortRequest.aspx';
TAMARA_URL = "https://epharmacy.hmg.com/tamara/Home/Checkout";
GET_TAMARA_INSTALLMENTS_URL = "https://epharmacy.hmg.com/tamara/Home/getinstallments";
GET_TAMARA_PAYMENT_STATUS = 'https://epharmacy.hmg.com/tamara/api/OnlineTamara/order_status?orderid=';
@@ -779,7 +779,7 @@ class ApiConsts {
baseUrl = "https://uat.hmgwebservices.com/";
payFortEnvironment = FortEnvironment.test;
applePayMerchantId = "merchant.com.hmgwebservices.uat";
- SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx';
+ SERVICE_URL = 'https://uat.hmgwebservices.com/HMGPayment/pages/SendPayFortRequest.aspx';
TAMARA_URL = "https://epharmacy.hmg.com/tamara/Home/Checkout";
GET_TAMARA_INSTALLMENTS_URL = "https://epharmacy.hmg.com/tamara/Home/getinstallments";
GET_TAMARA_PAYMENT_STATUS = 'https://epharmacy.hmg.com/tamara/api/OnlineTamara/order_status?orderid=';
@@ -789,7 +789,7 @@ class ApiConsts {
baseUrl = "https://uat.hmgwebservices.com/";
payFortEnvironment = FortEnvironment.test;
applePayMerchantId = "merchant.com.hmgwebservices.uat";
- SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx';
+ SERVICE_URL = 'https://uat.hmgwebservices.com/HMGPayment/pages/SendPayFortRequest.aspx';
TAMARA_URL = "https://epharmacy.hmg.com/tamara/Home/Checkout";
GET_TAMARA_INSTALLMENTS_URL = "https://epharmacy.hmg.com/tamara/Home/getinstallments";
GET_TAMARA_PAYMENT_STATUS = 'https://epharmacy.hmg.com/tamara/api/OnlineTamara/order_status?orderid=';
@@ -862,7 +862,7 @@ class ApiConsts {
// ************ static values for Api ****************
- static final double appVersionID = 19.3;
+ static final double appVersionID = 50.3;
static final int appChannelId = 3;
static final String appIpAddress = "10.20.10.20";
static final String appGeneralId = "Cs2020@2016\$2958";
diff --git a/lib/core/app_assets.dart b/lib/core/app_assets.dart
index 5fccc6e..95f24ca 100644
--- a/lib/core/app_assets.dart
+++ b/lib/core/app_assets.dart
@@ -175,6 +175,13 @@ class AppAssets {
static const String comprehensiveCheckup = '$svgBasePath/comprehensive_checkup.svg';
static const String all_payment_method = '$svgBasePath/all_payment_method.svg';
static const String ic_rrt_vehicle = '$svgBasePath/ic_rrt_vehicle.svg';
+ static const String doctor_profile_rating_icon = '$svgBasePath/doctor_profile_rating_icon.svg';
+ static const String doctor_profile_reviews_icon = '$svgBasePath/doctor_profile_reviews_icon.svg';
+ static const String waiting_appointment_icon = '$svgBasePath/waitingAppo.svg';
+ static const String call_for_vitals = '$svgBasePath/call_for_vitals.svg';
+ static const String call_for_doctor = '$svgBasePath/call_for_doctor.svg';
+ static const String bulb_icon = '$svgBasePath/bulb_icon.svg';
+ static const String select_city_icon = '$svgBasePath/select_city_icon.svg';
//bottom navigation//
diff --git a/lib/core/cache_consts.dart b/lib/core/cache_consts.dart
index 66b38d4..bcbb185 100644
--- a/lib/core/cache_consts.dart
+++ b/lib/core/cache_consts.dart
@@ -74,4 +74,7 @@ class CacheConst {
static const String patientOccupationList = 'patient-occupation-list';
static const String hasEnabledQuickLogin = 'has-enabled-quick-login';
static const String quickLoginEnabled = 'quick-login-enabled';
+
+ static const String zoomRoomID = 'zoom-room-id';
+ static String isAppOpenedFromCall = "is_app_opened_from_call";
}
diff --git a/lib/core/dependencies.dart b/lib/core/dependencies.dart
index 2a5c749..c7037e5 100644
--- a/lib/core/dependencies.dart
+++ b/lib/core/dependencies.dart
@@ -5,6 +5,8 @@ import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/location_util.dart';
import 'package:hmg_patient_app_new/features/authentication/authentication_repo.dart';
import 'package:hmg_patient_app_new/features/authentication/authentication_view_model.dart';
+import 'package:hmg_patient_app_new/features/blood_donation/blood_donation_repo.dart';
+import 'package:hmg_patient_app_new/features/blood_donation/blood_donation_view_model.dart';
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_repo.dart';
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_view_model.dart';
import 'package:hmg_patient_app_new/features/common/common_repo.dart';
@@ -116,6 +118,7 @@ class AppDependencies {
getIt.registerLazySingleton(() => LocationRepoImpl(apiClient: getIt()));
getIt.registerLazySingleton(() => ContactUsRepoImp(loggerService: getIt(), apiClient: getIt()));
getIt.registerLazySingleton(() => HmgServicesRepoImp(loggerService: getIt(), apiClient: getIt()));
+ getIt.registerLazySingleton(() => BloodDonationRepoImp(loggerService: getIt(), apiClient: getIt()));
// ViewModels
// Global/shared VMs → LazySingleton
@@ -130,7 +133,7 @@ class AppDependencies {
),
);
- getIt.registerLazySingleton(() => PrescriptionsViewModel(prescriptionsRepo: getIt(), errorHandlerService: getIt()));
+ getIt.registerLazySingleton(() => PrescriptionsViewModel(prescriptionsRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
getIt.registerLazySingleton(() => InsuranceViewModel(insuranceRepo: getIt(), errorHandlerService: getIt()));
@@ -224,6 +227,10 @@ class AppDependencies {
() => HmgServicesViewModel(bookAppointmentsRepo: getIt(), hmgServicesRepo: getIt(), errorHandlerService: getIt(), navigationService: getIt()),
);
+ getIt.registerLazySingleton(
+ () => BloodDonationViewModel(bloodDonationRepo: getIt(), errorHandlerService: getIt(), navigationService: getIt(), dialogService: getIt(), appState: getIt()),
+ );
+
// Screen-specific VMs → Factory
// getIt.registerFactory(
// () => BookAppointmentsViewModel(
diff --git a/lib/core/utils/calendar_utils.dart b/lib/core/utils/calendar_utils.dart
deleted file mode 100644
index 2068db9..0000000
--- a/lib/core/utils/calendar_utils.dart
+++ /dev/null
@@ -1,316 +0,0 @@
-import 'dart:async';
-import 'dart:collection';
-import 'dart:convert';
-import 'dart:io';
-import 'dart:ui';
-
-import 'package:device_calendar/device_calendar.dart';
-import 'package:flutter/widgets.dart';
-import 'package:hmg_patient_app_new/core/dependencies.dart';
-import 'package:hmg_patient_app_new/core/utils/date_util.dart';
-import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
-import 'package:hmg_patient_app_new/presentation/prescriptions/prescription_reminder_view.dart';
-import 'package:hmg_patient_app_new/services/dialog_service.dart';
-import 'package:hmg_patient_app_new/services/permission_service.dart';
-import 'package:hmg_patient_app_new/widgets/common_bottom_sheet.dart';
-import 'package:jiffy/jiffy.dart';
-import 'package:manage_calendar_events/manage_calendar_events.dart' as ios;
-import 'package:permission_handler/permission_handler.dart';
-import 'package:timezone/data/latest.dart' as tzl;
-
-final DeviceCalendarPlugin deviceCalendarPlugin = DeviceCalendarPlugin();
-final ios.CalendarPlugin _myPlugin = ios.CalendarPlugin();
-
-class CalendarUtils {
- static Completer? _completer;
-
- dynamic get writableCalendars => calendars.firstWhere((c) => !c.isReadOnly!);
- dynamic calendars;
-
- CalendarUtils._(this.calendars);
-
- // static Future getInstance() async {
- // if (_completer == null) {
- // _completer = Completer();
- // print(_completer!.isCompleted);
- // try {
- // final dynamic calendarsResult;
- // if (Platform.isIOS) {
- // calendarsResult = await _myPlugin.getCalendars();
- // if (!_completer!.isCompleted) {
- // _completer?.complete(CalendarUtils._(await calendarsResult!));
- // }
- // } else {
- // calendarsResult = await deviceCalendarPlugin.retrieveCalendars();
- // if (!_completer!.isCompleted) {
- // _completer?.complete(CalendarUtils._(await calendarsResult.data!));
- // }
- // }
- // } on Exception catch (e) {
- // if (!_completer!.isCompleted) {
- // _completer!.completeError(e);
- // }
- // }
- // }
- // return _completer!.future;
- // }
-
- static Future getInstance() async {
- tzl.initializeTimeZones();
- if (_completer != null) {
- return _completer!.future;
- }
- _completer = Completer();
- try {
- final dynamic calendarsResult;
- if (Platform.isIOS) {
- calendarsResult = await _myPlugin.getCalendars();
- _completer!.complete(CalendarUtils._(calendarsResult));
- } else {
- calendarsResult = await deviceCalendarPlugin.retrieveCalendars();
- _completer!.complete(CalendarUtils._(calendarsResult.data));
- }
- } catch (e) {
- _completer!.completeError(e);
- }
-
- return _completer!.future;
- }
-
- Future createOrUpdateEvents({List? scheduleList, String? title, String? description, List? scheduleDateTime, List? daysOfWeek}) async {
- tzl.initializeTimeZones();
- List events = [];
- Location _currentLocation;
- if (DateTime.now().timeZoneName == "+04")
- _currentLocation = getLocation('Asia/Dubai');
- else
- _currentLocation = getLocation('Asia/Riyadh');
-
- scheduleDateTime!.forEach((element) {
- RecurrenceRule recurrenceRule = RecurrenceRule(
- // RecurrenceFrequency.Daily,
- // daysOfWeek: daysOfWeek,
- // endDate: element,
- until: element, frequency: Frequency.daily,
- );
- //added byAamir Tz Time
- Event event = Event(writableCalendars!.id,
- recurrenceRule: recurrenceRule,
- start: TZDateTime.from(element, _currentLocation),
- end: TZDateTime.from(element.add(Duration(minutes: 30)), _currentLocation),
- title: title,
- description: description);
- events.add(event);
- });
-
- events.forEach((element) {
- deviceCalendarPlugin.createOrUpdateEvent(element);
- });
- }
-
- Future createOrUpdateEvent({required String title, required String description, required String location, DateTime? scheduleDateTime, String? eventId}) async {
- RecurrenceRule recurrenceRule = RecurrenceRule(
- // RecurrenceFrequency.Daily,
- // daysOfWeek: daysOfWeek,
- // endDate: scheduleDateTime,
- until: scheduleDateTime, frequency: Frequency.daily,
- );
-
- Location _currentLocation;
- // if (DateTime.now().timeZoneName == "+04")
- // _currentLocation = getLocation('Asia/Dubai');
- // else
- _currentLocation = getLocation('Asia/Riyadh');
-
- TZDateTime scheduleDateTimeUTZ = TZDateTime.from(scheduleDateTime!, _currentLocation);
-
- print("writableCalendars-name: " + writableCalendars.name);
- print("writableCalendars-Id: " + writableCalendars.id);
- print("writableCalendarsToString: " + writableCalendars.toString());
- print("writableCalendarsToString: " + writableCalendars!.id!);
- Event event = Event(
- writableCalendars!.id,
- start: scheduleDateTimeUTZ,
- end: scheduleDateTimeUTZ.add(Duration(minutes: 30)),
- title: title,
- description: description,
- );
-
- ios.CalendarEvent iosCalEvent =
- ios.CalendarEvent(location: location, startDate: scheduleDateTimeUTZ, endDate: scheduleDateTimeUTZ.add(Duration(minutes: 30)), title: title, description: description, isAllDay: false);
-
- if (Platform.isAndroid) {
- Result result = await deviceCalendarPlugin.hasPermissions();
- print(result);
- await deviceCalendarPlugin.createOrUpdateEvent(event).catchError((e) {
- print("catchError " + e.toString());
- }).whenComplete(() {
- print("whenComplete Calender ID " + eventId!);
- });
- } else {
- await _myPlugin.createEvent(calendarId: writableCalendars.id!, event: iosCalEvent).catchError((e) {
- print("catchError " + e.toString());
- }).whenComplete(() {
- print("whenComplete Calender ID iOS " + eventId!);
- });
- }
- }
-
- deleteEvent(String _calendarId, String _eventId) async {
- if (Platform.isIOS) {
- await _myPlugin.deleteEvent(calendarId: _calendarId, eventId: _eventId);
- } else {
- await deviceCalendarPlugin.deleteEvent(_calendarId, _eventId);
- }
- }
-
- Future retrieveEvents(
- String calendarId,
- RetrieveEventsParams retrieveEventsParams,
- ) async {
- if (Platform.isIOS) {
- return await _myPlugin.getEvents(calendarId: calendarId);
- } else {
- return await deviceCalendarPlugin.retrieveEvents(calendarId, retrieveEventsParams);
- }
- }
-
- Future createCalendar(
- String calendarName, {
- Color? calendarColor,
- String? localAccountName,
- }) async {
- return await deviceCalendarPlugin.createCalendar(calendarName, calendarColor: calendarColor, localAccountName: localAccountName);
- }
-}
-
-Future