Resolves #151 Group visibility support
This commit is contained in:
@ -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));
|
||||
|
@ -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);
|
||||
|
@ -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 = [];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user