Resolves #151 Group visibility support

This commit is contained in:
Yegor Vialov
2018-10-21 16:11:47 +03:00
parent 6a43e04b31
commit 0f6babc243
3 changed files with 25 additions and 7 deletions

View File

@ -1,11 +1,11 @@
part of 'main.dart';
class HACard extends StatelessWidget {
class CardWidget extends StatelessWidget {
final List<Entity> entities;
final String friendlyName;
const HACard({
const CardWidget({
Key key,
this.entities,
this.friendlyName
@ -13,6 +13,13 @@ class HACard extends StatelessWidget {
@override
Widget build(BuildContext context) {
final entityModel = EntityModel.of(context);
if (entityModel != null) {
final groupEntity = entityModel.entity;
if (groupEntity.isHidden) {
return Container(width: 0.0, height: 0.0,);
}
}
List<Widget> body = [];
body.add(_buildCardHeader());
body.addAll(_buildCardBody(context));

View File

@ -62,6 +62,7 @@ class Entity {
String get unitOfMeasurement => attributes["unit_of_measurement"] ?? "";
List get childEntityIds => attributes["entity_id"] ?? [];
String get lastUpdated => _getLastUpdatedFormatted();
bool get isHidden => attributes["hidden"] ?? false;
Entity(Map rawData) {
update(rawData);

View File

@ -41,6 +41,7 @@ class View {
} else {
childEntitiesAsCards[entity.entityId] = CardSkeleton(
displayName: entity.displayName,
groupEntity: entity
);
childEntitiesAsCards[entity.entityId].childEntities = entity.childEntities;
}
@ -111,10 +112,14 @@ class ViewWidgetState extends State<ViewWidget> {
widget.cards.forEach((String id, CardSkeleton skeleton){
result.add(
HACard(
EntityModel(
entity: skeleton.groupEntity,
handleTap: false,
child: CardWidget(
entities: skeleton.childEntities,
friendlyName: skeleton.displayName,
)
)
);
});
@ -151,8 +156,13 @@ class ViewWidgetState extends State<ViewWidget> {
class CardSkeleton {
String displayName;
List<Entity> childEntities;
Entity groupEntity;
CardSkeleton({Key key, this.displayName, this.childEntities}) {
CardSkeleton({
Key key,
this.displayName,
this.childEntities,
this.groupEntity}) {
childEntities = [];
}
}