|
|
|
|
@ -1,47 +1,29 @@
|
|
|
|
|
import 'package:diplomaticquarterapp/core/model/weahter/weather_model.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_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]
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
final ProjectViewModel projectViewModel;
|
|
|
|
|
|
|
|
|
|
WeatherSlider(this.data, this.projectViewModel);
|
|
|
|
|
|
|
|
|
|
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)),
|
|
|
|
|
Padding(padding: EdgeInsets.only(top: 10), child: AppText(data.name)),
|
|
|
|
|
AppText(
|
|
|
|
|
data.category,
|
|
|
|
|
fontSize: 24,
|
|
|
|
|
@ -51,11 +33,8 @@ class WeatherSlider extends StatelessWidget {
|
|
|
|
|
child: Stack(
|
|
|
|
|
children: [
|
|
|
|
|
Container(
|
|
|
|
|
margin: EdgeInsets.only(bottom:10),
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
gradient: LinearGradient(
|
|
|
|
|
colors: [Colors.grey[100], Colors.grey[400]]),
|
|
|
|
|
borderRadius: BorderRadius.circular(10)),
|
|
|
|
|
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(),
|
|
|
|
|
@ -64,110 +43,200 @@ class WeatherSlider extends StatelessWidget {
|
|
|
|
|
top: 0,
|
|
|
|
|
child: Container(
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
gradient: data.colorName =='red' ? red : data.colorName =='orange' ? orange : data.colorName =='green' ? green : data.colorName == 'yellow' ? yellow : grey,
|
|
|
|
|
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)),)
|
|
|
|
|
|
|
|
|
|
projectViewModel.isArabic
|
|
|
|
|
? 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,
|
|
|
|
|
right: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)),
|
|
|
|
|
)
|
|
|
|
|
: 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())
|
|
|
|
|
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;
|
|
|
|
|
final bool reverse;
|
|
|
|
|
MessageBorder({this.usePadding = true, this.reverse =false});
|
|
|
|
|
|
|
|
|
|
MessageBorder({this.usePadding = true, this.reverse = false});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
EdgeInsetsGeometry get dimensions => EdgeInsets.only(bottom: usePadding? 0 : 0);
|
|
|
|
|
EdgeInsetsGeometry get dimensions => EdgeInsets.only(bottom: usePadding ? 0 : 0);
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Path getInnerPath(Rect rect, {TextDirection textDirection}) => null;
|
|
|
|
|
@ -175,17 +244,16 @@ class MessageBorder extends ShapeBorder {
|
|
|
|
|
@override
|
|
|
|
|
Path getOuterPath(Rect rect, {TextDirection textDirection}) {
|
|
|
|
|
rect = Rect.fromPoints(rect.bottomRight, rect.bottomLeft - Offset(0, 0));
|
|
|
|
|
if(!reverse) {
|
|
|
|
|
if (!reverse) {
|
|
|
|
|
return Path()
|
|
|
|
|
..addRRect(
|
|
|
|
|
RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
|
|
|
|
|
..addRRect(RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
|
|
|
|
|
..moveTo(rect.topCenter.dx - 10, rect.topCenter.dy)
|
|
|
|
|
..relativeLineTo(10, -10)..relativeLineTo(10, 10)
|
|
|
|
|
..relativeLineTo(10, -10)
|
|
|
|
|
..relativeLineTo(10, 10)
|
|
|
|
|
..close();
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
return Path()
|
|
|
|
|
..addRRect(
|
|
|
|
|
RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
|
|
|
|
|
..addRRect(RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
|
|
|
|
|
..moveTo(rect.topCenter.dx, rect.topCenter.dy)
|
|
|
|
|
..relativeLineTo(10, 20)
|
|
|
|
|
..relativeLineTo(20, -20)
|
|
|
|
|
@ -198,4 +266,4 @@ class MessageBorder extends ShapeBorder {
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
ShapeBorder scale(double t) => this;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|