Merge branch 'development' into Haroon

merge-requests/372/head
haroon amjad 3 years ago
commit 72dbdd2c2b

@ -0,0 +1,85 @@
[
{
"id": 1,
"questionEN": "Is the test intended for travel?",
"questionAR": "هل تجري التحليل بغرض السفر؟",
"ans": 2
},
{
"id": 2,
"questionEN": "Coming from outside KSA within last 2 weeks?",
"questionAR": "هل قدمت من خارج المملكة خلال الأسبوعين الماضيين؟",
"ans": 2
},
{
"id": 3,
"questionEN": "Do you currently have fever?",
"questionAR": "هل تعاني حاليا من حرارة؟",
"ans": 2
},
{
"id": 4,
"questionEN": "Did you have fever in last 2 weeks?",
"questionAR": "هل عانيت من حرارة في الأسبوعين الماضيين؟",
"ans": 2
},
{
"id": 5,
"questionEN": "Do you have a sore throat?",
"questionAR": "هل لديك التهاب في الحلق؟",
"ans": 2
},
{
"id": 6,
"questionEN": "Do you have a runny nose?",
"questionAR": "هل لديك سيلان بالأنف؟"
},
{
"id": 7,
"questionEN": "Do you have a cough?",
"questionAR": "هل لديك سعال؟",
"ans": 2
},
{
"id": 8,
"questionEN": "Do you have shortness of breath?",
"questionAR": "هل تعانين من ضيق في التنفس؟",
"ans": 2
},
{
"id": 9,
"questionEN": "Do you have nausea?",
"questionAR": "هل تعانين من غثيان؟",
"ans": 2
},
{
"id": 10,
"questionEN": "Do you have vomiting?",
"questionAR": "هل تعاني من القيء؟",
"ans": 2
},
{
"id": 11,
"questionEN": "Do you have a headache?",
"questionAR": "هل تعاني من صداع في الرأس؟",
"ans": 2
},
{
"id": 12,
"questionEN": "Do you have muscle pain?",
"questionAR": "هل تعانين من آلام عضلية؟",
"ans": 2
},
{
"id": 13,
"questionEN": "Do you have joint pain?",
"questionAR": "هل تعانين من آلام المفاصل؟",
"ans": 2
},
{
"id": 14,
"questionEN": "Do you have diarrhea?",
"questionAR": "هل لديك اسهال؟",
"ans": 2
}
]

@ -1 +1 @@
269226e53e3ba1b1460fd3df51f89f77 e52eba3667a38bec777870899c15ae7d

