This commit is contained in:
Yegor Vialov 2018-11-24 00:37:55 +02:00
parent 215871ce9e
commit 73398378c4
7 changed files with 111 additions and 129 deletions

View File

@ -10,7 +10,19 @@ class DefaultEntityContainer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Row(
final EntityModel entityModel = EntityModel.of(context);
return InkWell(
onLongPress: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleHold();
}
},
onTap: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleTap();
}
},
child: Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
EntityIcon(),
@ -22,6 +34,7 @@ class DefaultEntityContainer extends StatelessWidget {
),
state
],
),
);
}
}

View File

@ -10,27 +10,14 @@ class EntityIcon extends StatelessWidget {
@override
Widget build(BuildContext context) {
final entityModel = EntityModel.of(context);
return InkWell(
child: Padding(
final EntityWrapper entityWrapper = EntityModel.of(context).entityWrapper;
return Padding(
padding: padding,
child: MaterialDesignIcons.createIconWidgetFromEntityData(
entityModel.entityWrapper,
entityWrapper,
iconSize,
EntityColor.stateColor(entityModel.entityWrapper.entity.state)
EntityColor.stateColor(entityWrapper.entity.state)
),
),
onLongPress: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleHold();
}
},
onTap: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleTap();
}
}
);
}
}

View File

@ -12,28 +12,16 @@ class EntityName extends StatelessWidget {
@override
Widget build(BuildContext context) {
final entityModel = EntityModel.of(context);
return InkWell(
child: Padding(
final EntityWrapper entityWrapper = EntityModel.of(context).entityWrapper;
return Padding(
padding: padding,
child: Text(
"${entityModel.entityWrapper.displayName}",
"${entityWrapper.displayName}",
overflow: textOverflow,
softWrap: wordsWrap,
style: TextStyle(fontSize: fontSize),
textAlign: textAlign,
),
),
onLongPress: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleHold();
}
},
onTap: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleTap();
}
}
);
}
}

View File

@ -11,6 +11,7 @@ class GlanceEntityContainer extends StatelessWidget {
@override
Widget build(BuildContext context) {
final EntityWrapper entityWrapper = EntityModel.of(context).entityWrapper;
List<Widget> result = [];
if (showName) {
result.add(EntityName(
@ -21,10 +22,12 @@ class GlanceEntityContainer extends StatelessWidget {
fontSize: Sizes.smallFontSize,
));
}
result.add(EntityIcon(
result.add(
EntityIcon(
padding: EdgeInsets.all(0.0),
iconSize: Sizes.iconSize,
));
)
);
if (showState) {
result.add(SimpleEntityState(
textAlign: TextAlign.center,
@ -32,11 +35,20 @@ class GlanceEntityContainer extends StatelessWidget {
padding: EdgeInsets.only(top: Sizes.rowPadding),
));
}
return Column(
return Center(
child: InkWell(
child: ConstrainedBox(
constraints: BoxConstraints(minWidth: Sizes.iconSize*2),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
//mainAxisAlignment: MainAxisAlignment.start,
//crossAxisAlignment: CrossAxisAlignment.center,
children: result,
),
),
onTap: () => entityWrapper.handleTap(),
onLongPress: () => entityWrapper.handleHold(),
),
);
}
}

View File

@ -19,7 +19,6 @@ class ClimateStateWidget extends StatelessWidget {
return Padding(
padding: EdgeInsets.fromLTRB(
0.0, 0.0, Sizes.rightWidgetPadding, 0.0),
child: GestureDetector(
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.center,
@ -48,10 +47,6 @@ class ClimateStateWidget extends StatelessWidget {
) :
Container(height: 0.0,)
],
),
onTap: () => entityModel.handleTap
? eventBus.fire(new ShowEntityPageEvent(entity))
: null,
));
}
}

View File

@ -13,26 +13,15 @@ class SimpleEntityState extends StatelessWidget {
final entityModel = EntityModel.of(context);
Widget result = Padding(
padding: padding,
child: InkWell(
child: Text(
"${entityModel.entityWrapper.entity.state}${entityModel.entityWrapper.entity.unitOfMeasurement}",
"${entityModel.entityWrapper.entity.state} ${entityModel.entityWrapper.entity.unitOfMeasurement}",
textAlign: textAlign,
maxLines: 10,
overflow: TextOverflow.ellipsis,
softWrap: true,
style: new TextStyle(
fontSize: Sizes.stateFontSize,
)),
onLongPress: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleHold();
}
},
onTap: () {
if (entityModel.handleTap) {
entityModel.entityWrapper.handleTap();
}
}
)
)
);
if (expanded) {

View File

@ -24,14 +24,13 @@ class GlanceCardWidget extends StatelessWidget {
Widget _buildRows(BuildContext context) {
List<Widget> result = [];
double width = MediaQuery.of(context).size.width - Sizes.leftWidgetPadding - (2*Sizes.rightWidgetPadding);
List<EntityWrapper> toShow = card.entities.where((entity) {return !entity.entity.isHidden;}).toList();
int columnsCount = toShow.length >= card.columnsCount ? card.columnsCount : toShow.length;
card.entities.forEach((EntityWrapper entity) {
if (!entity.entity.isHidden) {
toShow.forEach((EntityWrapper entity) {
result.add(
SizedBox(
width: width / columnsCount,
FractionallySizedBox(
widthFactor: 1/columnsCount,
child: EntityModel(
entityWrapper: entity,
child: entity.entity.buildGlanceWidget(context, card.showName, card.showState),
@ -39,12 +38,11 @@ class GlanceCardWidget extends StatelessWidget {
),
)
);
}
});
return Padding(
padding: EdgeInsets.fromLTRB(0.0, Sizes.rowPadding, 0.0, 2*Sizes.rowPadding),
child: Wrap(
alignment: WrapAlignment.spaceAround,
//alignment: WrapAlignment.spaceAround,
runSpacing: Sizes.rowPadding*2,
children: result,
),