Resolves #285
This commit is contained in:
parent
4bb616b327
commit
6cc1a37d9d
@ -5,7 +5,7 @@ class AlarmControlPanelControlsWidget extends StatefulWidget {
|
|||||||
final bool extended;
|
final bool extended;
|
||||||
final List states;
|
final List states;
|
||||||
|
|
||||||
const AlarmControlPanelControlsWidget({Key key, @required this.extended, this.states: const ["arm_home", "arm_away"]}) : super(key: key);
|
const AlarmControlPanelControlsWidget({Key key, @required this.extended, this.states}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_AlarmControlPanelControlsWidgetWidgetState createState() => _AlarmControlPanelControlsWidgetWidgetState();
|
_AlarmControlPanelControlsWidgetWidgetState createState() => _AlarmControlPanelControlsWidgetWidgetState();
|
||||||
@ -15,6 +15,14 @@ class AlarmControlPanelControlsWidget extends StatefulWidget {
|
|||||||
class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPanelControlsWidget> {
|
class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPanelControlsWidget> {
|
||||||
|
|
||||||
String code = "";
|
String code = "";
|
||||||
|
List supportedStates;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
supportedStates = widget.states ?? ["arm_home", "arm_away"];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void _callService(AlarmControlPanelEntity entity, String service) {
|
void _callService(AlarmControlPanelEntity entity, String service) {
|
||||||
eventBus.fire(new ServiceCallEvent(
|
eventBus.fire(new ServiceCallEvent(
|
||||||
@ -72,7 +80,7 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
|
|||||||
final AlarmControlPanelEntity entity = entityModel.entityWrapper.entity;
|
final AlarmControlPanelEntity entity = entityModel.entityWrapper.entity;
|
||||||
List<Widget> buttons = [];
|
List<Widget> buttons = [];
|
||||||
if (entity.state == EntityState.alarm_disarmed) {
|
if (entity.state == EntityState.alarm_disarmed) {
|
||||||
if (widget.states.contains("arm_home")) {
|
if (supportedStates.contains("arm_home")) {
|
||||||
buttons.add(
|
buttons.add(
|
||||||
RaisedButton(
|
RaisedButton(
|
||||||
onPressed: () => _callService(entity, "alarm_arm_home"),
|
onPressed: () => _callService(entity, "alarm_arm_home"),
|
||||||
@ -80,7 +88,7 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (widget.states.contains("arm_away")) {
|
if (supportedStates.contains("arm_away")) {
|
||||||
buttons.add(
|
buttons.add(
|
||||||
RaisedButton(
|
RaisedButton(
|
||||||
onPressed: () => _callService(entity, "alarm_arm_away"),
|
onPressed: () => _callService(entity, "alarm_arm_away"),
|
||||||
@ -89,7 +97,7 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (widget.extended) {
|
if (widget.extended) {
|
||||||
if (widget.states.contains("arm_night")) {
|
if (supportedStates.contains("arm_night")) {
|
||||||
buttons.add(
|
buttons.add(
|
||||||
RaisedButton(
|
RaisedButton(
|
||||||
onPressed: () => _callService(entity, "alarm_arm_night"),
|
onPressed: () => _callService(entity, "alarm_arm_night"),
|
||||||
@ -97,7 +105,7 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (widget.states.contains("arm_custom_bypass")) {
|
if (supportedStates.contains("arm_custom_bypass")) {
|
||||||
buttons.add(
|
buttons.add(
|
||||||
RaisedButton(
|
RaisedButton(
|
||||||
onPressed: () =>
|
onPressed: () =>
|
||||||
|
Reference in New Issue
Block a user