changes & Null to Dynamic

dev_v3.13.6_voipcall
devamirsaleemahmad 2 years ago
parent 8544b3ce3d
commit 3f1ba19c64

@ -545,6 +545,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone"; PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
SWIFT_COMPILATION_MODE = singlefile; SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -727,6 +728,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone"; PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
SWIFT_COMPILATION_MODE = singlefile; SWIFT_COMPILATION_MODE = singlefile;
"SWIFT_COMPILATION_MODE[arch=*]" = singlefile; "SWIFT_COMPILATION_MODE[arch=*]" = singlefile;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";

@ -621,7 +621,7 @@ class AppGlobal {
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
static bool isNetworkDebugEnabled = false; static bool isNetworkDebugEnabled = true;
static String appLanguage = ""; static String appLanguage = "";
Request getPublicRequest() { Request getPublicRequest() {

@ -7,7 +7,7 @@ class CheckActivationCodeForEReferralResponseModel {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;

@ -5,7 +5,7 @@ class GetAllCitiesRequestModel {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;

@ -1,11 +1,11 @@
class GetAllProjectsResponseModel { class GetAllProjectsResponseModel {
String? desciption; String? desciption;
Null desciptionN; dynamic desciptionN;
int? iD; int? iD;
String? legalName; String? legalName;
String? legalNameN; String? legalNameN;
String? name; String? name;
Null nameN; dynamic nameN;
String? phoneNumber; String? phoneNumber;
String? setupID; String? setupID;
int? distanceInKilometers; int? distanceInKilometers;
@ -13,7 +13,7 @@ class GetAllProjectsResponseModel {
String? latitude; String? latitude;
String? longitude; String? longitude;
int? mainProjectID; int? mainProjectID;
Null projectOutSA; dynamic projectOutSA;
bool? usingInDoctorApp; bool? usingInDoctorApp;
GetAllProjectsResponseModel( GetAllProjectsResponseModel(

@ -5,7 +5,7 @@ class GetAllRelationshipTypeRequestModel {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;

@ -6,7 +6,7 @@ class SearchEReferralRequestModel {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;
int? referralNumber; int? referralNumber;

@ -7,7 +7,7 @@ class SendActivationCodeForEReferralRequestModel {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;

@ -10,8 +10,8 @@ class ClinicCategory {
String? fullmageAR; String? fullmageAR;
bool? isActive; bool? isActive;
bool? isCategoryGroup; bool? isCategoryGroup;
Null sortOrderAR; dynamic sortOrderAR;
Null sortOrderEN; dynamic sortOrderEN;
String? clinicName; String? clinicName;
ClinicCategory( ClinicCategory(

@ -3,10 +3,10 @@ class DiseasesByClinic {
String? diseasesEN; String? diseasesEN;
String? diseasesAR; String? diseasesAR;
int? diseasesCategoryID; int? diseasesCategoryID;
Null diseasesCategoryEN; dynamic diseasesCategoryEN;
Null diseasesCategoryAR; dynamic diseasesCategoryAR;
String? diseases; String? diseases;
Null diseasesCategory; dynamic diseasesCategory;
DiseasesByClinic( DiseasesByClinic(
{this.diseasesID, {this.diseasesID,

@ -1,42 +1,42 @@
class CreateNewUser_New { class CreateNewUser_New {
Null date; dynamic date;
int? languageID; int? languageID;
int? serviceName; int? serviceName;
Null time; dynamic time;
Null androidLink; dynamic androidLink;
Null authenticationTokenID; dynamic authenticationTokenID;
Null data; dynamic data;
bool? dataw; bool? dataw;
int? dietType; int? dietType;
Null errorCode; dynamic errorCode;
Null errorEndUserMessage; dynamic errorEndUserMessage;
Null errorEndUserMessageN; dynamic errorEndUserMessageN;
Null errorMessage; dynamic errorMessage;
int? errorType; int? errorType;
int? foodCategory; int? foodCategory;
Null iOSLink; dynamic iOSLink;
bool? isAuthenticated; bool? isAuthenticated;
int? mealOrderStatus; int? mealOrderStatus;
int? mealType; int? mealType;
int? messageStatus; int? messageStatus;
int? numberOfResultRecords; int? numberOfResultRecords;
Null patientBlodType; dynamic patientBlodType;
Null successMsg; dynamic successMsg;
Null successMsgN; dynamic successMsgN;
Null htmlResult; dynamic htmlResult;
bool? isHMGPatient; bool? isHMGPatient;
bool? isRegister; bool? isRegister;
bool? isSendSMS; bool? isSendSMS;
Null listBabyInformationModel; dynamic listBabyInformationModel;
Null listBabyNeedReminderModel; dynamic listBabyNeedReminderModel;
Null listCreateVaccinationTableModel; dynamic listCreateVaccinationTableModel;
Null listHisPatientModel; dynamic listHisPatientModel;
Null listUserInformationModel; dynamic listUserInformationModel;
Null listUserInformationModelNew; dynamic listUserInformationModelNew;
Null listVaccinationTableModel; dynamic listVaccinationTableModel;
Null tokinID; dynamic tokinID;
int? userID; int? userID;
Null verificationCode; dynamic verificationCode;
CreateNewUser_New( CreateNewUser_New(
{this.date, {this.date,

@ -1,34 +1,34 @@
class DoctorProfile { class DoctorProfile {
int? doctorID; int? doctorID;
String? doctorName; String? doctorName;
Null doctorNameN; dynamic doctorNameN;
int? clinicID; int? clinicID;
String? clinicDescription; String? clinicDescription;
Null clinicDescriptionN; dynamic clinicDescriptionN;
Null licenseExpiry; dynamic licenseExpiry;
int? employmentType; int? employmentType;
Null setupID; dynamic setupID;
int? projectID; int? projectID;
String? projectName; String? projectName;
String? nationalityID; String? nationalityID;
String? nationalityName; String? nationalityName;
Null nationalityNameN; dynamic nationalityNameN;
int? gender; int? gender;
String? genderDescription; String? genderDescription;
Null genderDescriptionN; dynamic genderDescriptionN;
Null doctorTitle; dynamic doctorTitle;
Null projectNameN; dynamic projectNameN;
bool? isAllowWaitList; bool? isAllowWaitList;
String? titleDescription; String? titleDescription;
Null titleDescriptionN; dynamic titleDescriptionN;
Null isRegistered; dynamic isRegistered;
Null isDoctorDummy; dynamic isDoctorDummy;
bool? isActive; bool? isActive;
Null isDoctorAppointmentDisplayed; dynamic isDoctorAppointmentDisplayed;
bool? doctorClinicActive; bool? doctorClinicActive;
Null isbookingAllowed; dynamic isbookingAllowed;
String? doctorCases; String? doctorCases;
Null doctorPicture; dynamic doctorPicture;
String? doctorProfileInfo; String? doctorProfileInfo;
List<String>? specialty; List<String>? specialty;
int? actualDoctorRate; int? actualDoctorRate;

@ -1,6 +1,6 @@
class DoctorRating { class DoctorRating {
Null projectID; dynamic projectID;
Null clinicID; dynamic clinicID;
int? doctorID; int? doctorID;
int? patientNumber; int? patientNumber;
int? doctorRate; int? doctorRate;

@ -5,7 +5,7 @@ class AppoimentAllHistoryResultList {
int? projectID; int? projectID;
int? appointmentNo; int? appointmentNo;
String? appointmentDate; String? appointmentDate;
Null appointmentDateN; dynamic appointmentDateN;
int? appointmentType; int? appointmentType;
DateTime? bookDate; DateTime? bookDate;
dynamic patientType; dynamic patientType;
@ -26,14 +26,14 @@ class AppoimentAllHistoryResultList {
String? confirmedOn; String? confirmedOn;
int? arrivalChangedBy; int? arrivalChangedBy;
String? arrivedOn; String? arrivedOn;
Null editedBy; dynamic editedBy;
Null editedOn; dynamic editedOn;
Null doctorName; dynamic doctorName;
Null doctorNameN; dynamic doctorNameN;
String? statusDesc; String? statusDesc;
Null statusDescN; dynamic statusDescN;
bool? vitalStatus; bool? vitalStatus;
Null vitalSignAppointmentNo; dynamic vitalSignAppointmentNo;
int? episodeID; int? episodeID;
int? actualDoctorRate; int? actualDoctorRate;
String? clinicName; String? clinicName;

@ -1,5 +1,5 @@
class COCItem { class COCItem {
Null appointment; dynamic appointment;
String? appointmentClinicName; String? appointmentClinicName;
String? appointmentDate; String? appointmentDate;
String? appointmentProjectName; String? appointmentProjectName;

@ -4,13 +4,13 @@ class PatientLabOrders {
int? actualDoctorRate; int? actualDoctorRate;
String? clinicDescription; String? clinicDescription;
String? clinicDescriptionEnglish; String? clinicDescriptionEnglish;
Null clinicDescriptionN; dynamic clinicDescriptionN;
int? clinicID; int? clinicID;
int? doctorID; int? doctorID;
String? doctorImageURL; String? doctorImageURL;
String? doctorName; String? doctorName;
String? doctorNameEnglish; String? doctorNameEnglish;
Null doctorNameN; dynamic doctorNameN;
int? doctorRate; int? doctorRate;
String ?doctorTitle; String ?doctorTitle;
int? gender; int? gender;
@ -31,7 +31,7 @@ class PatientLabOrders {
String? patientID; String? patientID;
String? projectID; String? projectID;
String? projectName; String? projectName;
Null projectNameN; dynamic projectNameN;
String? qR; String? qR;
String? setupID; String? setupID;
List<String>? speciality; List<String>? speciality;

@ -5,18 +5,18 @@ class PatientInfoAndMobileNumber {
int? patientType; int? patientType;
int? patientID; int? patientID;
String? firstName; String? firstName;
Null middleName; dynamic middleName;
Null lastName; dynamic lastName;
Null firstNameN; dynamic firstNameN;
Null middleNameN; dynamic middleNameN;
Null lastNameN; dynamic lastNameN;
Null gender; dynamic gender;
Null dateofBirth; dynamic dateofBirth;
Null dateofBirthN; dynamic dateofBirthN;
Null nationalityID; dynamic nationalityID;
String? mobileNumber; String? mobileNumber;
String? emailAddress; String? emailAddress;
Null zipCode; dynamic zipCode;
PatientInfoAndMobileNumber( PatientInfoAndMobileNumber(
{this.setupID, {this.setupID,

@ -16,7 +16,7 @@ class Reviews {
int? helpfulNoTotal; int? helpfulNoTotal;
String? createdOnUtc; String? createdOnUtc;
Customer? customer; Customer? customer;
//Null product; //dynamic product;
Reviews( Reviews(
{this.id, {this.id,

@ -4,7 +4,7 @@ import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart'
class ShoppingCart { class ShoppingCart {
int? languageId; int? languageId;
String? id; String? id;
// List<Null> productAttributes; // List<dynamic> productAttributes;
double? customerEnteredPrice; double? customerEnteredPrice;
int? quantity; int? quantity;
dynamic discountAmountInclTax; dynamic discountAmountInclTax;
@ -74,9 +74,9 @@ class ShoppingCart {
languageId = json['language_id']; languageId = json['language_id'];
id = json['id']; id = json['id'];
/*if (json['product_attributes'] != null) { /*if (json['product_attributes'] != null) {
productAttributes = new List<Null>(); productAttributes = new List<dynamic>();
json['product_attributes'].forEach((v) { json['product_attributes'].forEach((v) {
productAttributes.add(new Null.fromJson(v)); productAttributes.add(new dynamic.fromJson(v));
}); });
}*/ }*/
customerEnteredPrice = json['customer_entered_price']; customerEnteredPrice = json['customer_entered_price'];

@ -57,7 +57,7 @@ class RecommendedProductModel {
bool? allowBackInStockSubscriptions; bool? allowBackInStockSubscriptions;
dynamic orderMinimumQuantity; dynamic orderMinimumQuantity;
dynamic orderMaximumQuantity; dynamic orderMaximumQuantity;
// Null allowedQuantities; // dynamic allowedQuantities;
bool? allowAddingOnlyExistingAttributeCombinations; bool? allowAddingOnlyExistingAttributeCombinations;
bool? disableBuyButton; bool? disableBuyButton;
bool? disableWishlistButton; bool? disableWishlistButton;
@ -336,28 +336,28 @@ class RecommendedProductModel {
productType = json['product_type']; productType = json['product_type'];
parentGroupedProductId = json['parent_grouped_product_id']; parentGroupedProductId = json['parent_grouped_product_id'];
// if (json['role_ids'] != null) { // if (json['role_ids'] != null) {
// roleIds = new List<Null>(); // roleIds = new List<dynamic>();
// json['role_ids'].forEach((v) { // json['role_ids'].forEach((v) {
// roleIds.add(new Null.fromJson(v)); // roleIds.add(new dynamic.fromJson(v));
// }); // });
// } // }
// if (json['discount_ids'] != null) { // if (json['discount_ids'] != null) {
// discountIds = new List<Null>(); // discountIds = new List<dynamic>();
// json['discount_ids'].forEach((v) { // json['discount_ids'].forEach((v) {
// discountIds.add(new Null.fromJson(v)); // discountIds.add(new dynamic.fromJson(v));
// }); // });
// } // }
// if (json['store_ids'] != null) { // if (json['store_ids'] != null) {
// storeIds = new List<Null>(); // storeIds = new List<dynamic>();
// json['store_ids'].forEach((v) { // json['store_ids'].forEach((v) {
// storeIds.add(new Null.fromJson(v)); // storeIds.add(new dynamic.fromJson(v));
// }); // });
// } // }
manufacturerIds = json['manufacturer_ids'].cast<dynamic>(); manufacturerIds = json['manufacturer_ids'].cast<dynamic>();
// if (json['reviews'] != null) { // if (json['reviews'] != null) {
// reviews = new List<Null>(); // reviews = new List<dynamic>();
// json['reviews'].forEach((v) { // json['reviews'].forEach((v) {
// reviews.add(new Null.fromJson(v)); // reviews.add(new dynamic.fromJson(v));
// }); // });
// } // }
if (json['images'] != null) { if (json['images'] != null) {
@ -367,9 +367,9 @@ class RecommendedProductModel {
}); });
} }
// if (json['attributes'] != null) { // if (json['attributes'] != null) {
// attributes = new List<Null>(); // attributes = new List<dynamic>();
// json['attributes'].forEach((v) { // json['attributes'].forEach((v) {
// attributes.add(new Null.fromJson(v)); // attributes.add(new dynamic.fromJson(v));
// }); // });
// } // }
if (json['specifications'] != null) { if (json['specifications'] != null) {
@ -379,15 +379,15 @@ class RecommendedProductModel {
}); });
} }
// if (json['associated_product_ids'] != null) { // if (json['associated_product_ids'] != null) {
// associatedProductIds = new List<Null>(); // associatedProductIds = new List<dynamic>();
// json['associated_product_ids'].forEach((v) { // json['associated_product_ids'].forEach((v) {
// associatedProductIds.add(new Null.fromJson(v)); // associatedProductIds.add(new dynamic.fromJson(v));
// }); // });
// } // }
// if (json['tags'] != null) { // if (json['tags'] != null) {
// tags = new List<Null>(); // tags = new List<dynamic>();
// json['tags'].forEach((v) { // json['tags'].forEach((v) {
// tags.add(new Null.fromJson(v)); // tags.add(new dynamic.fromJson(v));
// }); // });
// } // }
vendorId = json['vendor_id']; vendorId = json['vendor_id'];

@ -2,7 +2,7 @@ class BrandsModel {
String? id; String? id;
String? name; String? name;
String? namen; String? namen;
Null image; dynamic image;
BrandsModel({this.id, this.name, this.namen, this.image}); BrandsModel({this.id, this.name, this.namen, this.image});

@ -3,7 +3,7 @@ class OffersModel {
String? name; String? name;
String? namen; String? namen;
List<LocalizedNames>? localizedNames; List<LocalizedNames>? localizedNames;
Null description; dynamic description;
int? categoryTemplateId; int? categoryTemplateId;
String? metaKeywords; String? metaKeywords;
String? metaDescription; String? metaDescription;
@ -11,10 +11,10 @@ class OffersModel {
int? parentCategoryId; int? parentCategoryId;
int? pageSize; int? pageSize;
String? pageSizeOptions; String? pageSizeOptions;
Null priceRanges; dynamic priceRanges;
bool? showOnHomePage; bool? showOnHomePage;
bool? includeInTopMenu; bool? includeInTopMenu;
Null hasDiscountsApplied; dynamic hasDiscountsApplied;
bool? published; bool? published;
bool? deleted; bool? deleted;
int? displayOrder; int? displayOrder;
@ -154,8 +154,8 @@ class LocalizedNames {
class Image { class Image {
String? src; String? src;
Null thumb; dynamic thumb;
Null attachment; dynamic attachment;
Image({this.src, this.thumb, this.attachment}); Image({this.src, this.thumb, this.attachment});

@ -72,8 +72,8 @@ class LocalizedNames {
class Image { class Image {
String? src; String? src;
Null thumb; dynamic thumb;
Null attachment; dynamic attachment;
Image({this.src, this.thumb, this.attachment}); Image({this.src, this.thumb, this.attachment});

@ -9,11 +9,11 @@ class PharmacyPrescriptions {
String? locationDescription; String? locationDescription;
dynamic locationDescriptionN; dynamic locationDescriptionN;
String? itemDescription; String? itemDescription;
Null itemDescriptionN; dynamic itemDescriptionN;
String? alias; String? alias;
int? locationTypeID; int? locationTypeID;
int? barcode; int? barcode;
Null companybarcode; dynamic companybarcode;
int? cityID; int? cityID;
String? cityName; String? cityName;
dynamic distanceInKilometers; dynamic distanceInKilometers;
@ -22,7 +22,7 @@ class PharmacyPrescriptions {
String? longitude; String? longitude;
String? phoneNumber; String? phoneNumber;
String? projectImageURL; String? projectImageURL;
Null sortOrder; dynamic sortOrder;
PharmacyPrescriptions( PharmacyPrescriptions(
{this.expiryDate, {this.expiryDate,

@ -2,16 +2,16 @@ class PrescriptionReportEnh {
String? address; String? address;
int? appointmentNo; int? appointmentNo;
String? clinic; String? clinic;
Null companyName; dynamic companyName;
int? days; int? days;
String? doctorName; String? doctorName;
num? doseDailyQuantity; num? doseDailyQuantity;
String? frequency; String? frequency;
int? frequencyNumber; int? frequencyNumber;
Null image; dynamic image;
Null imageExtension; dynamic imageExtension;
String? imageSRCUrl; String? imageSRCUrl;
Null imageString; dynamic imageString;
String? imageThumbUrl; String? imageThumbUrl;
String? isCovered; String? isCovered;
String? itemDescription; String? itemDescription;
@ -21,10 +21,10 @@ class PrescriptionReportEnh {
int? patientID; int? patientID;
String? patientName; String? patientName;
String? phoneOffice1; String? phoneOffice1;
Null prescriptionQR; dynamic prescriptionQR;
num? prescriptionTimes; num? prescriptionTimes;
Null productImage; dynamic productImage;
Null productImageBase64; dynamic productImageBase64;
String? productImageString; String? productImageString;
int? projectID; int? projectID;
String? projectName; String? projectName;

@ -20,7 +20,7 @@ class PrescriptionReportINP {
String? orderDate; String? orderDate;
int? doseDailyQuantity; int? doseDailyQuantity;
int? itemID; int? itemID;
Null productImage; dynamic productImage;
String? sKU; String? sKU;
String? itemDescriptionN; String? itemDescriptionN;
String? routeN; String? routeN;

@ -1,11 +1,11 @@
class QRParkingModel { class QRParkingModel {
Null totalRecords; dynamic totalRecords;
Null nRowID; dynamic nRowID;
int? qRParkingID; int? qRParkingID;
String? description; String? description;
String? descriptionN; String? descriptionN;
Null qRCompare; dynamic qRCompare;
Null qRValue; dynamic qRValue;
String? imagePath; String? imagePath;
bool? isActive; bool? isActive;
int? parkingID; int? parkingID;
@ -15,11 +15,11 @@ class QRParkingModel {
int? rowID; int? rowID;
int? gateID; int? gateID;
int? floorID; int? floorID;
Null imagePath1; dynamic imagePath1;
int? createdBy; int? createdBy;
String? createdOn; String? createdOn;
Null editedBy; dynamic editedBy;
Null editedOn; dynamic editedOn;
String? parkingDescription; String? parkingDescription;
String? parkingDescriptionN; String? parkingDescriptionN;
String? gateDescription; String? gateDescription;

@ -14,7 +14,7 @@ class FinalRadiology {
String? imageURL; String? imageURL;
String? procedureID; String? procedureID;
int? appointmentNo; int? appointmentNo;
Null dIAPacsURL; dynamic dIAPacsURL;
bool? isRead; bool? isRead;
String? readOn; String? readOn;
var admissionNo; var admissionNo;

@ -26,12 +26,12 @@ class AppoitmentRated {
String? arrivedOn; String? arrivedOn;
int? editedBy; int? editedBy;
String? editedOn; String? editedOn;
Null doctorName; dynamic doctorName;
String? doctorNameN; String? doctorNameN;
String? statusDesc; String? statusDesc;
String? statusDescN; String? statusDescN;
bool? vitalStatus; bool? vitalStatus;
Null vitalSignAppointmentNo; dynamic vitalSignAppointmentNo;
int? episodeID; int? episodeID;
String? doctorTitle; String? doctorTitle;
bool? isAppoitmentLiveCare; bool? isAppoitmentLiveCare;

@ -19,7 +19,7 @@ class Reports {
String? clinicDescription; String? clinicDescription;
dynamic clinicDescriptionN; dynamic clinicDescriptionN;
String? docName; String? docName;
Null docNameN; dynamic docNameN;
String? doctorImageURL; String? doctorImageURL;
dynamic doctorName; dynamic doctorName;
dynamic doctorNameN; dynamic doctorNameN;

@ -28,7 +28,7 @@ class SickLeave {
String? isInOutPatientDescription; String? isInOutPatientDescription;
String? isInOutPatientDescriptionN; String? isInOutPatientDescriptionN;
int? noOfPatientsRate; int? noOfPatientsRate;
Null patientName; dynamic patientName;
String? projectName; String? projectName;
String? qR; String? qR;
List<String>? speciality; List<String>? speciality;

@ -1,34 +1,34 @@
class WeatherIndicatorModel { class WeatherIndicatorModel {
Null date; dynamic date;
int? languageID; int? languageID;
int? serviceName; int? serviceName;
Null time; dynamic time;
Null androidLink; dynamic androidLink;
Null authenticationTokenID; dynamic authenticationTokenID;
Null data; dynamic data;
bool? dataw; bool? dataw;
int? dietType; int? dietType;
Null errorCode; dynamic errorCode;
Null errorEndUserMessage; dynamic errorEndUserMessage;
Null errorEndUserMessageN; dynamic errorEndUserMessageN;
Null errorMessage; dynamic errorMessage;
int? errorType; int? errorType;
int? foodCategory; int? foodCategory;
Null iOSLink; dynamic iOSLink;
bool? isAuthenticated; bool? isAuthenticated;
int? mealOrderStatus; int? mealOrderStatus;
int? mealType; int? mealType;
int? messageStatus; int? messageStatus;
int? numberOfResultRecords; int? numberOfResultRecords;
Null patientBlodType; dynamic patientBlodType;
Null successMsg; dynamic successMsg;
Null successMsgN; dynamic successMsgN;
Null citiesList; dynamic citiesList;
Null cityName; dynamic cityName;
Null get5DaysWeatherForecastList; dynamic get5DaysWeatherForecastList;
List<GetCityInfoList>? getCityInfoList; List<GetCityInfoList>? getCityInfoList;
Null getTodayWeatherForecastList; dynamic getTodayWeatherForecastList;
Null iniciesList; dynamic iniciesList;
WeatherIndicatorModel( WeatherIndicatorModel(
{this.date, {this.date,

@ -3,7 +3,7 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
class AuthenticatedUserObject { class AuthenticatedUserObject {
AuthenticatedUser? user; AuthenticatedUser user = AuthenticatedUser();
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
bool isLogin = false; bool isLogin = false;
@ -11,20 +11,24 @@ class AuthenticatedUserObject {
getUser(); getUser();
} }
getUser({bool getUser = false}) async { Future<void> getUser({bool getUser = false}) async {
if (getUser) { if (getUser) {
var userData; var userData = await sharedPref.getObject(USER_PROFILE);
await sharedPref.getObject(USER_PROFILE).then((value) { if (userData != null) {
userData = value; user = AuthenticatedUser.fromJson(userData);
}); }
if (userData != null) user = AuthenticatedUser.fromJson(userData);
} else if (user == null) { } else if (user == null) {
var userData = await sharedPref.getObject(USER_PROFILE); var userData = await sharedPref.getObject(USER_PROFILE);
if (userData != null) user = AuthenticatedUser.fromJson(userData); if (userData != null) {
// user = AuthenticatedUser.fromJson(userData);
user = AuthenticatedUser(
patientID: 1,
);
}
} }
} }
logout() async { void logout() {
isLogin = false; isLogin = false;
} }
} }

@ -18,7 +18,7 @@ class BaseService {
BaseService() { BaseService() {
authenticatedUserObject.getUser(); authenticatedUserObject.getUser();
user = authenticatedUserObject.user!; user = authenticatedUserObject.user;
// getUser(); // getUser();
} }

@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart'; import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart';
import 'package:diplomaticquarterapp/core/service/packages_offers/PackagesOffersServices.dart'; import 'package:diplomaticquarterapp/core/service/packages_offers/PackagesOffersServices.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/main.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/pages/appUpdatePage/app_update_page.dart'; import 'package:diplomaticquarterapp/pages/appUpdatePage/app_update_page.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
@ -58,7 +59,7 @@ class BaseAppClient {
var user = await sharedPref.getObject(USER_PROFILE); var user = await sharedPref.getObject(USER_PROFILE);
Map<String, String> headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}; Map<String, String> headers = {'Content-Type': 'application/json', 'Accept': 'application/json'};
if (!isExternal) { if (!isExternal) {
String token = await sharedPref.getString(TOKEN); var token = await sharedPref.getString(TOKEN);
var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
if (endPoint == SEND_ACTIVATION_CODE) { if (endPoint == SEND_ACTIVATION_CODE) {
languageID = 'en'; languageID = 'en';

@ -120,7 +120,7 @@ class InsuranceCardService extends BaseService {
sharedPref.setObject(FAMILY_FILE, localRes); sharedPref.setObject(FAMILY_FILE, localRes);
getAllSharedRecordsByStatusResponse = GetAllSharedRecordsByStatusResponse.fromJson(localRes); getAllSharedRecordsByStatusResponse = GetAllSharedRecordsByStatusResponse.fromJson(localRes);
} catch (error) { } catch (error) {
print(error); print("------------"+error.toString());
throw error; throw error;
} }
} }

@ -2,27 +2,35 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/privilege/PrivilegeModel.dart'; import 'package:diplomaticquarterapp/core/model/privilege/PrivilegeModel.dart';
import 'package:diplomaticquarterapp/core/model/privilege/VidaPlusProjectListModel.dart'; import 'package:diplomaticquarterapp/core/model/privilege/VidaPlusProjectListModel.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/main.dart';
class PrivilegeService extends BaseService { class PrivilegeService extends BaseService {
List<PrivilegeModel> privilegeModelList =[]; List<PrivilegeModel> privilegeModelList = [];
List<VidaPlusProjectListModel> vidaPlusProjectListModel =[]; List<VidaPlusProjectListModel> vidaPlusProjectListModel = [];
Future getPrivilege() async { Future getPrivilege() async {
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
body['PatientType'] = 4; body['PatientType'] = 4;
await baseAppClient.post(GET_PRIVILEGE, onSuccess: (dynamic response, int statusCode) { await baseAppClient.post(
response['ServicePrivilegeList'].forEach((item) { GET_PRIVILEGE,
privilegeModelList.add(PrivilegeModel.fromJson(item)); onSuccess: (dynamic response, int statusCode) {
}); response['ServicePrivilegeList'].forEach((item) {
privilegeModelList.add(PrivilegeModel.fromJson(item));
if (response['ProjectListVidaPlus'].length != 0) {
response['ProjectListVidaPlus'].forEach((item) {
vidaPlusProjectListModel.add(VidaPlusProjectListModel.fromJson(item));
}); });
}
}, onFailure: (String error, int statusCode) { if (response['ProjectListVidaPlus'].length != 0) {
hasError = true; response['ProjectListVidaPlus'].forEach((item) {
super.error = error; vidaPlusProjectListModel.add(VidaPlusProjectListModel.fromJson(item));
}, body: body); });
}
},
onFailure: (String error, int statusCode) {
print(error);
print(statusCode);
hasError = true;
super.error = error;
},
body: body,
);
} }
} }

@ -58,7 +58,7 @@ class Addresses {
dynamic company; dynamic company;
int? countryId; int? countryId;
String? country; String? country;
Null stateProvinceId; dynamic stateProvinceId;
String? city; String? city;
String? address1; String? address1;
String? address2; String? address2;

@ -17,7 +17,7 @@ class BaseViewModel extends ChangeNotifier {
String error = ""; String error = "";
String languageID = "en"; String languageID = "en";
AuthenticatedUser? user; late AuthenticatedUser user;
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>(); AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
@ -36,7 +36,7 @@ class BaseViewModel extends ChangeNotifier {
BaseViewModel() { BaseViewModel() {
//authenticatedUserObject.getUser(); //authenticatedUserObject.getUser();
user = authenticatedUserObject.user; user = authenticatedUserObject.user!;
this.isLogin = authenticatedUserObject.isLogin; this.isLogin = authenticatedUserObject.isLogin;
} }

@ -1,8 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'package:connectivity/connectivity.dart'; import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/analytics/google-analytics.dart';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/privilege/PrivilegeModel.dart'; import 'package:diplomaticquarterapp/core/model/privilege/PrivilegeModel.dart';
import 'package:diplomaticquarterapp/core/model/privilege/VidaPlusProjectListModel.dart'; import 'package:diplomaticquarterapp/core/model/privilege/VidaPlusProjectListModel.dart';
@ -15,7 +14,7 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter_datetime_picker_plus/flutter_datetime_picker_plus.dart'; import 'package:flutter_datetime_picker_plus/flutter_datetime_picker_plus.dart';
var isAppArabic = false; bool isAppArabic = false;
class ProjectViewModel extends BaseViewModel { class ProjectViewModel extends BaseViewModel {
GAnalytics get analytics => locator<GAnalytics>(); GAnalytics get analytics => locator<GAnalytics>();
@ -35,18 +34,10 @@ class ProjectViewModel extends BaseViewModel {
String error = ''; String error = '';
dynamic searchvalue; dynamic searchvalue;
bool isLogin = false; bool isLogin = false;
int? laserSelectionDuration;
double? _latitude; RegisterInfoResponse _registerInfo = RegisterInfoResponse();
double? _longitude;
RegisterInfoResponse? _registerInfo = RegisterInfoResponse(); RegisterInfoResponse get registerInfo => _registerInfo;
double get latitude => _latitude!;
double get longitude => _longitude!;
RegisterInfoResponse get registerInfo => _registerInfo!;
dynamic get searchValue => searchvalue; dynamic get searchValue => searchvalue;
@ -57,47 +48,52 @@ class ProjectViewModel extends BaseViewModel {
bool get isArabic => _isArabic; bool get isArabic => _isArabic;
bool isLoginChild = false; bool isLoginChild = false;
List<PrivilegeModel> privilegeRootUser =[]; List<PrivilegeModel> privilegeRootUser = [];
List<PrivilegeModel> privilegeChildUser =[]; List<PrivilegeModel> privilegeChildUser = [];
List<VidaPlusProjectListModel> _vidaPlusProjectListModel =[]; List<VidaPlusProjectListModel> _vidaPlusProjectListModel = [];
List<VidaPlusProjectListModel> get vidaPlusProjectList => _vidaPlusProjectListModel;
List<LaserBodyPart> selectedBodyPartList = [];
List<PrivilegeModel> get privileges => isLoginChild ? privilegeChildUser : privilegeChildUser; List<PrivilegeModel> get privileges => isLoginChild ? privilegeChildUser : privilegeChildUser;
List<VidaPlusProjectListModel> get vidaPlusProjectList => _vidaPlusProjectListModel; late StreamSubscription subscription;
List<LaserBodyPart> selectedBodyPartList = []; late double _latitude;
late double _longitude;
double get latitude => _latitude;
StreamSubscription? subscription; double get longitude => _longitude;
late int laserSelectionDuration;
ProjectViewModel() { ProjectViewModel() {
loadSharedPrefLanguage(); try {
subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { loadSharedPrefLanguage();
switch (result) { subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
case ConnectivityResult.wifi: if (result == ConnectivityResult.mobile) {
isInternetConnection = true;
break;
case ConnectivityResult.mobile:
isInternetConnection = true; isInternetConnection = true;
break; } else if (result == ConnectivityResult.wifi) {
case ConnectivityResult.none: } else if (result == ConnectivityResult.none) {
isInternetConnection = false; isInternetConnection = false;
break; }
} notifyListeners();
notifyListeners(); });
}); } catch (e) {
} print(e);
}
void setLatitudeLongitude(double lat, double long) {
_latitude = lat;
_longitude = long;
notifyListeners();
} }
Future loadSharedPrefLanguage() async { Future loadSharedPrefLanguage() async {
currentLanguage = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); try {
_appLocale = Locale(currentLanguage); currentLanguage = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
isAppArabic = _isArabic = currentLanguage == 'ar'; _appLocale = Locale(currentLanguage);
notifyListeners(); isAppArabic = _isArabic = currentLanguage == 'ar';
notifyListeners();
} catch (e) {
print(e);
}
} }
void changeLanguage(String lan) { void changeLanguage(String lan) {
@ -120,18 +116,11 @@ class ProjectViewModel extends BaseViewModel {
this.isLoginChild = isLoginChild; this.isLoginChild = isLoginChild;
privilegeRootUser = privilege!; privilegeRootUser = privilege!;
AppGlobal.isNetworkDebugEnabled = havePrivilege(93);
notifyListeners();
}
setVidaPlusProjectList(List<VidaPlusProjectListModel> vidaPlusProjectListModelInput) {
_vidaPlusProjectListModel = vidaPlusProjectListModelInput;
notifyListeners(); notifyListeners();
} }
setPrivilege({privilegeList, bool isLoginChild = false}) { setPrivilege({privilegeList, bool isLoginChild = false}) {
List<PrivilegeModel> privilege =[]; List<PrivilegeModel> privilege = [];
privilegeList['List'][0]['ListPrivilege'].forEach((item) { privilegeList['List'][0]['ListPrivilege'].forEach((item) {
privilege.add(PrivilegeModel.fromJson(item)); privilege.add(PrivilegeModel.fromJson(item));
@ -151,23 +140,32 @@ class ProjectViewModel extends BaseViewModel {
notifyListeners(); notifyListeners();
} }
setVidaPlusProjectList(List<VidaPlusProjectListModel> vidaPlusProjectListModelInput) {
_vidaPlusProjectListModel = vidaPlusProjectListModelInput;
notifyListeners();
}
bool havePrivilege(int id) { bool havePrivilege(int id) {
bool isHavePrivilege = false; bool isHavePrivilege = false;
if (isLoginChild) try {
privilegeChildUser.forEach((element) { if (isLoginChild) {
if (element.iD == id) isHavePrivilege = element.privilege!; privilegeChildUser.forEach((element) {
}); if (element.iD == id) isHavePrivilege = element.privilege!;
else { });
privilegeRootUser.forEach((element) { } else {
if (element.iD == id) isHavePrivilege = element.privilege!; privilegeRootUser.forEach((element) {
}); if (element.iD == id) isHavePrivilege = element.privilege!;
});
}
} catch (e) {
print(e);
} }
return isHavePrivilege; return isHavePrivilege;
} }
@override @override
void dispose() { void dispose() {
if (subscription != null) subscription!.cancel(); if (subscription != null) subscription.cancel();
super.dispose(); super.dispose();
} }
@ -176,6 +174,12 @@ class ProjectViewModel extends BaseViewModel {
notifyListeners(); notifyListeners();
} }
void setLatitudeLongitude(double lat, double long) {
_latitude = lat;
_longitude = long;
notifyListeners();
}
setRegisterData(RegisterInfoResponse data) { setRegisterData(RegisterInfoResponse data) {
_registerInfo = data; _registerInfo = data;
notifyListeners(); notifyListeners();

@ -19,7 +19,7 @@ class DQIcons {
DQIcons._(); DQIcons._();
static const _kFontFam = 'DQIcons'; static const _kFontFam = 'DQIcons';
static const Null _kFontPkg = null; static const dynamic _kFontPkg = null;
static const IconData blood_pressure = static const IconData blood_pressure =
IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg); IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);

@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.
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/services/robo_search/search_provider.dart'; import 'package:diplomaticquarterapp/services/robo_search/search_provider.dart';
import 'package:diplomaticquarterapp/splashPage.dart';
import 'package:diplomaticquarterapp/theme/theme_notifier.dart'; import 'package:diplomaticquarterapp/theme/theme_notifier.dart';
import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/theme/theme_value.dart';
import 'package:diplomaticquarterapp/uitl/LocalNotification.dart'; import 'package:diplomaticquarterapp/uitl/LocalNotification.dart';
@ -15,7 +16,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:in_app_update/in_app_update.dart'; import 'package:logger/logger.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'config/size_config.dart'; import 'config/size_config.dart';
@ -24,6 +25,22 @@ import 'core/viewModels/project_view_model.dart';
import 'locator.dart'; import 'locator.dart';
import 'pages/pharmacies/compare-list.dart'; import 'pages/pharmacies/compare-list.dart';
var logger = Logger(
printer: PrettyPrinter(
methodCount: 2,
// Number of method calls to be displayed
errorMethodCount: 8,
// Number of method calls if stacktrace is provided
lineLength: 500,
// Width of the output
colors: true,
// Colorful log messages
printEmojis: true,
// Print an emoji for each log message
printTime: false // Should each log print contain a timestamp
),
);
void main() async { void main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(); await Firebase.initializeApp();
@ -45,23 +62,27 @@ class MyHttpOverrides extends HttpOverrides {
} }
class _MyApp extends State<MyApp> { class _MyApp extends State<MyApp> {
late AppUpdateInfo _updateInfo; // late AppUpdateInfo _updateInfo;
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>(); final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
checkForUpdate() { //0537503378
// todo need to verify 'imp' //1231755
InAppUpdate.checkForUpdate().then((info) {
print("checkForUpdate!!!");
print(info.toString()); // checkForUpdate() {
if (info.immediateUpdateAllowed) { // // todo need to verify 'imp'
print("Immediate Allowed!!!"); // InAppUpdate.checkForUpdate().then((info) {
InAppUpdate.performImmediateUpdate().then((value) {}).catchError((e) => print(e.toString())); // print("checkForUpdate!!!");
} // print(info.toString());
}).catchError((e) { // if (info.immediateUpdateAllowed) {
print(e.toString()); // print("Immediate Allowed!!!");
}); // InAppUpdate.performImmediateUpdate().then((value) {}).catchError((e) => print(e.toString()));
} // }
// }).catchError((e) {
// print(e.toString());
// });
// }
@override @override
void initState() { void initState() {
@ -79,7 +100,6 @@ class _MyApp extends State<MyApp> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
PlatformBridge.init(context); PlatformBridge.init(context);
LocalNotification.init(onNotificationClick: (payload) { LocalNotification.init(onNotificationClick: (payload) {
LocalNotification.getInstance()?.showNow(title: "Payload", subtitle: payload, payload: payload); LocalNotification.getInstance()?.showNow(title: "Payload", subtitle: payload, payload: payload);
}); });
@ -133,13 +153,16 @@ class _MyApp extends State<MyApp> {
], ],
child: Consumer<ProjectViewModel>( child: Consumer<ProjectViewModel>(
builder: (context, projectProvider, child) => MaterialApp( builder: (context, projectProvider, child) => MaterialApp(
builder: (_, __) { builder: (_, mchild) {
return MediaQuery( return MediaQuery(
data: MediaQuery.of(context).copyWith( data: MediaQuery.of(context).copyWith(
textScaleFactor: 1.0, textScaleFactor: 1.0,
), //set desired text scale factor here ), //set desired text scale factor here
child: child ?? SizedBox(), child: mchild!
); );
// Container(
// color: Colors.blue,
// ));
}, },
navigatorKey: locator<NavigationService>().navigatorKey, navigatorKey: locator<NavigationService>().navigatorKey,
showSemanticsDebugger: false, showSemanticsDebugger: false,

@ -19,7 +19,7 @@ class CheckActivationCodeReq {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;
bool? forRegisteration; bool? forRegisteration;

@ -19,7 +19,7 @@ class CheckActivationCodeRegisterReq {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;
bool? forRegisteration; bool? forRegisteration;

@ -12,7 +12,7 @@ class CheckPatientAuthenticationReq {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;
String? dob; String? dob;

@ -1,48 +1,48 @@
class CheckUserStatusResponse { class CheckUserStatusResponse {
Null date; dynamic date;
int? languageID; int? languageID;
int? serviceName; int? serviceName;
Null time; dynamic time;
Null androidLink; dynamic androidLink;
Null authenticationTokenID; dynamic authenticationTokenID;
Null data; dynamic data;
bool? dataw; bool? dataw;
int? dietType; int? dietType;
Null errorCode; dynamic errorCode;
Null errorEndUserMessage; dynamic errorEndUserMessage;
Null errorEndUserMessageN; dynamic errorEndUserMessageN;
Null errorMessage; dynamic errorMessage;
int? errorType; int? errorType;
int? foodCategory; int? foodCategory;
Null iOSLink; dynamic iOSLink;
bool? isAuthenticated; bool? isAuthenticated;
int? mealOrderStatus; int? mealOrderStatus;
int? mealType; int? mealType;
int? messageStatus; int? messageStatus;
int? numberOfResultRecords; int? numberOfResultRecords;
Null patientBlodType; dynamic patientBlodType;
Null successMsg; dynamic successMsg;
Null successMsgN; dynamic successMsgN;
Null accessTokenObject; dynamic accessTokenObject;
int? age; int? age;
Null clientIdentifierId; dynamic clientIdentifierId;
int? createdBy; int? createdBy;
String? dateOfBirth; String? dateOfBirth;
String? firstNameAr; String? firstNameAr;
String? firstNameEn; String? firstNameEn;
String? gender; String? gender;
Null genderAr; dynamic genderAr;
Null genderEn; dynamic genderEn;
String? healthId; String? healthId;
String? idNumber; String? idNumber;
String? idType; String? idType;
bool? isHijri; bool? isHijri;
int? isInstertedOrUpdated; int? isInstertedOrUpdated;
int? isNull; int? isdynamic;
int? isPatientExistNHIC; int? isPatientExistNHIC;
String? lastNameAr; String? lastNameAr;
String? lastNameEn; String? lastNameEn;
Null listActiveAccessToken; dynamic listActiveAccessToken;
String? maritalStatus; String? maritalStatus;
String? maritalStatusCode; String? maritalStatusCode;
String? nationality; String? nationality;
@ -50,31 +50,31 @@ class CheckUserStatusResponse {
String? occupation; String? occupation;
String? patientStatus; String? patientStatus;
String? placeofBirth; String? placeofBirth;
Null practitionerStatusCode; dynamic practitionerStatusCode;
Null practitionerStatusDescAr; dynamic practitionerStatusDescAr;
Null practitionerStatusDescEn; dynamic practitionerStatusDescEn;
String? secondNameAr; String? secondNameAr;
String? secondNameEn; String? secondNameEn;
String? thirdNameAr; String? thirdNameAr;
String? thirdNameEn; String? thirdNameEn;
Null accessToken; dynamic accessToken;
int? categoryCode; int? categoryCode;
Null categoryNameAr; dynamic categoryNameAr;
Null categoryNameEn; dynamic categoryNameEn;
int? constraintCode; int? constraintCode;
Null constraintNameAr; dynamic constraintNameAr;
Null constraintNameEn; dynamic constraintNameEn;
Null content; dynamic content;
Null licenseExpiryDate; dynamic licenseExpiryDate;
Null licenseIssuedDate; dynamic licenseIssuedDate;
Null licenseStatusCode; dynamic licenseStatusCode;
Null licenseStatusDescAr; dynamic licenseStatusDescAr;
Null licenseStatusDescEn; dynamic licenseStatusDescEn;
Null organizations; dynamic organizations;
Null registrationNumber; dynamic registrationNumber;
int? specialtyCode; int? specialtyCode;
Null specialtyNameAr; dynamic specialtyNameAr;
Null specialtyNameEn; dynamic specialtyNameEn;
CheckUserStatusResponse( CheckUserStatusResponse(
{this.date, {this.date,
@ -116,7 +116,7 @@ class CheckUserStatusResponse {
this.idType, this.idType,
this.isHijri, this.isHijri,
this.isInstertedOrUpdated, this.isInstertedOrUpdated,
this.isNull, this.isdynamic,
this.isPatientExistNHIC, this.isPatientExistNHIC,
this.lastNameAr, this.lastNameAr,
this.lastNameEn, this.lastNameEn,
@ -194,7 +194,7 @@ class CheckUserStatusResponse {
idType = json['IdType']; idType = json['IdType'];
isHijri = json['IsHijri']; isHijri = json['IsHijri'];
isInstertedOrUpdated = json['IsInstertedOrUpdated']; isInstertedOrUpdated = json['IsInstertedOrUpdated'];
isNull = json['IsNull']; isdynamic = json['Isdynamic'];
isPatientExistNHIC = json['IsPatientExistNHIC']; isPatientExistNHIC = json['IsPatientExistNHIC'];
lastNameAr = json['LastNameAr']; lastNameAr = json['LastNameAr'];
lastNameEn = json['LastNameEn']; lastNameEn = json['LastNameEn'];
@ -274,7 +274,7 @@ class CheckUserStatusResponse {
data['IdType'] = this.idType; data['IdType'] = this.idType;
data['IsHijri'] = this.isHijri; data['IsHijri'] = this.isHijri;
data['IsInstertedOrUpdated'] = this.isInstertedOrUpdated; data['IsInstertedOrUpdated'] = this.isInstertedOrUpdated;
data['IsNull'] = this.isNull; data['Isdynamic'] = this.isdynamic;
data['IsPatientExistNHIC'] = this.isPatientExistNHIC; data['IsPatientExistNHIC'] = this.isPatientExistNHIC;
data['LastNameAr'] = this.lastNameAr; data['LastNameAr'] = this.lastNameAr;
data['LastNameEn'] = this.lastNameEn; data['LastNameEn'] = this.lastNameEn;

@ -8,7 +8,7 @@ class CheckUserStatusRequest {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;

@ -8,7 +8,7 @@ class CheckPatientForRegistration {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;
String? tokenID; String? tokenID;

@ -17,7 +17,7 @@ class GetMobileLoginInfoRequest {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;

@ -1,66 +1,66 @@
class GetMobileLoginInfoResponse { class GetMobileLoginInfoResponse {
Null date; dynamic date;
int? languageID; int? languageID;
int? serviceName; int? serviceName;
Null time; dynamic time;
Null androidLink; dynamic androidLink;
Null authenticationTokenID; dynamic authenticationTokenID;
Null data; dynamic data;
bool? dataw; bool? dataw;
int? dietType; int? dietType;
Null errorCode; dynamic errorCode;
Null errorEndUserMessage; dynamic errorEndUserMessage;
Null errorEndUserMessageN; dynamic errorEndUserMessageN;
Null errorMessage; dynamic errorMessage;
int? errorType; int? errorType;
int? foodCategory; int? foodCategory;
Null iOSLink; dynamic iOSLink;
bool? isAuthenticated; bool? isAuthenticated;
int? mealOrderStatus; int? mealOrderStatus;
int? mealType; int? mealType;
int? messageStatus; int? messageStatus;
int? numberOfResultRecords; int? numberOfResultRecords;
Null patientBlodType; dynamic patientBlodType;
Null successMsg; dynamic successMsg;
Null successMsgN; dynamic successMsgN;
Null doctorInformationList; dynamic doctorInformationList;
Null getAllPendingRecordsList; dynamic getAllPendingRecordsList;
Null getAllSharedRecordsByStatusList; dynamic getAllSharedRecordsByStatusList;
Null getResponseFileList; dynamic getResponseFileList;
bool? isHMGPatient; bool? isHMGPatient;
bool? isLoginSuccessfully; bool? isLoginSuccessfully;
bool? isNeedUpdateIdintificationNo; bool? isNeedUpdateIdintificationNo;
bool? kioskSendSMS; bool? kioskSendSMS;
Null list; dynamic list;
Null listAskHabibMobileLoginInfo; dynamic listAskHabibMobileLoginInfo;
Null listAskHabibPatientFile; dynamic listAskHabibPatientFile;
Null listMergeFiles; dynamic listMergeFiles;
List<ListMobileLoginInfo>? listMobileLoginInfo; List<ListMobileLoginInfo>? listMobileLoginInfo;
Null listPatientCount; dynamic listPatientCount;
String? logInTokenID; String? logInTokenID;
Null mohemmPrivilegeList; dynamic mohemmPrivilegeList;
int? pateintID; int? pateintID;
Null patientBloodType; dynamic patientBloodType;
bool? patientHasFile; bool? patientHasFile;
Null patientMergedIDs; dynamic patientMergedIDs;
bool? patientOutSA; bool? patientOutSA;
int? patientShareRequestID; int? patientShareRequestID;
int? patientType; int? patientType;
int? projectIDOut; int? projectIDOut;
Null returnMessage; dynamic returnMessage;
bool? sMSLoginRequired; bool? sMSLoginRequired;
Null servicePrivilegeList; dynamic servicePrivilegeList;
Null sharePatientName; dynamic sharePatientName;
Null verificationCode; dynamic verificationCode;
Null email; dynamic email;
Null errorList; dynamic errorList;
bool? hasFile; bool? hasFile;
bool? isActiveCode; bool? isActiveCode;
bool? isMerged; bool? isMerged;
bool? isNeedUserAgreement; bool? isNeedUserAgreement;
bool? isSMSSent; bool? isSMSSent;
Null memberList; dynamic memberList;
Null message; dynamic message;
int? statusCode; int? statusCode;
GetMobileLoginInfoResponse( GetMobileLoginInfoResponse(

@ -1,48 +1,48 @@
class RegisterInfoResponse { class RegisterInfoResponse {
Null date; dynamic date;
int? languageID; int? languageID;
int? serviceName; int? serviceName;
Null time; dynamic time;
Null androidLink; dynamic androidLink;
Null authenticationTokenID; dynamic authenticationTokenID;
Null data; dynamic data;
bool? dataw; bool? dataw;
int? dietType; int? dietType;
Null errorCode; dynamic errorCode;
Null errorEndUserMessage; dynamic errorEndUserMessage;
Null errorEndUserMessageN; dynamic errorEndUserMessageN;
Null errorMessage; dynamic errorMessage;
int? errorType; int? errorType;
int? foodCategory; int? foodCategory;
Null iOSLink; dynamic iOSLink;
bool? isAuthenticated; bool? isAuthenticated;
int? mealOrderStatus; int? mealOrderStatus;
int? mealType; int? mealType;
int? messageStatus; int? messageStatus;
int? numberOfResultRecords; int? numberOfResultRecords;
Null patientBlodType; dynamic patientBlodType;
Null successMsg; dynamic successMsg;
Null successMsgN; dynamic successMsgN;
Null accessTokenObject; dynamic accessTokenObject;
int? age; int? age;
Null clientIdentifierId; dynamic clientIdentifierId;
int? createdBy; int? createdBy;
String? dateOfBirth; String? dateOfBirth;
String? firstNameAr; String? firstNameAr;
String? firstNameEn; String? firstNameEn;
String? gender; String? gender;
Null genderAr; dynamic genderAr;
Null genderEn; dynamic genderEn;
String? healthId; String? healthId;
String? idNumber; String? idNumber;
String? idType; String? idType;
bool? isHijri; bool? isHijri;
int? isInstertedOrUpdated; int? isInstertedOrUpdated;
int? isNull; int? isdynamic;
int? isPatientExistNHIC; int? isPatientExistNHIC;
String? lastNameAr; String? lastNameAr;
String? lastNameEn; String? lastNameEn;
Null listActiveAccessToken; dynamic listActiveAccessToken;
String? maritalStatus; String? maritalStatus;
String? maritalStatusCode; String? maritalStatusCode;
String? nationality; String? nationality;
@ -50,31 +50,31 @@ class RegisterInfoResponse {
String? occupation; String? occupation;
String? patientStatus; String? patientStatus;
String? placeofBirth; String? placeofBirth;
Null practitionerStatusCode; dynamic practitionerStatusCode;
Null practitionerStatusDescAr; dynamic practitionerStatusDescAr;
Null practitionerStatusDescEn; dynamic practitionerStatusDescEn;
String? secondNameAr; String? secondNameAr;
String? secondNameEn; String? secondNameEn;
String? thirdNameAr; String? thirdNameAr;
String? thirdNameEn; String? thirdNameEn;
Null accessToken; dynamic accessToken;
int? categoryCode; int? categoryCode;
Null categoryNameAr; dynamic categoryNameAr;
Null categoryNameEn; dynamic categoryNameEn;
int? constraintCode; int? constraintCode;
Null constraintNameAr; dynamic constraintNameAr;
Null constraintNameEn; dynamic constraintNameEn;
Null content; dynamic content;
Null licenseExpiryDate; dynamic licenseExpiryDate;
Null licenseIssuedDate; dynamic licenseIssuedDate;
Null licenseStatusCode; dynamic licenseStatusCode;
Null licenseStatusDescAr; dynamic licenseStatusDescAr;
Null licenseStatusDescEn; dynamic licenseStatusDescEn;
Null organizations; dynamic organizations;
Null registrationNumber; dynamic registrationNumber;
int? specialtyCode; int? specialtyCode;
Null specialtyNameAr; dynamic specialtyNameAr;
Null specialtyNameEn; dynamic specialtyNameEn;
RegisterInfoResponse( RegisterInfoResponse(
{this.date, {this.date,
@ -116,7 +116,7 @@ class RegisterInfoResponse {
this.idType, this.idType,
this.isHijri, this.isHijri,
this.isInstertedOrUpdated, this.isInstertedOrUpdated,
this.isNull, this.isdynamic,
this.isPatientExistNHIC, this.isPatientExistNHIC,
this.lastNameAr, this.lastNameAr,
this.lastNameEn, this.lastNameEn,
@ -194,7 +194,7 @@ class RegisterInfoResponse {
idType = json['IdType']; idType = json['IdType'];
isHijri = json['IsHijri']; isHijri = json['IsHijri'];
isInstertedOrUpdated = json['IsInstertedOrUpdated']; isInstertedOrUpdated = json['IsInstertedOrUpdated'];
isNull = json['IsNull']; isdynamic = json['Isdynamic'];
isPatientExistNHIC = json['IsPatientExistNHIC']; isPatientExistNHIC = json['IsPatientExistNHIC'];
lastNameAr = json['LastNameAr']; lastNameAr = json['LastNameAr'];
lastNameEn = json['LastNameEn']; lastNameEn = json['LastNameEn'];
@ -274,7 +274,7 @@ class RegisterInfoResponse {
data['IdType'] = this.idType; data['IdType'] = this.idType;
data['IsHijri'] = this.isHijri; data['IsHijri'] = this.isHijri;
data['IsInstertedOrUpdated'] = this.isInstertedOrUpdated; data['IsInstertedOrUpdated'] = this.isInstertedOrUpdated;
data['IsNull'] = this.isNull; data['Isdynamic'] = this.isdynamic;
data['IsPatientExistNHIC'] = this.isPatientExistNHIC; data['IsPatientExistNHIC'] = this.isPatientExistNHIC;
data['LastNameAr'] = this.lastNameAr; data['LastNameAr'] = this.lastNameAr;
data['LastNameEn'] = this.lastNameEn; data['LastNameEn'] = this.lastNameEn;

@ -9,7 +9,7 @@ class RegisterUserRequest {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;
String? dob; String? dob;

@ -18,7 +18,7 @@ class SendActivationRequest {
String? iPAdress; String? iPAdress;
String? generalid; String? generalid;
int? patientOutSA; int? patientOutSA;
Null sessionID; dynamic sessionID;
bool? isDentalAllowedBackend; bool? isDentalAllowedBackend;
int? deviceTypeID; int? deviceTypeID;
String? sMSSignature; String? sMSSignature;

@ -52,7 +52,7 @@ class ListClinicCentralized {
class ListGetBookScheduleConfigsList { class ListGetBookScheduleConfigsList {
int? iD; int? iD;
String? description; String? description;
Null descriptionN; dynamic descriptionN;
bool? value; bool? value;
bool? isActive; bool? isActive;

@ -24,11 +24,11 @@ class ClinicsServiceTimingsResponse {
class PatientERGetClinicsServiceTimingsList { class PatientERGetClinicsServiceTimingsList {
int? iD; int? iD;
int? serviceID; int? serviceID;
Null shiftID; dynamic shiftID;
int? dayOfWeek; int? dayOfWeek;
String? dayOfWeekStr; String? dayOfWeekStr;
Null startTime; dynamic startTime;
Null endTime; dynamic endTime;
bool? isActive; bool? isActive;
String? createdOn; String? createdOn;
String? createdBy; String? createdBy;

@ -8,7 +8,7 @@ class AncillaryOrdersListProcListModel {
String? companyName; String? companyName;
int? doctorID; int? doctorID;
String? doctorName; String? doctorName;
Null errCode; dynamic errCode;
int? groupID; int? groupID;
String? insurancePolicyNo; String? insurancePolicyNo;
String? message; String? message;

@ -45,7 +45,7 @@ class _SearchState extends State<Search> with TickerProviderStateMixin {
showNewAppBar: true, showNewAppBar: true,
appBarTitle: TranslationBase.of(context).bookAppo, appBarTitle: TranslationBase.of(context).bookAppo,
backgroundColor: Color(0xFFF7F7F7), backgroundColor: Color(0xFFF7F7F7),
onTap: widget.onBackClick!(), onTap: widget.onBackClick,
body: Column( body: Column(
children: [ children: [
TabBar( TabBar(
@ -79,7 +79,7 @@ class _SearchState extends State<Search> with TickerProviderStateMixin {
child: TabBarView( child: TabBarView(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
children: [ children: [
SearchByClinic(clnicIds: widget.clnicIds!), SearchByClinic(clnicIds: widget.clnicIds),
SearchByDoctor(), SearchByDoctor(),
], ],
controller: _tabController, controller: _tabController,

@ -30,7 +30,7 @@ import 'LaserClinic.dart';
import 'LiveCareBookAppointment.dart'; import 'LiveCareBookAppointment.dart';
class SearchByClinic extends StatefulWidget { class SearchByClinic extends StatefulWidget {
final List clnicIds; final List? clnicIds;
SearchByClinic({required this.clnicIds}); SearchByClinic({required this.clnicIds});
@ -40,10 +40,9 @@ class SearchByClinic extends StatefulWidget {
class _SearchByClinicState extends State<SearchByClinic> { class _SearchByClinicState extends State<SearchByClinic> {
bool nearestAppo = false; bool nearestAppo = false;
late String dropdownValue; String dropdownValue = "";
String dropdownTitle = ""; String dropdownTitle = "";
late String projectDropdownValue; String projectDropdownValue = "";
// var event = RobotProvider(); // var event = RobotProvider();
List<ListClinicCentralized> clinicsList = []; List<ListClinicCentralized> clinicsList = [];
@ -52,8 +51,8 @@ class _SearchByClinicState extends State<SearchByClinic> {
bool isLoaded = false; bool isLoaded = false;
bool isProjectLoaded = false; bool isProjectLoaded = false;
late ListClinicCentralized selectedClinic; ListClinicCentralized selectedClinic = ListClinicCentralized();
late HospitalsModel selectedHospital; HospitalsModel selectedHospital = HospitalsModel();
AuthenticatedUser authUser = new AuthenticatedUser(); AuthenticatedUser authUser = new AuthenticatedUser();
AuthProvider authProvider = new AuthProvider(); AuthProvider authProvider = new AuthProvider();
@ -63,7 +62,7 @@ class _SearchByClinicState extends State<SearchByClinic> {
TextEditingController ageController = new TextEditingController(); TextEditingController ageController = new TextEditingController();
late ProjectViewModel projectViewModel; late ProjectViewModel projectViewModel;
late String radioValue; String radioValue = "";
late LocationUtils locationUtils; late LocationUtils locationUtils;
@ -212,7 +211,7 @@ class _SearchByClinicState extends State<SearchByClinic> {
], ],
), ),
), ),
widget.clnicIds != null && widget.clnicIds.length > 1 && isLoaded == true widget.clnicIds != null && widget.clnicIds!.length > 1 && isLoaded == true
? Column( ? Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: clinicsList.map<Widget>((result) { children: clinicsList.map<Widget>((result) {
@ -324,17 +323,22 @@ class _SearchByClinicState extends State<SearchByClinic> {
isExpanded: true, isExpanded: true,
style: TextStyle(fontSize: 14, letterSpacing: -0.56, color: Colors.black), style: TextStyle(fontSize: 14, letterSpacing: -0.56, color: Colors.black),
items: projectsList.map((item) { items: projectsList.map((item) {
return new DropdownMenuItem<HospitalsModel>( return DropdownMenuItem<HospitalsModel>(
value: item, value: item,
child: new Text(item.name!), child: Text(item.name!),
); );
}).toList(), }).toList(),
onChanged: (newValue) async { onChanged: (newValue) async {
setState(() { setState(() {
selectedHospital = newValue!; selectedHospital = HospitalsModel.fromJson(newValue!.toJson());
projectDropdownValue = newValue.mainProjectID.toString(); projectDropdownValue = newValue.mainProjectID.toString();
if (dropdownValue.split("-")[0] == "253") { if (dropdownValue.split("-")[0] == "253") {
Navigator.push(context, FadePage(page: LaserClinic(selectedHospital: selectedHospital))); Navigator.push(
context,
FadePage(
page: LaserClinic(selectedHospital: selectedHospital),
),
);
} else { } else {
getDoctorsList(context); getDoctorsList(context);
} }
@ -686,8 +690,8 @@ class _SearchByClinicState extends State<SearchByClinic> {
filterClinic() { filterClinic() {
setState(() { setState(() {
if (widget.clnicIds != null && widget.clnicIds.length > 0) { if (widget.clnicIds != null && widget.clnicIds!.length > 0) {
clinicsList = clinicsList.where((i) => widget.clnicIds.indexOf(i.clinicID) > -1).toList(); clinicsList = clinicsList.where((i) => widget.clnicIds!.indexOf(i.clinicID) > -1).toList();
isLoaded = true; isLoaded = true;
} }
}); });

@ -27,7 +27,7 @@ class CovidDrivethruLocation extends StatefulWidget {
} }
class _CovidDrivethruLocationState extends State<CovidDrivethruLocation> { class _CovidDrivethruLocationState extends State<CovidDrivethruLocation> {
late String projectDropdownValue; String projectDropdownValue = '';
List<DriveThroughTestingCenterModel> projectsList = []; List<DriveThroughTestingCenterModel> projectsList = [];
List<CovidTestProceduresResponse> proceduresList = []; List<CovidTestProceduresResponse> proceduresList = [];
bool isLocationSelected = false; bool isLocationSelected = false;
@ -37,7 +37,7 @@ class _CovidDrivethruLocationState extends State<CovidDrivethruLocation> {
String projectID = ""; String projectID = "";
List<ImagesInfo> imagesInfo = []; List<ImagesInfo> imagesInfo = [];
late DriveThroughTestingCenterModel selectedProject; DriveThroughTestingCenterModel selectedProject = DriveThroughTestingCenterModel();
final GlobalKey locationDropdownKey = GlobalKey(); final GlobalKey locationDropdownKey = GlobalKey();
late ProjectViewModel projectViewModel; late ProjectViewModel projectViewModel;

@ -48,16 +48,16 @@ class MyFamily extends StatefulWidget {
} }
class _MyFamily extends State<MyFamily> with TickerProviderStateMixin { class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
List<ImagesInfo> imagesInfo =[]; List<ImagesInfo> imagesInfo = [];
final familyFileProvider = FamilyFilesProvider(); final familyFileProvider = FamilyFilesProvider();
AppSharedPreferences sharedPref = new AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
var userID; var userID;
late TabController _tabController; late TabController _tabController;
int _tabIndex = 0; int _tabIndex = 0;
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>(); AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
AppointmentRateViewModel appointmentRateViewModel = locator<AppointmentRateViewModel>(); AppointmentRateViewModel appointmentRateViewModel = locator<AppointmentRateViewModel>();
late ProjectViewModel projectViewModel; late ProjectViewModel projectViewModel;
late AuthenticatedUser user; AuthenticatedUser user = AuthenticatedUser();
VitalSignService _vitalSignService = locator<VitalSignService>(); VitalSignService _vitalSignService = locator<VitalSignService>();
PharmacyModuleViewModel pharmacyModuleViewModel = locator<PharmacyModuleViewModel>(); PharmacyModuleViewModel pharmacyModuleViewModel = locator<PharmacyModuleViewModel>();
late ToDoCountProviderModel toDoProvider; late ToDoCountProviderModel toDoProvider;
@ -447,13 +447,11 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
refreshFamily(context); refreshFamily(context);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
}); });
} }
refreshFamily(context) async { refreshFamily(context) async {
await sharedPref.remove(FAMILY_FILE);
await sharedPref.remove(FAMILY_FILE); await checkUserData();
await checkUserData();
} }
switchUser(user, context) { switchUser(user, context) {
@ -528,9 +526,8 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
Map<String, dynamic> request = {}; Map<String, dynamic> request = {};
request["ID"] = ID; request["ID"] = ID;
request["Status"] = status; request["Status"] = status;
this.familyFileProvider.acceptRejectFamily(request).then((value) async{ this.familyFileProvider.acceptRejectFamily(request).then((value) async {
await refreshFamily(context);
await refreshFamily(context);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
}); });
} }
@ -541,11 +538,8 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
// var data2 = AuthenticatedUser.fromJson(await this.sharedPref.getObject(MAIN_USER)); // var data2 = AuthenticatedUser.fromJson(await this.sharedPref.getObject(MAIN_USER));
await getFamilyFiles(); await getFamilyFiles();
this.user = data; this.user = data;
setState(() { setState(() {});
});
} }
} }
@ -562,19 +556,18 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
try { try {
if (familySharedRecords == null) { if (familySharedRecords == null) {
familySharedRecords = await familyFileProvider.getSharedRecordByStatus(); familySharedRecords = await familyFileProvider.getSharedRecordByStatus();
} }
sentRecordsList =[]; sentRecordsList = [];
familySharedRecordsList =[]; familySharedRecordsList = [];
familySharedRecords.getAllSharedRecordsByStatusList!.forEach((element) { familySharedRecords.getAllSharedRecordsByStatusList!.forEach((element) {
if (element.status == 3) { if (element.status == 3) {
familySharedRecordsList.add(element); familySharedRecordsList.add(element);
} }
sentRecordsList.add(element); sentRecordsList.add(element);
}); });
approvedRecordsList =[]; approvedRecordsList = [];
pendingRecordsList =[]; pendingRecordsList = [];
GetAllSharedRecordsByStatusResponse pendingAndApprovedRecords = await getUserViewRequest(); GetAllSharedRecordsByStatusResponse pendingAndApprovedRecords = await getUserViewRequest();
pendingAndApprovedRecords.getAllSharedRecordsByStatusList!.forEach((element) { pendingAndApprovedRecords.getAllSharedRecordsByStatusList!.forEach((element) {
@ -586,7 +579,6 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
} }
}); });
} catch (ex) { } catch (ex) {
familySharedRecords = GetAllSharedRecordsByStatusResponse(getAllSharedRecordsByStatusList: []); familySharedRecords = GetAllSharedRecordsByStatusResponse(getAllSharedRecordsByStatusList: []);
} }
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);

@ -62,7 +62,7 @@ class _DdServicesPageState extends State<DdServicesPage> {
EdOnlineQuestionsPage( EdOnlineQuestionsPage(
changePageViewIndex: _changePageViewIndex, changePageViewIndex: _changePageViewIndex,
selectedQuestions: selectedQuestions, selectedQuestions: selectedQuestions,
selectedHospital: triageInformationRequest.selectedHospital!, selectedHospital: triageInformationRequest.selectedHospital,
), ),
EdOnlineNotesPage( EdOnlineNotesPage(
changePageViewIndex: _changePageViewIndex, changePageViewIndex: _changePageViewIndex,
@ -70,7 +70,7 @@ class _DdServicesPageState extends State<DdServicesPage> {
triageInformationRequest: triageInformationRequest, triageInformationRequest: triageInformationRequest,
), ),
EdPaymentInformationPage( EdPaymentInformationPage(
selectedHospital: triageInformationRequest.selectedHospital!, selectedHospital: triageInformationRequest.selectedHospital,
) )
], ],
), ),

@ -22,9 +22,9 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class EdPaymentInformationPage extends StatefulWidget { class EdPaymentInformationPage extends StatefulWidget {
final HospitalsModel selectedHospital; final HospitalsModel? selectedHospital;
const EdPaymentInformationPage({Key? key, required this.selectedHospital}) : super(key: key); const EdPaymentInformationPage({Key? key, this.selectedHospital}) : super(key: key);
@override @override
_EdPaymentInformationPageState createState() => _EdPaymentInformationPageState(); _EdPaymentInformationPageState createState() => _EdPaymentInformationPageState();
@ -138,8 +138,8 @@ class _EdPaymentInformationPageState extends State<EdPaymentInformationPage> {
print(value); print(value);
if (value != null) { if (value != null) {
AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList(); AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList();
appo.projectID = widget.selectedHospital.iD; appo.projectID = widget.selectedHospital!.iD;
openPayment(value[0], projectViewModel.user!, model.erPatientShareModel.patientShareWithTax!, appo); openPayment(value[0], projectViewModel.user, model.erPatientShareModel.patientShareWithTax!, appo);
} }
}, },
); );
@ -166,7 +166,7 @@ class _EdPaymentInformationPageState extends State<EdPaymentInformationPage> {
openPayment(String paymentMethod, AuthenticatedUser authenticatedUser, num amount, AppoitmentAllHistoryResultList appo) { openPayment(String paymentMethod, AuthenticatedUser authenticatedUser, num amount, AppoitmentAllHistoryResultList appo) {
browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart); browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart);
transID = Utils.getAdvancePaymentTransID(widget.selectedHospital.iD, projectViewModel.user!.patientID!); transID = Utils.getAdvancePaymentTransID(widget.selectedHospital!.iD, projectViewModel.user!.patientID!);
browser.openPaymentBrowser(amount, "ER Online Check-In", transID, appo.projectID.toString(), authenticatedUser.emailAddress!, paymentMethod, authenticatedUser.patientType, browser.openPaymentBrowser(amount, "ER Online Check-In", transID, appo.projectID.toString(), authenticatedUser.emailAddress!, paymentMethod, authenticatedUser.patientType,
authenticatedUser.firstName!, authenticatedUser.patientID, authenticatedUser, browser, false, "3", "", context); authenticatedUser.firstName!, authenticatedUser.patientID, authenticatedUser, browser, false, "3", "", context);
} }

@ -32,6 +32,7 @@ class _NearestErState extends State<NearestEr> {
@override @override
void initState() { void initState() {
isDataLoaded = false;
locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context); locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context);
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
locationUtils.getCurrentLocation(); locationUtils.getCurrentLocation();

@ -177,7 +177,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
_getConfirmedAppoActionsList(); _getConfirmedAppoActionsList();
} }
} else { } else {
print("isConfirmed Null"); print("isConfirmed dynamic");
} }
if (isBooked()) { if (isBooked()) {
if (widget.appo.isOnlineCheckedIN!) { if (widget.appo.isOnlineCheckedIN!) {
@ -186,7 +186,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
_getBookedAppoActionsList(); _getBookedAppoActionsList();
} }
} else { } else {
print("isBooked Null"); print("isBooked dynamic");
} }
if (isArrived()) { if (isArrived()) {
if (widget.appo.clinicID == 17) { if (widget.appo.clinicID == 17) {
@ -195,10 +195,10 @@ class _AppointmentActionsState extends State<AppointmentActions> {
_getArrivedAppoActionsList(); _getArrivedAppoActionsList();
} }
} else { } else {
print("isArrived Null"); print("isArrived dynamic");
} }
} else { } else {
print("Appo Null"); print("Appo dynamic");
} }
} }

@ -5,7 +5,6 @@ import 'package:diplomaticquarterapp/widgets/buttons/custom_text_button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:in_app_update/in_app_update.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
class AppUpdatePage extends StatefulWidget { class AppUpdatePage extends StatefulWidget {
@ -79,16 +78,16 @@ class _AppUpdatePageState extends State<AppUpdatePage> {
openAppUpdateLink() { openAppUpdateLink() {
if (Platform.isAndroid) { if (Platform.isAndroid) {
// _launchURL("https://play.google.com/store/apps/details?id=com.ejada.hmg"); // _launchURL("https://play.google.com/store/apps/details?id=com.ejada.hmg");
InAppUpdate.checkForUpdate().then((info) { // InAppUpdate.checkForUpdate().then((info) {
print("checkForUpdate!!!"); // print("checkForUpdate!!!");
print(info.toString()); // print(info.toString());
if (info.immediateUpdateAllowed) { // if (info.immediateUpdateAllowed) {
print("Immediate Allowed!!!"); // print("Immediate Allowed!!!");
InAppUpdate.performImmediateUpdate().then((value) {}).catchError((e) => print(e.toString())); // InAppUpdate.performImmediateUpdate().then((value) {}).catchError((e) => print(e.toString()));
} // }
}).catchError((e) { // }).catchError((e) {
print(e.toString()); // print(e.toString());
}); // });
} }
if (Platform.isIOS) { if (Platform.isIOS) {
_launchURL("https://itunes.apple.com/app/id733503978"); _launchURL("https://itunes.apple.com/app/id733503978");

@ -14,7 +14,7 @@ import 'status_feedback_page.dart';
class FeedbackHomePage extends StatefulWidget { class FeedbackHomePage extends StatefulWidget {
final AppoitmentAllHistoryResultList? appointment; final AppoitmentAllHistoryResultList? appointment;
final MessageType messageType; final MessageType messageType;
const FeedbackHomePage({Key? key, this.appointment, this.messageType = MessageType.NON}) : super(key: key); const FeedbackHomePage({Key? key, this.appointment, this.messageType = MessageType.NON}) : super(key: key);
@override @override
_FeedbackHomePageState createState() => _FeedbackHomePageState(); _FeedbackHomePageState createState() => _FeedbackHomePageState();
@ -72,7 +72,8 @@ class _FeedbackHomePageState extends State<FeedbackHomePage> with SingleTickerPr
controller: _tabController, controller: _tabController,
children: <Widget>[ children: <Widget>[
SendFeedbackPage( SendFeedbackPage(
appointment: widget.appointment!, appointment: widget.appointment,
messageType: widget.messageType, messageType: widget.messageType,
), ),
StatusFeedbackPage() StatusFeedbackPage()

@ -25,6 +25,7 @@ import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
// import 'package:speech_to_text/speech_recognition_error.dart'; // import 'package:speech_to_text/speech_recognition_error.dart';
// import 'package:speech_to_text/speech_to_text.dart' as stt; // import 'package:speech_to_text/speech_to_text.dart' as stt;
@ -43,12 +44,13 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
TextEditingController messageController = TextEditingController(); TextEditingController messageController = TextEditingController();
List<String> images = []; List<String> images = [];
late String title; late String title;
late AppoitmentAllHistoryResultList appointHistory; AppoitmentAllHistoryResultList appointHistory = AppoitmentAllHistoryResultList();
bool isShowListAppointHistory = true; bool isShowListAppointHistory = true;
late String message; String message = "";
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
MessageType messageType = MessageType.NON; MessageType messageType = MessageType.NON;
var _currentLocaleId; var _currentLocaleId;
// stt.SpeechToText speech = stt.SpeechToText(); // stt.SpeechToText speech = stt.SpeechToText();
var reconizedWord; var reconizedWord;
int selectedStatusIndex = 5; int selectedStatusIndex = 5;
@ -91,7 +93,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
void initState() { void initState() {
setState(() { setState(() {
this.messageType = widget.messageType; this.messageType = widget.messageType;
this.appointHistory = widget.appointment!; this.appointHistory = widget.appointment ?? AppoitmentAllHistoryResultList();
}); });
// requestPermissions(); // requestPermissions();
event.controller.stream.listen((p) { event.controller.stream.listen((p) {
@ -491,7 +493,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
if (res['MessageStatus'] == 1) { if (res['MessageStatus'] == 1) {
if (res['AppoimentAllHistoryResultList'].length != 0) { if (res['AppoimentAllHistoryResultList'].length != 0) {
res['AppoimentAllHistoryResultList'].forEach((v) { res['AppoimentAllHistoryResultList'].forEach((v) {
appoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); appoList.add(AppoitmentAllHistoryResultList.fromJson(v));
}); });
setState(() { setState(() {
appointHistory = AppoitmentAllHistoryResultList(); appointHistory = AppoitmentAllHistoryResultList();
@ -522,11 +524,11 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
_currentLocaleId = TranslationBase.of(AppGlobal.context).locale.languageCode; _currentLocaleId = TranslationBase.of(AppGlobal.context).locale.languageCode;
// bool available = await speech.initialize(onStatus: statusListener, onError: errorListener); // bool available = await speech.initialize(onStatus: statusListener, onError: errorListener);
// if (available) { // if (available) {
// speech.listen( // speech.listen(
// onResult: resultListener, // onResult: resultListener,
// listenMode: stt.ListenMode.confirmation, // listenMode: stt.ListenMode.confirmation,
// localeId: _currentLocaleId == 'en' ? 'en-US' : 'ar-SA', // localeId: _currentLocaleId == 'en' ? 'en-US' : 'ar-SA',
// ); // );
// } else { // } else {
// print("The user has denied the use of speech recognition."); // print("The user has denied the use of speech recognition.");
// } // }
@ -535,7 +537,7 @@ class _SendFeedbackPageState extends State<SendFeedbackPage> {
// void errorListener(SpeechRecognitionError error) { // void errorListener(SpeechRecognitionError error) {
// event.setValue({"searchText": 'null'}); // event.setValue({"searchText": 'null'});
// SpeechToText.closeAlertDialog(context); // SpeechToText.closeAlertDialog(context);
// print(error); // print(error);
// } // }
void statusListener(String status) { void statusListener(String status) {

@ -84,8 +84,13 @@ class _HomePageFragment2State extends State<HomePageFragment2> {
}, },
child: LoggedSliderView( child: LoggedSliderView(
projectViewModel, projectViewModel,
new SliderData(TranslationBase.of(context).fileno + ": " + (projectViewModel.user?.patientID?.toString() ?? ""), new SliderData(
projectViewModel.user!.firstName! + ' ' + (projectViewModel.user?.lastName ?? ""), "", bannerColor[0].darkColor, bannerColor[0].lightColor), TranslationBase.of(context).fileno + ": " + (projectViewModel.user.patientID.toString()?? ""),
projectViewModel.user.firstName! + ' ' + (projectViewModel.user.lastName ?? ""),
"",
bannerColor[0].darkColor,
bannerColor[0].lightColor,
),
widget.model, widget.model,
), ),
), ),
@ -97,7 +102,7 @@ class _HomePageFragment2State extends State<HomePageFragment2> {
margin: EdgeInsets.only(left: 20, right: 20, top: 8, bottom: 6), margin: EdgeInsets.only(left: 20, right: 20, top: 8, bottom: 6),
child: SliderView( child: SliderView(
onLoginClick: () { onLoginClick: () {
widget.onLoginClick!(); widget.onLoginClick;
projectViewModel.analytics.loginRegistration.login_register_initiate(); projectViewModel.analytics.loginRegistration.login_register_initiate();
}, },
), ),

@ -645,7 +645,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
authService.getDashboard().then((value) => { authService.getDashboard().then((value) => {
setState(() { setState(() {
if (value != null) { if (value != null) {
notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); notificationCount = value['List_PatientDashboard'].isNotEmpty?? value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString();
model.setState(model.count, true, notificationCount); model.setState(model.count, true, notificationCount);
sharedPref.setString(NOTIFICATION_COUNT, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount);
FlutterAppIconBadge.updateBadge(int.parse(notificationCount)); FlutterAppIconBadge.updateBadge(int.parse(notificationCount));

@ -122,7 +122,7 @@ class LoggedSliderView extends StatelessWidget {
Padding( Padding(
padding: const EdgeInsets.only(left: 20, right: 20), padding: const EdgeInsets.only(left: 20, right: 20),
child: Text( child: Text(
'${DateUtil.getMonthDayYearDateFormatted(projectViewModel.user!.dateofBirthDataTime!)} ,${projectViewModel.user!.gender == 1 ? TranslationBase.of(context).male : TranslationBase.of(context).female} ${projectViewModel.user!.age.toString() + " " + TranslationBase.of(context).patientAge.toString()}', '${DateUtil.getMonthDayYearDateFormatted(projectViewModel.user.dateofBirthDataTime!)} ,${projectViewModel.user!.gender == 1 ? TranslationBase.of(context).male : TranslationBase.of(context).female} ${projectViewModel.user!.age.toString() + " " + TranslationBase.of(context).patientAge.toString()}',
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 12, fontSize: 12,

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart';
@ -40,11 +41,11 @@ class _Login extends State<Login> {
final nationalIDorFile = TextEditingController(); final nationalIDorFile = TextEditingController();
final mobileNumberController = TextEditingController(); final mobileNumberController = TextEditingController();
int loginType = LoginType.loginType; int loginType = LoginType.loginType;
late String mobileNo; String? mobileNo;
String countryCode = '966'; String countryCode = '966';
bool isButtonDisabled = true; bool isButtonDisabled = true;
final authService = new AuthProvider(); final authService = AuthProvider();
var sharedPref = new AppSharedPreferences(); var sharedPref = AppSharedPreferences();
bool isLoading = false; bool isLoading = false;
AppointmentRateViewModel appointmentRateViewModel = locator<AppointmentRateViewModel>(); AppointmentRateViewModel appointmentRateViewModel = locator<AppointmentRateViewModel>();
PharmacyModuleViewModel pharmacyModuleViewModel = locator<PharmacyModuleViewModel>(); PharmacyModuleViewModel pharmacyModuleViewModel = locator<PharmacyModuleViewModel>();
@ -62,8 +63,8 @@ class _Login extends State<Login> {
super.initState(); super.initState();
// if (BASE_URL.contains("uat.")) { // if (BASE_URL.contains("uat.")) {
// nationalIDorFile.text = "2001273"; // nationalIDorFile.text = "2344670985";
// mobileNumberController.text = mobileNo = "0555416043"; // mobileNumberController.text = mobileNo = "0537503378";
// } // }
getRegisterData(); getRegisterData();
/* else { /* else {
@ -106,7 +107,13 @@ class _Login extends State<Login> {
SizedBox(height: 50), SizedBox(height: 50),
Text( Text(
loginType == 1 ? TranslationBase.of(context).enterNationalId : TranslationBase.of(context).enterFile, loginType == 1 ? TranslationBase.of(context).enterNationalId : TranslationBase.of(context).enterFile,
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16), style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
height: 23 / 16,
),
), ),
SizedBox(height: 20), SizedBox(height: 20),
PhoneNumberSelectorWidget( PhoneNumberSelectorWidget(
@ -116,8 +123,13 @@ class _Login extends State<Login> {
), ),
SizedBox(height: 12), SizedBox(height: 12),
Directionality( Directionality(
textDirection: TextDirection.ltr, textDirection: TextDirection.ltr,
child: inputWidget(loginType == 1 ? TranslationBase.of(context).nationalIdNumber : TranslationBase.of(context).medicalFileNumber, "Xxxxxxxxx", nationalIDorFile)), child: inputWidget(
loginType == 1 ? TranslationBase.of(context).nationalIdNumber : TranslationBase.of(context).medicalFileNumber,
"Xxxxxxxxx",
nationalIDorFile,
),
),
], ],
), ),
), ),
@ -126,11 +138,10 @@ class _Login extends State<Login> {
), ),
DefaultButton( DefaultButton(
TranslationBase.of(context).login, TranslationBase.of(context).login,
isButtonDisabled () {
? null // if (!isButtonDisabled)
: () { this.startLogin();
this.startLogin(); },
},
disabledColor: Color(0xff575757), disabledColor: Color(0xff575757),
), ),
]), ]),
@ -221,9 +232,9 @@ class _Login extends State<Login> {
} }
startLogin() { startLogin() {
if (isButtonDisabled == false) { //if (isButtonDisabled == false) {
checkUserAuthentication(); checkUserAuthentication();
} // }
} }
void validateForm() { void validateForm() {
@ -233,7 +244,7 @@ class _Login extends State<Login> {
}); });
} else { } else {
setState(() { setState(() {
isButtonDisabled = true; isButtonDisabled = false;
}); });
} }
} }
@ -242,7 +253,7 @@ class _Login extends State<Login> {
// showLoader(true); // showLoader(true);
var request = CheckPatientAuthenticationReq(); var request = CheckPatientAuthenticationReq();
request.isRegister = false; request.isRegister = false;
request.patientMobileNumber = int.parse(mobileNo); request.patientMobileNumber = int.parse(mobileNo!);
request.zipCode = countryCode; request.zipCode = countryCode;
request.searchType = this.loginType; request.searchType = this.loginType;
request.deviceTypeID = this.loginType; request.deviceTypeID = this.loginType;
@ -257,16 +268,16 @@ class _Login extends State<Login> {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
authService.checkPatientAuthentication(request).then((value) { authService.checkPatientAuthentication(request).then((value) {
// if (value['UserAccountIsActivated']) { // if (value['UserAccountIsActivated']) {
if (value['isSMSSent']) { if (value['isSMSSent']) {
sharedPref.setString(LOGIN_TOKEN_ID, value['LogInTokenID']); sharedPref.setString(LOGIN_TOKEN_ID, value['LogInTokenID']);
sharedPref.setObject(REGISTER_DATA_FOR_LOGIIN, request); sharedPref.setObject(REGISTER_DATA_FOR_LOGIIN, request);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
Navigator.of(context).push(FadePage(page: ConfirmLogin())); Navigator.of(context).push(FadePage(page: ConfirmLogin()));
} else { } else {
if (value['IsAuthenticated']) { if (value['IsAuthenticated']) {
this.checkActivationCode(); this.checkActivationCode();
}
} }
}
// } else { // } else {
// ConfirmDialog activationDialog = new ConfirmDialog( // ConfirmDialog activationDialog = new ConfirmDialog(
// context: context, // context: context,
@ -316,7 +327,7 @@ class _Login extends State<Login> {
checkActivationCode({code}) async { checkActivationCode({code}) async {
Map<String, dynamic> request = {}; Map<String, dynamic> request = {};
if (code == null) request['PatientMobileNumber'] = int.parse(mobileNo); if (code == null) request['PatientMobileNumber'] = int.parse(mobileNo!);
request['ZipCode'] = countryCode; request['ZipCode'] = countryCode;
request['SearchType'] = loginType; request['SearchType'] = loginType;
request['LoginType'] = loginType; request['LoginType'] = loginType;

@ -178,7 +178,7 @@ class _Register extends State<Register> {
); );
} }
Future<Null> _selectDate(BuildContext context) async { Future<dynamic> _selectDate(BuildContext context) async {
DatePicker.showDatePicker( DatePicker.showDatePicker(
context, context,
showTitleActions: true, showTitleActions: true,

@ -38,16 +38,16 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
TextEditingController _fileTextController = TextEditingController(); TextEditingController _fileTextController = TextEditingController();
TextEditingController _notesTextController = TextEditingController(); TextEditingController _notesTextController = TextEditingController();
BeneficiaryType beneficiaryType = BeneficiaryType.NON; BeneficiaryType beneficiaryType = BeneficiaryType.NON;
late HospitalsModel _selectedHospital; HospitalsModel _selectedHospital = HospitalsModel();
String amount = ""; String amount = "";
late String email; String email = "";
late PatientInfo _selectedPatientInfo; PatientInfo _selectedPatientInfo = PatientInfo();
late AuthenticatedUser authenticatedUser; AuthenticatedUser authenticatedUser = AuthenticatedUser();
late GetAllSharedRecordsByStatusList selectedPatientFamily; GetAllSharedRecordsByStatusList selectedPatientFamily = GetAllSharedRecordsByStatusList();
AdvanceModel advanceModel = AdvanceModel(); AdvanceModel advanceModel = AdvanceModel();
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
late AuthenticatedUser authUser; AuthenticatedUser authUser = AuthenticatedUser();
List<ImagesInfo> imagesInfo =[]; List<ImagesInfo> imagesInfo =[];
@ -263,7 +263,7 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
if (model.user != null) if (model.user != null)
NewTextFields( NewTextFields(
hintText: TranslationBase.of(context).depositorEmail, hintText: TranslationBase.of(context).depositorEmail,
initialValue: model.user!.emailAddress!, initialValue: model.user.emailAddress,
onChanged: (value) { onChanged: (value) {
email = value; email = value;
}, },
@ -446,7 +446,7 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
} }
String getHospitalName() { String getHospitalName() {
if (_selectedHospital != null) if (_selectedHospital != null && _selectedHospital.name != null)
return _selectedHospital.name!; return _selectedHospital.name!;
else else
return TranslationBase.of(context).selectHospital; return TranslationBase.of(context).selectHospital;

@ -126,9 +126,9 @@ class _HomeReportPageState extends State<HomeReportPage> with SingleTickerProvid
child: IndexedStack( child: IndexedStack(
index: _currentPage, index: _currentPage,
children: [ children: [
ReportListWidget(reportList: model.reportsOrderRequestList, emailAddress: model.user!.emailAddress!), ReportListWidget(reportList: model.reportsOrderRequestList, emailAddress: model.user.emailAddress),
ReportListWidget(reportList: model.reportsOrderReadyList, emailAddress: model.user!.emailAddress!), ReportListWidget(reportList: model.reportsOrderReadyList, emailAddress: model.user.emailAddress),
ReportListWidget(reportList: model.reportsOrderCanceledList, emailAddress: model.user!.emailAddress!), ReportListWidget(reportList: model.reportsOrderCanceledList, emailAddress: model.user.emailAddress),
], ],
), ),
) )

@ -42,7 +42,11 @@ class _MyVaccinesState extends State<MyVaccines> {
children: <Widget>[ children: <Widget>[
AppExpandableNotifier( AppExpandableNotifier(
isExpand: true, isExpand: true,
title: model.state == ViewState.Idle ? DateUtil.convertStringToDate(model.vaccineList[0].vaccinationDate!).year.toString() : "", title: model.state == ViewState.Idle
? model.vaccineList.isEmpty
? ""
: DateUtil.convertStringToDate(model.vaccineList[0].vaccinationDate!).year.toString()
: "",
bodyWidget: Container( bodyWidget: Container(
child: ListView.separated( child: ListView.separated(
physics: ScrollPhysics(), physics: ScrollPhysics(),
@ -69,29 +73,30 @@ class _MyVaccinesState extends State<MyVaccines> {
), ),
), ),
), ),
SizedBox(height: 40.0,) SizedBox(
height: 40.0,
)
// SpaceBetweenTexts(space: 165.0), // SpaceBetweenTexts(space: 165.0),
], ],
), ),
), ),
bottomSheet: Container( bottomSheet: Container(
color: Colors.white, color: Colors.white,
padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21),
child: DefaultButton( child: DefaultButton(
TranslationBase.of(context).sendEmail, TranslationBase.of(context).sendEmail,
() { () {
showDialog( showDialog(
context: context, context: context,
builder: (cxt) => ConfirmSendEmailDialog( builder: (cxt) => ConfirmSendEmailDialog(
email: projectViewModel.user!.emailAddress!, email: projectViewModel.user!.emailAddress!,
onTapSendEmail: () { onTapSendEmail: () {
model.sendEmail(message: TranslationBase.of(context).emailSentSuccessfully); model.sendEmail(message: TranslationBase.of(context).emailSentSuccessfully);
}, },
), ),
); );
}, },
) )),
),
), ),
); );
} }

@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/main.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_request.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_request.dart';
@ -68,7 +69,7 @@ class AuthProvider with ChangeNotifier {
} }
void getUserAuthentication() async { void getUserAuthentication() async {
Map profile = await sharedPref.getObject(USER_PROFILE); Map profile = await sharedPref.getObject(USER_PROFILE) ?? Map();
languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
if (profile != null) { if (profile != null) {
isLoading = false; isLoading = false;
@ -153,16 +154,20 @@ class AuthProvider with ChangeNotifier {
Future<SelectDeviceIMEIRES> selectDeviceImei(imei) async { Future<SelectDeviceIMEIRES> selectDeviceImei(imei) async {
try { try {
dynamic localRes; dynamic localRes;
print(imei);
Map<String, dynamic> request = {}; Map<String, dynamic> request = {};
request['IMEI'] = imei; request['IMEI'] = imei;
await new BaseAppClient().post(SELECT_DEVICE_IMEI, onSuccess: (dynamic response, int statusCode) { await BaseAppClient().post(SELECT_DEVICE_IMEI, onSuccess: (dynamic response, int statusCode) {
localRes = SelectDeviceIMEIRES.fromJson(response['Patient_SELECTDeviceIMEIbyIMEIList'][0]); localRes = Map();
if (response['Patient_SELECTDeviceIMEIbyIMEIList'][0] != null) {
localRes = SelectDeviceIMEIRES.fromJson(response['Patient_SELECTDeviceIMEIbyIMEIList'][0]);
}
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
throw error; throw error;
}, body: request); }, body: request);
return Future.value(localRes); return Future.value(localRes);
} catch (error) { } catch (error) {
return Future.value(null); return Future.error(error);
} }
} }
@ -247,7 +252,7 @@ class AuthProvider with ChangeNotifier {
return Future.value(localRes); return Future.value(localRes);
} }
Future<dynamic> checkActivationCode(request, [value]) async { Future<dynamic> checkActivationCode(request, [value]) async {
var neRequest = CheckActivationCodeReq.fromJson(request); var neRequest = CheckActivationCodeReq.fromJson(request);
neRequest.activationCode = value ?? "0000"; neRequest.activationCode = value ?? "0000";
@ -376,16 +381,14 @@ class AuthProvider with ChangeNotifier {
requestN.patientOutSA = requestN.patientobject!.patientOutSA!; requestN.patientOutSA = requestN.patientobject!.patientOutSA!;
final DateFormat dateFormat = DateFormat('MM/dd/yyyy'); final DateFormat dateFormat = DateFormat('MM/dd/yyyy');
final DateFormat dateFormat2 = DateFormat('dd/MM/yyyy'); final DateFormat dateFormat2 = DateFormat('dd/MM/yyyy');
if(nhic !=null) { if (nhic != null) {
requestN.dob = nhic['IsHijri'] ? nhic['DateOfBirth'] : dateFormat2.format( requestN.dob = nhic['IsHijri'] ? nhic['DateOfBirth'] : dateFormat2.format(dateFormat.parse(nhic['DateOfBirth']));
dateFormat.parse(nhic['DateOfBirth']));
requestN.isHijri = nhic['IsHijri'] ? 1 : 0; requestN.isHijri = nhic['IsHijri'] ? 1 : 0;
requestN.healthId = requestN.patientobject!.eHealthIDField!; requestN.healthId = requestN.patientobject!.eHealthIDField!;
} }
requestN.zipCode = requestN.patientOutSA == 1 ? '971' : '966'; requestN.zipCode = requestN.patientOutSA == 1 ? '971' : '966';
await sharedPref.remove(USER_PROFILE); await sharedPref.remove(USER_PROFILE);
dynamic localRes; dynamic localRes;

@ -53,7 +53,7 @@ class FamilyFilesProvider with ChangeNotifier {
sharedPref.setObject(FAMILY_FILE, localRes); sharedPref.setObject(FAMILY_FILE, localRes);
return Future.value(GetAllSharedRecordsByStatusResponse.fromJson(localRes)); return Future.value(GetAllSharedRecordsByStatusResponse.fromJson(localRes));
} catch (error) { } catch (error) {
print(error); print("-------" + error.toString());
throw error; throw error;
} }
} }
@ -258,14 +258,22 @@ class FamilyFilesProvider with ChangeNotifier {
// request['LogInTokenID'] = ''; // request['LogInTokenID'] = '';
// request['PatientOutSA'] = currentUser.outSA; //? 1 : 0; // request['PatientOutSA'] = currentUser.outSA; //? 1 : 0;
request['PatientOutSA'] = switchUser.familyRegionID != null ? switchUser.familyRegionID == 1 ? 0 : 1 : currentUser.outSA; //currentUser.outSA; //? 1 : 0; request['PatientOutSA'] = switchUser.familyRegionID != null
? switchUser.familyRegionID == 1
? 0
: 1
: currentUser.outSA; //currentUser.outSA; //? 1 : 0;
request['PatientMobileNumber'] = switchUser.mobileNumber; //['MobileNumber']; request['PatientMobileNumber'] = switchUser.mobileNumber; //['MobileNumber'];
request['SearchType'] = 2; request['SearchType'] = 2;
request['SuperUser'] = switchUser.patientID; //currentUser.PatientID; request['SuperUser'] = switchUser.patientID; //currentUser.PatientID;
request['PatientIdentificationID'] = ''; request['PatientIdentificationID'] = '';
request['IsSilentLogin'] = true; request['IsSilentLogin'] = true;
request['PatientID'] = switchUser.responseID; //['PatientID']; request['PatientID'] = switchUser.responseID; //['PatientID'];
request['ZipCode'] = switchUser.familyRegionID != null ? switchUser.familyRegionID == 1 ? "966" : "971" : "966"; request['ZipCode'] = switchUser.familyRegionID != null
? switchUser.familyRegionID == 1
? "966"
: "971"
: "966";
// request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966"; // request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966";
request['activationCode'] = '0000'; request['activationCode'] = '0000';
request['isRegister'] = false; request['isRegister'] = false;
@ -273,7 +281,7 @@ class FamilyFilesProvider with ChangeNotifier {
try { try {
dynamic localRes; dynamic localRes;
await new BaseAppClient().post(ACTIVATION_CODE_URL, onSuccess: (dynamic response, int statusCode) { await BaseAppClient().post(ACTIVATION_CODE_URL, onSuccess: (dynamic response, int statusCode) {
localRes = response; localRes = response;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
AppToast.showErrorToast(message: error); AppToast.showErrorToast(message: error);

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
@ -34,6 +35,7 @@ class _SplashScreenState extends State<SplashScreen> {
Duration(seconds: 1, milliseconds: 500), Duration(seconds: 1, milliseconds: 500),
() { () {
loadPrivilege().then((value) { loadPrivilege().then((value) {
print(value);
Navigator.of(context).pushReplacement( Navigator.of(context).pushReplacement(
MaterialPageRoute( MaterialPageRoute(
builder: (BuildContext context) => LandingPage(), builder: (BuildContext context) => LandingPage(),
@ -44,7 +46,7 @@ class _SplashScreenState extends State<SplashScreen> {
); );
AppSharedPreferences().getAll().then((value) { AppSharedPreferences().getAll().then((value) {
// debugPrint("ALL SHARED PREFERENCES!!!!!"); // debugPrint("ALL SHARED PREFERENCES!!!!!");
// debugPrint(jsonEncode(value)); // debugPrint(jsonEncode(value));
}); });
} }
@ -59,7 +61,7 @@ class _SplashScreenState extends State<SplashScreen> {
AppSharedPreferences().setString(APP_LANGUAGE, projectProvider.isArabic ? "ar" : "en"); AppSharedPreferences().setString(APP_LANGUAGE, projectProvider.isArabic ? "ar" : "en");
var themeNotifier = Provider.of<ThemeNotifier>(context, listen: false); var themeNotifier = Provider.of<ThemeNotifier>(context, listen: false);
themeNotifier.setTheme(defaultTheme(fontName: projectProvider.isArabic ? 'Cairo' : 'Poppins')); themeNotifier.setTheme(defaultTheme(fontName: projectProvider.isArabic ? 'Cairo' : 'Poppins'));
PushNotificationHandler(context).init(); // Asyncronously if (Platform.isIOS) PushNotificationHandler.getInstance().init(context); // Asyncronously
} }
@override @override

@ -115,8 +115,9 @@ _incomingCall(Map<String, dynamic> data) async {
} }
class PushNotificationHandler { class PushNotificationHandler {
final BuildContext context; late BuildContext context;
static late PushNotificationHandler _instance; static final PushNotificationHandler _instance = PushNotificationHandler._internal();
final voIPKit = FlutterIOSVoIPKit.instance; final voIPKit = FlutterIOSVoIPKit.instance;
late HmsApiAvailability hmsApiAvailability; late HmsApiAvailability hmsApiAvailability;
@ -143,9 +144,9 @@ class PushNotificationHandler {
"is_call": "true" "is_call": "true"
}; };
PushNotificationHandler(this.context) { PushNotificationHandler._internal();
PushNotificationHandler._instance = this;
} factory PushNotificationHandler() => _instance;
static PushNotificationHandler getInstance() => _instance; static PushNotificationHandler getInstance() => _instance;
@ -163,11 +164,15 @@ class PushNotificationHandler {
}); });
} }
init() async { init(BuildContext context) async {
this.context = context;
// VoIP Callbacks // VoIP Callbacks
voIPKit.getVoIPToken().then((value) { voIPKit.getVoIPToken().then((value) {
print('🎈 example: getVoIPToken: $value'); print('🎈 example: getVoIPToken: $value');
AppSharedPreferences().setString(APNS_TOKEN, value!); if (value != null) {
AppSharedPreferences().setString(APNS_TOKEN, value);
}
}); });
voIPKit.onDidUpdatePushToken = ( voIPKit.onDidUpdatePushToken = (
@ -263,12 +268,12 @@ class PushNotificationHandler {
try { try {
FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage? message) async { FirebaseMessaging.instance.getInitialMessage().then((RemoteMessage? message) async {
if (message! != null) { if (message != null) {
if (Platform.isIOS) if (Platform.isIOS)
await Future.delayed(Duration(milliseconds: 3000)).then((value) { await Future.delayed(Duration(milliseconds: 3000)).then((value) {
if (message! != null) newMessage(message!); if (message != null) newMessage(message);
}); });
else if (message! != null) newMessage(message!); else if (message != null) newMessage(message);
} }
}); });
} catch (ex) {} } catch (ex) {}

@ -6,7 +6,7 @@ import 'dart:typed_data';
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
import 'package:badges/badges.dart' as badge_import; import 'package:badges/badges.dart' as badge_import;
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
import 'package:connectivity/connectivity.dart'; import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:crypto/crypto.dart' as crypto; import 'package:crypto/crypto.dart' as crypto;
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
@ -75,7 +75,7 @@ class Utils {
/// Check The Internet Connection /// Check The Internet Connection
static Future<bool> checkConnection({bool bypassConnectionCheck = false}) async { static Future<bool> checkConnection({bool bypassConnectionCheck = false}) async {
if (bypassConnectionCheck) return true; if (bypassConnectionCheck) return true;
//return true;
ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity()); ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity());
if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)) { if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)) {
return true; return true;
@ -101,9 +101,14 @@ class Utils {
static showPermissionConsentDialog(BuildContext context, String message, VoidCallback? onTap) { static showPermissionConsentDialog(BuildContext context, String message, VoidCallback? onTap) {
showDialog( showDialog(
context: context, context: context,
builder: (cxt) => CovidConsentDialog( builder: (cxt) =>
okTitle: TranslationBase.of(context).acceptLbl, CovidConsentDialog(
title: TranslationBase.of(context).covidConsentHeader, okTitle: TranslationBase
.of(context)
.acceptLbl,
title: TranslationBase
.of(context)
.covidConsentHeader,
message: message, message: message,
onTap: onTap!, onTap: onTap!,
)); ));
@ -156,19 +161,21 @@ class Utils {
} }
static String getAdvancePaymentTransID(int projectID, int fileNumber) { static String getAdvancePaymentTransID(int projectID, int fileNumber) {
return projectID.toString() + '-' + fileNumber.toString() + '-' + DateTime.now().millisecondsSinceEpoch.toString(); return projectID.toString() + '-' + fileNumber.toString() + '-' + DateTime
.now()
.millisecondsSinceEpoch
.toString();
} }
bool validateIDBox(String value, type) { bool validateIDBox(String value, int type) {
String pattern = loginIDPattern(type).toString(); //r'^\d+(?:\.\d+)?$'; String pattern = loginIDPattern(type); // Get the pattern based on type
RegExp regex = RegExp(pattern);
RegExp regex = new RegExp(pattern);
return regex.hasMatch(value); return regex.hasMatch(value);
} }
String loginIDPattern(loginType) { String loginIDPattern(int loginType) {
var length = loginType == 1 ? 10 : 1; var length = loginType == 1 ? 10 : 1;
return "([0-9]{" + length.toString() + "})"; return "([0-9]{$length})";
} }
static showProgressDialog(context, [String message = "Loading..."]) async { static showProgressDialog(context, [String message = "Loading..."]) async {
@ -226,74 +233,86 @@ class Utils {
onTap: () => projectViewModel!.havePrivilege(5) ? Navigator.push(context!, FadePage(page: MyAppointments())) : null, onTap: () => projectViewModel!.havePrivilege(5) ? Navigator.push(context!, FadePage(page: MyAppointments())) : null,
child: isLogin! child: isLogin!
? Stack(children: [ ? Stack(children: [
Container( Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context!).myAppointments, title: TranslationBase
imagePath: 'appointment_list.svg', .of(context!)
subTitle: TranslationBase.of(context!).myAppointmentsList, .myAppointments,
hasBadge: true,
isEnable: projectViewModel!.havePrivilege(5)),
),
projectViewModel.isArabic
? !projectViewModel.user!.isFamily
? Positioned(
left: 8,
top: 4,
child: badge_import.Badge(
badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false),
badgeStyle: badge_import.BadgeStyle(
elevation: 0,
shape: badge_import.BadgeShape.circle,
badgeColor: secondaryColor!.withOpacity(1.0),
borderRadius: BorderRadius.circular(8),
),
position: badge_import.BadgePosition.topEnd(),
badgeContent: Container(
padding: EdgeInsets.all(2.0),
child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)),
),
),
)
: Container()
: !projectViewModel.user!.isFamily
? Positioned(
right: 8,
top: 4,
child: badge_import.Badge(
position: badge_import.BadgePosition.topEnd(),
badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false),
badgeStyle: badge_import.BadgeStyle(
elevation: 0,
shape: badge_import.BadgeShape.circle,
badgeColor: secondaryColor!.withOpacity(1.0),
borderRadius: BorderRadius.circular(8),
),
badgeContent: Container(
padding: EdgeInsets.all(2.0),
child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)),
),
),
)
: Container(),
])
: MedicalProfileItem(
title: TranslationBase.of(context!).myAppointments,
imagePath: 'appointment_list.svg', imagePath: 'appointment_list.svg',
subTitle: TranslationBase.of(context!).myAppointmentsList, subTitle: TranslationBase
.of(context!)
.myAppointmentsList,
hasBadge: true, hasBadge: true,
isEnable: projectViewModel!.havePrivilege(5), isEnable: projectViewModel!.havePrivilege(5)),
),
projectViewModel.isArabic
? !projectViewModel.user!.isFamily
? Positioned(
left: 8,
top: 4,
child: badge_import.Badge(
badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false),
badgeStyle: badge_import.BadgeStyle(
elevation: 0,
shape: badge_import.BadgeShape.circle,
badgeColor: secondaryColor!.withOpacity(1.0),
borderRadius: BorderRadius.circular(8),
),
position: badge_import.BadgePosition.topEnd(),
badgeContent: Container(
padding: EdgeInsets.all(2.0),
child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)),
),
),
)
: Container()
: !projectViewModel.user!.isFamily
? Positioned(
right: 8,
top: 4,
child: badge_import.Badge(
position: badge_import.BadgePosition.topEnd(),
badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false),
badgeStyle: badge_import.BadgeStyle(
elevation: 0,
shape: badge_import.BadgeShape.circle,
badgeColor: secondaryColor!.withOpacity(1.0),
borderRadius: BorderRadius.circular(8),
), ),
badgeContent: Container(
padding: EdgeInsets.all(2.0),
child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)),
),
),
)
: Container(),
])
: MedicalProfileItem(
title: TranslationBase
.of(context!)
.myAppointments,
imagePath: 'appointment_list.svg',
subTitle: TranslationBase
.of(context!)
.myAppointmentsList,
hasBadge: true,
isEnable: projectViewModel!.havePrivilege(5),
),
)); ));
if (projectViewModel.havePrivilege(10)) { if (projectViewModel.havePrivilege(10)) {
medical.add(InkWell( medical.add(InkWell(
onTap: () => Navigator.push(context, FadePage(page: LabsHomePage())), onTap: () => Navigator.push(context, FadePage(page: LabsHomePage())),
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).lab, title: TranslationBase
.of(context)
.lab,
imagePath: 'lab_result.svg', imagePath: 'lab_result.svg',
subTitle: TranslationBase.of(context).labSubtitle, subTitle: TranslationBase
.of(context)
.labSubtitle,
), ),
)); ));
} }
@ -301,9 +320,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null, onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).radiology, title: TranslationBase
.of(context)
.radiology,
imagePath: 'radiology.svg', imagePath: 'radiology.svg',
subTitle: TranslationBase.of(context).radiologySubtitle, subTitle: TranslationBase
.of(context)
.radiologySubtitle,
isEnable: projectViewModel.havePrivilege(7), isEnable: projectViewModel.havePrivilege(7),
), ),
)); ));
@ -311,24 +334,33 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null, onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).medicines, title: TranslationBase
.of(context)
.medicines,
imagePath: 'medicine_prescription.svg', imagePath: 'medicine_prescription.svg',
subTitle: TranslationBase.of(context).medicinesSubtitle, subTitle: TranslationBase
.of(context)
.medicinesSubtitle,
isEnable: projectViewModel.havePrivilege(12), isEnable: projectViewModel.havePrivilege(12),
), ),
)); ));
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(25) onTap: () =>
projectViewModel.havePrivilege(25)
? Navigator.push( ? Navigator.push(
context, context,
FadePage(page: VitalSignDetailsScreen()), FadePage(page: VitalSignDetailsScreen()),
) )
: null, : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).vitalSigns, title: TranslationBase
.of(context)
.vitalSigns,
imagePath: 'vital_signs.svg', imagePath: 'vital_signs.svg',
subTitle: TranslationBase.of(context).vitalSignsSubtitle, subTitle: TranslationBase
.of(context)
.vitalSignsSubtitle,
isEnable: projectViewModel.havePrivilege(25), isEnable: projectViewModel.havePrivilege(25),
), ),
)); ));
@ -338,32 +370,45 @@ class Utils {
if (projectViewModel.havePrivilege(48)) Navigator.push(context, FadePage(page: ActiveMedicationsPage())); if (projectViewModel.havePrivilege(48)) Navigator.push(context, FadePage(page: ActiveMedicationsPage()));
}, },
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).myMedical, title: TranslationBase
.of(context)
.myMedical,
imagePath: 'active_medication.svg', imagePath: 'active_medication.svg',
subTitle: TranslationBase.of(context).myMedicalSubtitle, subTitle: TranslationBase
.of(context)
.myMedicalSubtitle,
isEnable: projectViewModel.havePrivilege(48), isEnable: projectViewModel.havePrivilege(48),
), ),
)); ));
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(6) onTap: () =>
projectViewModel.havePrivilege(6)
? Navigator.push( ? Navigator.push(
context, context,
FadePage( FadePage(
page: DoctorHomePage(), page: DoctorHomePage(),
), ),
) )
: null, : null,
child: child:
MedicalProfileItem(title: TranslationBase.of(context).myDoctor, imagePath: 'my_doc.svg', subTitle: TranslationBase.of(context).myDoctorSubtitle, isEnable: projectViewModel.havePrivilege(6)), MedicalProfileItem(title: TranslationBase
.of(context)
.myDoctor, imagePath: 'my_doc.svg', subTitle: TranslationBase
.of(context)
.myDoctorSubtitle, isEnable: projectViewModel.havePrivilege(6)),
)); ));
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: MyInvoices())) : null, onTap: () => projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: MyInvoices())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).invoicesList, title: TranslationBase
.of(context)
.invoicesList,
imagePath: 'invoice_list.svg', imagePath: 'invoice_list.svg',
subTitle: TranslationBase.of(context).myInvoice, subTitle: TranslationBase
.of(context)
.myInvoice,
isEnable: projectViewModel.havePrivilege(14), isEnable: projectViewModel.havePrivilege(14),
), ),
)); ));
@ -372,10 +417,14 @@ class Utils {
onTap: () => projectViewModel.havePrivilege(85) ? Navigator.push(context, FadePage(page: AnicllaryOrders())) : null, onTap: () => projectViewModel.havePrivilege(85) ? Navigator.push(context, FadePage(page: AnicllaryOrders())) : null,
// onTap: () => Navigator.push(context, FadePage(page: AnicllaryOrders())), // onTap: () => Navigator.push(context, FadePage(page: AnicllaryOrders())),
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).anicllaryOrders, title: TranslationBase
.of(context)
.anicllaryOrders,
imagePath: 'ancillary.svg', imagePath: 'ancillary.svg',
isPngImage: false, isPngImage: false,
subTitle: TranslationBase.of(context).myInvoice, subTitle: TranslationBase
.of(context)
.myInvoice,
isEnable: projectViewModel.havePrivilege(85), isEnable: projectViewModel.havePrivilege(85),
), ),
)); ));
@ -383,19 +432,35 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: EyeMeasurementsPage())) : null, onTap: () => projectViewModel.havePrivilege(14) ? Navigator.push(context, FadePage(page: EyeMeasurementsPage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).eye, title: TranslationBase
.of(context)
.eye,
imagePath: 'eye_measurement.svg', imagePath: 'eye_measurement.svg',
subTitle: TranslationBase.of(context).eyeSubtitle, subTitle: TranslationBase
.of(context)
.eyeSubtitle,
isEnable: projectViewModel.havePrivilege(14), isEnable: projectViewModel.havePrivilege(14),
), ),
)); ));
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(22) ? Navigator.push(context, FadePage(page: InsuranceCard(appointmentNo: 0,))) : null, onTap: () =>
projectViewModel.havePrivilege(22)
? Navigator.push(
context,
FadePage(
page: InsuranceCard(
appointmentNo: 0,
)))
: null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).insurance, title: TranslationBase
.of(context)
.insurance,
imagePath: 'insurance_card.svg', imagePath: 'insurance_card.svg',
subTitle: TranslationBase.of(context).insuranceSubtitle, subTitle: TranslationBase
.of(context)
.insuranceSubtitle,
isEnable: projectViewModel.havePrivilege(22), isEnable: projectViewModel.havePrivilege(22),
), ),
)); ));
@ -405,18 +470,34 @@ class Utils {
Navigator.push(context, FadePage(page: InsuranceUpdate())); Navigator.push(context, FadePage(page: InsuranceUpdate()));
}, },
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).updateInsurance, title: TranslationBase
.of(context)
.updateInsurance,
imagePath: 'insurance_card.svg', imagePath: 'insurance_card.svg',
subTitle: TranslationBase.of(context).updateInsuranceSubtitle, subTitle: TranslationBase
.of(context)
.updateInsuranceSubtitle,
), ),
)); ));
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(18) ? Navigator.push(context, FadePage(page: InsuranceApproval(appointmentNo: 0,))) : null, onTap: () =>
projectViewModel.havePrivilege(18)
? Navigator.push(
context,
FadePage(
page: InsuranceApproval(
appointmentNo: 0,
)))
: null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).insuranceApproval, title: TranslationBase
.of(context)
.insuranceApproval,
imagePath: 'insurance_approval.svg', imagePath: 'insurance_approval.svg',
subTitle: TranslationBase.of(context).insuranceApprovalSubtitle, subTitle: TranslationBase
.of(context)
.insuranceApprovalSubtitle,
isEnable: projectViewModel.havePrivilege(18), isEnable: projectViewModel.havePrivilege(18),
), ),
)); ));
@ -424,9 +505,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(23) ? Navigator.push(context, FadePage(page: AllergiesPage())) : null, onTap: () => projectViewModel.havePrivilege(23) ? Navigator.push(context, FadePage(page: AllergiesPage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).allergies, title: TranslationBase
.of(context)
.allergies,
imagePath: 'allergies_diagnosed.svg', imagePath: 'allergies_diagnosed.svg',
subTitle: TranslationBase.of(context).allergiesSubtitle, subTitle: TranslationBase
.of(context)
.allergiesSubtitle,
isEnable: projectViewModel.havePrivilege(23), isEnable: projectViewModel.havePrivilege(23),
), ),
)); ));
@ -434,9 +519,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(26) ? Navigator.push(context, FadePage(page: MyVaccines())) : null, onTap: () => projectViewModel.havePrivilege(26) ? Navigator.push(context, FadePage(page: MyVaccines())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).myVaccines, title: TranslationBase
.of(context)
.myVaccines,
imagePath: 'vaccine_list.svg', imagePath: 'vaccine_list.svg',
subTitle: TranslationBase.of(context).myVaccinesSubtitle, subTitle: TranslationBase
.of(context)
.myVaccinesSubtitle,
isEnable: projectViewModel.havePrivilege(26), isEnable: projectViewModel.havePrivilege(26),
), ),
)); ));
@ -444,9 +533,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(20) ? Navigator.push(context, FadePage(page: HomeReportPage())) : null, onTap: () => projectViewModel.havePrivilege(20) ? Navigator.push(context, FadePage(page: HomeReportPage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).medical, title: TranslationBase
.of(context)
.medical,
imagePath: 'medical_report.svg', imagePath: 'medical_report.svg',
subTitle: TranslationBase.of(context).medicalSubtitle, subTitle: TranslationBase
.of(context)
.medicalSubtitle,
isEnable: projectViewModel.havePrivilege(20), isEnable: projectViewModel.havePrivilege(20),
), ),
)); ));
@ -454,9 +547,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(19) ? Navigator.push(context, FadePage(page: MonthlyReportsPage())) : null, onTap: () => projectViewModel.havePrivilege(19) ? Navigator.push(context, FadePage(page: MonthlyReportsPage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).monthly, title: TranslationBase
.of(context)
.monthly,
imagePath: 'monthly_report.svg', imagePath: 'monthly_report.svg',
subTitle: TranslationBase.of(context).monthlySubtitle, subTitle: TranslationBase
.of(context)
.monthlySubtitle,
isEnable: projectViewModel.havePrivilege(19), isEnable: projectViewModel.havePrivilege(19),
), ),
)); ));
@ -464,9 +561,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(16) ? Navigator.push(context, FadePage(page: PatientSickLeavePage())) : null, onTap: () => projectViewModel.havePrivilege(16) ? Navigator.push(context, FadePage(page: PatientSickLeavePage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).sick, title: TranslationBase
.of(context)
.sick,
imagePath: 'sick_leave.svg', imagePath: 'sick_leave.svg',
subTitle: TranslationBase.of(context).sickSubtitle, subTitle: TranslationBase
.of(context)
.sickSubtitle,
isEnable: projectViewModel.havePrivilege(16), isEnable: projectViewModel.havePrivilege(16),
), ),
)); ));
@ -474,9 +575,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(47) ? Navigator.push(context, FadePage(page: MyBalancePage())) : null, onTap: () => projectViewModel.havePrivilege(47) ? Navigator.push(context, FadePage(page: MyBalancePage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).myBalance, title: TranslationBase
.of(context)
.myBalance,
imagePath: 'balance_credit.svg', imagePath: 'balance_credit.svg',
subTitle: TranslationBase.of(context).myBalanceSubtitle, subTitle: TranslationBase
.of(context)
.myBalanceSubtitle,
isEnable: projectViewModel.havePrivilege(47), isEnable: projectViewModel.havePrivilege(47),
), ),
)); ));
@ -491,9 +596,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(24) ? Navigator.push(context, FadePage(page: MyTrackers())) : null, onTap: () => projectViewModel.havePrivilege(24) ? Navigator.push(context, FadePage(page: MyTrackers())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).myTrackers, title: TranslationBase
.of(context)
.myTrackers,
imagePath: 'tracker.svg', imagePath: 'tracker.svg',
subTitle: TranslationBase.of(context).myTrackersSubtitle, subTitle: TranslationBase
.of(context)
.myTrackersSubtitle,
isEnable: projectViewModel.havePrivilege(24), isEnable: projectViewModel.havePrivilege(24),
), ),
)); ));
@ -501,9 +610,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(30) ? Navigator.push(context, FadePage(page: SmartWatchInstructions())) : null, onTap: () => projectViewModel.havePrivilege(30) ? Navigator.push(context, FadePage(page: SmartWatchInstructions())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).smartWatchesSubtitle, title: TranslationBase
.of(context)
.smartWatchesSubtitle,
imagePath: 'smart_watch.svg', imagePath: 'smart_watch.svg',
subTitle: TranslationBase.of(context).smartWatches, subTitle: TranslationBase
.of(context)
.smartWatches,
isEnable: projectViewModel.havePrivilege(30), isEnable: projectViewModel.havePrivilege(30),
), ),
)); ));
@ -511,14 +624,20 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(28) ? Navigator.push(context, FadePage(page: AskDoctorHomPage())) : null, onTap: () => projectViewModel.havePrivilege(28) ? Navigator.push(context, FadePage(page: AskDoctorHomPage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).askYourSubtitle, imagePath: 'ask_doctor.svg', subTitle: TranslationBase.of(context).askYour, isEnable: projectViewModel.havePrivilege(28)), title: TranslationBase
.of(context)
.askYourSubtitle, imagePath: 'ask_doctor.svg', subTitle: TranslationBase
.of(context)
.askYour, isEnable: projectViewModel.havePrivilege(28)),
)); ));
if (projectViewModel.havePrivilege(32) || true) { if (projectViewModel.havePrivilege(32) || true) {
medical.add(InkWell( medical.add(InkWell(
onTap: () { onTap: () {
if (Platform.isAndroid) { if (Platform.isAndroid) {
showPermissionConsentDialog(context, TranslationBase.of(context).wifiPermission, () { showPermissionConsentDialog(context, TranslationBase
.of(context)
.wifiPermission, () {
connectWifi(projectViewModel, context); connectWifi(projectViewModel, context);
}); });
} else { } else {
@ -526,9 +645,13 @@ class Utils {
} }
}, },
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).internet, title: TranslationBase
.of(context)
.internet,
imagePath: 'internet_connection.svg', imagePath: 'internet_connection.svg',
subTitle: TranslationBase.of(context).internetSubtitle, subTitle: TranslationBase
.of(context)
.internetSubtitle,
), ),
)); ));
} }
@ -536,9 +659,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(40) ? launch('whatsapp://send?phone=18885521858&text=') : null, onTap: () => projectViewModel.havePrivilege(40) ? launch('whatsapp://send?phone=18885521858&text=') : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).chatbot, title: TranslationBase
.of(context)
.chatbot,
imagePath: 'chatbot.svg', imagePath: 'chatbot.svg',
subTitle: TranslationBase.of(context).chatbotSubtitle, subTitle: TranslationBase
.of(context)
.chatbotSubtitle,
isEnable: projectViewModel.havePrivilege(40), isEnable: projectViewModel.havePrivilege(40),
), ),
)); ));
@ -607,69 +734,81 @@ class Utils {
onTap: () => projectViewModel!.havePrivilege(5) ? Navigator.push(context!, FadePage(page: MyAppointments())) : null, onTap: () => projectViewModel!.havePrivilege(5) ? Navigator.push(context!, FadePage(page: MyAppointments())) : null,
child: isLogin! child: isLogin!
? Stack(children: [ ? Stack(children: [
MedicalProfileItem( MedicalProfileItem(
title: TranslationBase.of(context!).myAppointments, title: TranslationBase
imagePath: 'appointment_list.svg', .of(context!)
subTitle: TranslationBase.of(context!).myAppointmentsList, .myAppointments,
hasBadge: true, imagePath: 'appointment_list.svg',
isEnable: projectViewModel!.havePrivilege(5)), subTitle: TranslationBase
projectViewModel.isArabic! .of(context!)
? !projectViewModel.isLoginChild .myAppointmentsList,
? Positioned( hasBadge: true,
left: 8, isEnable: projectViewModel!.havePrivilege(5)),
top: 4, projectViewModel.isArabic!
child: badge_import.Badge( ? !projectViewModel.isLoginChild
position: badge_import.BadgePosition.topEnd(), ? Positioned(
badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false), left: 8,
badgeStyle: badge_import.BadgeStyle( top: 4,
elevation: 0, child: badge_import.Badge(
shape: badge_import.BadgeShape.circle, position: badge_import.BadgePosition.topEnd(),
badgeColor: secondaryColor!.withOpacity(1.0), badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false),
borderRadius: BorderRadius.circular(8), badgeStyle: badge_import.BadgeStyle(
), elevation: 0,
badgeContent: Container( shape: badge_import.BadgeShape.circle,
padding: EdgeInsets.all(2.0), badgeColor: secondaryColor!.withOpacity(1.0),
child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), borderRadius: BorderRadius.circular(8),
), ),
), badgeContent: Container(
) padding: EdgeInsets.all(2.0),
: Container() child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)),
: !projectViewModel.isLoginChild
? Positioned(
right: 8,
top: 4,
child: badge_import.Badge(
badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false),
badgeStyle: badge_import.BadgeStyle(
elevation: 0,
shape: badge_import.BadgeShape.circle,
badgeColor: secondaryColor!.withOpacity(1.0),
borderRadius: BorderRadius.circular(8),
),
position: badge_import.BadgePosition.topEnd(),
badgeContent: Container(
padding: EdgeInsets.all(2.0),
child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)),
),
),
)
: Container(),
])
: MedicalProfileItem(
title: TranslationBase.of(context!).myAppointments,
imagePath: 'appointment_list.svg',
subTitle: TranslationBase.of(context!).myAppointmentsList,
hasBadge: true,
isEnable: projectViewModel!.havePrivilege(5),
), ),
),
)
: Container()
: !projectViewModel.isLoginChild
? Positioned(
right: 8,
top: 4,
child: badge_import.Badge(
badgeAnimation: badge_import.BadgeAnimation.fade(toAnimate: false),
badgeStyle: badge_import.BadgeStyle(
elevation: 0,
shape: badge_import.BadgeShape.circle,
badgeColor: secondaryColor!.withOpacity(1.0),
borderRadius: BorderRadius.circular(8),
),
position: badge_import.BadgePosition.topEnd(),
badgeContent: Container(
padding: EdgeInsets.all(2.0),
child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)),
),
),
)
: Container(),
])
: MedicalProfileItem(
title: TranslationBase
.of(context!)
.myAppointments,
imagePath: 'appointment_list.svg',
subTitle: TranslationBase
.of(context!)
.myAppointmentsList,
hasBadge: true,
isEnable: projectViewModel!.havePrivilege(5),
),
)); ));
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(10) ? Navigator.push(context, FadePage(page: LabsHomePage())) : null, onTap: () => projectViewModel.havePrivilege(10) ? Navigator.push(context, FadePage(page: LabsHomePage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).lab, title: TranslationBase
.of(context)
.lab,
imagePath: 'lab_result.svg', imagePath: 'lab_result.svg',
subTitle: TranslationBase.of(context).labSubtitle, subTitle: TranslationBase
.of(context)
.labSubtitle,
isEnable: projectViewModel.havePrivilege(10), isEnable: projectViewModel.havePrivilege(10),
), ),
)); ));
@ -677,9 +816,13 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null, onTap: () => projectViewModel.havePrivilege(7) ? Navigator.push(context, FadePage(page: RadiologyHomePage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).radiology, title: TranslationBase
.of(context)
.radiology,
imagePath: 'radiology.svg', imagePath: 'radiology.svg',
subTitle: TranslationBase.of(context).radiologySubtitle, subTitle: TranslationBase
.of(context)
.radiologySubtitle,
isEnable: projectViewModel.havePrivilege(7), isEnable: projectViewModel.havePrivilege(7),
), ),
)); ));
@ -687,24 +830,33 @@ class Utils {
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null, onTap: () => projectViewModel.havePrivilege(12) ? Navigator.push(context, FadePage(page: HomePrescriptionsPage())) : null,
child: MedicalProfileItem( child: MedicalProfileItem(
title: TranslationBase.of(context).medicines, title: TranslationBase
.of(context)
.medicines,
imagePath: 'medicine_prescription.svg', imagePath: 'medicine_prescription.svg',
subTitle: TranslationBase.of(context).medicinesSubtitle, subTitle: TranslationBase
.of(context)
.medicinesSubtitle,
isEnable: projectViewModel.havePrivilege(12), isEnable: projectViewModel.havePrivilege(12),
), ),
)); ));
medical.add(InkWell( medical.add(InkWell(
onTap: () => projectViewModel.havePrivilege(6) onTap: () =>
projectViewModel.havePrivilege(6)
? Navigator.push( ? Navigator.push(
context, context,
FadePage( FadePage(
page: DoctorHomePage(), page: DoctorHomePage(),
), ),
) )
: null, : null,
child: child:
MedicalProfileItem(title: TranslationBase.of(context).myDoctor, imagePath: 'my_doc.svg', subTitle: TranslationBase.of(context).myDoctorSubtitle, isEnable: projectViewModel.havePrivilege(6)), MedicalProfileItem(title: TranslationBase
.of(context)
.myDoctor, imagePath: 'my_doc.svg', subTitle: TranslationBase
.of(context)
.myDoctorSubtitle, isEnable: projectViewModel.havePrivilege(6)),
)); ));
return medical; return medical;
@ -744,7 +896,11 @@ class Utils {
SizedBox(height: 6), SizedBox(height: 6),
Text( Text(
text, text,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.48, height: 18 / 12), style: TextStyle(fontSize: 12,
fontWeight: FontWeight.w600,
color: Color(0xff2E303A),
letterSpacing: -0.48,
height: 18 / 12),
), ),
SizedBox(height: 5), SizedBox(height: 5),
if (showDivider) if (showDivider)
@ -765,10 +921,16 @@ class Utils {
children: [ children: [
SizedBox(height: 12), SizedBox(height: 12),
Text( Text(
isCapitable && !projectViewModel.isArabic ? text.toLowerCase().capitalizeFirstofEach : text, isCapitable && !projectViewModel.isArabic ? text
.toLowerCase()
.capitalizeFirstofEach : text,
maxLines: 2, maxLines: 2,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10), style: TextStyle(fontSize: 12,
fontWeight: FontWeight.w600,
color: Color(0xff575757),
letterSpacing: -0.4,
height: 16 / 10),
), ),
SizedBox(height: 12), SizedBox(height: 12),
if (!isLast) if (!isLast)
@ -783,7 +945,10 @@ class Utils {
static Future<bool> isGoogleServicesAvailable() async { static Future<bool> isGoogleServicesAvailable() async {
GooglePlayServicesAvailability availability = await GoogleApiAvailability.instance.checkGooglePlayServicesAvailability(); GooglePlayServicesAvailability availability = await GoogleApiAvailability.instance.checkGooglePlayServicesAvailability();
String status = availability.toString().split('.').last; String status = availability
.toString()
.split('.')
.last;
if (status == "success") { if (status == "success") {
return true; return true;
} }
@ -798,10 +963,17 @@ class Utils {
children: [ children: [
SizedBox(height: 14), SizedBox(height: 14),
AutoSizeText( AutoSizeText(
isCapitable ? text.toLowerCase().capitalizeFirstofEach : text, isCapitable ? text
.toLowerCase()
.capitalizeFirstofEach : text,
maxLines: 1, maxLines: 1,
minFontSize: 6, minFontSize: 6,
style: TextStyle(decoration: TextDecoration.underline, fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xffD02127), letterSpacing: -0.48, height: 18 / 12), style: TextStyle(decoration: TextDecoration.underline,
fontSize: 12,
fontWeight: FontWeight.w600,
color: Color(0xffD02127),
letterSpacing: -0.48,
height: 18 / 12),
), ),
SizedBox(height: 10), SizedBox(height: 10),
if (!isLast) if (!isLast)

@ -31,16 +31,11 @@ Widget getPaymentMethods() {
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Image.asset("assets/images/new/payment/Mada.png", Image.asset("assets/images/new/payment/Mada.png", width: 40, height: 40),
width: 40, height: 40), Image.asset("assets/images/new/payment/tamara_en.png", width: 40, height: 40),
Image.asset("assets/images/new/payment/tamara_en.png", Image.asset("assets/images/new/payment/visa.png", width: 40, height: 40),
width: 40, height: 40), Image.asset("assets/images/new/payment/Mastercard.png", width: 50, height: 40),
Image.asset("assets/images/new/payment/visa.png", Image.asset("assets/images/new/payment/Apple_Pay.png", width: 40, height: 40),
width: 40, height: 40),
Image.asset("assets/images/new/payment/Mastercard.png",
width: 50, height: 40),
Image.asset("assets/images/new/payment/Apple_Pay.png",
width: 40, height: 40),
], ],
), ),
); );
@ -52,15 +47,8 @@ Widget getNoDataWidget(BuildContext context) {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
SvgPicture.asset('assets/images/new/not_found.svg', SvgPicture.asset('assets/images/new/not_found.svg', width: 110.0, height: 110.0),
width: 110.0, height: 110.0), Container(margin: EdgeInsets.only(top: 15.0), child: Text(TranslationBase.of(context).noResultFound, style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xFFBABABA)))),
Container(
margin: EdgeInsets.only(top: 15.0),
child: Text(TranslationBase.of(context).noResultFound,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: Color(0xFFBABABA)))),
], ],
), ),
), ),
@ -88,8 +76,7 @@ spacer() {
} }
Future navigateTo(context, page) async { Future navigateTo(context, page) async {
return await Navigator.push( return await Navigator.push(context, MaterialPageRoute(builder: (context) => page));
context, MaterialPageRoute(builder: (context) => page));
} }
// Future navigateToReplace(context, page) async { // Future navigateToReplace(context, page) async {
@ -148,10 +135,11 @@ Widget circularAviator(
width: s, width: s,
height: s, height: s,
decoration: containerColorRadiusBorderWidth( decoration: containerColorRadiusBorderWidth(
bcColor! == null ? Colors.grey[200]! : bcColor, bcColor == null ? Colors.grey[200]! : bcColor,
2000, 2000,
brColor == null ? Colors.blueGrey[800]! : brColor, brColor == null ? Colors.blueGrey[800]! : brColor,
borderWidth! == null ? 2 : borderWidth!), borderWidth == null ? 2 : borderWidth,
),
child: Icon( child: Icon(
icon == null ? Icons.person : icon, icon == null ? Icons.person : icon,
size: s / 1.7, size: s / 1.7,
@ -233,8 +221,7 @@ RoundedRectangleBorder buttonShape() {
); );
} }
Decoration containerRadiusWithGradient(double radius, Decoration containerRadiusWithGradient(double radius, {Color? color1, Color? color2}) {
{Color? color1, Color? color2}) {
return BoxDecoration( return BoxDecoration(
borderRadius: BorderRadius.circular(radius), borderRadius: BorderRadius.circular(radius),
gradient: LinearGradient( gradient: LinearGradient(
@ -248,8 +235,7 @@ Decoration containerRadiusWithGradient(double radius,
); );
} }
Decoration containerBottomRightRadiusWithGradient(double radius, Decoration containerBottomRightRadiusWithGradient(double radius, {Color? darkColor, Color? lightColor}) {
{Color? darkColor, Color? lightColor}) {
return BoxDecoration( return BoxDecoration(
borderRadius: BorderRadius.only(bottomRight: Radius.circular(radius)), borderRadius: BorderRadius.only(bottomRight: Radius.circular(radius)),
gradient: LinearGradient( gradient: LinearGradient(
@ -263,8 +249,7 @@ Decoration containerBottomRightRadiusWithGradient(double radius,
); );
} }
Decoration containerBottomRightRadiusWithGradientForAr(double radius, Decoration containerBottomRightRadiusWithGradientForAr(double radius, {Color? darkColor, Color? lightColor}) {
{Color? darkColor, Color? lightColor}) {
return BoxDecoration( return BoxDecoration(
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(radius)), borderRadius: BorderRadius.only(bottomLeft: Radius.circular(radius)),
gradient: LinearGradient( gradient: LinearGradient(
@ -307,11 +292,7 @@ Decoration containerRadiusWithGradientServices(
); );
} }
Decoration containerBottomRightRadiusWithGradientBorder(double radius, Decoration containerBottomRightRadiusWithGradientBorder(double radius, {Color? darkColor, Color? lightColor, Color borderColor = Colors.transparent, double w = 0}) {
{Color? darkColor,
Color? lightColor,
Color borderColor = Colors.transparent,
double w = 0}) {
return BoxDecoration( return BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(radius)), borderRadius: BorderRadius.all(Radius.circular(radius)),
border: Border.all( border: Border.all(
@ -340,8 +321,7 @@ Decoration containerRadius(Color background, double radius) {
); );
} }
Decoration containerColorRadiusBorder( Decoration containerColorRadiusBorder(Color background, double radius, Color color) {
Color background, double radius, Color color) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
border: Border.all( border: Border.all(
@ -352,8 +332,7 @@ Decoration containerColorRadiusBorder(
); );
} }
Decoration containerColorRadiusBorderWidth( Decoration containerColorRadiusBorderWidth(Color background, double radius, Color color, double w) {
Color background, double radius, Color color, double w) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
border: Border.all( border: Border.all(
@ -364,8 +343,7 @@ Decoration containerColorRadiusBorderWidth(
); );
} }
Decoration containerColorRadiusBorderWidthCircular( Decoration containerColorRadiusBorderWidthCircular(Color background, double radius, Color color, double w) {
Color background, double radius, Color color, double w) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
border: Border.all( border: Border.all(
@ -380,36 +358,29 @@ Decoration containerColorRadiusBorderWidthCircular(
Decoration containerColorRadiusRight(Color background, double radius) { Decoration containerColorRadiusRight(Color background, double radius) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(topRight: Radius.circular(radius), bottomRight: Radius.circular(radius)),
topRight: Radius.circular(radius),
bottomRight: Radius.circular(radius)),
); );
} }
Decoration containerColorRadiusLeft(Color background, double radius) { Decoration containerColorRadiusLeft(Color background, double radius) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(topLeft: Radius.circular(radius), bottomLeft: Radius.circular(radius)),
topLeft: Radius.circular(radius), bottomLeft: Radius.circular(radius)),
); );
} }
Decoration containerColorRadiusRightBorder( Decoration containerColorRadiusRightBorder(Color background, double radius, double w) {
Color background, double radius, double w) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
border: Border.all( border: Border.all(
width: w, // width: w, //
color: Colors.white // <--- border width here color: Colors.white // <--- border width here
), ),
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(topRight: Radius.circular(radius), bottomRight: Radius.circular(radius)),
topRight: Radius.circular(radius),
bottomRight: Radius.circular(radius)),
); );
} }
Decoration containerColorRadiusRightBorderc( Decoration containerColorRadiusRightBorderc(Color background, double radius, double w, Color borderColor) {
Color background, double radius, double w, Color borderColor) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
border: Border.all( border: Border.all(
@ -440,16 +411,14 @@ Decoration containerColorRadiusBottom(Color color, double radius) {
); );
} }
Decoration containerColorRadiusLeftBorder( Decoration containerColorRadiusLeftBorder(Color background, double radius, double w) {
Color background, double radius, double w) {
return BoxDecoration( return BoxDecoration(
color: background, color: background,
border: Border.all( border: Border.all(
width: w, // width: w, //
color: Colors.white // <--- border width here color: Colors.white // <--- border width here
), ),
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(topLeft: Radius.circular(radius), bottomLeft: Radius.circular(radius)),
topLeft: Radius.circular(radius), bottomLeft: Radius.circular(radius)),
); );
} }
@ -481,23 +450,19 @@ OutlinedBorder cardRadiusNew(double radius) {
ShapeBorder cardRadiusTop(double radius) { ShapeBorder cardRadiusTop(double radius) {
return RoundedRectangleBorder( return RoundedRectangleBorder(
side: BorderSide(color: Colors.transparent, width: 0), side: BorderSide(color: Colors.transparent, width: 0),
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(topLeft: Radius.circular(radius), topRight: Radius.circular(radius)),
topLeft: Radius.circular(radius), topRight: Radius.circular(radius)),
); );
} }
ShapeBorder cardRadiusTop2(double radius) { ShapeBorder cardRadiusTop2(double radius) {
return RoundedRectangleBorder( return RoundedRectangleBorder(
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(topLeft: Radius.circular(radius), topRight: Radius.circular(radius)),
topLeft: Radius.circular(radius), topRight: Radius.circular(radius)),
); );
} }
ShapeBorder cardRadiusBottom(double radius) { ShapeBorder cardRadiusBottom(double radius) {
return RoundedRectangleBorder( return RoundedRectangleBorder(
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(bottomLeft: Radius.circular(radius), bottomRight: Radius.circular(radius)),
bottomLeft: Radius.circular(radius),
bottomRight: Radius.circular(radius)),
); );
} }
@ -620,8 +585,7 @@ FontStyle getFontStyle(String fontStyle) {
bool timeCalculator(int startHour, int startMint, int endHour, int endMint) { bool timeCalculator(int startHour, int startMint, int endHour, int endMint) {
DateTime now = DateTime.now(); DateTime now = DateTime.now();
DateTime startDate = DateTime startDate = DateTime(now.year, now.month, now.day, startHour, startHour);
DateTime(now.year, now.month, now.day, startHour, startHour);
DateTime endDate = DateTime(now.year, now.month, now.day, endHour, endMint); DateTime endDate = DateTime(now.year, now.month, now.day, endHour, endMint);
if (startDate.isBefore(now) && endDate.isAfter(now)) if (startDate.isBefore(now) && endDate.isAfter(now))
return true; return true;

@ -1,7 +1,6 @@
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter_gif/flutter_gif.dart'; import 'package:flutter_gif/flutter_gif.dart';
class GifLoaderContainer extends StatefulWidget { class GifLoaderContainer extends StatefulWidget {
@override @override
_GifLoaderContainerState createState() => _GifLoaderContainerState(); _GifLoaderContainerState createState() => _GifLoaderContainerState();
@ -10,10 +9,9 @@ class GifLoaderContainer extends StatefulWidget {
class _GifLoaderContainerState extends State<GifLoaderContainer> with TickerProviderStateMixin { class _GifLoaderContainerState extends State<GifLoaderContainer> with TickerProviderStateMixin {
late FlutterGifController controller; late FlutterGifController controller;
@override @override
void initState() { void initState() {
FlutterGifController controller= FlutterGifController(vsync: this); controller = FlutterGifController(vsync: this);
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
try { try {

@ -227,37 +227,37 @@ class _AppScaffoldState extends State<AppScaffold> {
// ? widget.customAppBar != null // ? widget.customAppBar != null
// ? widget.customAppBar // ? widget.customAppBar
appBar: isUserNotLogin! appBar: isUserNotLogin
? null ? null
: widget.isShowPharmacyAppbar! : widget.isShowPharmacyAppbar
? PreferredSize(preferredSize: Size.fromHeight(70), child: pharmacyAppbar()!) ? PreferredSize(preferredSize: Size.fromHeight(70), child: pharmacyAppbar())
: (widget.showNewAppBar! : (widget.showNewAppBar
? PreferredSize( ? PreferredSize(
preferredSize: Size.fromHeight(70), preferredSize: Size.fromHeight(70),
child: NewAppBarWidget( child: NewAppBarWidget(
title: widget.appBarTitle!, title: widget.appBarTitle,
showTitle: widget.showNewAppBarTitle!, showTitle: widget.showNewAppBarTitle,
showDropDown: widget.showDropDown!, showDropDown: widget.showDropDown,
dropdownIndexValue: widget.dropdownIndexValue!, dropdownIndexValue: widget.dropdownIndexValue,
dropDownList: widget.dropDownList! ?? [], dropDownList: widget.dropDownList ?? [],
dropDownIndexChange: widget.dropDownIndexChange, dropDownIndexChange: widget.dropDownIndexChange,
appBarIcons: widget.appBarIcons!, appBarIcons: widget.appBarIcons,
onTap: () { onTap: () {
widget.onTap; widget.onTap;
}, },
)) ))
: (widget.isShowAppBar! : (widget.isShowAppBar
? widget.customAppBar != null ? widget.customAppBar != null
? PreferredSize(preferredSize: Size.fromHeight(70), child: widget.customAppBar!) ? PreferredSize(preferredSize: Size.fromHeight(70), child: widget.customAppBar!)
: appBar = AppBarWidget( : appBar = AppBarWidget(
appBarTitle: widget.appBarTitle!, appBarTitle: widget.appBarTitle,
appBarIcons: widget.appBarIcons!, appBarIcons: widget.appBarIcons,
showHomeAppBarIcon: widget.showHomeAppBarIcon!, showHomeAppBarIcon: widget.showHomeAppBarIcon,
isPharmacy: widget.isPharmacy!, isPharmacy: widget.isPharmacy,
showPharmacyCart: widget.showPharmacyCart!, showPharmacyCart: widget.showPharmacyCart,
isOfferPackages: widget.isOfferPackages!, isOfferPackages: widget.isOfferPackages,
showOfferPackagesCart: widget.showOfferPackagesCart!, showOfferPackagesCart: widget.showOfferPackagesCart,
isShowDecPage: widget.isShowDecPage!, isShowDecPage: widget.isShowDecPage,
backButtonTab: () { backButtonTab: () {
widget.backButtonTab; widget.backButtonTab;
}, },
@ -270,7 +270,7 @@ class _AppScaffoldState extends State<AppScaffold> {
child: isUserNotLogin child: isUserNotLogin
? NotAutPage( ? NotAutPage(
title: widget.title ?? widget.appBarTitle, title: widget.title ?? widget.appBarTitle,
description: widget.description!, description: widget.description,
infoList: widget.infoList, infoList: widget.infoList,
imagesInfo: widget.imagesInfo, imagesInfo: widget.imagesInfo,
icon: widget.icon, icon: widget.icon,
@ -300,7 +300,7 @@ class _AppScaffoldState extends State<AppScaffold> {
widget.changeCurrentTab!(value); widget.changeCurrentTab!(value);
} else { } else {
Navigator.pushAndRemoveUntil( Navigator.pushAndRemoveUntil(
locator<NavigationService>().navigatorKey!.currentContext!, MaterialPageRoute(builder: (context) => LandingPagePharmacy(currentTab: value)), (Route<dynamic> r) => false); locator<NavigationService>().navigatorKey.currentContext!, MaterialPageRoute(builder: (context) => LandingPagePharmacy(currentTab: value)), (Route<dynamic> r) => false);
} }
} }

@ -20,12 +20,12 @@ import '../../splashPage.dart';
class NotAutPage extends StatefulWidget { class NotAutPage extends StatefulWidget {
final String title; final String title;
final String description; final String? description;
final List<String>? infoList; final List<String>? infoList;
final List<ImagesInfo>? imagesInfo; final List<ImagesInfo>? imagesInfo;
final String? icon; final String? icon;
NotAutPage({required this.title, required this.description, this.infoList, this.imagesInfo, this.icon}); NotAutPage({required this.title, this.description, this.infoList, this.imagesInfo, this.icon});
@override @override
_NotAutPageState createState() => _NotAutPageState(); _NotAutPageState createState() => _NotAutPageState();
@ -160,7 +160,7 @@ class _NotAutPageState extends State<NotAutPage> {
style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 23 / 24), style: TextStyle(fontSize: 24, fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 23 / 24),
), ),
Text( Text(
widget.description, widget.description!,
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56, height: 21 / 14), style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56, height: 21 / 14),
), ),
SizedBox( SizedBox(

@ -24,7 +24,7 @@ class SMSOTP {
int remainingTime = 120; int remainingTime = 120;
Future<Null>? timer; Future<dynamic>? timer;
static BuildContext? _context; static BuildContext? _context;

@ -19,7 +19,8 @@ dependencies:
# http client # http client
http: ^0.13.4 http: ^0.13.4
connectivity: ^3.0.6 #connectivity: ^3.0.6
connectivity_plus: ^5.0.1
async: ^2.8.1 async: ^2.8.1
audio_wave: ^0.1.4 audio_wave: ^0.1.4
@ -179,7 +180,7 @@ dependencies:
speech_to_text: ^6.1.1 speech_to_text: ^6.1.1
# path: speech_to_text # path: speech_to_text
in_app_update: ^4.2.2 #in_app_update: ^4.2.2
in_app_review: ^2.0.3 in_app_review: ^2.0.3
@ -212,6 +213,9 @@ dependencies:
# open_file: ^3.2.1 # open_file: ^3.2.1
open_filex: ^4.3.2 open_filex: ^4.3.2
path_provider: ^2.0.8 path_provider: ^2.0.8
logger: ^2.0.2+1
# flutter_callkit_incoming: ^1.0.3+3 # flutter_callkit_incoming: ^1.0.3+3
# firebase_core: 1.12.0 # firebase_core: 1.12.0
@ -219,7 +223,7 @@ dependencies:
# crypto: # crypto:
dependency_overrides: dependency_overrides:
provider: ^5.0.0 #provider: ^5.0.0
# permission_handler : ^10.2.0 # permission_handler : ^10.2.0
#flutter_svg: ^1.1.6 #flutter_svg: ^1.1.6
# firebase_messaging_platform_interface: any # firebase_messaging_platform_interface: any
@ -233,6 +237,7 @@ dev_dependencies:
sdk: flutter sdk: flutter
build_runner: ^2.1.5 build_runner: ^2.1.5
flutter: flutter:
uses-material-design: true uses-material-design: true
# assets: # assets:

Loading…
Cancel
Save