Merge branch 'sultan' into 'diplomatic-quarter-live'
Sultan See merge request Cloud_Solution/diplomatic-quarter!137fix_issues
commit
e42b437420
@ -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({int id, int projectID}) 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,56 @@
|
|||||||
|
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/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';
|
||||||
|
|
||||||
|
class HealthWeatherIndicator extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_HospitalsPageState createState() => _HospitalsPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class _HospitalsPageState extends State<HealthWeatherIndicator> {
|
||||||
|
var data;
|
||||||
|
LocationUtils locationUtils;
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
locationUtils =
|
||||||
|
new LocationUtils(isShowConfirmDialog: true, context: context);
|
||||||
|
WidgetsBinding.instance
|
||||||
|
.addPostFrameCallback((_) => locationUtils.getCurrentLocation());
|
||||||
|
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
ProjectViewModel projectViewModel = Provider.of(context);
|
||||||
|
return BaseView<WeatherViewModel>(
|
||||||
|
onModelReady: (model) => model.getWeatherData(),
|
||||||
|
builder: (_, mode, widget) => AppScaffold(
|
||||||
|
isShowDecPage: false,
|
||||||
|
appBarTitle: TranslationBase.of(context).healthWeatherIndicators,
|
||||||
|
isShowAppBar: true,
|
||||||
|
baseViewModel: mode,
|
||||||
|
body: mode.weatherIndicatorData.length>0 ? SingleChildScrollView(
|
||||||
|
child: Column(children: [
|
||||||
|
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()
|
||||||
|
|
||||||
|
))])) : Container(child:AppText('Loading...'))),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,191 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/model/weahter/weather_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class WeatherSlider extends StatelessWidget {
|
||||||
|
// final width;
|
||||||
|
// final LinearGradient color;
|
||||||
|
final GetCityInfoList data;
|
||||||
|
WeatherSlider(this.data);
|
||||||
|
LinearGradient red = LinearGradient(
|
||||||
|
colors: [
|
||||||
|
Colors.redAccent[100],
|
||||||
|
Colors.redAccent
|
||||||
|
]);
|
||||||
|
LinearGradient green = LinearGradient(
|
||||||
|
colors: [
|
||||||
|
Colors.greenAccent[100],
|
||||||
|
Colors.greenAccent
|
||||||
|
]);
|
||||||
|
LinearGradient grey = LinearGradient(
|
||||||
|
colors: [
|
||||||
|
Colors.grey[100],
|
||||||
|
Colors.grey
|
||||||
|
]);
|
||||||
|
LinearGradient orange = LinearGradient(
|
||||||
|
colors: [
|
||||||
|
Colors.orangeAccent[100],
|
||||||
|
Colors.orange
|
||||||
|
]);
|
||||||
|
LinearGradient yellow = LinearGradient(
|
||||||
|
colors: [
|
||||||
|
Colors.yellow[100],
|
||||||
|
Colors.yellow[600]
|
||||||
|
]);
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
// TODO: implement build
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.only(top:10),
|
||||||
|
child: AppText(data.name)),
|
||||||
|
AppText(
|
||||||
|
data.category,
|
||||||
|
fontSize: 24,
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.all(10),
|
||||||
|
child: Stack(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(bottom:10),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
gradient: LinearGradient(
|
||||||
|
colors: [Colors.grey[100], Colors.grey[400]]),
|
||||||
|
borderRadius: BorderRadius.circular(10)),
|
||||||
|
height: 15,
|
||||||
|
width: MediaQuery.of(context).size.width,
|
||||||
|
child: SizedBox(),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
top: 0,
|
||||||
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
gradient: data.colorName =='red' ? red : data.colorName =='orange' ? orange : data.colorName =='green' ? green : data.colorName == 'yellow' ? yellow : grey,
|
||||||
|
borderRadius: BorderRadius.circular(10)),
|
||||||
|
height: 15,
|
||||||
|
width: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)),
|
||||||
|
padding: EdgeInsets.all(15),
|
||||||
|
child: SizedBox(),
|
||||||
|
)),
|
||||||
|
Positioned(child: Container(
|
||||||
|
height: 0,
|
||||||
|
width:0,
|
||||||
|
decoration: ShapeDecoration(
|
||||||
|
color:data.colorName =='red' ? Colors.redAccent : data.colorName =='orange' ? Colors.orangeAccent : data.colorName =='green' ? Colors.greenAccent : data.colorName == 'yellow' ? Colors.yellowAccent : Colors.grey,
|
||||||
|
shape: MessageBorder(),
|
||||||
|
|
||||||
|
)),top:25, left: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)),)
|
||||||
|
|
||||||
|
],
|
||||||
|
),
|
||||||
|
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.only(top:10),
|
||||||
|
child: data.isValuesReversed == false ? Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category1,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category1== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category1== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category1== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category1== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category2,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category2== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category2== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category2== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category2== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category3,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category3== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category3== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category3== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category3== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category4,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category4== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category4== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category4== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category4== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category5,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category5== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category5== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category5== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category5== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
],
|
||||||
|
) : Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category5,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category5== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category5== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category5== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category5== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category4,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category4== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category4== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category4== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category4== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category3,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category3== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category3== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category3== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category3== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category2,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category2== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category2== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category2== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category2== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
data.categoriesNames.category1,
|
||||||
|
fontSize: 12,
|
||||||
|
color: data.categoriesNames.category1== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category1== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category1== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category1== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black
|
||||||
|
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.all(15),
|
||||||
|
child:Divider())
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class MessageBorder extends ShapeBorder {
|
||||||
|
final bool usePadding;
|
||||||
|
|
||||||
|
MessageBorder({this.usePadding = true});
|
||||||
|
|
||||||
|
@override
|
||||||
|
EdgeInsetsGeometry get dimensions => EdgeInsets.only(bottom: usePadding? 0 : 0);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Path getInnerPath(Rect rect, {TextDirection textDirection}) => null;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Path getOuterPath(Rect rect, {TextDirection textDirection}) {
|
||||||
|
rect = Rect.fromPoints(rect.bottomRight, rect.bottomLeft - Offset(0, 0));
|
||||||
|
return Path()
|
||||||
|
..addRRect(RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
|
||||||
|
..moveTo(rect.topCenter.dx - 10, rect.topCenter.dy)
|
||||||
|
..relativeLineTo(10, -10)
|
||||||
|
..relativeLineTo(10,10)
|
||||||
|
..close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {}
|
||||||
|
|
||||||
|
@override
|
||||||
|
ShapeBorder scale(double t) => this;
|
||||||
|
}
|
Loading…
Reference in New Issue