feat: adjust foodname list: shorten names, show count and calories
parent
6631c7766a
commit
6aadf7bbfa
|
@ -90,6 +90,24 @@ class _CardComponentState extends State<CardComponent> {
|
||||||
return calories.round();
|
return calories.round();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map<String,List<int>> getMapOfDistinctElementsWithCounterAndCalories(List<Food> foods){
|
||||||
|
Map<String,List<int>> resultMap = <String,List<int>>{};
|
||||||
|
for(int i = 0; i < foods.length;i++){
|
||||||
|
if(!resultMap.keys.contains(foods[i].name)){
|
||||||
|
resultMap.putIfAbsent(foods[i].name, () => [1,foods[i].calories]);
|
||||||
|
}else{
|
||||||
|
resultMap[foods[i].name]![0] = resultMap[foods[i].name]![0] + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
String getFoodListStringByFood(String foodName, int count, int calories){
|
||||||
|
int maxWidth = 35;
|
||||||
|
String limitedText = foodName.length > maxWidth ? "${foodName.substring(0, maxWidth - 3)} ... $count x $calories kcal" : "$foodName $count x $calories kcal";
|
||||||
|
return limitedText;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Card(
|
return Card(
|
||||||
|
@ -130,10 +148,13 @@ class _CardComponentState extends State<CardComponent> {
|
||||||
child:ListView.builder(
|
child:ListView.builder(
|
||||||
primary: false,
|
primary: false,
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: widget.selectedMeal.length,
|
itemCount: getMapOfDistinctElementsWithCounterAndCalories(widget.selectedMeal).keys.length,
|
||||||
itemBuilder: (context, i) {
|
itemBuilder: (context, i) {
|
||||||
|
Map<String,List<int>> map = getMapOfDistinctElementsWithCounterAndCalories(widget.selectedMeal);
|
||||||
|
String foodName = map.keys.elementAt(i);
|
||||||
|
List<int> values = map.values.elementAt(i);
|
||||||
return Text(
|
return Text(
|
||||||
widget.selectedMeal[i].name
|
getFoodListStringByFood(foodName, values[0], values[1])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in New Issue