Cards creating optimization

This commit is contained in:
Yegor Vialov 2018-11-11 19:51:02 +02:00
parent 30e4eaa023
commit d9790dedbb
2 changed files with 39 additions and 29 deletions

View File

@ -23,10 +23,17 @@ class HAView {
void _fillView(List<Entity> childEntities) { void _fillView(List<Entity> childEntities) {
List<HACard> autoGeneratedCards = []; List<HACard> autoGeneratedCards = [];
childEntities.forEach((entity) { badges.addAll(childEntities.where((entity){ return entity.isBadge;}));
if (entity.isBadge) { childEntities.where((entity){ return entity.domain == "media_player";}).forEach((e){
badges.add(entity); HACard card = HACard(
} else { name: e.displayName,
id: e.entityId,
linkedEntity: e,
type: "media-control"
);
cards.add(card);
});
childEntities.where((e){return (!e.isBadge && e.domain != "media_player");}).forEach((entity) {
if (!entity.isGroup) { if (!entity.isGroup) {
String groupIdToAdd = "${entity.domain}.${entity.domain}$count"; String groupIdToAdd = "${entity.domain}.${entity.domain}$count";
if (autoGeneratedCards.every((HACard card) => card.id != groupIdToAdd )) { if (autoGeneratedCards.every((HACard card) => card.id != groupIdToAdd )) {
@ -47,10 +54,18 @@ class HAView {
linkedEntity: entity, linkedEntity: entity,
type: "entities" type: "entities"
); );
card.entities.addAll(entity.childEntities); card.entities.addAll(entity.childEntities.where((entity) {return entity.domain != "media_player";}));
entity.childEntities.where((entity) {return entity.domain == "media_player";}).forEach((entity){
HACard mediaCard = HACard(
name: entity.displayName,
id: entity.entityId,
linkedEntity: entity,
type: "media-control"
);
cards.add(mediaCard);
});
cards.add(card); cards.add(card);
} }
}
}); });
cards.addAll(autoGeneratedCards); cards.addAll(autoGeneratedCards);
} }

View File

@ -25,15 +25,10 @@ class MediaControlCardWidget extends StatelessWidget {
left: 0.0, left: 0.0,
right: 0.0, right: 0.0,
child: Container( child: Container(
height: 80.0,
color: Colors.black45, color: Colors.black45,
),
),
Positioned(
bottom: 0.0,
left: 0.0,
child: _buildState(), child: _buildState(),
), ),
),
], ],
)); ));
} }
@ -59,7 +54,7 @@ class MediaControlCardWidget extends StatelessWidget {
states.add(Text("${card.linkedEntity.state}", style: style.apply(fontSizeDelta: 4.0),)); states.add(Text("${card.linkedEntity.state}", style: style.apply(fontSizeDelta: 4.0),));
} else { } else {
states.add(Text("${card.linkedEntity.attributes['media_title'] ?? '-'}", style: style.apply(fontSizeDelta: 6.0, fontWeightDelta: 50),)); states.add(Text("${card.linkedEntity.attributes['media_title'] ?? '-'}", style: style.apply(fontSizeDelta: 6.0, fontWeightDelta: 50),));
states.add(Text("${card.linkedEntity.attributes['media_artist'] ?? '-'}", style: style.apply(fontSizeDelta: 4.0),)); states.add(Text("${card.linkedEntity.attributes['media_artist'] ?? card.linkedEntity.attributes['app_name']}", style: style.apply(fontSizeDelta: 4.0),));
} }
return Padding( return Padding(
padding: EdgeInsets.only(left: Entity.leftWidgetPadding, right: Entity.rightWidgetPadding), padding: EdgeInsets.only(left: Entity.leftWidgetPadding, right: Entity.rightWidgetPadding),