Resolves #111: Assumed state
This commit is contained in:
@ -3,7 +3,7 @@ part of '../main.dart';
|
||||
class _ButtonEntityWidgetState extends _EntityWidgetState {
|
||||
|
||||
@override
|
||||
void sendNewState(newValue) {
|
||||
void setNewState(newValue) {
|
||||
eventBus.fire(new ServiceCallEvent(widget.entity.domain, "turn_on", widget.entity.entityId, null));
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ class _ButtonEntityWidgetState extends _EntityWidgetState {
|
||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
||||
return FlatButton(
|
||||
onPressed: (() {
|
||||
sendNewState(null);
|
||||
setNewState(null);
|
||||
}),
|
||||
child: Text(
|
||||
"EXECUTE",
|
||||
|
@ -28,7 +28,7 @@ class _DateTimeEntityWidgetState extends _EntityWidgetState {
|
||||
}
|
||||
|
||||
@override
|
||||
void sendNewState(newValue) {
|
||||
void setNewState(newValue) {
|
||||
eventBus.fire(new ServiceCallEvent(widget.entity.domain, "set_datetime", widget.entity.entityId,
|
||||
newValue));
|
||||
}
|
||||
@ -56,17 +56,17 @@ class _DateTimeEntityWidgetState extends _EntityWidgetState {
|
||||
if (date != null) {
|
||||
if (hasTime) {
|
||||
_showTimePicker(context).then((time){
|
||||
sendNewState({"date": "${formatDate(date, [yyyy, '-', mm, '-', dd])}", "time": "${formatDate(DateTime(1970, 1, 1, time.hour, time.minute), [HH, ':', nn])}"});
|
||||
setNewState({"date": "${formatDate(date, [yyyy, '-', mm, '-', dd])}", "time": "${formatDate(DateTime(1970, 1, 1, time.hour, time.minute), [HH, ':', nn])}"});
|
||||
});
|
||||
} else {
|
||||
sendNewState({"date": "${formatDate(date, [yyyy, '-', mm, '-', dd])}"});
|
||||
setNewState({"date": "${formatDate(date, [yyyy, '-', mm, '-', dd])}"});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if (hasTime) {
|
||||
_showTimePicker(context).then((time){
|
||||
if (time != null) {
|
||||
sendNewState({"time": "${formatDate(DateTime(1970, 1, 1, time.hour, time.minute), [HH, ':', nn])}"});
|
||||
setNewState({"time": "${formatDate(DateTime(1970, 1, 1, time.hour, time.minute), [HH, ':', nn])}"});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
@ -22,6 +22,7 @@ class Entity {
|
||||
String _domain;
|
||||
String _entityId;
|
||||
String _state;
|
||||
String assumedState;
|
||||
DateTime _lastUpdated;
|
||||
|
||||
String get displayName =>
|
||||
@ -52,6 +53,7 @@ class Entity {
|
||||
_domain = rawData["entity_id"].split(".")[0];
|
||||
_entityId = rawData["entity_id"];
|
||||
_state = rawData["state"];
|
||||
assumedState = _state;
|
||||
_lastUpdated = DateTime.tryParse(rawData["last_updated"]);
|
||||
}
|
||||
|
||||
@ -179,7 +181,7 @@ class _EntityWidgetState extends State<EntityWidget> {
|
||||
eventBus.fire(new ShowEntityPageEvent(widget.entity));
|
||||
}
|
||||
|
||||
void sendNewState(newState) {
|
||||
void setNewState(newState) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@ class _SelectEntityWidgetState extends _EntityWidgetState {
|
||||
List<String> _listOptions = [];
|
||||
|
||||
@override
|
||||
void sendNewState(newValue) {
|
||||
void setNewState(newValue) {
|
||||
eventBus.fire(new ServiceCallEvent(widget.entity.domain, "select_option", widget.entity.entityId,
|
||||
{"option": "$newValue"}));
|
||||
}
|
||||
@ -28,7 +28,7 @@ class _SelectEntityWidgetState extends _EntityWidgetState {
|
||||
);
|
||||
}).toList(),
|
||||
onChanged: (_) {
|
||||
sendNewState(_);
|
||||
setNewState(_);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
@ -14,7 +14,7 @@ class _SliderEntityWidgetState extends _EntityWidgetState {
|
||||
}
|
||||
|
||||
@override
|
||||
void sendNewState(newValue) {
|
||||
void setNewState(newValue) {
|
||||
eventBus.fire(new ServiceCallEvent(widget.entity.domain, "set_value", widget.entity.entityId,
|
||||
{"value": "${newValue.toString()}"}));
|
||||
}
|
||||
@ -46,7 +46,7 @@ class _SliderEntityWidgetState extends _EntityWidgetState {
|
||||
(value.roundToDouble() / _multiplier).toString(), true));*/
|
||||
},
|
||||
onChangeEnd: (value) {
|
||||
sendNewState(value.roundToDouble() / _multiplier);
|
||||
setNewState(value.roundToDouble() / _multiplier);
|
||||
},
|
||||
),
|
||||
),
|
||||
|
@ -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);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ class _TextEntityWidgetState extends _EntityWidgetState {
|
||||
}
|
||||
|
||||
@override
|
||||
void sendNewState(newValue) {
|
||||
void setNewState(newValue) {
|
||||
if (validate(newValue)) {
|
||||
eventBus.fire(new ServiceCallEvent(widget.entity.domain, "set_value", widget.entity.entityId,
|
||||
{"value": "$newValue"}));
|
||||
@ -43,7 +43,7 @@ class _TextEntityWidgetState extends _EntityWidgetState {
|
||||
|
||||
void _focusListener() {
|
||||
if (!_focusNode.hasFocus && (_tmpValue != widget.entity.state)) {
|
||||
sendNewState(_tmpValue);
|
||||
setNewState(_tmpValue);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user