Resolves #282 Trigger button for alarm

This commit is contained in:
estevez-dev 2019-01-29 18:51:28 +02:00
parent 5e814e8109
commit 1094177a42
2 changed files with 133 additions and 81 deletions

View File

@ -37,6 +37,35 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
});
}
void _askToTrigger(AlarmControlPanelEntity entity) {
// flutter defined function
showDialog(
context: context,
builder: (BuildContext context) {
// return object of type Dialog
return AlertDialog(
title: new Text("Are you sure?"),
content: new Text("Are you sure want to trigger alarm ${entity.displayName}?"),
actions: <Widget>[
FlatButton(
child: new Text("Yes"),
onPressed: () {
eventBus.fire(new ServiceCallEvent(entity.domain, "alarm_trigger", entity.entityId, null));
Navigator.of(context).pop();
},
),
FlatButton(
child: new Text("No"),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
final entityModel = EntityModel.of(context);
@ -86,9 +115,7 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
)
);
}
Widget pinPad;
if (widget.extended) {
pinPad = Padding(
Widget pinPad = Padding(
padding: EdgeInsets.only(bottom: Sizes.rowPadding),
child: Column(
mainAxisSize: MainAxisSize.min,
@ -161,9 +188,6 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
],
)
);
} else {
pinPad = Container();
}
Widget inputWrapper = Container(
width: 150.0,
child: TextField(
@ -193,12 +217,24 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
children: buttons
)
);
Widget triggerButton = Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
FlatButton(
child: Text(
"TRIGGER",
style: TextStyle(color: Colors.redAccent)
),
onPressed: () => _askToTrigger(entity),
)
]
);
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
widget.extended ? buttonsWrapper : inputWrapper,
widget.extended ? inputWrapper : buttonsWrapper,
pinPad
widget.extended ? pinPad : triggerButton
]
);

View File

@ -144,9 +144,25 @@ class CardWidget extends StatelessWidget {
color: Colors.grey
),
),
trailing: EntityIcon(
trailing: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.end,
children: [
EntityIcon(
iconSize: 50.0,
),
Container(
width: 26.0,
child: IconButton(
padding: EdgeInsets.all(0.0),
alignment: Alignment.centerRight,
icon: Icon(MaterialDesignIcons.createIconDataFromIconName(
"mdi:dots-vertical")),
onPressed: () => eventBus.fire(new ShowEntityPageEvent(card.linkedEntityWrapper.entity))
)
)
]
),
));
body.add(
AlarmControlPanelControlsWidget(