Cards parsing improvements

This commit is contained in:
Yegor Vialov
2020-04-26 22:46:37 +00:00
parent 4da3b40d55
commit 0dc12963f0
15 changed files with 219 additions and 463 deletions

View File

@ -21,7 +21,25 @@ class ViewWidget extends StatelessWidget {
if (this.view.cards.isNotEmpty) {
cardsContainer = DynamicMultiColumnLayout(
minColumnWidth: Sizes.minViewColumnWidth,
children: this.view.cards.map((card) => LovelaceCard(card: card)).toList(),
children: this.view.cards.map((card) {
if (card.conditions.isNotEmpty) {
bool showCardByConditions = true;
for (var condition in card.conditions) {
Entity conditionEntity = HomeAssistant().entities.get(condition['entity']);
if (conditionEntity != null &&
((condition['state'] != null && conditionEntity.state != condition['state']) ||
(condition['state_not'] != null && conditionEntity.state == condition['state_not']))
) {
showCardByConditions = false;
break;
}
}
if (!showCardByConditions) {
return Container(width: 0.0, height: 0.0,);
}
}
return card.buildCardWidget();
}).toList(),
);
} else {
cardsContainer = Container();
@ -39,7 +57,7 @@ class ViewWidget extends StatelessWidget {
Widget _buildPanelChild(BuildContext context) {
if (this.view.cards != null && this.view.cards.isNotEmpty) {
return LovelaceCard(card: this.view.cards[0]);
return this.view.cards[0].buildCardWidget();
} else {
return Container(width: 0, height: 0);
}