Resolves #111: Assumed state

This commit is contained in:
estevez
2018-10-02 23:10:40 +03:00
parent 98d716109b
commit 8a0d5581d9
7 changed files with 26 additions and 19 deletions

View File

@ -8,7 +8,15 @@ class _SwitchEntityWidgetState extends _EntityWidgetState {
}
@override
void sendNewState(newValue) {
void setNewState(newValue) {
setState(() {
widget.entity.assumedState = newValue ? 'on' : 'off';
});
Timer(Duration(seconds: 2), (){
setState(() {
widget.entity.assumedState = widget.entity.state;
});
});
eventBus.fire(new ServiceCallEvent(
widget.entity.domain, (newValue as bool) ? "turn_on" : "turn_off", widget.entity.entityId, null));
}
@ -16,12 +24,9 @@ class _SwitchEntityWidgetState extends _EntityWidgetState {
@override
Widget _buildActionWidget(bool inCard, BuildContext context) {
return Switch(
value: widget.entity.isOn,
value: widget.entity.assumedState == 'on',
onChanged: ((switchState) {
sendNewState(switchState);
setState(() {
widget.entity.state = switchState ? 'on' : 'off';
});
setNewState(switchState);
}),
);
}