Resolves #327 Timer duration parsing error

This commit is contained in:
estevez-dev 2019-03-14 16:39:37 +02:00
parent be502b5668
commit 125f3ac16c
3 changed files with 26 additions and 17 deletions

View File

@ -9,22 +9,31 @@ class TimerEntity extends Entity {
void update(Map rawData) { void update(Map rawData) {
super.update(rawData); super.update(rawData);
String durationSource = "${attributes["duration"]}"; String durationSource = "${attributes["duration"]}";
List<String> durationList = durationSource.split(":"); if (durationSource != null && durationSource.isNotEmpty) {
if (durationList.length == 1) { try {
duration = Duration(seconds: int.tryParse(durationList[0] ?? 0)); List<String> durationList = durationSource.split(":");
} else if (durationList.length == 2) { if (durationList.length == 1) {
duration = Duration( duration = Duration(seconds: int.tryParse(durationList[0] ?? 0));
hours: int.tryParse(durationList[0]) ?? 0, } else if (durationList.length == 2) {
minutes: int.tryParse(durationList[1]) ?? 0 duration = Duration(
); hours: int.tryParse(durationList[0]) ?? 0,
} else if (durationList.length == 3) { minutes: int.tryParse(durationList[1]) ?? 0
duration = Duration( );
hours: int.tryParse(durationList[0]) ?? 0, } else if (durationList.length == 3) {
minutes: int.tryParse(durationList[1]) ?? 0, duration = Duration(
seconds: int.tryParse(durationList[2]) ?? 0 hours: int.tryParse(durationList[0]) ?? 0,
); minutes: int.tryParse(durationList[1]) ?? 0,
seconds: int.tryParse(durationList[2]) ?? 0
);
} else {
Logger.e("Strange $entityId duration format: $durationSource");
duration = Duration(seconds: 0);
}
} catch (e) {
Logger.e("Error parsing duration for $entityId: ${e.toString()}");
duration = Duration(seconds: 0);
}
} else { } else {
Logger.e("Cann't parse $entityId duration: $durationSource");
duration = Duration(seconds: 0); duration = Duration(seconds: 0);
} }
} }

View File

@ -100,7 +100,7 @@ part 'ui_widgets/config_panel_widget.dart';
EventBus eventBus = new EventBus(); EventBus eventBus = new EventBus();
const String appName = "HA Client"; const String appName = "HA Client";
const appVersion = "0.5.1"; const appVersion = "0.5.2";
String homeAssistantWebHost; String homeAssistantWebHost;

View File

@ -1,7 +1,7 @@
name: hass_client name: hass_client
description: Home Assistant Android Client description: Home Assistant Android Client
version: 0.5.1+99 version: 0.5.2+100
environment: environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0" sdk: ">=2.0.0-dev.68.0 <3.0.0"