Minor fixes

This commit is contained in:
Yegor Vialov 2018-10-12 18:03:27 +03:00
parent 948d1d4e23
commit b5f9ecf601
6 changed files with 32 additions and 20 deletions

View File

@ -3,9 +3,9 @@ part of '../main.dart';
class _ClimateEntityWidgetState extends _EntityWidgetState { class _ClimateEntityWidgetState extends _EntityWidgetState {
List<String> _operationList = []; List<String> _operationList = [];
double _temperature; double _temperature1 = 0.0;
String _operationMode; String _operationMode = "";
bool _awayMode; bool _awayMode = false;
bool _showPending; bool _showPending;
bool _changedHere; bool _changedHere;
double _temperatureStep = 0.2; double _temperatureStep = 0.2;
@ -27,7 +27,12 @@ class _ClimateEntityWidgetState extends _EntityWidgetState {
} }
void _resetVars() { void _resetVars() {
_temperature = widget.entity.attributes['temperature']; var temp1 = widget.entity.attributes['temperature'] ?? widget.entity.attributes['target_temp_low'];
if (temp1 is int) {
_temperature1 = temp1.toDouble();
} else if (temp1 is double) {
_temperature1 = temp1;
}
_operationMode = widget.entity.attributes['operation_mode']; _operationMode = widget.entity.attributes['operation_mode'];
_awayMode = widget.entity.attributes['away_mode'] == "on"; _awayMode = widget.entity.attributes['away_mode'] == "on";
_showPending = false; _showPending = false;
@ -46,20 +51,20 @@ class _ClimateEntityWidgetState extends _EntityWidgetState {
} }
void _temperatureUp() { void _temperatureUp() {
_temperature += _temperatureStep; _temperature1 += _temperatureStep;
_setTemperature(); _setTemperature();
} }
void _temperatureDown() { void _temperatureDown() {
_temperature -= _temperatureStep; _temperature1 -= _temperatureStep;
_setTemperature(); _setTemperature();
} }
void _setTemperature() { void _setTemperature() {
setState(() { setState(() {
_temperature = double.parse(_temperature.toStringAsFixed(1)); _temperature1 = double.parse(_temperature1.toStringAsFixed(1));
_changedHere = true; _changedHere = true;
eventBus.fire(new ServiceCallEvent(widget.entity.domain, "set_temperature", widget.entity.entityId,{"temperature": "${_temperature.toStringAsFixed(1)}"})); eventBus.fire(new ServiceCallEvent(widget.entity.domain, "set_temperature", widget.entity.entityId,{"temperature": "${_temperature1.toStringAsFixed(1)}"}));
_resetStateTimer(); _resetStateTimer();
}); });
} }
@ -94,7 +99,7 @@ class _ClimateEntityWidgetState extends _EntityWidgetState {
_buildAdditionalControls() { _buildAdditionalControls() {
if (_changedHere) { if (_changedHere) {
_showPending = (_temperature != widget.entity.attributes['temperature']); _showPending = (_temperature1 != widget.entity.attributes['temperature']);
_changedHere = false; _changedHere = false;
} else { } else {
_resetTimer?.cancel(); _resetTimer?.cancel();
@ -112,7 +117,7 @@ class _ClimateEntityWidgetState extends _EntityWidgetState {
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: Text( child: Text(
"$_temperature", "$_temperature1",
style: TextStyle( style: TextStyle(
fontSize: largeFontSize, fontSize: largeFontSize,
color: _showPending ? Colors.red : Colors.black color: _showPending ? Colors.red : Colors.black

View File

@ -11,15 +11,15 @@ class _SelectEntityWidgetState extends _EntityWidgetState {
@override @override
Widget _buildActionWidget(BuildContext context) { Widget _buildActionWidget(BuildContext context) {
Widget ctrl;
_listOptions.clear(); _listOptions.clear();
if (widget.entity.attributes["options"] != null) { if (widget.entity.attributes["options"] != null) {
widget.entity.attributes["options"].forEach((value){ widget.entity.attributes["options"].forEach((value){
_listOptions.add(value.toString()); _listOptions.add(value.toString());
}); });
} }
return Expanded( if (_listOptions.isNotEmpty) {
//width: Entity.INPUT_WIDTH, ctrl = DropdownButton<String>(
child: DropdownButton<String>(
value: widget.entity.state, value: widget.entity.state,
items: this._listOptions.map((String value) { items: this._listOptions.map((String value) {
return new DropdownMenuItem<String>( return new DropdownMenuItem<String>(
@ -30,7 +30,13 @@ class _SelectEntityWidgetState extends _EntityWidgetState {
onChanged: (_) { onChanged: (_) {
setNewState(_); setNewState(_);
}, },
), );
} else {
ctrl = Text('---');
}
return Expanded(
//width: Entity.INPUT_WIDTH,
child: ctrl,
); );
} }
} }

View File

@ -309,8 +309,9 @@ class HomeAssistant {
void _handleEntityStateChange(Map eventData) { void _handleEntityStateChange(Map eventData) {
//TheLogger.log("Debug", "New state for ${eventData['entity_id']}"); //TheLogger.log("Debug", "New state for ${eventData['entity_id']}");
_entities.updateState(eventData); Map data = Map.from(eventData);
eventBus.fire(new StateChangedEvent(eventData["entity_id"], null, false)); _entities.updateState(data);
eventBus.fire(new StateChangedEvent(data["entity_id"], null, false));
} }
void _parseConfig(Map data) { void _parseConfig(Map data) {

View File

@ -36,7 +36,7 @@ part 'card_class.dart';
EventBus eventBus = new EventBus(); EventBus eventBus = new EventBus();
const String appName = "HA Client"; const String appName = "HA Client";
const appVersion = "0.2.5.33"; const appVersion = "0.2.5.34";
String homeAssistantWebHost; String homeAssistantWebHost;

View File

@ -121,8 +121,8 @@ class ViewWidgetState extends State<ViewWidget> {
return result; return result;
} }
List<EntityWidget> _buildBadges(BuildContext context, List<Entity> badges) { List<Widget> _buildBadges(BuildContext context, List<Entity> badges) {
List<EntityWidget> result = []; List<Widget> result = [];
badges.forEach((Entity entity) { badges.forEach((Entity entity) {
result.add(entity.buildWidget(context, EntityWidgetType.badge)); result.add(entity.buildWidget(context, EntityWidgetType.badge));
}); });

View File

@ -1,7 +1,7 @@
name: hass_client name: hass_client
description: Home Assistant Android Client description: Home Assistant Android Client
version: 0.2.5+33 version: 0.2.5+34
environment: environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0" sdk: ">=2.0.0-dev.68.0 <3.0.0"