Cards creating optimization
This commit is contained in:
		| @@ -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