@ -277,6 +277,11 @@ PODS:
- Flutter - Flutter
- file_picker_web (0.0.1): - file_picker_web (0.0.1):
- Flutter - Flutter
- Firebase/Analytics (6.33.0):
- Firebase/Core
- Firebase/Core (6.33.0):
- Firebase/CoreOnly
- FirebaseAnalytics (= 6.8.3)
- Firebase/CoreOnly (6.33.0): - Firebase/CoreOnly (6.33.0):
- FirebaseCore (= 6.10.3) - FirebaseCore (= 6.10.3)
- Firebase/Firestore (6.33.0): - Firebase/Firestore (6.33.0):
@ -285,6 +290,13 @@ PODS:
- Firebase/Messaging (6.33.0): - Firebase/Messaging (6.33.0):
- Firebase/CoreOnly - Firebase/CoreOnly
- FirebaseMessaging (~> 4.7.0) - FirebaseMessaging (~> 4.7.0)
- firebase_analytics (6.3.0):
- Firebase/Analytics (~> 6.33.0)
- Firebase/CoreOnly (~> 6.33.0)
- firebase_core
- Flutter
- firebase_analytics_web (0.1.0):
- Flutter
- firebase_core (0.5.3): - firebase_core (0.5.3):
- Firebase/CoreOnly (~> 6.33.0) - Firebase/CoreOnly (~> 6.33.0)
- Flutter - Flutter
@ -295,6 +307,15 @@ PODS:
- Firebase/Messaging (~> 6.33.0) - Firebase/Messaging (~> 6.33.0)
- firebase_core - firebase_core
- Flutter - Flutter
- FirebaseAnalytics (6.8.3):
- FirebaseCore (~> 6.10)
- FirebaseInstallations (~> 1.6)
- GoogleAppMeasurement (= 6.8.3)
- GoogleUtilities/AppDelegateSwizzler (~> 6.7)
- GoogleUtilities/MethodSwizzler (~> 6.7)
- GoogleUtilities/Network (~> 6.7)
- "GoogleUtilities/NSData+zlib (~> 6.7)"
- nanopb (~> 1.30906.0)
- FirebaseCore (6.10.3): - FirebaseCore (6.10.3):
- FirebaseCoreDiagnostics (~> 1.6) - FirebaseCoreDiagnostics (~> 1.6)
- GoogleUtilities/Environment (~> 6.7) - GoogleUtilities/Environment (~> 6.7)
@ -352,11 +373,17 @@ PODS:
- FMDB (2.7.5): - FMDB (2.7.5):
- FMDB/standard (= 2.7.5) - FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5) - FMDB/standard (2.7.5)
- geolocator (6.1.9): - geolocator (6.2.0):
- Flutter - Flutter
- google_maps_flutter (0.0.1): - google_maps_flutter (0.0.1):
- Flutter - Flutter
- GoogleMaps (< 3.10) - GoogleMaps (< 3.10)
- GoogleAppMeasurement (6.8.3):
- GoogleUtilities/AppDelegateSwizzler (~> 6.7)
- GoogleUtilities/MethodSwizzler (~> 6.7)
- GoogleUtilities/Network (~> 6.7)
- "GoogleUtilities/NSData+zlib (~> 6.7)"
- nanopb (~> 1.30906.0)
- GoogleDataTransport (7.5.1): - GoogleDataTransport (7.5.1):
- nanopb (~> 1.30906.0) - nanopb (~> 1.30906.0)
- GoogleMaps (3.9.0): - GoogleMaps (3.9.0):
@ -372,6 +399,8 @@ PODS:
- PromisesObjC (~> 1.2) - PromisesObjC (~> 1.2)
- GoogleUtilities/Logger (6.7.2): - GoogleUtilities/Logger (6.7.2):
- GoogleUtilities/Environment - GoogleUtilities/Environment
- GoogleUtilities/MethodSwizzler (6.7.2):
- GoogleUtilities/Logger
- GoogleUtilities/Network (6.7.2): - GoogleUtilities/Network (6.7.2):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib" - "GoogleUtilities/NSData+zlib"
@ -435,6 +464,8 @@ PODS:
- nanopb/encode (1.30906.0) - nanopb/encode (1.30906.0)
- native_device_orientation (0.0.1): - native_device_orientation (0.0.1):
- Flutter - Flutter
- nfc_in_flutter (1.0.0):
- Flutter
- NVActivityIndicatorView (5.1.1): - NVActivityIndicatorView (5.1.1):
- NVActivityIndicatorView/Base (= 5.1.1) - NVActivityIndicatorView/Base (= 5.1.1)
- NVActivityIndicatorView/Base (5.1.1) - NVActivityIndicatorView/Base (5.1.1)
@ -446,7 +477,7 @@ PODS:
- Flutter - Flutter
- path_provider_windows (0.0.1): - path_provider_windows (0.0.1):
- Flutter - Flutter
- "permission_handler (5.0.1+1)": - "permission_handler (5.1.0+2)":
- Flutter - Flutter
- PromisesObjC (1.2.11) - PromisesObjC (1.2.11)
- Protobuf (3.13.0) - Protobuf (3.13.0)
@ -477,9 +508,9 @@ PODS:
- SwiftyGif (5.4.0) - SwiftyGif (5.4.0)
- TOCropViewController (2.5.5) - TOCropViewController (2.5.5)
- Try (2.1.1) - Try (2.1.1)
- "twilio_programmable_video (0.5.0+4)": - "twilio_programmable_video (0.6.4+1)":
- Flutter - Flutter
- TwilioVideo (~> 3.4) - TwilioVideo (~> 3.7)
- TwilioVideo (3.8.0) - TwilioVideo (3.8.0)
- url_launcher (0.0.1): - url_launcher (0.0.1):
- Flutter - Flutter
@ -518,6 +549,8 @@ DEPENDENCIES:
- device_info (from `.symlinks/plugins/device_info/ios`) - device_info (from `.symlinks/plugins/device_info/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`)
- file_picker_web (from `.symlinks/plugins/file_picker_web/ios`) - file_picker_web (from `.symlinks/plugins/file_picker_web/ios`)
- firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`)
- firebase_analytics_web (from `.symlinks/plugins/firebase_analytics_web/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`) - firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
@ -542,6 +575,7 @@ DEPENDENCIES:
- map_launcher (from `.symlinks/plugins/map_launcher/ios`) - map_launcher (from `.symlinks/plugins/map_launcher/ios`)
- maps_launcher (from `.symlinks/plugins/maps_launcher/ios`) - maps_launcher (from `.symlinks/plugins/maps_launcher/ios`)
- native_device_orientation (from `.symlinks/plugins/native_device_orientation/ios`) - native_device_orientation (from `.symlinks/plugins/native_device_orientation/ios`)
- nfc_in_flutter (from `.symlinks/plugins/nfc_in_flutter/ios`)
- NVActivityIndicatorView - NVActivityIndicatorView
- path_provider (from `.symlinks/plugins/path_provider/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`)
- path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`) - path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`)
@ -578,6 +612,7 @@ SPEC REPOS:
- DKImagePickerController - DKImagePickerController
- DKPhotoGallery - DKPhotoGallery
- Firebase - Firebase
- FirebaseAnalytics
- FirebaseCore - FirebaseCore
- FirebaseCoreDiagnostics - FirebaseCoreDiagnostics
- FirebaseFirestore - FirebaseFirestore
@ -585,6 +620,7 @@ SPEC REPOS:
- FirebaseInstanceID - FirebaseInstanceID
- FirebaseMessaging - FirebaseMessaging
- FMDB - FMDB
- GoogleAppMeasurement
- GoogleDataTransport - GoogleDataTransport
- GoogleMaps - GoogleMaps
- GoogleUtilities - GoogleUtilities
@ -626,6 +662,10 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/file_picker/ios" :path: ".symlinks/plugins/file_picker/ios"
file_picker_web: file_picker_web:
:path: ".symlinks/plugins/file_picker_web/ios" :path: ".symlinks/plugins/file_picker_web/ios"
firebase_analytics:
:path: ".symlinks/plugins/firebase_analytics/ios"
firebase_analytics_web:
:path: ".symlinks/plugins/firebase_analytics_web/ios"
firebase_core: firebase_core:
:path: ".symlinks/plugins/firebase_core/ios" :path: ".symlinks/plugins/firebase_core/ios"
firebase_core_web: firebase_core_web:
@ -674,6 +714,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/maps_launcher/ios" :path: ".symlinks/plugins/maps_launcher/ios"
native_device_orientation: native_device_orientation:
:path: ".symlinks/plugins/native_device_orientation/ios" :path: ".symlinks/plugins/native_device_orientation/ios"
nfc_in_flutter:
:path: ".symlinks/plugins/nfc_in_flutter/ios"
path_provider: path_provider:
:path: ".symlinks/plugins/path_provider/ios" :path: ".symlinks/plugins/path_provider/ios"
path_provider_linux: path_provider_linux:
@ -746,9 +788,12 @@ SPEC CHECKSUMS:
file_picker: 3e6c3790de664ccf9b882732d9db5eaf6b8d4eb1 file_picker: 3e6c3790de664ccf9b882732d9db5eaf6b8d4eb1
file_picker_web: 37b10786e88885124fac99dc899866e78a132ef3 file_picker_web: 37b10786e88885124fac99dc899866e78a132ef3
Firebase: 8db6f2d1b2c5e2984efba4949a145875a8f65fe5 Firebase: 8db6f2d1b2c5e2984efba4949a145875a8f65fe5
firebase_analytics: 36a619088c46224900829f14f4daa71585693a6f
firebase_analytics_web: 7d539061ea4af07563a0e21044af89cab70efec0
firebase_core: 5d6a02f3d85acd5f8321c2d6d62877626a670659 firebase_core: 5d6a02f3d85acd5f8321c2d6d62877626a670659
firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1 firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1
firebase_messaging: 0aea2cd5885b65e19ede58ee3507f485c992cc75 firebase_messaging: 0aea2cd5885b65e19ede58ee3507f485c992cc75
FirebaseAnalytics: 5dd088bd2e67bb9d13dbf792d1164ceaf3052193
FirebaseCore: d889d9e12535b7f36ac8bfbf1713a0836a3012cd FirebaseCore: d889d9e12535b7f36ac8bfbf1713a0836a3012cd
FirebaseCoreDiagnostics: 770ac5958e1372ce67959ae4b4f31d8e127c3ac1 FirebaseCoreDiagnostics: 770ac5958e1372ce67959ae4b4f31d8e127c3ac1
FirebaseFirestore: adff4877869ca91a11250cc0989a6cd56bad163f FirebaseFirestore: adff4877869ca91a11250cc0989a6cd56bad163f
@ -764,8 +809,9 @@ SPEC CHECKSUMS:
flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
flutter_tts: 0f492aab6accf87059b72354fcb4ba934304771d flutter_tts: 0f492aab6accf87059b72354fcb4ba934304771d
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
geolocator: 057a0c63a43e9c5296d8ad845a3ac8e6df23d899 geolocator: f5e3de65e241caba7ce3e8a618803387bda73384
google_maps_flutter: c7f9c73576de1fbe152a227bfd6e6c4ae8088619 google_maps_flutter: c7f9c73576de1fbe152a227bfd6e6c4ae8088619
GoogleAppMeasurement: 966e88df9d19c15715137bb2ddaf52373f111436
GoogleDataTransport: f56af7caa4ed338dc8e138a5d7c5973e66440833 GoogleDataTransport: f56af7caa4ed338dc8e138a5d7c5973e66440833
GoogleMaps: 4b5346bddfe6911bb89155d43c903020170523ac GoogleMaps: 4b5346bddfe6911bb89155d43c903020170523ac
GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3 GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3
@ -785,12 +831,13 @@ SPEC CHECKSUMS:
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc
native_device_orientation: e24d00be281de72996640885d80e706142707660 native_device_orientation: e24d00be281de72996640885d80e706142707660
nfc_in_flutter: c656fbfb1ec5b9d021da87b0c87629d62fd5264d
NVActivityIndicatorView: 1f6c5687f1171810aa27a3296814dc2d7dec3667 NVActivityIndicatorView: 1f6c5687f1171810aa27a3296814dc2d7dec3667
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4 path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4
path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
path_provider_windows: a2b81600c677ac1959367280991971cb9a1edb3b path_provider_windows: a2b81600c677ac1959367280991971cb9a1edb3b
permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6 permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
PromisesObjC: 8c196f5a328c2cba3e74624585467a557dcb482f PromisesObjC: 8c196f5a328c2cba3e74624585467a557dcb482f
Protobuf: 3dac39b34a08151c6d949560efe3f86134a3f748 Protobuf: 3dac39b34a08151c6d949560efe3f86134a3f748
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
@ -807,7 +854,7 @@ SPEC CHECKSUMS:
SwiftyGif: 5d4af95df24caf1c570dbbcb32a3b8a0763bc6d7 SwiftyGif: 5d4af95df24caf1c570dbbcb32a3b8a0763bc6d7
TOCropViewController: da59f531f8ac8a94ef6d6c0fc34009350f9e8bfe TOCropViewController: da59f531f8ac8a94ef6d6c0fc34009350f9e8bfe
Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96 Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96
twilio_programmable_video: 6a41593640f3d86af60b22541fd457b22deaae7f twilio_programmable_video: ce33772ea8275b413c0ab5c5aa2e35f9da2d4066
TwilioVideo: c13a51ceca375e91620eb7578d2573c90cf53b46 TwilioVideo: c13a51ceca375e91620eb7578d2573c90cf53b46
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0 url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0
@ -822,6 +869,6 @@ SPEC CHECKSUMS:
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96
wifi: d7d77c94109e36c4175d845f0a5964eadba71060 wifi: d7d77c94109e36c4175d845f0a5964eadba71060
PODFILE CHECKSUM: ac5efa1ac3c9555d0008dc18004313c84746da62 PODFILE CHECKSUM: 900f7dc480de5b961c031ed418407e0e40ed455c
COCOAPODS: 1.10.0.rc.1 COCOAPODS: 1.10.1

@ -220,6 +220,7 @@
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
EFDAD5E1235DCA1DB6187148 /* [CP] Embed Pods Frameworks */, EFDAD5E1235DCA1DB6187148 /* [CP] Embed Pods Frameworks */,
29B24CD65FDFD6111DD04897 /* [CP] Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
@ -305,6 +306,23 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
29B24CD65FDFD6111DD04897 /* [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;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;

@ -423,6 +423,10 @@ const Map localizedValues = {
"en": "Please select treatment start day and time to be notified when it\'s time to take the medicine", "en": "Please select treatment start day and time to be notified when it\'s time to take the medicine",
"ar": " يرجى تحديد يوم بدء العلاج والوقت ليتم ارسال تنبيه عندما يحين الوقت لتناول الدواء" "ar": " يرجى تحديد يوم بدء العلاج والوقت ليتم ارسال تنبيه عندما يحين الوقت لتناول الدواء"
}, },
"pleaseSelectAllQuestionToContinue": {
"en": "Please answer all questions to continue...",
"ar": "يرجى الإجابة على جميع الأسئلة للمتابعة..."
},
"StartDay": {"en": "Start Day", "ar": "يوم البداية"}, "StartDay": {"en": "Start Day", "ar": "يوم البداية"},
"EndDay": {"en": "End Day", "ar": "يوم الانتهاء"}, "EndDay": {"en": "End Day", "ar": "يوم الانتهاء"},
"Days": {"en": "Days ", "ar": "أيام"}, "Days": {"en": "Days ", "ar": "أيام"},

@ -40,6 +40,7 @@ class _NewCMCStepOnePageState extends State<NewCMCStepOnePage> {
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
baseViewModel: widget.model, baseViewModel: widget.model,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),

@ -65,6 +65,7 @@ class _NewCMCStepThreePageState extends State<NewCMCStepThreePage> {
return AppScaffold( return AppScaffold(
isShowDecPage: false, isShowDecPage: false,
baseViewModel: widget.model, baseViewModel: widget.model,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: BouncingScrollPhysics(), physics: BouncingScrollPhysics(),
child: Container( child: Container(

@ -71,6 +71,7 @@ class _NewCMCStepTowPageState extends State<NewCMCStepTowPage> {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold( return AppScaffold(
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: Stack( body: Stack(
children: [ children: [
PlacePicker( PlacePicker(

@ -51,6 +51,7 @@ class OrdersLogDetailsPage extends StatelessWidget {
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
baseViewModel: model, baseViewModel: model,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(

@ -93,6 +93,7 @@ class _NewEReferralStepOnePageState extends State<NewEReferralStepOnePage> {
onModelReady: (model) => model.getRelationTypes(), onModelReady: (model) => model.getRelationTypes(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(

@ -52,6 +52,7 @@ class _NewEReferralStepThreePageState extends State<NewEReferralStepThreePage> {
return BaseView<EReferralViewModel>( return BaseView<EReferralViewModel>(
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(

@ -60,6 +60,7 @@ class _NewEReferralStepTowPageState extends State<NewEReferralStepTowPage> {
onModelReady: (model) => model.getAllCities(), onModelReady: (model) => model.getAllCities(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(

@ -38,6 +38,7 @@ class _EReferralPageState extends State<EReferralPage>
return BaseView<EReferralViewModel>( return BaseView<EReferralViewModel>(
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
appBarTitle: TranslationBase.of(context).ereferral, appBarTitle: TranslationBase.of(context).ereferral,
description: TranslationBase.of(context).eReferralInfo, description: TranslationBase.of(context).eReferralInfo,
imagesInfo: [ imagesInfo: [

@ -47,6 +47,7 @@ class _SearchForReferralsPageState extends State<SearchForReferralsPage> {
onModelReady: (model) => model.getAllCities(), onModelReady: (model) => model.getAllCities(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(

@ -52,6 +52,7 @@ class _NewHomeHealthCareStepOnePageState
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
baseViewModel: widget.model, baseViewModel: widget.model,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(

@ -71,6 +71,7 @@ class _NewHomeHealthCareStepThreePageState
return AppScaffold( return AppScaffold(
isShowDecPage: false, isShowDecPage: false,
baseViewModel: widget.model, baseViewModel: widget.model,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: BouncingScrollPhysics(), physics: BouncingScrollPhysics(),
child: Container( child: Container(

@ -74,6 +74,7 @@ class _NewHomeHealthCareStepTowPageState
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold( return AppScaffold(
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: Stack( body: Stack(
children: [ children: [
PlacePicker( PlacePicker(

@ -1,69 +0,0 @@
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'home_health_care_page.dart';
class HomeHealthCareIndexPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).serviceInformation,
body: SingleChildScrollView(
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Texts(
TranslationBase.of(context).homeHealthCare,
fontWeight: FontWeight.normal,
fontSize: 25,
color: Color(0xff60686b),
),
SizedBox(
height: 12,
),
Texts(
TranslationBase.of(context).homeHealthCareText,
fontWeight: FontWeight.normal,
fontSize: 17,
),
SizedBox(
height: 22,
),
Center(
child: Image.asset(
'assets/images/AlHabibMedicalService/Wifi-AR.png')),
SizedBox(
height: 77,
),
],
)),
bottomSheet: Container(
height: MediaQuery.of(context).size.height * 0.10,
width: double.infinity,
child: Column(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width * 0.9,
child: SecondaryButton(
onTap: () => Navigator.push(
context,
FadePage(
page: HomeHealthCarePage(),
),
),
label: TranslationBase.of(context).loginRegister,
textColor: Theme.of(context).backgroundColor),
),
],
),
));
}
}

@ -51,6 +51,7 @@ class OrdersLogDetailsPage extends StatelessWidget {
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
baseViewModel: model, baseViewModel: model,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(

@ -169,7 +169,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
Navigator.push( Navigator.push(
context, context,
FadePage( FadePage(
page: MedicalProfilePage(), page: MedicalProfilePage(isFromAllServicePage: true),
), ),
); );
}, },

@ -13,6 +13,7 @@ class H2OPageIndexPage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
isShowAppBar: true, isShowAppBar: true,
//isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).serviceInformation, appBarTitle: TranslationBase.of(context).serviceInformation,
body: SingleChildScrollView( body: SingleChildScrollView(
padding: EdgeInsets.all(12), padding: EdgeInsets.all(12),

@ -48,6 +48,7 @@ class _H2OPageState extends State<H2OPage> with SingleTickerProviderStateMixin {
onModelReady: (model) => model.getUserDetail(), onModelReady: (model) => model.getUserDetail(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).waterTracker, appBarTitle: TranslationBase.of(context).waterTracker,
showHomeAppBarIcon: false, showHomeAppBarIcon: false,
baseViewModel: model, baseViewModel: model,

@ -19,6 +19,8 @@ class MonthPage extends StatelessWidget {
onModelReady: (model) => model.getUserProgressForMonthData(), onModelReady: (model) => model.getUserProgressForMonthData(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).h2o, appBarTitle: TranslationBase.of(context).h2o,
baseViewModel: model, baseViewModel: model,
body: Padding( body: Padding(

@ -22,6 +22,7 @@ class TodayPage extends StatelessWidget {
onModelReady: (model) => model.getUserProgressForTodayData(), onModelReady: (model) => model.getUserProgressForTodayData(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).h2o, appBarTitle: TranslationBase.of(context).h2o,
baseViewModel: model, baseViewModel: model,
body: SingleChildScrollView( body: SingleChildScrollView(

@ -19,6 +19,7 @@ class WeekPage extends StatelessWidget {
onModelReady: (model) => model.getUserProgressForWeekData(), onModelReady: (model) => model.getUserProgressForWeekData(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).h2o, appBarTitle: TranslationBase.of(context).h2o,
baseViewModel: model, baseViewModel: model,
body: Padding( body: Padding(

@ -32,6 +32,8 @@ class _BookingOptionsState extends State<BookingOptions> {
return AppScaffold( return AppScaffold(
isShowAppBar: widget.isAppbar, isShowAppBar: widget.isAppbar,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).bookAppo, appBarTitle: TranslationBase.of(context).bookAppo,
body: Container( body: Container(
margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0), margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),

@ -68,6 +68,7 @@ class _DoctorProfileState extends State<DoctorProfile>
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).bookAppo, appBarTitle: TranslationBase.of(context).bookAppo,
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
isShowDecPage: false, isShowDecPage: false,
bottomSheet: showFooterButton bottomSheet: showFooterButton
? Container( ? Container(

@ -41,6 +41,7 @@ class _LiveChatPageState extends State<LiveChatPage>
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
imagesInfo: imagesInfo, imagesInfo: imagesInfo,
title: TranslationBase.of(context).liveChat, title: TranslationBase.of(context).liveChat,
description: TranslationBase.of(context).infoChat, description: TranslationBase.of(context).infoChat,

@ -39,6 +39,7 @@ class _FindUsPageState extends State<FindUsPage>
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
appBarTitle: 'Locations', appBarTitle: 'Locations',
baseViewModel: model, baseViewModel: model,
body: Scaffold( body: Scaffold(

@ -0,0 +1,165 @@
import 'dart:collection';
import 'dart:convert';
import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidPaymentInfoResponse.dart';
import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidTestProceduresResponse.dart';
import 'package:diplomaticquarterapp/services/covid-drivethru/covid-drivethru.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'covid-payment-details.dart';
class CovidDirveThruQuestions extends StatefulWidget{
final String projectId;
final List<CovidTestProceduresResponse> proceduresList;
CovidDirveThruQuestions({@required this.projectId, @required this.proceduresList});
@override
CovidDirveThruQuestionsState createState() => CovidDirveThruQuestionsState();
}
class CovidDirveThruQuestionsState extends State<CovidDirveThruQuestions>{
List qa;
@override
void initState() {
super.initState();
qa = getQuestionsFromJson();
}
TranslationBase localize;
@override
Widget build(BuildContext context) {
localize = TranslationBase.of(context);
var isArabic = localize.isArabic();
return AppScaffold(
appBarTitle: TranslationBase.of(context).covidTest,
isShowAppBar: true,
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.all(20),
child: Text(localize.covidSelectProcedure, style: TextStyle(fontSize: 17, letterSpacing: 1, fontWeight: FontWeight.bold)),
),
Expanded(
child: ListView.separated(
padding: EdgeInsets.symmetric(horizontal: 20),
itemCount: qa.length,
itemBuilder: (ctx, idx){
var obj = qa[idx];
var qtext = isArabic ? obj["questionAR"] : obj["questionEN"];
return Padding(
padding: const EdgeInsets.symmetric(vertical: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(qtext, style: TextStyle(fontSize: 15, letterSpacing: 1.5)),
Row(
children: [
Radio<int>(
value: 1,
groupValue: obj["ans"],
onChanged: (newValue){
setState(() {
obj["ans"] = newValue;
});
}
),
Text(localize.yes),
],
),
Row(
children: [
Radio<int>(
value: 0,
groupValue: obj["ans"],
onChanged: (newValue){
setState(() {
obj["ans"] = newValue;
});
}
),
Text(localize.no),
],
)
],
),
);
},
separatorBuilder: (ctx, idx) => Divider(height: 0.25, color: Colors.grey.withOpacity(0.5)),
)
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
child: FractionallySizedBox(
widthFactor: 1,
child: MaterialButton(
height: 50,
color: Theme.of(context).appBarTheme.color,
disabledColor: Theme.of(context).appBarTheme.color.withOpacity(0.25),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10) ),
child: Text(localize.next, style: TextStyle(color: Colors.white, fontSize: 13, letterSpacing: 1),),
onPressed: next
),
),
),
],
)
);
}
next() async{
bool all = true;
qa.forEach((element) {
all = all && (element["ans"] == 1 || element["ans"] == 0);
});
if(all)
getPaymentInfo(context,widget.projectId);
else
AppToast.showErrorToast(message: localize.pleaseSelectAllQuestionToContinue);
}
List getQuestionsFromJson(){
var questionsJson =
"""
[{"id":1,"questionEN":"Is the test intended for travel?","questionAR":"هل تجري التحليل بغرض السفر؟","ans":2},{"id":2,"questionEN":"Coming from outside KSA within last 2 weeks?","questionAR":"هل قدمت من خارج المملكة خلال الأسبوعين الماضيين؟","ans":2},{"id":3,"questionEN":"Do you currently have fever?","questionAR":"هل تعاني حاليا من حرارة؟","ans":2},{"id":4,"questionEN":"Did you have fever in last 2 weeks?","questionAR":"هل عانيت من حرارة في الأسبوعين الماضيين؟","ans":2},{"id":5,"questionEN":"Do you have a sore throat?","questionAR":"هل لديك التهاب في الحلق؟","ans":2},{"id":6,"questionEN":"Do you have a runny nose?","questionAR":"هل لديك سيلان بالأنف؟"},{"id":7,"questionEN":"Do you have a cough?","questionAR":"هل لديك سعال؟","ans":2},{"id":8,"questionEN":"Do you have shortness of breath?","questionAR":"هل تعانين من ضيق في التنفس؟","ans":2},{"id":9,"questionEN":"Do you have nausea?","questionAR":"هل تعانين من غثيان؟","ans":2},{"id":10,"questionEN":"Do you have vomiting?","questionAR":"هل تعاني من القيء؟","ans":2},{"id":11,"questionEN":"Do you have a headache?","questionAR":"هل تعاني من صداع في الرأس؟","ans":2},{"id":12,"questionEN":"Do you have muscle pain?","questionAR":"هل تعانين من آلام عضلية؟","ans":2},{"id":13,"questionEN":"Do you have joint pain?","questionAR":"هل تعانين من آلام المفاصل؟","ans":2},{"id":14,"questionEN":"Do you have diarrhea?","questionAR":"هل لديك اسهال؟","ans":2}]""";
var map = json.decode(questionsJson) as List;
return map;
}
getPaymentInfo(BuildContext context, String projectID) {
CovidDriveThruService service = new CovidDriveThruService();
CovidPaymentInfoResponse covidPaymentInfoResponse =
new CovidPaymentInfoResponse();
GifLoaderDialogUtils.showMyDialog(context);
service.getCovidPaymentInformation(context, int.parse(projectID), widget.proceduresList[0].procedureID)
.then((res) {
GifLoaderDialogUtils.hideDialog(context);
if (res['MessageStatus'] == 1) {
// setState(() {
// covidPaymentInfoResponse =
// CovidPaymentInfoResponse.fromJson(res['COVID19_PatientShare']);
// });
Navigator.push(
context,
FadePage(
page: CovidPaymentDetails(
covidPaymentInfoResponse: covidPaymentInfoResponse,
projectID: int.parse(projectID),
proceduresList: widget.proceduresList,
)));
} else {}
}).catchError((err) {
print(err);
});
}
}

@ -16,6 +16,8 @@ import 'package:maps_launcher/maps_launcher.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'covid-dirvethru-questions.dart';
class CovidDrivethruLocation extends StatefulWidget { class CovidDrivethruLocation extends StatefulWidget {
@override @override
_CovidDrivethruLocationState createState() => _CovidDrivethruLocationState(); _CovidDrivethruLocationState createState() => _CovidDrivethruLocationState();
@ -267,7 +269,9 @@ class _CovidDrivethruLocationState extends State<CovidDrivethruLocation> {
next() { next() {
if (isLocationSelected) { if (isLocationSelected) {
getPaymentInfo(context, projectID); Navigator.push(
context,
FadePage(page: CovidDirveThruQuestions(projectId: projectID, proceduresList: proceduresList,)));
} else { } else {
Utils.showErrorToast( Utils.showErrorToast(
"Please select address from the dropdown menu to continue"); "Please select address from the dropdown menu to continue");

@ -38,7 +38,10 @@ import 'package:provider/provider.dart';
class MyFamily extends StatefulWidget { class MyFamily extends StatefulWidget {
final bool isAppbarVisible; final bool isAppbarVisible;
MyFamily({this.isAppbarVisible = true});
final bool isFromAllServicePage;
MyFamily({this.isAppbarVisible = true, this.isFromAllServicePage = false});
@override @override
_MyFamily createState() => _MyFamily(); _MyFamily createState() => _MyFamily();
} }
@ -92,6 +95,8 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
isShowAppBar: widget.isAppbarVisible, isShowAppBar: widget.isAppbarVisible,
imagesInfo: imagesInfo, imagesInfo: imagesInfo,
description: TranslationBase.of(context).familyInfo, description: TranslationBase.of(context).familyInfo,
isShowBottomNavBar: widget.isFromAllServicePage,
body: Scaffold( body: Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,
appBar: PreferredSize( appBar: PreferredSize(

@ -51,6 +51,7 @@ class _AmbulanceReqState extends State<AmbulanceReq>
onModelReady: (model) => model.getAmRequestOrders(), onModelReady: (model) => model.getAmRequestOrders(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).transportationService, appBarTitle: TranslationBase.of(context).transportationService,
description: TranslationBase.of(context).infoAmbulance, description: TranslationBase.of(context).infoAmbulance,
imagesInfo: imagesInfo, imagesInfo: imagesInfo,

@ -57,6 +57,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails>
return AppScaffold( return AppScaffold(
appBarTitle: widget.appo.doctorNameObj, appBarTitle: widget.appo.doctorNameObj,
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
bottomSheet: AppointmentDetails.showFooterButton bottomSheet: AppointmentDetails.showFooterButton
? Container( ? Container(
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,

@ -81,6 +81,8 @@ class _ToDoState extends State<ToDo> {
isShowAppBar: widget.isShowAppBar, isShowAppBar: widget.isShowAppBar,
isShowDecPage: true, isShowDecPage: true,
description: TranslationBase.of(context).infoTodo, description: TranslationBase.of(context).infoTodo,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[

@ -42,6 +42,7 @@ class _FeedbackHomePageState extends State<FeedbackHomePage>
isShowAppBar: true, isShowAppBar: true,
isBottomBar: false, isBottomBar: false,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).feedbackTitle, appBarTitle: TranslationBase.of(context).feedbackTitle,
body: Scaffold( body: Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,

@ -50,6 +50,7 @@ class _HomePageState extends State<HomePage> {
builder: (_, model, wi) => AppScaffold( builder: (_, model, wi) => AppScaffold(
isShowDecPage: false, isShowDecPage: false,
isHelp: true, isHelp: true,
isShowBottomNavBar: false,
body: Container( body: Container(
width: double.infinity, width: double.infinity,
child: SingleChildScrollView( child: SingleChildScrollView(

@ -32,6 +32,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/floatingActionButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart'; import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:firebase_analytics/observer.dart'; import 'package:firebase_analytics/observer.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@ -49,8 +50,11 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
class LandingPage extends StatefulWidget { class LandingPage extends StatefulWidget {
static LandingPage shared; static LandingPage shared;
int currentTab = 0;
_LandingPageState state; _LandingPageState state;
LandingPage() {
LandingPage({currentTabLocal}) {
currentTab = currentTabLocal ?? 0;
LandingPage.shared = this; LandingPage.shared = this;
} }
@ -69,7 +73,6 @@ class LandingPage extends StatefulWidget {
class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver { class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
var authProvider = new AuthProvider(); var authProvider = new AuthProvider();
int currentTab = 0;
PageController pageController; PageController pageController;
ProjectViewModel projectViewModel; ProjectViewModel projectViewModel;
ToDoCountProviderModel model; ToDoCountProviderModel model;
@ -102,7 +105,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
changeCurrentTab(int tab) { changeCurrentTab(int tab) {
setState(() { setState(() {
if (currentTab > 0 && tab == 2) if (widget.currentTab > 0 && tab == 2)
pageController.jumpToPage(0); pageController.jumpToPage(0);
else if (tab != 0) { else if (tab != 0) {
if (tab == 4 && model.count == 0) { if (tab == 4 && model.count == 0) {
@ -116,7 +119,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
pageController.jumpToPage(tab); pageController.jumpToPage(tab);
} }
currentTab = tab; widget.currentTab = tab;
}); });
} }
@ -175,7 +178,8 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
AppGlobal.context = context; AppGlobal.context = context;
_requestIOSPermissions(); _requestIOSPermissions();
pageController = PageController(keepPage: true); pageController =
PageController(keepPage: true, initialPage: widget.currentTab);
_firebaseMessaging.setAutoInitEnabled(true); _firebaseMessaging.setAutoInitEnabled(true);
locationUtils = locationUtils =
@ -484,94 +488,84 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
model = Provider.of<ToDoCountProviderModel>(context); model = Provider.of<ToDoCountProviderModel>(context);
return Scaffold( return AppScaffold(
appBar: AppBar( isShowAppBar: true,
elevation: 0, showHomeAppBarIcon: false,
textTheme: TextTheme( appBarTitle: getText(widget.currentTab).toUpperCase(),
headline6: TextStyle( leading: Builder(
color: Theme.of(context).textTheme.headline1.color, builder: (BuildContext context) {
fontWeight: FontWeight.bold), return new Stack(
), children: <Widget>[
title: Text( widget.currentTab == 0
getText(currentTab).toUpperCase(), ? IconButton(
style: TextStyle( icon: Icon(Icons.menu),
fontWeight: FontWeight.bold, color: Theme.of(context).textTheme.headline1.color,
color: Theme.of(context).textTheme.headline1.color, onPressed: () => Scaffold.of(context).openDrawer(),
fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans'), )
// bold: true, : IconButton(
// color: Colors.white, icon: Icon(Icons.arrow_back),
), color: Theme.of(context).textTheme.headline1.color,
leading: Builder( onPressed: () {
builder: (BuildContext context) { setState(() {
return new Stack( widget.currentTab = 0;
children: <Widget>[ });
currentTab == 0
? IconButton( pageController.jumpToPage(0);
icon: Icon(Icons.menu), },
color: Theme.of(context).textTheme.headline1.color, ),
onPressed: () => Scaffold.of(context).openDrawer(), notificationCount != ''
) ? new Positioned(
: IconButton( right: projectViewModel.isArabic ? 35 : 0,
icon: Icon(Icons.arrow_back), top: 5,
color: Theme.of(context).textTheme.headline1.color, child: new Container(
onPressed: () { padding: EdgeInsets.all(4),
setState(() { decoration: new BoxDecoration(
currentTab = 0; color: Colors.red,
}); borderRadius: BorderRadius.circular(20),
),
pageController.jumpToPage(0); constraints: BoxConstraints(
}, minWidth: 20,
), minHeight: 20,
notificationCount != '' ),
? new Positioned( child: new Text(
right: projectViewModel.isArabic ? 35 : 0, notificationCount,
top: 5, style: new TextStyle(
child: new Container( color: Colors.white,
padding: EdgeInsets.all(4), fontSize: projectViewModel.isArabic ? 8 : 9,
decoration: new BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(20),
),
constraints: BoxConstraints(
minWidth: 20,
minHeight: 20,
),
child: new Text(
notificationCount,
style: new TextStyle(
color: Colors.white,
fontSize: projectViewModel.isArabic ? 8 : 9,
),
textAlign: TextAlign.center,
), ),
textAlign: TextAlign.center,
), ),
) ),
: SizedBox() )
], : SizedBox()
); ],
}, );
), },
actions: [
IconButton(
//iconSize: 70,
icon: Icon(
projectViewModel.isLogin ? Icons.settings : Icons.login,
color: Theme.of(context).textTheme.headline1.color,
),
onPressed: () {
if (projectViewModel.isLogin)
Navigator.of(context).pushNamed(
SETTINGS,
);
else
login();
}, //do something,
)
],
centerTitle: true,
), ),
drawer: SafeArea(child: AppDrawer()), isShowDrawer: true,
extendBody: true, appBarIcons: [
IconButton(
//iconSize: 70,
icon: Icon(
projectViewModel.isLogin ? Icons.settings : Icons.login,
color: Theme.of(context).textTheme.headline1.color,
),
onPressed: () {
if (projectViewModel.isLogin)
Navigator.of(context).pushNamed(
SETTINGS,
);
else
login();
}, //do something,
)
],
// drawer: SafeArea(child: AppDrawer()),
// extendBody: true,
isShowDecPage: false,
changeTab: changeCurrentTab,
isFromLandingPage: true,
currentTab: widget.currentTab,
body: PageView( body: PageView(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
controller: pageController, controller: pageController,
@ -587,13 +581,9 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
ToDo(isShowAppBar: false), ToDo(isShowAppBar: false),
], // Please do not remove the BookingOptions from this array ], // Please do not remove the BookingOptions from this array
), ),
bottomNavigationBar: BottomNavBar(
changeIndex: changeCurrentTab,
index: currentTab,
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
floatingActionButton: floatingActionButton:
(projectViewModel.havePrivilege(34) && currentTab == 0) (projectViewModel.havePrivilege(34) && widget.currentTab == 0)
? FloatingButton( ? FloatingButton(
elevation: true, elevation: true,
onTap: () { onTap: () {

@ -110,35 +110,6 @@ class _LandingPagePharmacyState extends State<LandingPagePharmacy> {
centerTitle: true, centerTitle: true,
) )
: null, : null,
// : AppBar(
// backgroundColor: Color(0xff5AB145),
// elevation: 0,
// textTheme: TextTheme(
// headline6: TextStyle(
// color: Colors.white, fontWeight: FontWeight.bold),
// ),
// title: Text(getText(currentTab).toUpperCase()),
// leading: Builder(
// builder: (BuildContext context) {
// return IconButton(
// icon: Icon(Icons.arrow_back),
// color: Colors.white,
// onPressed: () => Scaffold.of(context).openDrawer(),
// );
// },
// ),
// actions: [
// // IconButton(
// // iconSize: 70,
// // icon: SvgPicture.asset('assets/images/svg/robort_svg.svg',
// // height: 100, width: 100, fit: BoxFit.cover),
// // onPressed: () {
// // triggerRobot();
// // } //do something,
// // )
// ],
// centerTitle: true,
// ),
extendBody: false, extendBody: false,
body: PageView( body: PageView(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),

@ -51,6 +51,7 @@ class _LiveCareHomeState extends State<LiveCareHome>
return AppScaffold( return AppScaffold(
appBarTitle: "LiveCare", appBarTitle: "LiveCare",
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
imagesInfo: imagesInfo, imagesInfo: imagesInfo,
description: TranslationBase.of(context).erConsultation, description: TranslationBase.of(context).erConsultation,
body: Container( body: Container(

@ -101,6 +101,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
appBarTitle: TranslationBase.of(context).confirm, appBarTitle: TranslationBase.of(context).confirm,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),

@ -31,6 +31,7 @@ class _ForgotPassword extends State<ForgotPassword> {
appBarTitle: TranslationBase.of(context).forgotFileNoTitle, appBarTitle: TranslationBase.of(context).forgotFileNoTitle,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
padding: EdgeInsets.only(top: 10, left: 20, right: 20), padding: EdgeInsets.only(top: 10, left: 20, right: 20),

@ -21,6 +21,7 @@ class LoginType extends StatelessWidget {
appBarTitle: TranslationBase.of(context).login, appBarTitle: TranslationBase.of(context).login,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
padding: padding:

@ -85,6 +85,7 @@ class _Login extends State<Login> {
appBarTitle: TranslationBase.of(context).login, appBarTitle: TranslationBase.of(context).login,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
padding: EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30), padding: EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30),

@ -74,6 +74,7 @@ class _RegisterInfo extends State<RegisterInfo> {
appBarTitle: TranslationBase.of(context).register, appBarTitle: TranslationBase.of(context).register,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),
child: Column(children: <Widget>[ child: Column(children: <Widget>[

@ -49,6 +49,7 @@ class _Register extends State<Register> {
appBarTitle: TranslationBase.of(context).register, appBarTitle: TranslationBase.of(context).register,
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
padding: EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30), padding: EdgeInsets.only(top: 10, left: 20, right: 20, bottom: 30),

@ -30,6 +30,7 @@ class _WelcomeLogin extends State<WelcomeLogin> {
appBarTitle: TranslationBase.of(context).welcome, appBarTitle: TranslationBase.of(context).welcome,
isShowDecPage: false, isShowDecPage: false,
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
body: Padding( body: Padding(
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),
child: Column( child: Column(

@ -39,6 +39,7 @@ class _AskDoctorHomPageState extends State<AskDoctorHomPage>
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).askDoctor, appBarTitle: TranslationBase.of(context).askDoctor,
body: Scaffold( body: Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,

@ -44,6 +44,7 @@ class _EyeHomePageState extends State<EyeHomePage>
return AppScaffold( return AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).measurements, appBarTitle: TranslationBase.of(context).measurements,
body: Scaffold( body: Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,

@ -13,6 +13,10 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class MedicalProfilePage extends StatefulWidget { class MedicalProfilePage extends StatefulWidget {
final bool isFromAllServicePage;
const MedicalProfilePage({ this.isFromAllServicePage = false}) ;
@override @override
_MedicalProfilePageState createState() => _MedicalProfilePageState(); _MedicalProfilePageState createState() => _MedicalProfilePageState();
} }
@ -25,6 +29,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
var appoCountProvider = Provider.of<ToDoCountProviderModel>(context); var appoCountProvider = Provider.of<ToDoCountProviderModel>(context);
List<Widget> myMedicalList = Utils.myMedicalList( List<Widget> myMedicalList = Utils.myMedicalList(
projectViewModel: projectViewModel, projectViewModel: projectViewModel,
@ -33,10 +38,12 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
isLogin: projectViewModel.isLogin); isLogin: projectViewModel.isLogin);
return BaseView<MedicalViewModel>( return BaseView<MedicalViewModel>(
onModelReady: (model) => model.getAppointmentHistory(), onModelReady: (model) => model.getAppointmentHistory(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, x) => AppScaffold(
isShowDecPage: false, isShowDecPage: false,
baseViewModel: model, baseViewModel: model,
isHelp: true, isHelp: true,
isShowBottomNavBar: widget.isFromAllServicePage,
body: Container( body: Container(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(

@ -42,6 +42,7 @@ class _WeightHomePageState extends State<WeightHomePage> with SingleTickerProvid
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).weight, appBarTitle: TranslationBase.of(context).weight,
appBarIcons: [ appBarIcons: [
IconButton( IconButton(
@ -100,26 +101,29 @@ class _WeightHomePageState extends State<WeightHomePage> with SingleTickerProvid
) )
], ],
), ),
floatingActionButton: InkWell( floatingActionButton: Container(
onTap: () { margin: EdgeInsets.only(bottom: 70),
Navigator.push( child: InkWell(
context, onTap: () {
FadePage( Navigator.push(
page: AddWeightPage( context,
model: model, FadePage(
))); page: AddWeightPage(
}, model: model,
child: Container( )));
width: 55, },
height: 55, child: Container(
decoration: BoxDecoration( width: 55,
shape: BoxShape.circle, height: 55,
color: Theme.of(context).primaryColor, decoration: BoxDecoration(
), shape: BoxShape.circle,
child: Center( color: Theme.of(context).primaryColor,
child: Icon( ),
Icons.add, child: Center(
color: Colors.white, child: Icon(
Icons.add,
color: Colors.white,
),
), ),
), ),
), ),

@ -42,6 +42,7 @@ class _BloodPressureHomePageState extends State<BloodPressureHomePage>
onModelReady: (model) => model.getBloodPressure(), onModelReady: (model) => model.getBloodPressure(),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).bloodPressure, appBarTitle: TranslationBase.of(context).bloodPressure,
baseViewModel: model, baseViewModel: model,
appBarIcons: [IconButton( appBarIcons: [IconButton(
@ -94,19 +95,22 @@ class _BloodPressureHomePageState extends State<BloodPressureHomePage>
) )
], ],
), ),
floatingActionButton: InkWell( floatingActionButton: Container(
onTap: () { margin: EdgeInsets.only(bottom: 70),
Navigator.push(context, FadePage(page: AddBloodPressurePage(model: model,))); child: InkWell(
}, onTap: () {
child: Container( Navigator.push(context, FadePage(page: AddBloodPressurePage(model: model,)));
width: 55, },
height: 55, child: Container(
decoration: BoxDecoration( width: 55,
shape: BoxShape.circle, color: Theme.of(context).primaryColor), height: 55,
child: Center( decoration: BoxDecoration(
child: Icon( shape: BoxShape.circle, color: Theme.of(context).primaryColor),
Icons.add, child: Center(
color: Colors.white, child: Icon(
Icons.add,
color: Colors.white,
),
), ),
), ),
), ),

@ -47,6 +47,7 @@ class _BloodSugarHomePageState extends State<BloodSugarHomePage>
return BaseView<BloodSugarViewMode>( return BaseView<BloodSugarViewMode>(
onModelReady: (model) => model.getBloodSugar(), onModelReady: (model) => model.getBloodSugar(),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
isShowBottomNavBar: false,
appBarIcons: [IconButton( appBarIcons: [IconButton(
icon: Icon(Icons.email), icon: Icon(Icons.email),
color: Colors.white, color: Colors.white,
@ -105,19 +106,22 @@ class _BloodSugarHomePageState extends State<BloodSugarHomePage>
) )
], ],
), ),
floatingActionButton: InkWell( floatingActionButton: Container(
onTap: () { margin: EdgeInsets.only(bottom: 70),
Navigator.push(context, FadePage(page: AddBloodSugarPage(bloodSugarViewMode: model,))); child: InkWell(
}, onTap: () {
child: Container( Navigator.push(context, FadePage(page: AddBloodSugarPage(bloodSugarViewMode: model,)));
width: 55, },
height: 55, child: Container(
decoration: BoxDecoration( width: 55,
shape: BoxShape.circle, color:Theme.of(context).primaryColor), height: 55,
child: Center( decoration: BoxDecoration(
child: Icon( shape: BoxShape.circle, color:Theme.of(context).primaryColor),
Icons.add, child: Center(
color: Colors.white, child: Icon(
Icons.add,
color: Colors.white,
),
), ),
), ),
), ),

@ -47,6 +47,7 @@ class _HomePrescriptionsPageState extends State<HomePrescriptionsPage>
description: TranslationBase.of(context).infoPrescriptions, description: TranslationBase.of(context).infoPrescriptions,
infoList: TranslationBase.of(context).infoPrescriptionsPoints, infoList: TranslationBase.of(context).infoPrescriptionsPoints,
imagesInfo: imagesInfo, imagesInfo: imagesInfo,
isShowBottomNavBar: false,
body: Scaffold( body: Scaffold(
extendBodyBehindAppBar: true, extendBodyBehindAppBar: true,
appBar: PreferredSize( appBar: PreferredSize(

@ -59,6 +59,7 @@ class _HomeReportPageState extends State<HomeReportPage>
onModelReady: (model) => model.getReports(), //model.getPrescriptions(), onModelReady: (model) => model.getReports(), //model.getPrescriptions(),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
isShowBottomNavBar: false,
appBarTitle: TranslationBase.of(context).newMedReport, appBarTitle: TranslationBase.of(context).newMedReport,
title: TranslationBase.of(context).medReport, title: TranslationBase.of(context).medReport,
description: TranslationBase.of(context).infoMonthReport, description: TranslationBase.of(context).infoMonthReport,

@ -44,6 +44,7 @@ class _StepsTrackerState extends State<StepsTracker>
isShowAppBar: true, isShowAppBar: true,
appBarTitle: "Steps", appBarTitle: "Steps",
isShowDecPage: false, isShowDecPage: false,
isShowBottomNavBar: false,
body: Container( body: Container(
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,

@ -80,6 +80,7 @@ class _PharmacyPageState extends State<PharmacyPage> {
isShowAppBar: false, isShowAppBar: false,
isShowDecPage: false, isShowDecPage: false,
baseViewModel: model, baseViewModel: model,
isPharmacy:true,
backgroundColor: Colors.white, backgroundColor: Colors.white,
body: Container( body: Container(
width: double.infinity, width: double.infinity,

@ -35,6 +35,7 @@ class _PharmacyCategorisePageState extends State<PharmacyCategorisePage> {
AppScaffold( AppScaffold(
isShowDecPage: false, isShowDecPage: false,
baseViewModel: model, baseViewModel: model,
isPharmacy:true,
body: Column( body: Column(
children: [ children: [
Expanded( Expanded(

@ -92,7 +92,7 @@ class AppToast {
double fontSize = 16, double fontSize = 16,
ToastGravity toastGravity = ToastGravity.TOP, ToastGravity toastGravity = ToastGravity.TOP,
Color textColor = Colors.white, Color textColor = Colors.white,
int radius, int radius = 15,
int elevation, int elevation,
int imageSize = 32, int imageSize = 32,
}) { }) {
@ -107,7 +107,9 @@ class AppToast {
icon: ICON.CLOSE, icon: ICON.CLOSE,
radius: radius, radius: radius,
elevation: elevation, elevation: elevation,
imageSize: imageSize); imageSize: imageSize
);
} }
/// cancel toast /// cancel toast

@ -1192,6 +1192,7 @@ class TranslationBase {
String get iAcceptTerms => localizedValues["i-accept-terms"][locale.languageCode]; String get iAcceptTerms => localizedValues["i-accept-terms"][locale.languageCode];
String get upComingPayOption => localizedValues["upcoming-pay-options"][locale.languageCode]; String get upComingPayOption => localizedValues["upcoming-pay-options"][locale.languageCode];
String get pleaseAcceptTerms => localizedValues["please-accept-terms"][locale.languageCode]; String get pleaseAcceptTerms => localizedValues["please-accept-terms"][locale.languageCode];
String get pleaseSelectAllQuestionToContinue => localizedValues["pleaseSelectAllQuestionToContinue"][locale.languageCode];
String get type => localizedValues["type"][locale.languageCode]; String get type => localizedValues["type"][locale.languageCode];
String get eReferralInfo => localizedValues["info-ereferral"][locale.languageCode]; String get eReferralInfo => localizedValues["info-ereferral"][locale.languageCode];
String get erConsultation => localizedValues["er-consultation"][locale.languageCode]; String get erConsultation => localizedValues["er-consultation"][locale.languageCode];
@ -1239,3 +1240,7 @@ class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {
@override @override
bool shouldReload(TranslationBaseDelegate old) => false; bool shouldReload(TranslationBaseDelegate old) => false;
} }
extension xTranslationBase on TranslationBase{
isArabic() => locale.languageCode == "ar";
}

@ -12,7 +12,9 @@ import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-order-page.da
import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart'; import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/bottom_bar.dart'; import 'package:diplomaticquarterapp/widgets/others/bottom_bar.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_loader_widget.dart'; import 'package:diplomaticquarterapp/widgets/progress_indicator/app_loader_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -44,6 +46,7 @@ class AppScaffold extends StatelessWidget {
final BaseViewModel baseViewModel; final BaseViewModel baseViewModel;
final bool isBottomBar; final bool isBottomBar;
final Widget floatingActionButton; final Widget floatingActionButton;
final FloatingActionButtonLocation floatingActionButtonLocation;
final bool isPharmacy; final bool isPharmacy;
final bool isOfferPackages; final bool isOfferPackages;
final bool showPharmacyCart; final bool showPharmacyCart;
@ -58,10 +61,19 @@ class AppScaffold extends StatelessWidget {
final List<Widget> appBarIcons; final List<Widget> appBarIcons;
final List<ImagesInfo> imagesInfo; final List<ImagesInfo> imagesInfo;
final bool isHelp; final bool isHelp;
final int currentTab;
final bool isShowBottomNavBar;
final bool isFromLandingPage;
final bool isShowDrawer;
final Function(int tab) changeTab;
final Widget leading;
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>(); locator<AuthenticatedUserObject>();
AppBarWidget appBar; AppBarWidget appBar;
AppScaffold( AppScaffold(
{@required this.body, {@required this.body,
this.appBarTitle = '', this.appBarTitle = '',
@ -85,7 +97,14 @@ class AppScaffold extends StatelessWidget {
this.infoList, this.infoList,
this.isHelp = false, this.isHelp = false,
this.showHomeAppBarIcon = true, this.showHomeAppBarIcon = true,
this.imagesInfo}); this.imagesInfo,
this.currentTab,
this.isShowBottomNavBar = true,
this.isFromLandingPage = false,
this.changeTab,
this.floatingActionButtonLocation,
this.leading,
this.isShowDrawer = false});
AppScaffold setOnAppBarCartClick(VoidCallback onClick) { AppScaffold setOnAppBarCartClick(VoidCallback onClick) {
_onCartClick = onClick; _onCartClick = onClick;
@ -98,6 +117,7 @@ class AppScaffold extends StatelessWidget {
return Scaffold( return Scaffold(
backgroundColor: backgroundColor:
backgroundColor ?? Theme.of(context).scaffoldBackgroundColor, backgroundColor ?? Theme.of(context).scaffoldBackgroundColor,
drawer: isShowDrawer ? SafeArea(child: AppDrawer()) : null,
appBar: isShowAppBar appBar: isShowAppBar
? appBar = AppBarWidget( ? appBar = AppBarWidget(
appBarTitle: appBarTitle, appBarTitle: appBarTitle,
@ -108,15 +128,21 @@ class AppScaffold extends StatelessWidget {
isOfferPackages: isOfferPackages, isOfferPackages: isOfferPackages,
showOfferPackagesCart: showOfferPackagesCart, showOfferPackagesCart: showOfferPackagesCart,
isShowDecPage: isShowDecPage, isShowDecPage: isShowDecPage,
leading: leading,
) )
: null, : null,
bottomSheet: bottomSheet, bottomSheet: bottomSheet,
bottomNavigationBar: isShowBottomNavBar && !getIsShowDecPageValue(context) && !isPharmacy
? BottomNavBar(
changeIndex: changeCurrentTab,
index: currentTab,
)
: null,
body: SafeArea( body: SafeArea(
top: true, top: true,
bottom: true, bottom: true,
child: child:
(!Provider.of<ProjectViewModel>(context, listen: false).isLogin && getIsShowDecPageValue(context)
isShowDecPage)
? NotAutPage( ? NotAutPage(
title: title ?? appBarTitle, title: title ?? appBarTitle,
description: description, description: description,
@ -131,9 +157,15 @@ class AppScaffold extends StatelessWidget {
: buildBodyWidget(context), : buildBodyWidget(context),
), ),
floatingActionButton: floatingActionButton, floatingActionButton: floatingActionButton,
floatingActionButtonLocation: floatingActionButtonLocation,
); );
} }
getIsShowDecPageValue(context){
return (!Provider.of<ProjectViewModel>(context, listen: false).isLogin &&
isShowDecPage);
}
buildAppLoaderWidget(bool isLoading) { buildAppLoaderWidget(bool isLoading) {
return isLoading ? AppLoaderWidget() : Container(); return isLoading ? AppLoaderWidget() : Container();
} }
@ -142,6 +174,18 @@ class AppScaffold extends StatelessWidget {
return Stack( return Stack(
children: <Widget>[body, isHelp == true ? RobotIcon() : Container()]); children: <Widget>[body, isHelp == true ? RobotIcon() : Container()]);
} }
void changeCurrentTab(int value) {
if (isFromLandingPage) {
changeTab(value);
} else {
Navigator.pushAndRemoveUntil(
AppGlobal.context,
MaterialPageRoute(
builder: (context) => LandingPage(currentTabLocal: value)),
(Route<dynamic> r) => false);
}
}
} }
class AppBarWidget extends StatefulWidget with PreferredSizeWidget { class AppBarWidget extends StatefulWidget with PreferredSizeWidget {
@ -159,6 +203,8 @@ class AppBarWidget extends StatefulWidget with PreferredSizeWidget {
Function(String) badgeUpdater; Function(String) badgeUpdater;
final Widget leading;
AppBarWidget( AppBarWidget(
{this.appBarTitle, {this.appBarTitle,
this.showHomeAppBarIcon, this.showHomeAppBarIcon,
@ -167,7 +213,8 @@ class AppBarWidget extends StatefulWidget with PreferredSizeWidget {
this.showPharmacyCart = true, this.showPharmacyCart = true,
this.isOfferPackages = false, this.isOfferPackages = false,
this.showOfferPackagesCart = false, this.showOfferPackagesCart = false,
this.isShowDecPage = true}); this.isShowDecPage = true,
this.leading});
@override @override
State<StatefulWidget> createState() => AppBarWidgetState(); State<StatefulWidget> createState() => AppBarWidgetState();
@ -178,6 +225,7 @@ class AppBarWidget extends StatefulWidget with PreferredSizeWidget {
class AppBarWidgetState extends State<AppBarWidget> { class AppBarWidgetState extends State<AppBarWidget> {
String badgeText = "0"; String badgeText = "0";
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
widget.badgeUpdater = badgeUpdateBlock; widget.badgeUpdater = badgeUpdateBlock;
@ -210,11 +258,12 @@ class AppBarWidgetState extends State<AppBarWidget> {
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Theme.of(context).textTheme.headline1.color, color: Theme.of(context).textTheme.headline1.color,
fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')), fontFamily: projectViewModel.isArabic ? 'Cairo' : 'WorkSans')),
leading: Builder( leading: widget.leading ??
builder: (BuildContext context) { Builder(
return ArrowBack(); builder: (BuildContext context) {
}, return ArrowBack();
), },
),
centerTitle: true, centerTitle: true,
actions: <Widget>[ actions: <Widget>[
(widget.isPharmacy && widget.showPharmacyCart) (widget.isPharmacy && widget.showPharmacyCart)
@ -356,6 +405,7 @@ class _RobotIcon extends State<RobotIcon> {
))) )))
: Container(), : Container(),
FloatingSearchButton() FloatingSearchButton()
], ],
) )
], ],
@ -364,10 +414,10 @@ class _RobotIcon extends State<RobotIcon> {
bottom: -15); bottom: -15);
} }
// setAnimation() async { // setAnimation() async {
// /// await sharedPref.getBool(IS_ROBOT_VISIBLE) || // /// await sharedPref.getBool(IS_ROBOT_VISIBLE) ||
// // var animation = // // var animation =
// // IS_TEXT_COMPLETED == ? true : false; // // IS_TEXT_COMPLETED == ? true : false;
// } // }
} }

Loading…
Cancel
Save