Cards creating optimization
This commit is contained in:
parent
30e4eaa023
commit
d9790dedbb
@ -23,33 +23,48 @@ class HAView {
|
||||
|
||||
void _fillView(List<Entity> childEntities) {
|
||||
List<HACard> autoGeneratedCards = [];
|
||||
childEntities.forEach((entity) {
|
||||
if (entity.isBadge) {
|
||||
badges.add(entity);
|
||||
} else {
|
||||
if (!entity.isGroup) {
|
||||
String groupIdToAdd = "${entity.domain}.${entity.domain}$count";
|
||||
if (autoGeneratedCards.every((HACard card) => card.id != groupIdToAdd )) {
|
||||
HACard card = HACard(
|
||||
id: groupIdToAdd,
|
||||
name: entity.domain,
|
||||
type: "entities"
|
||||
);
|
||||
card.entities.add(entity);
|
||||
autoGeneratedCards.add(card);
|
||||
} else {
|
||||
autoGeneratedCards.firstWhere((card) => card.id == groupIdToAdd).entities.add(entity);
|
||||
}
|
||||
} else {
|
||||
badges.addAll(childEntities.where((entity){ return entity.isBadge;}));
|
||||
childEntities.where((entity){ return entity.domain == "media_player";}).forEach((e){
|
||||
HACard card = HACard(
|
||||
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) {
|
||||
String groupIdToAdd = "${entity.domain}.${entity.domain}$count";
|
||||
if (autoGeneratedCards.every((HACard card) => card.id != groupIdToAdd )) {
|
||||
HACard card = HACard(
|
||||
id: groupIdToAdd,
|
||||
name: entity.domain,
|
||||
type: "entities"
|
||||
);
|
||||
card.entities.add(entity);
|
||||
autoGeneratedCards.add(card);
|
||||
} else {
|
||||
autoGeneratedCards.firstWhere((card) => card.id == groupIdToAdd).entities.add(entity);
|
||||
}
|
||||
} else {
|
||||
HACard card = HACard(
|
||||
name: entity.displayName,
|
||||
id: entity.entityId,
|
||||
linkedEntity: entity,
|
||||
type: "entities"
|
||||
);
|
||||
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: "entities"
|
||||
type: "media-control"
|
||||
);
|
||||
card.entities.addAll(entity.childEntities);
|
||||
cards.add(card);
|
||||
}
|
||||
cards.add(mediaCard);
|
||||
});
|
||||
cards.add(card);
|
||||
}
|
||||
});
|
||||
cards.addAll(autoGeneratedCards);
|
||||
|
@ -25,15 +25,10 @@ class MediaControlCardWidget extends StatelessWidget {
|
||||
left: 0.0,
|
||||
right: 0.0,
|
||||
child: Container(
|
||||
height: 80.0,
|
||||
color: Colors.black45,
|
||||
child: _buildState(),
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
bottom: 0.0,
|
||||
left: 0.0,
|
||||
child: _buildState(),
|
||||
),
|
||||
],
|
||||
));
|
||||
}
|
||||
@ -59,7 +54,7 @@ class MediaControlCardWidget extends StatelessWidget {
|
||||
states.add(Text("${card.linkedEntity.state}", style: style.apply(fontSizeDelta: 4.0),));
|
||||
} else {
|
||||
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(
|
||||
padding: EdgeInsets.only(left: Entity.leftWidgetPadding, right: Entity.rightWidgetPadding),
|
||||
|
Reference in New Issue
Block a user