Cards creating optimization
This commit is contained in:
parent
30e4eaa023
commit
d9790dedbb
@ -23,33 +23,48 @@ 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,
|
||||||
if (!entity.isGroup) {
|
id: e.entityId,
|
||||||
String groupIdToAdd = "${entity.domain}.${entity.domain}$count";
|
linkedEntity: e,
|
||||||
if (autoGeneratedCards.every((HACard card) => card.id != groupIdToAdd )) {
|
type: "media-control"
|
||||||
HACard card = HACard(
|
);
|
||||||
id: groupIdToAdd,
|
cards.add(card);
|
||||||
name: entity.domain,
|
});
|
||||||
type: "entities"
|
childEntities.where((e){return (!e.isBadge && e.domain != "media_player");}).forEach((entity) {
|
||||||
);
|
if (!entity.isGroup) {
|
||||||
card.entities.add(entity);
|
String groupIdToAdd = "${entity.domain}.${entity.domain}$count";
|
||||||
autoGeneratedCards.add(card);
|
if (autoGeneratedCards.every((HACard card) => card.id != groupIdToAdd )) {
|
||||||
} else {
|
|
||||||
autoGeneratedCards.firstWhere((card) => card.id == groupIdToAdd).entities.add(entity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
HACard card = HACard(
|
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,
|
name: entity.displayName,
|
||||||
id: entity.entityId,
|
id: entity.entityId,
|
||||||
linkedEntity: entity,
|
linkedEntity: entity,
|
||||||
type: "entities"
|
type: "media-control"
|
||||||
);
|
);
|
||||||
card.entities.addAll(entity.childEntities);
|
cards.add(mediaCard);
|
||||||
cards.add(card);
|
});
|
||||||
}
|
cards.add(card);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
cards.addAll(autoGeneratedCards);
|
cards.addAll(autoGeneratedCards);
|
||||||
|
@ -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,
|
||||||
|
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),));
|
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),
|
||||||
|
Reference in New Issue
Block a user