diff --git a/assets/images/pharmacy/empty_box.png b/assets/images/pharmacy/empty_box.png new file mode 100644 index 00000000..af3551fd Binary files /dev/null and b/assets/images/pharmacy/empty_box.png differ diff --git a/ios/Flutter/.last_build_id b/ios/Flutter/.last_build_id index 3b4ea73f..df846dd6 100644 --- a/ios/Flutter/.last_build_id +++ b/ios/Flutter/.last_build_id @@ -1 +1 @@ -45a7d43b55124e1b314759554f9a14d3 \ No newline at end of file +269226e53e3ba1b1460fd3df51f89f77 \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index d7619384..ea6d2244 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,24 +1,826 @@ PODS: + - abseil/algorithm (0.20200225.0): + - abseil/algorithm/algorithm (= 0.20200225.0) + - abseil/algorithm/container (= 0.20200225.0) + - abseil/algorithm/algorithm (0.20200225.0): + - abseil/base/config + - abseil/algorithm/container (0.20200225.0): + - abseil/algorithm/algorithm + - abseil/base/core_headers + - abseil/meta/type_traits + - abseil/base (0.20200225.0): + - abseil/base/atomic_hook (= 0.20200225.0) + - abseil/base/base (= 0.20200225.0) + - abseil/base/base_internal (= 0.20200225.0) + - abseil/base/bits (= 0.20200225.0) + - abseil/base/config (= 0.20200225.0) + - abseil/base/core_headers (= 0.20200225.0) + - abseil/base/dynamic_annotations (= 0.20200225.0) + - abseil/base/endian (= 0.20200225.0) + - abseil/base/errno_saver (= 0.20200225.0) + - abseil/base/exponential_biased (= 0.20200225.0) + - abseil/base/log_severity (= 0.20200225.0) + - abseil/base/malloc_internal (= 0.20200225.0) + - abseil/base/periodic_sampler (= 0.20200225.0) + - abseil/base/pretty_function (= 0.20200225.0) + - abseil/base/raw_logging_internal (= 0.20200225.0) + - abseil/base/spinlock_wait (= 0.20200225.0) + - abseil/base/throw_delegate (= 0.20200225.0) + - abseil/base/atomic_hook (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/base/base (0.20200225.0): + - abseil/base/atomic_hook + - abseil/base/base_internal + - abseil/base/config + - abseil/base/core_headers + - abseil/base/dynamic_annotations + - abseil/base/log_severity + - abseil/base/raw_logging_internal + - abseil/base/spinlock_wait + - abseil/meta/type_traits + - abseil/base/base_internal (0.20200225.0): + - abseil/base/config + - abseil/meta/type_traits + - abseil/base/bits (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/base/config (0.20200225.0) + - abseil/base/core_headers (0.20200225.0): + - abseil/base/config + - abseil/base/dynamic_annotations (0.20200225.0) + - abseil/base/endian (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/base/errno_saver (0.20200225.0): + - abseil/base/config + - abseil/base/exponential_biased (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/base/log_severity (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/base/malloc_internal (0.20200225.0): + - abseil/base/base + - abseil/base/base_internal + - abseil/base/config + - abseil/base/core_headers + - abseil/base/dynamic_annotations + - abseil/base/raw_logging_internal + - abseil/base/periodic_sampler (0.20200225.0): + - abseil/base/core_headers + - abseil/base/exponential_biased + - abseil/base/pretty_function (0.20200225.0) + - abseil/base/raw_logging_internal (0.20200225.0): + - abseil/base/atomic_hook + - abseil/base/config + - abseil/base/core_headers + - abseil/base/log_severity + - abseil/base/spinlock_wait (0.20200225.0): + - abseil/base/base_internal + - abseil/base/core_headers + - abseil/base/errno_saver + - abseil/base/throw_delegate (0.20200225.0): + - abseil/base/config + - abseil/base/raw_logging_internal + - abseil/container/compressed_tuple (0.20200225.0): + - abseil/utility/utility + - abseil/container/inlined_vector (0.20200225.0): + - abseil/algorithm/algorithm + - abseil/base/core_headers + - abseil/base/throw_delegate + - abseil/container/inlined_vector_internal + - abseil/memory/memory + - abseil/container/inlined_vector_internal (0.20200225.0): + - abseil/base/core_headers + - abseil/container/compressed_tuple + - abseil/memory/memory + - abseil/meta/type_traits + - abseil/types/span + - abseil/memory (0.20200225.0): + - abseil/memory/memory (= 0.20200225.0) + - abseil/memory/memory (0.20200225.0): + - abseil/base/core_headers + - abseil/meta/type_traits + - abseil/meta (0.20200225.0): + - abseil/meta/type_traits (= 0.20200225.0) + - abseil/meta/type_traits (0.20200225.0): + - abseil/base/config + - abseil/numeric/int128 (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/strings/internal (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/base/endian + - abseil/base/raw_logging_internal + - abseil/meta/type_traits + - abseil/strings/str_format (0.20200225.0): + - abseil/strings/str_format_internal + - abseil/strings/str_format_internal (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/meta/type_traits + - abseil/numeric/int128 + - abseil/strings/strings + - abseil/types/span + - abseil/strings/strings (0.20200225.0): + - abseil/base/base + - abseil/base/bits + - abseil/base/config + - abseil/base/core_headers + - abseil/base/endian + - abseil/base/raw_logging_internal + - abseil/base/throw_delegate + - abseil/memory/memory + - abseil/meta/type_traits + - abseil/numeric/int128 + - abseil/strings/internal + - abseil/time (0.20200225.0): + - abseil/time/internal (= 0.20200225.0) + - abseil/time/time (= 0.20200225.0) + - abseil/time/internal (0.20200225.0): + - abseil/time/internal/cctz (= 0.20200225.0) + - abseil/time/internal/cctz (0.20200225.0): + - abseil/time/internal/cctz/civil_time (= 0.20200225.0) + - abseil/time/internal/cctz/time_zone (= 0.20200225.0) + - abseil/time/internal/cctz/civil_time (0.20200225.0): + - abseil/base/config + - abseil/time/internal/cctz/time_zone (0.20200225.0): + - abseil/base/config + - abseil/time/internal/cctz/civil_time + - abseil/time/time (0.20200225.0): + - abseil/base/base + - abseil/base/core_headers + - abseil/base/raw_logging_internal + - abseil/numeric/int128 + - abseil/strings/strings + - abseil/time/internal/cctz/civil_time + - abseil/time/internal/cctz/time_zone + - abseil/types (0.20200225.0): + - abseil/types/any (= 0.20200225.0) + - abseil/types/bad_any_cast (= 0.20200225.0) + - abseil/types/bad_any_cast_impl (= 0.20200225.0) + - abseil/types/bad_optional_access (= 0.20200225.0) + - abseil/types/bad_variant_access (= 0.20200225.0) + - abseil/types/compare (= 0.20200225.0) + - abseil/types/optional (= 0.20200225.0) + - abseil/types/span (= 0.20200225.0) + - abseil/types/variant (= 0.20200225.0) + - abseil/types/any (0.20200225.0): + - abseil/base/config + - abseil/base/core_headers + - abseil/meta/type_traits + - abseil/types/bad_any_cast + - abseil/utility/utility + - abseil/types/bad_any_cast (0.20200225.0): + - abseil/base/config + - abseil/types/bad_any_cast_impl + - abseil/types/bad_any_cast_impl (0.20200225.0): + - abseil/base/config + - abseil/base/raw_logging_internal + - abseil/types/bad_optional_access (0.20200225.0): + - abseil/base/config + - abseil/base/raw_logging_internal + - abseil/types/bad_variant_access (0.20200225.0): + - abseil/base/config + - abseil/base/raw_logging_internal + - abseil/types/compare (0.20200225.0): + - abseil/base/core_headers + - abseil/meta/type_traits + - abseil/types/optional (0.20200225.0): + - abseil/base/base_internal + - abseil/base/config + - abseil/base/core_headers + - abseil/memory/memory + - abseil/meta/type_traits + - abseil/types/bad_optional_access + - abseil/utility/utility + - abseil/types/span (0.20200225.0): + - abseil/algorithm/algorithm + - abseil/base/core_headers + - abseil/base/throw_delegate + - abseil/meta/type_traits + - abseil/types/variant (0.20200225.0): + - abseil/base/base_internal + - abseil/base/config + - abseil/base/core_headers + - abseil/meta/type_traits + - abseil/types/bad_variant_access + - abseil/utility/utility + - abseil/utility/utility (0.20200225.0): + - abseil/base/base_internal + - abseil/base/config + - abseil/meta/type_traits + - android_intent (0.0.1): + - Flutter + - barcode_scan_fix (0.0.1): + - Flutter + - MTBBarcodeScanner + - BoringSSL-GRPC (0.0.7): + - BoringSSL-GRPC/Implementation (= 0.0.7) + - BoringSSL-GRPC/Interface (= 0.0.7) + - BoringSSL-GRPC/Implementation (0.0.7): + - BoringSSL-GRPC/Interface (= 0.0.7) + - BoringSSL-GRPC/Interface (0.0.7) + - cloud_firestore (0.14.4): + - Firebase/CoreOnly (~> 6.33.0) + - Firebase/Firestore (~> 6.33.0) + - firebase_core + - Flutter + - cloud_firestore_web (0.1.0): + - Flutter + - connectivity (0.0.1): + - Flutter + - Reachability + - connectivity_for_web (0.1.0): + - Flutter + - connectivity_macos (0.0.1): + - Flutter + - device_calendar (0.0.1): + - Flutter + - device_info (0.0.1): + - Flutter + - DKImagePickerController/Core (4.3.2): + - DKImagePickerController/ImageDataManager + - DKImagePickerController/Resource + - DKImagePickerController/ImageDataManager (4.3.2) + - DKImagePickerController/PhotoGallery (4.3.2): + - DKImagePickerController/Core + - DKPhotoGallery + - DKImagePickerController/Resource (4.3.2) + - DKPhotoGallery (0.0.17): + - DKPhotoGallery/Core (= 0.0.17) + - DKPhotoGallery/Model (= 0.0.17) + - DKPhotoGallery/Preview (= 0.0.17) + - DKPhotoGallery/Resource (= 0.0.17) + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Core (0.0.17): + - DKPhotoGallery/Model + - DKPhotoGallery/Preview + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Model (0.0.17): + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Preview (0.0.17): + - DKPhotoGallery/Model + - DKPhotoGallery/Resource + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Resource (0.0.17): + - SDWebImage + - SwiftyGif + - file_picker (0.0.1): + - DKImagePickerController/PhotoGallery + - Flutter + - file_picker_web (0.0.1): + - Flutter + - Firebase/CoreOnly (6.33.0): + - FirebaseCore (= 6.10.3) + - Firebase/Firestore (6.33.0): + - Firebase/CoreOnly + - FirebaseFirestore (~> 1.18.0) + - Firebase/Messaging (6.33.0): + - Firebase/CoreOnly + - FirebaseMessaging (~> 4.7.0) + - firebase_core (0.5.3): + - Firebase/CoreOnly (~> 6.33.0) + - Flutter + - firebase_core_web (0.1.0): + - Flutter + - firebase_messaging (7.0.3): + - Firebase/CoreOnly (~> 6.33.0) + - Firebase/Messaging (~> 6.33.0) + - firebase_core + - Flutter + - FirebaseCore (6.10.3): + - FirebaseCoreDiagnostics (~> 1.6) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Logger (~> 6.7) + - FirebaseCoreDiagnostics (1.7.0): + - GoogleDataTransport (~> 7.4) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Logger (~> 6.7) + - nanopb (~> 1.30906.0) + - FirebaseFirestore (1.18.0): + - abseil/algorithm (= 0.20200225.0) + - abseil/base (= 0.20200225.0) + - abseil/memory (= 0.20200225.0) + - abseil/meta (= 0.20200225.0) + - abseil/strings/strings (= 0.20200225.0) + - abseil/time (= 0.20200225.0) + - abseil/types (= 0.20200225.0) + - FirebaseCore (~> 6.10) + - "gRPC-C++ (~> 1.28.0)" + - leveldb-library (~> 1.22) + - nanopb (~> 1.30906.0) + - FirebaseInstallations (1.7.0): + - FirebaseCore (~> 6.10) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) + - PromisesObjC (~> 1.2) + - FirebaseInstanceID (4.8.0): + - FirebaseCore (~> 6.10) + - FirebaseInstallations (~> 1.6) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) + - FirebaseMessaging (4.7.1): + - FirebaseCore (~> 6.10) + - FirebaseInstanceID (~> 4.7) + - GoogleUtilities/AppDelegateSwizzler (~> 6.7) + - GoogleUtilities/Environment (~> 6.7) + - GoogleUtilities/Reachability (~> 6.7) + - GoogleUtilities/UserDefaults (~> 6.7) + - Protobuf (>= 3.9.2, ~> 3.9) - Flutter (1.0.0) + - flutter_email_sender (0.0.1): + - Flutter + - flutter_flexible_toast (0.0.1): + - Flutter + - flutter_hms_gms_availability (0.0.1): + - Flutter + - flutter_inappwebview (0.0.1): + - Flutter + - flutter_local_notifications (0.0.1): + - Flutter + - flutter_plugin_android_lifecycle (0.0.1): + - Flutter + - flutter_tts (0.0.1): + - Flutter + - FMDB (2.7.5): + - FMDB/standard (= 2.7.5) + - FMDB/standard (2.7.5) + - geolocator (6.1.9): + - Flutter + - google_maps_flutter (0.0.1): + - Flutter + - GoogleMaps (< 3.10) + - GoogleDataTransport (7.5.1): + - nanopb (~> 1.30906.0) + - GoogleMaps (3.9.0): + - GoogleMaps/Maps (= 3.9.0) + - GoogleMaps/Base (3.9.0) + - GoogleMaps/Maps (3.9.0): + - GoogleMaps/Base + - GoogleUtilities/AppDelegateSwizzler (6.7.2): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Environment (6.7.2): + - PromisesObjC (~> 1.2) + - GoogleUtilities/Logger (6.7.2): + - GoogleUtilities/Environment + - GoogleUtilities/Network (6.7.2): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (6.7.2)" + - GoogleUtilities/Reachability (6.7.2): + - GoogleUtilities/Logger + - GoogleUtilities/UserDefaults (6.7.2): + - GoogleUtilities/Logger + - "gRPC-C++ (1.28.2)": + - "gRPC-C++/Implementation (= 1.28.2)" + - "gRPC-C++/Interface (= 1.28.2)" + - "gRPC-C++/Implementation (1.28.2)": + - abseil/container/inlined_vector (= 0.20200225.0) + - abseil/memory/memory (= 0.20200225.0) + - abseil/strings/str_format (= 0.20200225.0) + - abseil/strings/strings (= 0.20200225.0) + - abseil/types/optional (= 0.20200225.0) + - "gRPC-C++/Interface (= 1.28.2)" + - gRPC-Core (= 1.28.2) + - "gRPC-C++/Interface (1.28.2)" + - gRPC-Core (1.28.2): + - gRPC-Core/Implementation (= 1.28.2) + - gRPC-Core/Interface (= 1.28.2) + - gRPC-Core/Implementation (1.28.2): + - abseil/container/inlined_vector (= 0.20200225.0) + - abseil/memory/memory (= 0.20200225.0) + - abseil/strings/str_format (= 0.20200225.0) + - abseil/strings/strings (= 0.20200225.0) + - abseil/types/optional (= 0.20200225.0) + - BoringSSL-GRPC (= 0.0.7) + - gRPC-Core/Interface (= 1.28.2) + - gRPC-Core/Interface (1.28.2) + - hexcolor (0.0.1): + - Flutter + - "huawei_location (5.0.0+301)": + - Flutter + - image_cropper (0.0.3): + - Flutter + - TOCropViewController (~> 2.5.4) + - image_picker (0.0.1): + - Flutter + - just_audio (0.0.1): + - Flutter + - leveldb-library (1.22) + - local_auth (0.0.1): + - Flutter + - location (0.0.1): + - Flutter + - manage_calendar_events (0.0.1): + - Flutter + - map_launcher (0.0.1): + - Flutter + - maps_launcher (0.0.1): + - Flutter + - MTBBarcodeScanner (5.0.11) + - nanopb (1.30906.0): + - nanopb/decode (= 1.30906.0) + - nanopb/encode (= 1.30906.0) + - nanopb/decode (1.30906.0) + - nanopb/encode (1.30906.0) + - native_device_orientation (0.0.1): + - Flutter - NVActivityIndicatorView (5.1.1): - NVActivityIndicatorView/Base (= 5.1.1) - NVActivityIndicatorView/Base (5.1.1) + - path_provider (0.0.1): + - Flutter + - path_provider_linux (0.0.1): + - Flutter + - path_provider_macos (0.0.1): + - Flutter + - path_provider_windows (0.0.1): + - Flutter + - "permission_handler (5.0.1+1)": + - Flutter + - PromisesObjC (1.2.11) + - Protobuf (3.13.0) + - Reachability (3.2) + - screen (0.0.1): + - Flutter + - SDWebImage (5.10.4): + - SDWebImage/Core (= 5.10.4) + - SDWebImage/Core (5.10.4) + - shared_preferences (0.0.1): + - Flutter + - shared_preferences_linux (0.0.1): + - Flutter + - shared_preferences_macos (0.0.1): + - Flutter + - shared_preferences_web (0.0.1): + - Flutter + - shared_preferences_windows (0.0.1): + - Flutter + - sms_otp_auto_verify (0.0.1): + - Flutter + - speech_to_text (0.0.1): + - Flutter + - Try + - sqflite (0.0.2): + - Flutter + - FMDB (>= 2.7.5) + - SwiftyGif (5.4.0) + - TOCropViewController (2.5.5) + - Try (2.1.1) + - "twilio_programmable_video (0.5.0+4)": + - Flutter + - TwilioVideo (~> 3.4) + - TwilioVideo (3.8.0) + - url_launcher (0.0.1): + - Flutter + - url_launcher_linux (0.0.1): + - Flutter + - url_launcher_macos (0.0.1): + - Flutter + - url_launcher_web (0.0.1): + - Flutter + - url_launcher_windows (0.0.1): + - Flutter + - vibration (1.7.3): + - Flutter + - vibration_web (1.6.2): + - Flutter + - video_player (0.0.1): + - Flutter + - video_player_web (0.0.1): + - Flutter + - wakelock (0.0.1): + - Flutter + - webview_flutter (0.0.1): + - Flutter + - wifi (0.0.1): + - Flutter DEPENDENCIES: + - android_intent (from `.symlinks/plugins/android_intent/ios`) + - barcode_scan_fix (from `.symlinks/plugins/barcode_scan_fix/ios`) + - cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) + - cloud_firestore_web (from `.symlinks/plugins/cloud_firestore_web/ios`) + - connectivity (from `.symlinks/plugins/connectivity/ios`) + - connectivity_for_web (from `.symlinks/plugins/connectivity_for_web/ios`) + - connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`) + - device_calendar (from `.symlinks/plugins/device_calendar/ios`) + - device_info (from `.symlinks/plugins/device_info/ios`) + - file_picker (from `.symlinks/plugins/file_picker/ios`) + - file_picker_web (from `.symlinks/plugins/file_picker_web/ios`) + - firebase_core (from `.symlinks/plugins/firebase_core/ios`) + - firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`) + - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - Flutter (from `Flutter`) + - flutter_email_sender (from `.symlinks/plugins/flutter_email_sender/ios`) + - flutter_flexible_toast (from `.symlinks/plugins/flutter_flexible_toast/ios`) + - flutter_hms_gms_availability (from `.symlinks/plugins/flutter_hms_gms_availability/ios`) + - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) + - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) + - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) + - flutter_tts (from `.symlinks/plugins/flutter_tts/ios`) + - geolocator (from `.symlinks/plugins/geolocator/ios`) + - google_maps_flutter (from `.symlinks/plugins/google_maps_flutter/ios`) + - hexcolor (from `.symlinks/plugins/hexcolor/ios`) + - huawei_location (from `.symlinks/plugins/huawei_location/ios`) + - image_cropper (from `.symlinks/plugins/image_cropper/ios`) + - image_picker (from `.symlinks/plugins/image_picker/ios`) + - just_audio (from `.symlinks/plugins/just_audio/ios`) + - local_auth (from `.symlinks/plugins/local_auth/ios`) + - location (from `.symlinks/plugins/location/ios`) + - manage_calendar_events (from `.symlinks/plugins/manage_calendar_events/ios`) + - map_launcher (from `.symlinks/plugins/map_launcher/ios`) + - maps_launcher (from `.symlinks/plugins/maps_launcher/ios`) + - native_device_orientation (from `.symlinks/plugins/native_device_orientation/ios`) - NVActivityIndicatorView + - path_provider (from `.symlinks/plugins/path_provider/ios`) + - path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`) + - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) + - path_provider_windows (from `.symlinks/plugins/path_provider_windows/ios`) + - permission_handler (from `.symlinks/plugins/permission_handler/ios`) + - screen (from `.symlinks/plugins/screen/ios`) + - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) + - shared_preferences_linux (from `.symlinks/plugins/shared_preferences_linux/ios`) + - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`) + - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`) + - shared_preferences_windows (from `.symlinks/plugins/shared_preferences_windows/ios`) + - sms_otp_auto_verify (from `.symlinks/plugins/sms_otp_auto_verify/ios`) + - speech_to_text (from `.symlinks/plugins/speech_to_text/ios`) + - sqflite (from `.symlinks/plugins/sqflite/ios`) + - twilio_programmable_video (from `.symlinks/plugins/twilio_programmable_video/ios`) + - url_launcher (from `.symlinks/plugins/url_launcher/ios`) + - url_launcher_linux (from `.symlinks/plugins/url_launcher_linux/ios`) + - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`) + - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) + - url_launcher_windows (from `.symlinks/plugins/url_launcher_windows/ios`) + - vibration (from `.symlinks/plugins/vibration/ios`) + - vibration_web (from `.symlinks/plugins/vibration_web/ios`) + - video_player (from `.symlinks/plugins/video_player/ios`) + - video_player_web (from `.symlinks/plugins/video_player_web/ios`) + - wakelock (from `.symlinks/plugins/wakelock/ios`) + - webview_flutter (from `.symlinks/plugins/webview_flutter/ios`) + - wifi (from `.symlinks/plugins/wifi/ios`) SPEC REPOS: trunk: + - abseil + - BoringSSL-GRPC + - DKImagePickerController + - DKPhotoGallery + - Firebase + - FirebaseCore + - FirebaseCoreDiagnostics + - FirebaseFirestore + - FirebaseInstallations + - FirebaseInstanceID + - FirebaseMessaging + - FMDB + - GoogleDataTransport + - GoogleMaps + - GoogleUtilities + - "gRPC-C++" + - gRPC-Core + - leveldb-library + - MTBBarcodeScanner + - nanopb - NVActivityIndicatorView + - PromisesObjC + - Protobuf + - Reachability + - SDWebImage + - SwiftyGif + - TOCropViewController + - Try + - TwilioVideo EXTERNAL SOURCES: + android_intent: + :path: ".symlinks/plugins/android_intent/ios" + barcode_scan_fix: + :path: ".symlinks/plugins/barcode_scan_fix/ios" + cloud_firestore: + :path: ".symlinks/plugins/cloud_firestore/ios" + cloud_firestore_web: + :path: ".symlinks/plugins/cloud_firestore_web/ios" + connectivity: + :path: ".symlinks/plugins/connectivity/ios" + connectivity_for_web: + :path: ".symlinks/plugins/connectivity_for_web/ios" + connectivity_macos: + :path: ".symlinks/plugins/connectivity_macos/ios" + device_calendar: + :path: ".symlinks/plugins/device_calendar/ios" + device_info: + :path: ".symlinks/plugins/device_info/ios" + file_picker: + :path: ".symlinks/plugins/file_picker/ios" + file_picker_web: + :path: ".symlinks/plugins/file_picker_web/ios" + firebase_core: + :path: ".symlinks/plugins/firebase_core/ios" + firebase_core_web: + :path: ".symlinks/plugins/firebase_core_web/ios" + firebase_messaging: + :path: ".symlinks/plugins/firebase_messaging/ios" Flutter: :path: Flutter + flutter_email_sender: + :path: ".symlinks/plugins/flutter_email_sender/ios" + flutter_flexible_toast: + :path: ".symlinks/plugins/flutter_flexible_toast/ios" + flutter_hms_gms_availability: + :path: ".symlinks/plugins/flutter_hms_gms_availability/ios" + flutter_inappwebview: + :path: ".symlinks/plugins/flutter_inappwebview/ios" + flutter_local_notifications: + :path: ".symlinks/plugins/flutter_local_notifications/ios" + flutter_plugin_android_lifecycle: + :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios" + flutter_tts: + :path: ".symlinks/plugins/flutter_tts/ios" + geolocator: + :path: ".symlinks/plugins/geolocator/ios" + google_maps_flutter: + :path: ".symlinks/plugins/google_maps_flutter/ios" + hexcolor: + :path: ".symlinks/plugins/hexcolor/ios" + huawei_location: + :path: ".symlinks/plugins/huawei_location/ios" + image_cropper: + :path: ".symlinks/plugins/image_cropper/ios" + image_picker: + :path: ".symlinks/plugins/image_picker/ios" + just_audio: + :path: ".symlinks/plugins/just_audio/ios" + local_auth: + :path: ".symlinks/plugins/local_auth/ios" + location: + :path: ".symlinks/plugins/location/ios" + manage_calendar_events: + :path: ".symlinks/plugins/manage_calendar_events/ios" + map_launcher: + :path: ".symlinks/plugins/map_launcher/ios" + maps_launcher: + :path: ".symlinks/plugins/maps_launcher/ios" + native_device_orientation: + :path: ".symlinks/plugins/native_device_orientation/ios" + path_provider: + :path: ".symlinks/plugins/path_provider/ios" + path_provider_linux: + :path: ".symlinks/plugins/path_provider_linux/ios" + path_provider_macos: + :path: ".symlinks/plugins/path_provider_macos/ios" + path_provider_windows: + :path: ".symlinks/plugins/path_provider_windows/ios" + permission_handler: + :path: ".symlinks/plugins/permission_handler/ios" + screen: + :path: ".symlinks/plugins/screen/ios" + shared_preferences: + :path: ".symlinks/plugins/shared_preferences/ios" + shared_preferences_linux: + :path: ".symlinks/plugins/shared_preferences_linux/ios" + shared_preferences_macos: + :path: ".symlinks/plugins/shared_preferences_macos/ios" + shared_preferences_web: + :path: ".symlinks/plugins/shared_preferences_web/ios" + shared_preferences_windows: + :path: ".symlinks/plugins/shared_preferences_windows/ios" + sms_otp_auto_verify: + :path: ".symlinks/plugins/sms_otp_auto_verify/ios" + speech_to_text: + :path: ".symlinks/plugins/speech_to_text/ios" + sqflite: + :path: ".symlinks/plugins/sqflite/ios" + twilio_programmable_video: + :path: ".symlinks/plugins/twilio_programmable_video/ios" + url_launcher: + :path: ".symlinks/plugins/url_launcher/ios" + url_launcher_linux: + :path: ".symlinks/plugins/url_launcher_linux/ios" + url_launcher_macos: + :path: ".symlinks/plugins/url_launcher_macos/ios" + url_launcher_web: + :path: ".symlinks/plugins/url_launcher_web/ios" + url_launcher_windows: + :path: ".symlinks/plugins/url_launcher_windows/ios" + vibration: + :path: ".symlinks/plugins/vibration/ios" + vibration_web: + :path: ".symlinks/plugins/vibration_web/ios" + video_player: + :path: ".symlinks/plugins/video_player/ios" + video_player_web: + :path: ".symlinks/plugins/video_player_web/ios" + wakelock: + :path: ".symlinks/plugins/wakelock/ios" + webview_flutter: + :path: ".symlinks/plugins/webview_flutter/ios" + wifi: + :path: ".symlinks/plugins/wifi/ios" SPEC CHECKSUMS: + abseil: 6c8eb7892aefa08d929b39f9bb108e5367e3228f + android_intent: 367df2f1277a74e4a90e14a8ab3df3112d087052 + barcode_scan_fix: 80dd65de55f27eec6591dd077c8b85f2b79e31f1 + BoringSSL-GRPC: 8edf627ee524575e2f8d19d56f068b448eea3879 + cloud_firestore: b8c0e15fa49dfff87c2817d288b577e5dca2df13 + cloud_firestore_web: 9ec3dc7f5f98de5129339802d491c1204462bfec + connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467 + connectivity_for_web: 2b8584556930d4bd490d82b836bcf45067ce345b + connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191 + device_calendar: 23b28a5f1ab3bf77e34542fb1167e1b8b29a98f5 + device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 + DKImagePickerController: b5eb7f7a388e4643264105d648d01f727110fc3d + DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 + file_picker: 3e6c3790de664ccf9b882732d9db5eaf6b8d4eb1 + file_picker_web: 37b10786e88885124fac99dc899866e78a132ef3 + Firebase: 8db6f2d1b2c5e2984efba4949a145875a8f65fe5 + firebase_core: 5d6a02f3d85acd5f8321c2d6d62877626a670659 + firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1 + firebase_messaging: 0aea2cd5885b65e19ede58ee3507f485c992cc75 + FirebaseCore: d889d9e12535b7f36ac8bfbf1713a0836a3012cd + FirebaseCoreDiagnostics: 770ac5958e1372ce67959ae4b4f31d8e127c3ac1 + FirebaseFirestore: adff4877869ca91a11250cc0989a6cd56bad163f + FirebaseInstallations: 466c7b4d1f58fe16707693091da253726a731ed2 + FirebaseInstanceID: bd3ffc24367f901a43c063b36c640b345a4a5dd1 + FirebaseMessaging: 5eca4ef173de76253352511aafef774caa1cba2a Flutter: 0e3d915762c693b495b44d77113d4970485de6ec + flutter_email_sender: f787522d0e82f50e5766c1213dbffff22fdcf009 + flutter_flexible_toast: 0547e740cae0c33bb7c51bcd931233f4584e1143 + flutter_hms_gms_availability: babc50b18670e99780270bc18d9b17d0a07cd77e + flutter_inappwebview: 69dfbac46157b336ffbec19ca6dfd4638c7bf189 + flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186 + flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 + flutter_tts: 0f492aab6accf87059b72354fcb4ba934304771d + FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a + geolocator: 057a0c63a43e9c5296d8ad845a3ac8e6df23d899 + google_maps_flutter: c7f9c73576de1fbe152a227bfd6e6c4ae8088619 + GoogleDataTransport: f56af7caa4ed338dc8e138a5d7c5973e66440833 + GoogleMaps: 4b5346bddfe6911bb89155d43c903020170523ac + GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3 + "gRPC-C++": 13d8ccef97d5c3c441b7e3c529ef28ebee86fad2 + gRPC-Core: 4afa11bfbedf7cdecd04de535a9e046893404ed5 + hexcolor: fdfb9c4258ad96e949c2dbcdf790a62194b8aa89 + huawei_location: a1c3d2a029138b3d0b9a72ce910ffae3ff23c1aa + image_cropper: c8f9b4157933c7bb965a66d1c5e6c8fd408c6eb4 + image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09 + just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa + leveldb-library: 55d93ee664b4007aac644a782d11da33fba316f7 + local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd + location: 3a2eed4dd2fab25e7b7baf2a9efefe82b512d740 + manage_calendar_events: 0338d505ea26cdfd20cd883279bc28afa11eca34 + map_launcher: e325db1261d029ff33e08e03baccffe09593ffea + maps_launcher: eae38ee13a9c3f210fa04e04bb4c073fa4c6ed92 + MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb + nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc + native_device_orientation: e24d00be281de72996640885d80e706142707660 NVActivityIndicatorView: 1f6c5687f1171810aa27a3296814dc2d7dec3667 + path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c + path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4 + path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 + path_provider_windows: a2b81600c677ac1959367280991971cb9a1edb3b + permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6 + PromisesObjC: 8c196f5a328c2cba3e74624585467a557dcb482f + Protobuf: 3dac39b34a08151c6d949560efe3f86134a3f748 + Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 + screen: abd91ca7bf3426e1cc3646d27e9b2358d6bf07b0 + SDWebImage: c666b97e1fa9c64b4909816a903322018f0a9c84 + shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d + shared_preferences_linux: afefbfe8d921e207f01ede8b60373d9e3b566b78 + shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 + shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 + shared_preferences_windows: 36b76d6f54e76ead957e60b49e2f124b4cd3e6ae + sms_otp_auto_verify: 201803ac25e13feedaae96eda8b70b10c55b3338 + speech_to_text: b43a7d99aef037bd758ed8e45d79bbac035d2dfe + sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 + SwiftyGif: 5d4af95df24caf1c570dbbcb32a3b8a0763bc6d7 + TOCropViewController: da59f531f8ac8a94ef6d6c0fc34009350f9e8bfe + Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96 + twilio_programmable_video: 6a41593640f3d86af60b22541fd457b22deaae7f + TwilioVideo: c13a51ceca375e91620eb7578d2573c90cf53b46 + url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef + url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0 + url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 + url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c + url_launcher_windows: 683d7c283894db8d1914d3ab2223b20cc1ad95d5 + vibration: b5a33e764c3f609a975b9dca73dce20fdde627dc + vibration_web: 0ba303d92469ba34d71c612a228b315908d7fcd9 + video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e + video_player_web: da8cadb8274ed4f8dbee8d7171b420dedd437ce7 + wakelock: 0d4a70faf8950410735e3f61fb15d517c8a6efc4 + webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 + wifi: d7d77c94109e36c4175d845f0a5964eadba71060 PODFILE CHECKSUM: ac5efa1ac3c9555d0008dc18004313c84746da62 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 366647c0..40202660 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -220,6 +220,7 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, EFDAD5E1235DCA1DB6187148 /* [CP] Embed Pods Frameworks */, + 835BB6C21DD911F74065B670 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -319,6 +320,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; + 835BB6C21DD911F74065B670 /* [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; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 45930514..e3344b0e 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -777,6 +777,7 @@ const Map localizedValues = { "orderDate": {"en": "Date", "ar": "التاريخ:"}, "itemsNo": {"en": "items(s)", "ar": "عناصر"}, "noOrder": {"en": "You Don't have any orders.", "ar": "ليس لديك طلبات"}, + "noResult": {"en": "No Result.", "ar": "لايوجد نتئج"}, "TermsService": {"en": "Terms of Service", "ar": "شروط الخدمه"}, "Beforeusing": { @@ -871,6 +872,7 @@ const Map localizedValues = { "wishList": {"en": "WishList", "ar": "الرغبات"}, "myAccount": {"en": "My Account", "ar": "حسابي"}, "cart": {"en": "Cart", "ar": "التسوق"}, + "Alhabibapp": {"en": "Al habib app", "ar": "تطبيق الحبيب"}, "searchProductHere": { "en": "Search Product here", "ar": "ابحث في الطلب الخاص بك" @@ -2000,5 +2002,20 @@ const Map localizedValues = { "ar": "الرجاء إدخال رقم الجوال ورقم الملف الطبي" }, "allow": {"en": "Allow", "ar": "السماح"}, - "reject": {"en": "Reject", "ar": "رفض"} + "reject": {"en": "Reject", "ar": "رفض"}, + "referralRequesterInformation": { + "en": "Referral requester information", + "ar": "معلومات طالب الإحالة" + }, + "enterReferralRequesterName": { + "en": "Enter Referral Requester Name*", + "ar": "أدخل اسم مقدم طلب الإحالة *" + }, + "selectRelationship": {"en": "Select Relationship", "ar": "حدد العلاقة"}, + "requesterRelationship": { + "en": "Requester Relationship", + "ar": "علاقة الطالب" + }, + "newReferral": {"en": "New Referral", "ar": "إحالة جديدة"}, + "searchForReferrals": {"en": "Search For Referrals", "ar": "ابحث عن الإحالات"} }; diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart index 62799c6d..b6cddf18 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart @@ -4,11 +4,12 @@ import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/ import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/send_activation_code_for_e_referral_request_model.dart'; import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart'; -import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_confirm_sms_dialog.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_country_ingo_Dialog.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/dialogs/select_relation_type_dialog.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_confirm_sms_dialog.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/new_text_Field.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; @@ -18,6 +19,7 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class NewEReferralStepOnePage extends StatefulWidget { @@ -38,6 +40,7 @@ class _NewEReferralStepOnePageState extends State { AuthenticatedUser authenticatedUser; GetAllSharedRecordsByStatusList selectedPatientFamily; AdvanceModel advanceModel = AdvanceModel(); + ProjectViewModel projectViewModel; // todo create a model for Country // todo use country from the json @@ -59,6 +62,7 @@ class _NewEReferralStepOnePageState extends State { @override Widget build(BuildContext context) { + projectViewModel = Provider.of(context); void showSMSDialog() { showDialog( context: context, @@ -104,8 +108,8 @@ class _NewEReferralStepOnePageState extends State { ), Center( child: Texts( -// TranslationBase.of(context).advancePaymentLabel, - "Referral requester information", + TranslationBase.of(context) + .referralRequesterInformation, textAlign: TextAlign.center, ), ), @@ -113,7 +117,9 @@ class _NewEReferralStepOnePageState extends State { height: 12, ), NewTextFields( - hintText: "Enter Referral Requester Name*", + hintText: TranslationBase + .of(context) + .enterReferralRequesterName, controller: _nameTextController, ), SizedBox( @@ -151,8 +157,7 @@ class _NewEReferralStepOnePageState extends State { ), Center( child: Texts( -// TranslationBase.of(context).advancePaymentLabel, - "Requester Relationship", + TranslationBase.of(context).requesterRelationship, textAlign: TextAlign.center, ), ), @@ -246,15 +251,25 @@ class _NewEReferralStepOnePageState extends State { } String getRelationName() { - if (_selectedRelation != null) - return _selectedRelation.text; + if (_selectedRelation != null) { + if(projectViewModel.isArabic) { + return _selectedRelation.textAr; + } + return _selectedRelation.textEn; + } + else - return "Select Relationship" /*TranslationBase.of(context).selectHospital*/; + return TranslationBase.of(context).selectRelationship; } String getCountryName() { - if (_selectedCountry != null) + if (_selectedCountry != null) { + if(projectViewModel.isArabic) { + return _selectedCountry["name_ar"]; + } return _selectedCountry["name"]; + } + else return "Country"; } diff --git a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart index 590d1cf1..9f4240fc 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart @@ -97,13 +97,13 @@ class _EReferralPageState extends State Container( width: MediaQuery.of(context).size.width * 0.37, child: Center( - child: Texts("New Referral"), + child: Texts(TranslationBase.of(context).newReferral, textAlign: TextAlign.center,), ), ), Container( width: MediaQuery.of(context).size.width * 0.37, child: Center( - child: Texts("Search for Referrals"), + child: Texts(TranslationBase.of(context).searchForReferrals , textAlign: TextAlign.center,), ), ), ], diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart index 8b9a5409..2282472b 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart @@ -511,10 +511,10 @@ class _BMICalculatorState extends State { context, FadePage( page: ResultPage( - finalResult: bmiResult, - textResult: textResult, - msg: msg, - )), + finalResult: bmiResult, + textResult: textResult, + msg: msg, + )), ); } }) diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart index 9e3d049f..7dc30415 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart @@ -125,6 +125,16 @@ class _BmrCalculatorState extends State { isShowAppBar: true, isShowDecPage: false, appBarTitle: 'Bmr Calculator', + showHomeAppBarIcon: false, + appBarIcons: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0), + child: Icon( + Icons.info_outline, + color: Colors.white, + ), + ) + ], body: Padding( padding: EdgeInsets.symmetric(horizontal: 25.0, vertical: 15.0), child: SingleChildScrollView( @@ -704,9 +714,9 @@ class _BmrCalculatorState extends State { context, FadePage( page: BmrResultPage( - bmrResult: bmrResult, - calories: calories, - )), + bmrResult: bmrResult, + calories: calories, + )), ); } }); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart index 3bda439f..1530d0ee 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart @@ -210,6 +210,16 @@ class _BodyFatState extends State { return AppScaffold( isShowAppBar: true, appBarTitle: 'Body Fat', + showHomeAppBarIcon: false, + appBarIcons: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0), + child: Icon( + Icons.info_outline, + color: Colors.white, + ), + ) + ], body: Padding( padding: EdgeInsets.symmetric(horizontal: 25.0, vertical: 15.0), child: SingleChildScrollView( @@ -1004,10 +1014,10 @@ class _BodyFatState extends State { context, FadePage( page: FatResult( - bodyFat: bodyFat, - fat: fat, - textResult: textResult, - )), + bodyFat: bodyFat, + fat: fat, + textResult: textResult, + )), ); } }); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart index a7f60f68..25293a81 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart @@ -108,6 +108,16 @@ class _CalorieCalculatorState extends State { isShowDecPage: false, appBarTitle: "${TranslationBase.of(context).calories} ${TranslationBase.of(context).calcHealth}", + showHomeAppBarIcon: false, + appBarIcons: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0), + child: Icon( + Icons.info_outline, + color: Colors.white, + ), + ) + ], body: Column( children: [ Expanded( @@ -417,7 +427,9 @@ class _CalorieCalculatorState extends State { child: Padding( padding: const EdgeInsets.symmetric( vertical: 0.0, horizontal: 18.0), - child: Center(child: Texts(TranslationBase.of(context).cm)), + child: Center( + child: + Texts(TranslationBase.of(context).cm)), ), ), ), @@ -446,11 +458,13 @@ class _CalorieCalculatorState extends State { ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), - child: Center(child: Texts(TranslationBase.of(context).feet))), - ), + padding: const EdgeInsets.symmetric( + horizontal: 16.0), + child: Center( + child: Texts( + TranslationBase.of(context).feet))), ), + ), ), ], ), @@ -465,7 +479,7 @@ class _CalorieCalculatorState extends State { ), Container( margin: - EdgeInsets.symmetric(horizontal: 4.0, vertical: 12.0), + EdgeInsets.symmetric(horizontal: 4.0, vertical: 12.0), decoration: BoxDecoration( color: Colors.white, ), @@ -514,8 +528,7 @@ class _CalorieCalculatorState extends State { ), onTap: () { setState(() { - if (weight < 250) - weight++; + if (weight < 250) weight++; }); }, ), @@ -589,7 +602,9 @@ class _CalorieCalculatorState extends State { child: Padding( padding: const EdgeInsets.symmetric( vertical: 0.0, horizontal: 18.0), - child: Center(child: Texts(TranslationBase.of(context).kg)), + child: Center( + child: + Texts(TranslationBase.of(context).kg)), ), ), ), @@ -618,9 +633,11 @@ class _CalorieCalculatorState extends State { ], ), child: Padding( - padding: - const EdgeInsets.symmetric(horizontal: 16.0), - child: Center(child: Texts(TranslationBase.of(context).pound)), + padding: const EdgeInsets.symmetric( + horizontal: 16.0), + child: Center( + child: Texts( + TranslationBase.of(context).pound)), ), ), ), @@ -681,8 +698,8 @@ class _CalorieCalculatorState extends State { context, FadePage( page: CalorieResultPage( - calorie: calories, - )), + calorie: calories, + )), ); } }); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart index 78a737bb..7d8f4655 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart @@ -82,6 +82,16 @@ class _CarbsState extends State { return AppScaffold( isShowAppBar: true, appBarTitle: 'Carb Protein Fat', + showHomeAppBarIcon: false, + appBarIcons: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0), + child: Icon( + Icons.info_outline, + color: Colors.white, + ), + ) + ], body: Padding( padding: EdgeInsets.symmetric(horizontal: 25.0, vertical: 15.0), child: SingleChildScrollView( @@ -201,7 +211,7 @@ class _CarbsState extends State { ), Button( backgroundColor: Color(0xffC5272D), - label: 'NOT SURE? CLICK HERE ', + label: 'NOT SURE? CLICK HERE', onTap: () { setState(() { { @@ -341,16 +351,16 @@ class _CarbsState extends State { context, FadePage( page: CarbsResult( - cCal: cCal, - pCal: pCal, - fCal: fCal, - pCalGram: pCalGram, - pCalMeal: pCalMeal, - fCalGram: fCalGram, - fCalMeal: fCalMeal, - cCalGram: cCalGram, - cCalMeal: cCalMeal, - )), + cCal: cCal, + pCal: pCal, + fCal: fCal, + pCalGram: pCalGram, + pCalMeal: pCalMeal, + fCalGram: fCalGram, + fCalMeal: fCalMeal, + cCalGram: cCalGram, + cCalMeal: cCalMeal, + )), ); } }); diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart index 4e0b1391..d9d238e8 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart @@ -102,6 +102,16 @@ class _IdealBodyState extends State { return AppScaffold( isShowAppBar: true, appBarTitle: 'Ideal Body Weight', + showHomeAppBarIcon: false, + appBarIcons: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0, vertical: 7.0), + child: Icon( + Icons.info_outline, + color: Colors.white, + ), + ) + ], body: Padding( padding: EdgeInsets.symmetric(vertical: 15.0, horizontal: 25.0), child: SingleChildScrollView( @@ -518,7 +528,7 @@ class _IdealBodyState extends State { height: 30.0, ), Container( - height: 100.0, + height: 50.0, width: 350.0, child: SecondaryButton( label: 'CALCULATE', @@ -535,12 +545,12 @@ class _IdealBodyState extends State { context, FadePage( page: IdealBodyResult( - idealBodyWeight: idealWeight, - minRange: minRange, - mixRange: maxRange, - overWeightBy: overWeightBy, - textResult: textResult, - )), + idealBodyWeight: idealWeight, + minRange: minRange, + mixRange: maxRange, + overWeightBy: overWeightBy, + textResult: textResult, + )), ); } }); diff --git a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart index 8a7e9792..cf230466 100644 --- a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart +++ b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart @@ -254,7 +254,7 @@ class _BloodSugarState extends State { ), Flexible( child: Container( - height: 60.0, + height: 50.0, width: 150.0, child: SecondaryButton( label: TranslationBase.of(context).calculate, diff --git a/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart b/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart index c5300b5d..26ccc1fc 100644 --- a/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart +++ b/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart @@ -64,12 +64,12 @@ class _PhamaciesLiveChatPageState extends State { ), ), bottomSheet: Container( - height: MediaQuery.of(context).size.height * 0.10, + height: MediaQuery.of(context).size.height * 0.11, width: double.infinity, padding: EdgeInsets.all(8.0), child: Center( child: Container( - height: MediaQuery.of(context).size.height * 0.87, + height: MediaQuery.of(context).size.height * 0.7, width: MediaQuery.of(context).size.width * 0.8, child: Button( label: TranslationBase.of(context).start, diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart index f36eadc5..22098d4f 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart @@ -47,80 +47,81 @@ class _AmbulanceRequestIndexPageState extends State { Widget build(BuildContext context) { return AppScaffold( body: widget.amRequestViewModel.pickUpRequestPresOrder != null - ? Column( - children: [ - SizedBox( - height: 80, - ), - Container( - margin: EdgeInsets.only(left: 18, right: 18), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(2), + ? SingleChildScrollView( + child: Column( + children: [ + SizedBox( + height: 80, ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - OrderLogItem( - title: TranslationBase.of(context).reqId, - value: widget.amRequestViewModel.pickUpRequestPresOrder - .presOrderID - .toString(), - ), - OrderLogItem( - title: TranslationBase.of(context).status, - value: widget.amRequestViewModel.pickUpRequestPresOrder - .ambulateDescription, - ), - OrderLogItem( - title: TranslationBase.of(context).pickupDate, - value: DateUtil.getDayMonthYearDateFormatted( - DateUtil.convertStringToDate(widget - .amRequestViewModel - .pickUpRequestPresOrder - .lastEditDate)), - ), - OrderLogItem( - title: TranslationBase.of(context).pickupLocation, - value: widget.amRequestViewModel.pickUpRequestPresOrder - .pickupLocationName, - ), - OrderLogItem( - title: TranslationBase.of(context).dropoffLocation, - value: widget.amRequestViewModel.pickUpRequestPresOrder - .dropoffLocationName, - ), - OrderLogItem( - title: TranslationBase.of(context).transportMethod, - value: widget - .amRequestViewModel.pickUpRequestPresOrder.title, - ), - Container( - padding: EdgeInsets.all(10), - width: double.maxFinite, - margin: EdgeInsets.only(bottom: 4, left: 4, right: 4), - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - bottomRight: Radius.circular(12), - bottomLeft: Radius.circular(12), - ), - color: Colors.white), - child: SecondaryButton( - color: Colors.red[900], - textColor: Colors.white, - label: TranslationBase.of(context).cancel, - onTap: () { - widget.amRequestViewModel.updatePressOrder( - presOrderID: widget.amRequestViewModel - .pickUpRequestPresOrder.presOrderID); - }, + Container( + margin: EdgeInsets.only(left: 18, right: 18), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(2), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + OrderLogItem( + title: TranslationBase.of(context).reqId, + value: widget.amRequestViewModel.pickUpRequestPresOrder + .presOrderID + .toString(), ), - ) - ], + OrderLogItem( + title: TranslationBase.of(context).status, + value: widget.amRequestViewModel.pickUpRequestPresOrder.status ==0?TranslationBase.of(context).pending:'', + ), + OrderLogItem( + title: TranslationBase.of(context).pickupDate, + value: DateUtil.getDayMonthYearDateFormatted( + DateUtil.convertStringToDate(widget + .amRequestViewModel + .pickUpRequestPresOrder + .lastEditDate)), + ), + OrderLogItem( + title: TranslationBase.of(context).pickupLocation, + value: widget.amRequestViewModel.pickUpRequestPresOrder + .pickupLocationName, + ), + OrderLogItem( + title: TranslationBase.of(context).dropoffLocation, + value: widget.amRequestViewModel.pickUpRequestPresOrder + .dropoffLocationName, + ), + OrderLogItem( + title: TranslationBase.of(context).transportMethod, + value: widget + .amRequestViewModel.pickUpRequestPresOrder.title, + ), + Container( + padding: EdgeInsets.all(10), + width: double.maxFinite, + margin: EdgeInsets.only(bottom: 4, left: 4, right: 4), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomRight: Radius.circular(12), + bottomLeft: Radius.circular(12), + ), + color: Colors.white), + child: SecondaryButton( + color: Colors.red[900], + textColor: Colors.white, + label: TranslationBase.of(context).cancel, + onTap: () { + widget.amRequestViewModel.updatePressOrder( + presOrderID: widget.amRequestViewModel + .pickUpRequestPresOrder.presOrderID); + }, + ), + ) + ], + ), ), - ), - ], - ) + ], + ), + ) : Column( children: [ SizedBox( diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart index b0c541f9..cde9e248 100644 --- a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart +++ b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart @@ -393,13 +393,14 @@ class _PickupLocationState extends State { setState(() { widget.patientER.pickupSpot = _isInsideHome ? 1 : 0; if (widget.patientER.direction == 0) { - widget.patientER.pickupLocationLattitude = + + widget.patientER.dropoffLocationLattitude = _result.geometry.location.lat.toString(); - widget.patientER.pickupLocationLongitude = + widget.patientER.dropoffLocationLongitude = _result.geometry.location.lng.toString(); - widget.patientER.dropoffLocationLattitude = + widget.patientER.pickupLocationLattitude = _selectedHospital.latitude; - widget.patientER.dropoffLocationLongitude = + widget.patientER.pickupLocationLongitude = _selectedHospital.longitude; } else { widget.patientER.pickupLocationLattitude = @@ -416,7 +417,7 @@ class _PickupLocationState extends State { widget.patientER.pickupLocationLattitude; widget.patientER.longitude = widget.patientER.pickupLocationLongitude; - widget.patientER.dropoffLocationName = _selectedHospital.name; + widget.patientER.dropoffLocationName = widget.patientER.direction == 0?_result.formattedAddress:_selectedHospital.name; widget.patientER.createdBy = widget.amRequestViewModel.user.patientID; widget.patientER.isOutPatient = @@ -425,7 +426,7 @@ class _PickupLocationState extends State { widget.amRequestViewModel.user.patientIdentificationNo; widget.patientER.pickupDateTime = DateUtil.convertDateToStringLocation(DateTime.now()); - widget.patientER.pickupLocationName = _result.formattedAddress; + widget.patientER.pickupLocationName = widget.patientER.direction == 0?_selectedHospital.name:_result.formattedAddress; widget.patientER.projectID = widget.amRequestViewModel.user.projectID; widget.patientER.requesterFileNo = diff --git a/lib/pages/MyAppointments/widgets/AppointmentActions.dart b/lib/pages/MyAppointments/widgets/AppointmentActions.dart index b335c740..4658f83b 100644 --- a/lib/pages/MyAppointments/widgets/AppointmentActions.dart +++ b/lib/pages/MyAppointments/widgets/AppointmentActions.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/core/model/labs/patient_lab_orders.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_enh.dart'; import 'package:diplomaticquarterapp/core/model/radiology/final_radiology.dart'; @@ -25,6 +26,7 @@ import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service 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/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -84,62 +86,62 @@ class _AppointmentActionsState extends State { onTap: () { _handleButtonClicks(e); }, - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Container( - // height: 100.0, - margin: EdgeInsets.all(7.0), - padding: EdgeInsets.only(bottom: 4.0), - decoration: BoxDecoration( - boxShadow: [ - BoxShadow( - color: Colors.grey[400], - blurRadius: 2.0, - spreadRadius: 0.0) + child: Container( + margin: EdgeInsets.all(8.0), + padding: EdgeInsets.only(bottom: 4.0), + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.grey[400], + blurRadius: 2.0, + spreadRadius: 0.0) + ], + borderRadius: BorderRadius.circular(10), + color: Colors.white), + child: Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + Container( + margin: + EdgeInsets.fromLTRB(5.0, 5.0, 5.0, 5.0), + child: Texts( + e.title, + color: Color(0xffB8382C), + variant: "overline", + fontSize: SizeConfig.textMultiplier * 2.1, + ), + ), + Container( + margin: + EdgeInsets.fromLTRB(5.0, 0.0, 5.0, 0.0), + child: Texts( + e.subtitle, + color: Colors.black, + variant: "overline", + fontSize: SizeConfig.textMultiplier * 1.9, + ), + ), ], - borderRadius: BorderRadius.circular(10), - color: Colors.white), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.max, - children: [ - Container( - margin: - EdgeInsets.fromLTRB(5.0, 5.0, 5.0, 0.0), - child: Text(e.title, - overflow: TextOverflow.clip, - style: TextStyle( - color: new Color(0xffB8382C), - letterSpacing: 1.0, - fontSize: 18.0)), - ), - Container( - margin: - EdgeInsets.fromLTRB(5.0, 0.0, 5.0, 0.0), - child: Text(e.subtitle, - overflow: TextOverflow.clip, - style: TextStyle( - color: Colors.black, - letterSpacing: 1.0, - fontSize: 15.0)), - ), - Container( - alignment: projectViewModel.isArabic - ? Alignment.bottomLeft - : Alignment.bottomRight, - margin: projectViewModel.isArabic - ? EdgeInsets.fromLTRB( - 10.0, 7.0, 0.0, 8.0) - : EdgeInsets.fromLTRB( - 0.0, 7.0, 10.0, 8.0), - child: Image.asset(e.icon, - width: 45.0, height: 45.0), - ), - ], + ), ), - ), - ], + Container( + alignment: projectViewModel.isArabic + ? Alignment.bottomLeft + : Alignment.bottomRight, + margin: projectViewModel.isArabic + ? EdgeInsets.fromLTRB( + 10.0, 7.0, 0.0, 8.0) + : EdgeInsets.fromLTRB( + 0.0, 7.0, 10.0, 8.0), + child: Image.asset(e.icon, + width: 40.0, height: 40.0), + ), + ], + ), ), )) .toList(), diff --git a/lib/pages/feedback/status_feedback_page.dart b/lib/pages/feedback/status_feedback_page.dart index 59d68fa2..e37f3138 100644 --- a/lib/pages/feedback/status_feedback_page.dart +++ b/lib/pages/feedback/status_feedback_page.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_mode import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.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:flutter/cupertino.dart'; @@ -100,6 +101,23 @@ class _StatusFeedbackPageState extends State { ), ), ), + bottomSheet: Container( + height: MediaQuery.of(context).size.height * 0.12, + width: double.infinity, + padding: EdgeInsets.all(15.0), + child: Center( + child: Container( + height: MediaQuery.of(context).size.height * 0.1, + child: SecondaryButton( + label: TranslationBase.of(context).search, + textColor: Colors.white, + disabled: true, + onTap: () { + }, + ), + ), + ), + ), ), ); } diff --git a/lib/pages/final_products_page.dart b/lib/pages/final_products_page.dart index 66969331..1d5e511b 100644 --- a/lib/pages/final_products_page.dart +++ b/lib/pages/final_products_page.dart @@ -1,4 +1,5 @@ import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart'; +import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy_module_page.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/product_detail.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; @@ -7,7 +8,8 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_pharmacy_widget import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; - +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter/src/widgets/image.dart' as flutterImage; import 'base/base_view.dart'; class FinalProductsPage extends StatefulWidget { @@ -124,7 +126,8 @@ class _FinalProductsPageState extends State { ), styleOne == true ? Expanded( - child: Container( + child:model.finalProducts.length > 0 + ? Container( height: MediaQuery.of(context).size.height * 3.90, child: GridView.builder( gridDelegate: @@ -355,10 +358,33 @@ class _FinalProductsPageState extends State { )); }, ), - ), - ) + ) + : Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: Alignment.center, + child: Image.asset( + 'assets/images/pharmacy/empty_box.png', + width: 100, + height: 100, + ), + ), + Text( + TranslationBase.of(context).noResult, + style: TextStyle( + fontSize: 20.0, +// fontWeight: FontWeight.bold, + ), + ), + ], + ), + ),) : Expanded( - child: Container( + child: model.finalProducts.length > 0 + ? Container( height: MediaQuery.of(context).size.height * 5.0, child: ListView.builder( itemCount: model.finalProducts.length, @@ -546,6 +572,29 @@ class _FinalProductsPageState extends State { }, ); }), + ) + : Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: Alignment.center, + child: Image.asset( + 'assets/images/pharmacy/empty_box.png', + width: 100, + height: 100, + ), + ), + Text( + TranslationBase.of(context).noResult, + style: TextStyle( + fontSize: 20.0, +// fontWeight: FontWeight.bold, + ), + ), + ], + ), ), ) ], diff --git a/lib/pages/medical/prescriptions/prescription_details_page.dart b/lib/pages/medical/prescriptions/prescription_details_page.dart index f40999c2..72e830cf 100644 --- a/lib/pages/medical/prescriptions/prescription_details_page.dart +++ b/lib/pages/medical/prescriptions/prescription_details_page.dart @@ -115,19 +115,20 @@ class PrescriptionDetailsPage extends StatelessWidget { children: [ Container( color: Colors.white, - height: 30, + height: 40, width: double.infinity, child: Center( child: Texts(TranslationBase.of(context).route, fontSize: 14,))), Container( color: Colors.white, - height: 30, + height: 40, width: double.infinity, child: Center( child: Texts(TranslationBase.of(context).frequency, fontSize: 14,))), Container( color: Colors.white, + height: 40, width: double.infinity, padding: EdgeInsets.symmetric(horizontal: 4), child: Center( @@ -135,7 +136,7 @@ class PrescriptionDetailsPage extends StatelessWidget { "${TranslationBase.of(context).dailyDoses}", fontSize: 14,))), Container( color: Colors.white, - height: 30, + height: 40, width: double.infinity, child: Center( child: diff --git a/lib/pages/packages_offers/OfferAndPackagesCartPage.dart b/lib/pages/packages_offers/OfferAndPackagesCartPage.dart index d39f726d..77d168ac 100644 --- a/lib/pages/packages_offers/OfferAndPackagesCartPage.dart +++ b/lib/pages/packages_offers/OfferAndPackagesCartPage.dart @@ -45,7 +45,8 @@ class PackagesCartPage extends StatefulWidget { _PackagesCartPageState createState() => _PackagesCartPageState(); } -class _PackagesCartPageState extends State with AfterLayoutMixin, SingleTickerProviderStateMixin { +class _PackagesCartPageState extends State + with AfterLayoutMixin, SingleTickerProviderStateMixin { getLanguageID() async { languageID = await sharedPref.getString(APP_LANGUAGE); } @@ -54,7 +55,8 @@ class _PackagesCartPageState extends State with AfterLayoutMix void initState() { _agreeTerms = false; _selectedPaymentMethod = null; - _animationController = AnimationController(vsync: this, duration: Duration(seconds: 500)); + _animationController = + AnimationController(vsync: this, duration: Duration(seconds: 500)); super.initState(); } @@ -77,20 +79,25 @@ class _PackagesCartPageState extends State with AfterLayoutMix Navigator.push(context, FadePage(page: PharmacyTermsConditions())); } - onPayNowClick() async{ - await viewModel.service.placeOrder(context: context,paymentOption: _selectedPaymentMethod.toUpperCase()).then((orderId){ - if(orderId.runtimeType == int){ // result == order_id + onPayNowClick() async { + await viewModel.service + .placeOrder( + context: context, + paymentOption: _selectedPaymentMethod.toUpperCase()) + .then((orderId) { + if (orderId.runtimeType == int) { + // result == order_id var browser = MyInAppBrowser( context: context, - onExitCallback: (data, isDone) => paymentClosed(orderId: orderId, withStatus: isDone, data: data) - ); - browser.openPackagesPaymentBrowser(customer_id: viewModel.service.customer.id, order_id: orderId); - - }else{ - utils.Utils.showErrorToast('Failed to place order, please try again later'); + onExitCallback: (data, isDone) => paymentClosed( + orderId: orderId, withStatus: isDone, data: data)); + browser.openPackagesPaymentBrowser( + customer_id: viewModel.service.customer.id, order_id: orderId); + } else { + utils.Utils.showErrorToast( + 'Failed to place order, please try again later'); } - - }).catchError((error){ + }).catchError((error) { utils.Utils.showErrorToast(error); }); } @@ -124,7 +131,6 @@ class _PackagesCartPageState extends State with AfterLayoutMix crossAxisCount: (_columnCount * _columnCount), itemCount: viewModel.cartItemList.length, itemBuilder: (BuildContext context, int index) { - var item = viewModel.cartItemList[index]; return Dismissible( key: Key(index.toString()), @@ -132,7 +138,9 @@ class _PackagesCartPageState extends State with AfterLayoutMix background: _cartItemDeleteContainer(), secondaryBackground: _cartItemDeleteContainer(), confirmDismiss: (direction) async { - bool status = await viewModel.service.deleteProductFromCart(item.id, context: context, showLoading: false); + bool status = await viewModel.service + .deleteProductFromCart(item.id, + context: context, showLoading: false); return status; }, onDismissed: (direction) { @@ -141,17 +149,23 @@ class _PackagesCartPageState extends State with AfterLayoutMix }, child: PackagesCartItemCard( itemModel: item, - shouldStepperChangeApply: (apply,total) async{ - var request = AddProductToCartRequestModel(product_id: item.productId, quantity: apply); - ResponseModel response = await viewModel.service.addProductToCart(request, context: context, showLoading: false).catchError((error){ + shouldStepperChangeApply: (apply, total) async { + var request = AddProductToCartRequestModel( + product_id: item.productId, + quantity: apply); + ResponseModel response = await viewModel + .service + .addProductToCart(request, + context: context, showLoading: false) + .catchError((error) { utils.Utils.showErrorToast(error); }); return response.status ?? false; }, - ) - ); + )); }, - staggeredTileBuilder: (int index) => StaggeredTile.fit(_columnCount), + staggeredTileBuilder: (int index) => + StaggeredTile.fit(_columnCount), mainAxisSpacing: 0, crossAxisSpacing: 10, )), @@ -164,25 +178,29 @@ class _PackagesCartPageState extends State with AfterLayoutMix color: Colors.white, child: Column( children: [ - Texts( - TranslationBase.of(context).selectPaymentOption, - fontSize: 10, - fontWeight: FontWeight.bold + Texts(TranslationBase.of(context).selectPaymentOption, + fontSize: 10, fontWeight: FontWeight.bold), + Container( + height: 0.25, + width: 100, + color: Colors.grey[300], ), - - Container(height: 0.25, width: 100, color: Colors.grey[300],), - _paymentOptions(context, (paymentMethod) { setState(() => _selectedPaymentMethod = paymentMethod); }), - - Container(height: 0.25, color: Colors.grey[300],), - - Container(height: 40, - child: _termsAndCondition(context, onSelected: onTermsClick, onInfoClick: onTermsInfoClick) + Container( + height: 0.25, + color: Colors.grey[300], + ), + Container( + height: 40, + child: _termsAndCondition(context, + onSelected: onTermsClick, + onInfoClick: onTermsInfoClick)), + Container( + height: 0.25, + color: Colors.grey[300], ), - - Container(height: 0.25, color: Colors.grey[300],), _payNow(context, onPayNowClick: onPayNowClick) ], ), @@ -195,19 +213,19 @@ class _PackagesCartPageState extends State with AfterLayoutMix fetchData() async { await viewModel.service.cartItems(context: context).catchError((error) {}); - setState((){}); + setState(() {}); } - paymentClosed({@required int orderId, @required bool withStatus, dynamic data}) async{ - viewModel.service.getOrderById(orderId, context: context).then((value){ + paymentClosed( + {@required int orderId, @required bool withStatus, dynamic data}) async { + viewModel.service.getOrderById(orderId, context: context).then((value) { var heading = withStatus ? "Success" : "Failed"; var title = "Your order has been placed successfully"; var subTitle = "Order# ${value.data.customOrderNumber}"; - Navigator.of(context).pushReplacement( - MaterialPageRoute(builder: (context) => PackageOrderCompletedPage(heading: heading, title: title, subTitle: subTitle)) - ); - - }).catchError((error){ + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => PackageOrderCompletedPage( + heading: heading, title: title, subTitle: subTitle))); + }).catchError((error) { debugPrint(error); }); } @@ -231,13 +249,13 @@ Widget _paymentOptions(BuildContext context, Function(String) onSelected) { ), ], borderRadius: BorderRadius.all(Radius.circular(5)), - border: Border.all(color: isSelected ? Colors.green : Colors.grey, width: isSelected ? 1 : 0.5) - ), + border: Border.all( + color: isSelected ? Colors.green : Colors.grey, + width: isSelected ? 1 : 0.5)), child: Padding( padding: const EdgeInsets.all(4), child: Image.asset('assets/images/new-design/$imageName'), - ) - ); + )); } return Padding( @@ -267,7 +285,8 @@ Widget _paymentOptions(BuildContext context, Function(String) onSelected) { width: 5, ), InkWell( - child: buttonContent(_selectedPaymentMethod == "mastercard", 'mastercard.png'), + child: buttonContent( + _selectedPaymentMethod == "mastercard", 'mastercard.png'), onTap: () { onSelected("mastercard"); }, @@ -276,7 +295,8 @@ Widget _paymentOptions(BuildContext context, Function(String) onSelected) { width: 5, ), InkWell( - child: buttonContent(_selectedPaymentMethod == "installment", 'installment.png'), + child: buttonContent( + _selectedPaymentMethod == "installment", 'installment.png'), onTap: () { onSelected("installment"); }, @@ -288,14 +308,17 @@ Widget _paymentOptions(BuildContext context, Function(String) onSelected) { } bool _agreeTerms = false; -Widget _termsAndCondition(BuildContext context, {@required Function(bool) onSelected, @required VoidCallback onInfoClick}) { +Widget _termsAndCondition(BuildContext context, + {@required Function(bool) onSelected, @required VoidCallback onInfoClick}) { return Padding( padding: const EdgeInsets.all(5), child: Row( children: [ InkWell( child: Icon( - _agreeTerms ? Icons.check_circle : Icons.radio_button_unchecked_sharp, + _agreeTerms + ? Icons.check_circle + : Icons.radio_button_unchecked_sharp, size: 20, color: _agreeTerms ? Colors.green[600] : Colors.grey[400], ), @@ -308,7 +331,8 @@ Widget _termsAndCondition(BuildContext context, {@required Function(bool) onSele padding: const EdgeInsets.symmetric(horizontal: 8), child: Texts( TranslationBase.of(context).pharmacyServiceTermsCondition, - fontWeight: FontWeight.normal, fontSize: 13, + fontWeight: FontWeight.normal, + fontSize: 13, ), )), InkWell( @@ -340,9 +364,18 @@ Widget _payNow(BuildContext context, {@required VoidCallback onPayNowClick}) { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Texts('${TranslationBase.of(context).subtotal}: ${'999.9'} ${TranslationBase.of(context).sar}', - heightFactor: 1.5, fontWeight: FontWeight.bold, color: Colors.grey, fontSize: 8), - Texts('${TranslationBase.of(context).vat}: ${'14.9'} ${TranslationBase.of(context).sar}', heightFactor: 1.5, fontWeight: FontWeight.bold, color: Colors.grey, fontSize: 8), + Texts( + '${TranslationBase.of(context).subtotal}: ${'999.9'} ${TranslationBase.of(context).sar}', + heightFactor: 1.5, + fontWeight: FontWeight.bold, + color: Colors.grey, + fontSize: 8), + Texts( + '${TranslationBase.of(context).vat}: ${'14.9'} ${TranslationBase.of(context).sar}', + heightFactor: 1.5, + fontWeight: FontWeight.bold, + color: Colors.grey, + fontSize: 8), Padding( padding: const EdgeInsets.all(3), child: Container( @@ -351,8 +384,12 @@ Widget _payNow(BuildContext context, {@required VoidCallback onPayNowClick}) { color: Colors.grey[300], ), ), - Texts('${TranslationBase.of(context).total}: 999.99 ${TranslationBase.of(context).sar}', - heightFactor: 1.5, fontWeight: FontWeight.bold, color: Colors.black54, fontSize: 15) + Texts( + '${TranslationBase.of(context).total}: 999.99 ${TranslationBase.of(context).sar}', + heightFactor: 1.5, + fontWeight: FontWeight.bold, + color: Colors.black54, + fontSize: 15) ], ), ), @@ -360,10 +397,15 @@ Widget _payNow(BuildContext context, {@required VoidCallback onPayNowClick}) { RaisedButton( child: Texts( TranslationBase.of(context).payNow, - fontSize: 15, color: Colors.white, fontWeight: FontWeight.bold, + fontSize: 15, + color: Colors.white, + fontWeight: FontWeight.bold, ), padding: EdgeInsets.only(top: 5, bottom: 5, left: 0, right: 0), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5), side: BorderSide(color: Theme.of(context).primaryColor, width: 0.5)), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + side: BorderSide( + color: Theme.of(context).primaryColor, width: 0.5)), color: Theme.of(context).primaryColor, onPressed: isPayNowAQctive ? onPayNowClick : null, ), @@ -381,23 +423,23 @@ Widget _cartItemDeleteContainer() { child: Padding( padding: const EdgeInsets.all(5), child: Container( - decoration: BoxDecoration( - color: Colors.red, - boxShadow: [ - BoxShadow( - color: Colors.grey[500], - blurRadius: 2, - spreadRadius: 1, - ), - ], - borderRadius: BorderRadius.all(Radius.circular(5)), + decoration: BoxDecoration( + color: Colors.red, + boxShadow: [ + BoxShadow( + color: Colors.grey[500], + blurRadius: 2, + spreadRadius: 1, + ), + ], + borderRadius: BorderRadius.all(Radius.circular(5)), ), child: Center( child: Texts( "Deleting...", - fontWeight: FontWeight.normal, - fontSize: 15, - color: Colors.white, + fontWeight: FontWeight.normal, + fontSize: 15, + color: Colors.white, )), ), ), diff --git a/lib/pages/pharmacies/product_detail.dart b/lib/pages/pharmacies/product_detail.dart index bef087a6..0abc38ef 100644 --- a/lib/pages/pharmacies/product_detail.dart +++ b/lib/pages/pharmacies/product_detail.dart @@ -716,32 +716,49 @@ class __ProductDetailPageState extends State { Container( child: Align( alignment: Alignment.topRight, - child: //true - itemID.contains(model.recommendedProductList[index].id) - // !isInWishlist - ? IconButton( - icon: Icon(Icons.favorite_border), - color: Colors.grey, - iconSize: 30, - onPressed: () { - setState(() { - addToWishlistFunction(itemID); - }); - }, - ) - : IconButton( - icon: Icon(Icons.favorite), - color: Colors.red, - iconSize: 30, - onPressed: () { - setState(() { - deleteFromWishlistFunction(itemID); - }); - }, - ) + child: IconButton( + icon: Icon(!isInWishlit + ? Icons.favorite_border + : Icons.favorite), + color: !isInWishlit ? Colors.grey : Colors.red, + onPressed: () async { + if (customerId != null) { + if (!isInWishlit) { + await addToWishlistFunction(model.recommendedProductList[index].id); + } else { + await deleteFromWishlistFunction(model.recommendedProductList[index].id); + } + } else { + return; + } + setState(() {}); + }, + )), +// itemID.contains(model.recommendedProductList[index].id) +// // !isInWishlist +// ? IconButton( +// icon: Icon(Icons.favorite_border), +// color: Colors.red, +// iconSize: 30, +// onPressed: () { +// setState(() { +// deleteFromWishlistFunction(itemID); +// }); +// }, +// ) +// : IconButton( +// icon: Icon(Icons.favorite), +// color: Colors.grey, +// iconSize: 30, +// onPressed: () { +// setState(() { +// addToWishlistFunction(itemID); +// }); +// }, +// ) // ), - ), + Container( margin: EdgeInsets.fromLTRB( 0, diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index f7b494fe..0995a5a1 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -635,6 +635,8 @@ class TranslationBase { localizedValues['AdvancePayment'][locale.languageCode]; String get advancePaymentLabel => localizedValues['AdvancePaymentLabel'][locale.languageCode]; + String get referralRequesterInformation => + localizedValues['referralRequesterInformation'][locale.languageCode]; String get fileNumber => localizedValues['FileNumber'][locale.languageCode]; String get amount => localizedValues['Amount'][locale.languageCode]; String get depositorEmail => @@ -801,6 +803,7 @@ class TranslationBase { String get orderDate => localizedValues['orderDate'][locale.languageCode]; String get itemsNo => localizedValues['itemsNo'][locale.languageCode]; String get noOrder => localizedValues['noOrder'][locale.languageCode]; + String get noResult => localizedValues['noResult'][locale.languageCode]; String get offersAndPromotions => localizedValues['offersAndPromotions'][locale.languageCode]; @@ -892,6 +895,7 @@ class TranslationBase { String get categorise => localizedValues['categorise'][locale.languageCode]; String get cart => localizedValues['cart'][locale.languageCode]; String get wishList => localizedValues['wishList'][locale.languageCode]; + String get Alhabibapp => localizedValues['Alhabibapp'][locale.languageCode]; String get searchProductHere => localizedValues['searchProductHere'][locale.languageCode]; String get email => localizedValues['email'][locale.languageCode]; @@ -1461,7 +1465,7 @@ class TranslationBase { String get systolicAdd => localizedValues["systolic-add"][locale.languageCode]; String get diastolicAdd => - localizedValues["systolic-add"][locale.languageCode]; + localizedValues["diastolic-add"][locale.languageCode]; String get cmcHeading => localizedValues["cmc-heading"][locale.languageCode]; String get selectLocation => localizedValues["select-location"][locale.languageCode]; @@ -1612,6 +1616,15 @@ class TranslationBase { String get enterFile => localizedValues["enter-file"][locale.languageCode]; String get allow => localizedValues["allow"][locale.languageCode]; String get reject => localizedValues["reject"][locale.languageCode]; + String get enterReferralRequesterName => + localizedValues["enterReferralRequesterName"][locale.languageCode]; + String get selectRelationship => + localizedValues["selectRelationship"][locale.languageCode]; + String get requesterRelationship => + localizedValues["requesterRelationship"][locale.languageCode]; + String get newReferral => localizedValues["newReferral"][locale.languageCode]; + String get searchForReferrals => + localizedValues["searchForReferrals"][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/widgets/data_display/medical/medical_profile_item.dart b/lib/widgets/data_display/medical/medical_profile_item.dart index 15a08218..c7e47dd9 100644 --- a/lib/widgets/data_display/medical/medical_profile_item.dart +++ b/lib/widgets/data_display/medical/medical_profile_item.dart @@ -23,7 +23,7 @@ class MedicalProfileItem extends StatelessWidget { Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return Container( - height: 180, + height: MediaQuery.of(context).size.height * 0.14, margin: EdgeInsets.all(5), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), diff --git a/lib/widgets/pharmacy/bottom_nav_pharmacy_bar.dart b/lib/widgets/pharmacy/bottom_nav_pharmacy_bar.dart index d9717c38..4921c1c5 100644 --- a/lib/widgets/pharmacy/bottom_nav_pharmacy_bar.dart +++ b/lib/widgets/pharmacy/bottom_nav_pharmacy_bar.dart @@ -41,6 +41,7 @@ class _BottomNavPharmacyBarState extends State { changeIndex: _changeIndex, index: widget.index, currentIndex: 0, + title: TranslationBase.of(context).Alhabibapp, ), Container( diff --git a/lib/widgets/pharmacy/bottom_nav_pharmacy_home_item.dart b/lib/widgets/pharmacy/bottom_nav_pharmacy_home_item.dart index a11b5418..2920b2c8 100644 --- a/lib/widgets/pharmacy/bottom_nav_pharmacy_home_item.dart +++ b/lib/widgets/pharmacy/bottom_nav_pharmacy_home_item.dart @@ -1,10 +1,13 @@ import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/Constants.dart'; class BottomNavHomeItem extends StatelessWidget { final IconData icon; final Image image; + final String title; final ValueChanged changeIndex; final int index; @@ -19,7 +22,8 @@ class BottomNavHomeItem extends StatelessWidget { this.currentIndex, this.activeIcon, this.onTap, - this.image}); + this.image, + this.title}); @override Widget build(BuildContext context) { @@ -61,7 +65,12 @@ class BottomNavHomeItem extends StatelessWidget { SizedBox( height: 11, ), - + Texts( + title, + textAlign: TextAlign.center, + color: currentIndex == index ? secondaryColor : Colors.grey, + fontSize: 11, + ), // Added TextAlign Property ], ),