Merge branch 'diplomatic-quarter-live' of https://gitlab.com/Cloud_Solution/diplomatic-quarter
Conflicts: lib/config/shared_pref_kay.dart lib/core/service/client/base_app_client.dart lib/locator.dart lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart lib/pages/landing/home_page.dart lib/pages/medical/vital_sign/vital_sign_item.dart lib/routes.dart lib/uitl/translations_delegate_base.dart lib/widgets/others/app_scaffold_widget.dart pubspec.yamlmerge-requests/224/merge
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 11 KiB |
@ -1,6 +1,6 @@
|
||||
#Thu Sep 03 16:26:30 EEST 2020
|
||||
#Wed Nov 25 14:25:50 AST 2020
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||
|
@ -1 +1 @@
|
||||
da98d9f0c1f407e541c636e84847ac81
|
||||
f4a819c27119d0f472892c1088ad1ca3
|
@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CLIENT_ID</key>
|
||||
<string>864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r.apps.googleusercontent.com</string>
|
||||
<key>REVERSED_CLIENT_ID</key>
|
||||
<string>com.googleusercontent.apps.864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r</string>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyA_6ayGCk4fly7o7eTVBrj9kuHBYHMAOfs</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>864393916058</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>com.cloud.diplomaticquarterapp</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>diplomaticquarter-d2385</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>diplomaticquarter-d2385.appspot.com</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_APPINVITE_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true></true>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:864393916058:ios:13f787bbfe6051f8b97923</string>
|
||||
<key>DATABASE_URL</key>
|
||||
<string>https://diplomaticquarter-d2385.firebaseio.com</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,122 +1 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-20x20@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "20x20",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-29x29@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "29x29",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-40x40@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "40x40",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-76x76@1x.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"size" : "76x76",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-76x76@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-App-83.5x83.5@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"size" : "1024x1024",
|
||||
"idiom" : "ios-marketing",
|
||||
"filename" : "Icon-App-1024x1024@1x.png",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]}
|
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.5 KiB |
@ -1,23 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "LaunchImage.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "LaunchImage@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "LaunchImage@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 68 B |
@ -1,5 +0,0 @@
|
||||
# Launch Screen Assets
|
||||
|
||||
You can customize the launch screen with your own desired assets by replacing the image files in this directory.
|
||||
|
||||
You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
|
@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CLIENT_ID</key>
|
||||
<string>864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r.apps.googleusercontent.com</string>
|
||||
<key>REVERSED_CLIENT_ID</key>
|
||||
<string>com.googleusercontent.apps.864393916058-ekeb4s8tgfo58dutv0l54399t7ivr06r</string>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyA_6ayGCk4fly7o7eTVBrj9kuHBYHMAOfs</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>864393916058</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>com.cloud.diplomaticquarterapp</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>diplomaticquarter-d2385</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>diplomaticquarter-d2385.appspot.com</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_APPINVITE_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true></true>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:864393916058:ios:13f787bbfe6051f8b97923</string>
|
||||
<key>DATABASE_URL</key>
|
||||
<string>https://diplomaticquarter-d2385.firebaseio.com</string>
|
||||
</dict>
|
||||
</plist>
|
@ -1,4 +1,4 @@
|
||||
storePassword=HmGsa123
|
||||
keyPassword=HmGsa123
|
||||
keyAlias=DQKey
|
||||
keyAlias=key
|
||||
storeFile=DQKey.jks
|
@ -0,0 +1,6 @@
|
||||
class ImagesInfo {
|
||||
final String imageAr;
|
||||
final String imageEn;
|
||||
|
||||
ImagesInfo({this.imageAr, this.imageEn});
|
||||
}
|
@ -0,0 +1,266 @@
|
||||
class WeatherIndicatorModel {
|
||||
Null date;
|
||||
int languageID;
|
||||
int serviceName;
|
||||
Null time;
|
||||
Null androidLink;
|
||||
Null authenticationTokenID;
|
||||
Null data;
|
||||
bool dataw;
|
||||
int dietType;
|
||||
Null errorCode;
|
||||
Null errorEndUserMessage;
|
||||
Null errorEndUserMessageN;
|
||||
Null errorMessage;
|
||||
int errorType;
|
||||
int foodCategory;
|
||||
Null iOSLink;
|
||||
bool isAuthenticated;
|
||||
int mealOrderStatus;
|
||||
int mealType;
|
||||
int messageStatus;
|
||||
int numberOfResultRecords;
|
||||
Null patientBlodType;
|
||||
Null successMsg;
|
||||
Null successMsgN;
|
||||
Null citiesList;
|
||||
Null cityName;
|
||||
Null get5DaysWeatherForecastList;
|
||||
List<GetCityInfoList> getCityInfoList;
|
||||
Null getTodayWeatherForecastList;
|
||||
Null iniciesList;
|
||||
|
||||
WeatherIndicatorModel(
|
||||
{this.date,
|
||||
this.languageID,
|
||||
this.serviceName,
|
||||
this.time,
|
||||
this.androidLink,
|
||||
this.authenticationTokenID,
|
||||
this.data,
|
||||
this.dataw,
|
||||
this.dietType,
|
||||
this.errorCode,
|
||||
this.errorEndUserMessage,
|
||||
this.errorEndUserMessageN,
|
||||
this.errorMessage,
|
||||
this.errorType,
|
||||
this.foodCategory,
|
||||
this.iOSLink,
|
||||
this.isAuthenticated,
|
||||
this.mealOrderStatus,
|
||||
this.mealType,
|
||||
this.messageStatus,
|
||||
this.numberOfResultRecords,
|
||||
this.patientBlodType,
|
||||
this.successMsg,
|
||||
this.successMsgN,
|
||||
this.citiesList,
|
||||
this.cityName,
|
||||
this.get5DaysWeatherForecastList,
|
||||
this.getCityInfoList,
|
||||
this.getTodayWeatherForecastList,
|
||||
this.iniciesList});
|
||||
|
||||
WeatherIndicatorModel.fromJson(Map<String, dynamic> json) {
|
||||
date = json['Date'];
|
||||
languageID = json['LanguageID'];
|
||||
serviceName = json['ServiceName'];
|
||||
time = json['Time'];
|
||||
androidLink = json['AndroidLink'];
|
||||
authenticationTokenID = json['AuthenticationTokenID'];
|
||||
data = json['Data'];
|
||||
dataw = json['Dataw'];
|
||||
dietType = json['DietType'];
|
||||
errorCode = json['ErrorCode'];
|
||||
errorEndUserMessage = json['ErrorEndUserMessage'];
|
||||
errorEndUserMessageN = json['ErrorEndUserMessageN'];
|
||||
errorMessage = json['ErrorMessage'];
|
||||
errorType = json['ErrorType'];
|
||||
foodCategory = json['FoodCategory'];
|
||||
iOSLink = json['IOSLink'];
|
||||
isAuthenticated = json['IsAuthenticated'];
|
||||
mealOrderStatus = json['MealOrderStatus'];
|
||||
mealType = json['MealType'];
|
||||
messageStatus = json['MessageStatus'];
|
||||
numberOfResultRecords = json['NumberOfResultRecords'];
|
||||
patientBlodType = json['PatientBlodType'];
|
||||
successMsg = json['SuccessMsg'];
|
||||
successMsgN = json['SuccessMsgN'];
|
||||
citiesList = json['CitiesList'];
|
||||
cityName = json['CityName'];
|
||||
get5DaysWeatherForecastList = json['Get5DaysWeatherForecastList'];
|
||||
if (json['GetCityInfo_List'] != null) {
|
||||
getCityInfoList = new List<GetCityInfoList>();
|
||||
json['GetCityInfo_List'].forEach((v) {
|
||||
getCityInfoList.add(new GetCityInfoList.fromJson(v));
|
||||
});
|
||||
}
|
||||
getTodayWeatherForecastList = json['GetTodayWeatherForecastList'];
|
||||
iniciesList = json['IniciesList'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Date'] = this.date;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['ServiceName'] = this.serviceName;
|
||||
data['Time'] = this.time;
|
||||
data['AndroidLink'] = this.androidLink;
|
||||
data['AuthenticationTokenID'] = this.authenticationTokenID;
|
||||
data['Data'] = this.data;
|
||||
data['Dataw'] = this.dataw;
|
||||
data['DietType'] = this.dietType;
|
||||
data['ErrorCode'] = this.errorCode;
|
||||
data['ErrorEndUserMessage'] = this.errorEndUserMessage;
|
||||
data['ErrorEndUserMessageN'] = this.errorEndUserMessageN;
|
||||
data['ErrorMessage'] = this.errorMessage;
|
||||
data['ErrorType'] = this.errorType;
|
||||
data['FoodCategory'] = this.foodCategory;
|
||||
data['IOSLink'] = this.iOSLink;
|
||||
data['IsAuthenticated'] = this.isAuthenticated;
|
||||
data['MealOrderStatus'] = this.mealOrderStatus;
|
||||
data['MealType'] = this.mealType;
|
||||
data['MessageStatus'] = this.messageStatus;
|
||||
data['NumberOfResultRecords'] = this.numberOfResultRecords;
|
||||
data['PatientBlodType'] = this.patientBlodType;
|
||||
data['SuccessMsg'] = this.successMsg;
|
||||
data['SuccessMsgN'] = this.successMsgN;
|
||||
data['CitiesList'] = this.citiesList;
|
||||
data['CityName'] = this.cityName;
|
||||
data['Get5DaysWeatherForecastList'] = this.get5DaysWeatherForecastList;
|
||||
if (this.getCityInfoList != null) {
|
||||
data['GetCityInfo_List'] =
|
||||
this.getCityInfoList.map((v) => v.toJson()).toList();
|
||||
}
|
||||
data['GetTodayWeatherForecastList'] = this.getTodayWeatherForecastList;
|
||||
data['IniciesList'] = this.iniciesList;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class GetCityInfoList {
|
||||
CategoriesNames categoriesNames;
|
||||
String category;
|
||||
String categoryValue;
|
||||
int cityID;
|
||||
String cityName;
|
||||
String cityNameN;
|
||||
String colorName;
|
||||
String createdOn;
|
||||
String iD;
|
||||
int iniceID;
|
||||
bool isOrderEmpty;
|
||||
bool isValuesReversed;
|
||||
bool language;
|
||||
double latitude;
|
||||
double longitude;
|
||||
String name;
|
||||
int orderNum;
|
||||
double temperature;
|
||||
String value;
|
||||
|
||||
GetCityInfoList(
|
||||
{this.categoriesNames,
|
||||
this.category,
|
||||
this.categoryValue,
|
||||
this.cityID,
|
||||
this.cityName,
|
||||
this.cityNameN,
|
||||
this.colorName,
|
||||
this.createdOn,
|
||||
this.iD,
|
||||
this.iniceID,
|
||||
this.isOrderEmpty,
|
||||
this.isValuesReversed,
|
||||
this.language,
|
||||
this.latitude,
|
||||
this.longitude,
|
||||
this.name,
|
||||
this.orderNum,
|
||||
this.temperature,
|
||||
this.value});
|
||||
|
||||
GetCityInfoList.fromJson(Map<String, dynamic> json) {
|
||||
categoriesNames = json['CategoriesNames'] != null
|
||||
? new CategoriesNames.fromJson(json['CategoriesNames'])
|
||||
: null;
|
||||
category = json['Category'];
|
||||
categoryValue = json['CategoryValue'];
|
||||
cityID = json['CityID'];
|
||||
cityName = json['CityName'];
|
||||
cityNameN = json['CityNameN'];
|
||||
colorName = json['ColorName'];
|
||||
createdOn = json['CreatedOn'];
|
||||
iD = json['ID'];
|
||||
iniceID = json['IniceID'];
|
||||
isOrderEmpty = json['IsOrderEmpty'];
|
||||
isValuesReversed = json['IsValuesReversed'];
|
||||
language = json['Language'];
|
||||
latitude = json['Latitude'];
|
||||
longitude = json['Longitude'];
|
||||
name = json['Name'];
|
||||
orderNum = json['OrderNum'];
|
||||
temperature = json['Temperature'];
|
||||
value = json['Value'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.categoriesNames != null) {
|
||||
data['CategoriesNames'] = this.categoriesNames.toJson();
|
||||
}
|
||||
data['Category'] = this.category;
|
||||
data['CategoryValue'] = this.categoryValue;
|
||||
data['CityID'] = this.cityID;
|
||||
data['CityName'] = this.cityName;
|
||||
data['CityNameN'] = this.cityNameN;
|
||||
data['ColorName'] = this.colorName;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['ID'] = this.iD;
|
||||
data['IniceID'] = this.iniceID;
|
||||
data['IsOrderEmpty'] = this.isOrderEmpty;
|
||||
data['IsValuesReversed'] = this.isValuesReversed;
|
||||
data['Language'] = this.language;
|
||||
data['Latitude'] = this.latitude;
|
||||
data['Longitude'] = this.longitude;
|
||||
data['Name'] = this.name;
|
||||
data['OrderNum'] = this.orderNum;
|
||||
data['Temperature'] = this.temperature;
|
||||
data['Value'] = this.value;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class CategoriesNames {
|
||||
String category1;
|
||||
String category2;
|
||||
String category3;
|
||||
String category4;
|
||||
String category5;
|
||||
|
||||
CategoriesNames(
|
||||
{this.category1,
|
||||
this.category2,
|
||||
this.category3,
|
||||
this.category4,
|
||||
this.category5});
|
||||
|
||||
CategoriesNames.fromJson(Map<String, dynamic> json) {
|
||||
category1 = json['Category1'];
|
||||
category2 = json['Category2'];
|
||||
category3 = json['Category3'];
|
||||
category4 = json['Category4'];
|
||||
category5 = json['Category5'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Category1'] = this.category1;
|
||||
data['Category2'] = this.category2;
|
||||
data['Category3'] = this.category3;
|
||||
data['Category4'] = this.category4;
|
||||
data['Category5'] = this.category5;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/weahter/weather_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
||||
|
||||
class WeatherService extends BaseService {
|
||||
List<GetCityInfoList> weatherIndicatorData = List();
|
||||
|
||||
Map<String, dynamic> body = Map();
|
||||
String Latitude = "";
|
||||
String Longitude = "";
|
||||
String PhoneNumber = "";
|
||||
|
||||
Future getWeatherData() async {
|
||||
hasError = false;
|
||||
|
||||
var lat = await sharedPref.getDouble(USER_LAT);
|
||||
var long = await sharedPref.getDouble(USER_LONG);
|
||||
body['Latitude'] = lat ?? 0;
|
||||
body['Longitude'] = long ?? 0;
|
||||
|
||||
await baseAppClient.post(WEATHER_INDICATOR,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
|
||||
|
||||
response['GetCityInfo_List'].forEach((data) {
|
||||
weatherIndicatorData.add(GetCityInfoList.fromJson(data));
|
||||
});
|
||||
print(weatherIndicatorData);
|
||||
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
await this.sharedPref.setObject(WEATHER,weatherIndicatorData[0]);
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/weahter/weather_model.dart';
|
||||
|
||||
import 'package:diplomaticquarterapp/core/service/er/er_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/weather_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
|
||||
|
||||
import '../../../locator.dart';
|
||||
|
||||
class WeatherViewModel extends BaseViewModel {
|
||||
WeatherService _weatherService = locator<WeatherService>();
|
||||
List<GetCityInfoList> get weatherIndicatorData =>
|
||||
_weatherService.weatherIndicatorData;
|
||||
getWeatherData() async {
|
||||
setState(ViewState.Busy);
|
||||
|
||||
// if (id != null && projectID != null) {
|
||||
// await _erService.getProjectAvgERWaitingTimeOrders(
|
||||
// id: id, projectID: projectID);
|
||||
// } else {
|
||||
await _weatherService.getWeatherData();
|
||||
// }
|
||||
if (_weatherService.hasError) {
|
||||
error = _weatherService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
class DoctorRateDetails {
|
||||
dynamic doctorID;
|
||||
dynamic projectID;
|
||||
dynamic clinicID;
|
||||
dynamic rate;
|
||||
dynamic patientNumber;
|
||||
|
||||
DoctorRateDetails(
|
||||
{this.doctorID,
|
||||
this.projectID,
|
||||
this.clinicID,
|
||||
this.rate,
|
||||
this.patientNumber});
|
||||
|
||||
DoctorRateDetails.fromJson(Map<String, dynamic> json) {
|
||||
doctorID = json['DoctorID'];
|
||||
projectID = json['ProjectID'];
|
||||
clinicID = json['ClinicID'];
|
||||
rate = json['Rate'];
|
||||
patientNumber = json['PatientNumber'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['DoctorID'] = this.doctorID;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['Rate'] = this.rate;
|
||||
data['PatientNumber'] = this.patientNumber;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,137 @@
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/weather/weather_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/location_util.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/weather_slider/weather_slider.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
|
||||
|
||||
class HealthWeatherIndicator extends StatefulWidget {
|
||||
@override
|
||||
_HospitalsPageState createState() => _HospitalsPageState();
|
||||
}
|
||||
|
||||
class _HospitalsPageState extends State<HealthWeatherIndicator> {
|
||||
var data;
|
||||
LocationUtils locationUtils;
|
||||
AppSharedPreferences sharedPref = AppSharedPreferences();
|
||||
var weather = '--';
|
||||
@override
|
||||
void initState() {
|
||||
locationUtils =
|
||||
new LocationUtils(isShowConfirmDialog: true, context: context);
|
||||
WidgetsBinding.instance
|
||||
.addPostFrameCallback((_) => locationUtils.getCurrentLocation());
|
||||
getWeather();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
ProjectViewModel projectViewModel = Provider.of(context);
|
||||
return BaseView<WeatherViewModel>(
|
||||
onModelReady: (model) => model.getWeatherData(),
|
||||
allowAny: true,
|
||||
builder: (_, mode, widget) => AppScaffold(
|
||||
isShowDecPage: false,
|
||||
appBarTitle: TranslationBase.of(context).healthWeatherIndicators,
|
||||
isShowAppBar: true,
|
||||
body: mode.weatherIndicatorData.length > 0
|
||||
? SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
Container(
|
||||
margin: EdgeInsets.all(8),
|
||||
width: double.infinity,
|
||||
height: 150,
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image:
|
||||
ExactAssetImage('assets/images/Weather_img.png'),
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(8.0)),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.0),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText(
|
||||
TranslationBase.of(context)
|
||||
.healthWeatherIndicators,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
AppText(
|
||||
TranslationBase.of(context)
|
||||
.healthTipsBasedOnCurrentWeather,
|
||||
color: Colors.white,
|
||||
fontSize: 14,
|
||||
),
|
||||
],
|
||||
)),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: InkWell(
|
||||
onTap: () {},
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/Weather_ico.png',
|
||||
width: 60,
|
||||
height: 60,
|
||||
),
|
||||
AppText(weather,
|
||||
fontSize: 22, color: Colors.white)
|
||||
],
|
||||
),
|
||||
],
|
||||
)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(15),
|
||||
child: AppText(
|
||||
projectViewModel.isArabic
|
||||
? mode.weatherIndicatorData[0].cityNameN
|
||||
: mode.weatherIndicatorData[0].cityName,
|
||||
fontSize: 24,
|
||||
fontWeight: FontWeight.bold,
|
||||
)),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(15),
|
||||
child: Column(
|
||||
children: mode.weatherIndicatorData.map((data) {
|
||||
return WeatherSlider(data);
|
||||
}).toList()))
|
||||
]))
|
||||
: Center(child: AppCircularProgressIndicator())),
|
||||
);
|
||||
}
|
||||
|
||||
getWeather() async {
|
||||
var data = await this.sharedPref.getObject(WEATHER);
|
||||
setState(() {
|
||||
weather = data['Temperature'].toString() + '\u2103' ?? '--';
|
||||
});
|
||||
}
|
||||
}
|