From 81d8ec3de01b2d6c2a259d11fbb86b994a4ff31a Mon Sep 17 00:00:00 2001 From: estevez Date: Mon, 17 Sep 2018 22:20:36 +0300 Subject: [PATCH] [#30] Input_ entities default icons --- lib/data_model.dart | 5 ++++- lib/main.dart | 40 +++++++++++++++++++++------------------- pubspec.yaml | 2 +- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/lib/data_model.dart b/lib/data_model.dart index ebc1776..febb198 100644 --- a/lib/data_model.dart +++ b/lib/data_model.dart @@ -318,7 +318,10 @@ class MaterialDesignIcons { "script": "mdi:file-document", "input_boolean": "mdi:drawing", "input_datetime": "mdi:clock", - "sun": "mdi:white-balance-sunny" + "input_number": "mdi:ray-vertex", + "input_select": "mdi:format-list-bulleted", + "input_text": "mdi:textbox", + "sun": "mdi:white-balance-sunny", }; static Map _iconsDataMap = { "mdi:access-point": 0xf002, diff --git a/lib/main.dart b/lib/main.dart index ab52f61..69cd961 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -83,12 +83,8 @@ class _MainPageState extends State with WidgetsBindingObserver { SharedPreferences prefs = await SharedPreferences.getInstance(); String domain = prefs.getString('hassio-domain'); String port = prefs.getString('hassio-port'); - _instanceHost = domain+":"+port; - String _hassioAPIEndpoint = prefs.getString('hassio-protocol')+"://" + - domain + - ":" + - port + - "/api/websocket"; + _instanceHost = "$domain:$port"; + String _hassioAPIEndpoint = "${prefs.getString('hassio-protocol')}://$domain:$port/api/websocket"; String _hassioPassword = prefs.getString('hassio-password'); _dataModel = HassioDataModel(_hassioAPIEndpoint, _hassioPassword); _refreshData(); @@ -199,18 +195,22 @@ class _MainPageState extends State with WidgetsBindingObserver { List entities = []; ids.forEach((id) { var data = _entitiesData[id]; - entities.add(new ListTile( - leading: Icon( - _createMDIfromCode(data["iconCode"]), - color: _stateIconColors[data["state"]] ?? Colors.blueGrey, - ), - //subtitle: Text("${data['entity_id']}"), - trailing: _buildEntityAction(id), - title: Text( - "${data["display_name"]}", - overflow: TextOverflow.ellipsis, - ), - )); + if (data == null) { + debugPrint("Hiding unknown entity from card: $id"); + } else { + entities.add(new ListTile( + leading: Icon( + _createMDIfromCode(data["iconCode"]), + color: _stateIconColors[data["state"]] ?? Colors.blueGrey, + ), + //subtitle: Text("${data['entity_id']}"), + trailing: _buildEntityAction(id), + title: Text( + "${data["display_name"]}", + overflow: TextOverflow.ellipsis, + ), + )); + } }); return entities; } @@ -249,7 +249,9 @@ class _MainPageState extends State with WidgetsBindingObserver { if ((_entitiesData != null) && (_uiStructure != null)) { _uiStructure.forEach((viewId, structure) { result.add( - Tab(icon: Icon(_createMDIfromCode(structure["iconCode"]))) + Tab( + icon: Icon(_createMDIfromCode(structure["iconCode"])) + ) ); }); } diff --git a/pubspec.yaml b/pubspec.yaml index a3209c3..28ee960 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -7,7 +7,7 @@ description: Home Assistant Android Client # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # Read more about versioning at semver.org. -version: 0.0.6 +version: 0.0.7 environment: sdk: ">=2.0.0-dev.68.0 <3.0.0"