From 3c0bd68b0a45c43959e861b9a1709fe5e6a429f0 Mon Sep 17 00:00:00 2001 From: Yegor Vialov Date: Fri, 1 May 2020 16:05:07 +0000 Subject: [PATCH] Fix duplicating panels --- lib/home_assistant.class.dart | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/home_assistant.class.dart b/lib/home_assistant.class.dart index 27e9af8..8007e8e 100644 --- a/lib/home_assistant.class.dart +++ b/lib/home_assistant.class.dart @@ -251,23 +251,25 @@ class HomeAssistant { } Future _getPanels(SharedPreferences sharedPrefs) async { - panels.clear(); if (sharedPrefs != null) { try { var data = json.decode(sharedPrefs.getString('cached_panels') ?? '{}'); _parsePanels(data); } catch (e, stacktrace) { Logger.e(e, stacktrace: stacktrace); + panels.clear(); } } else { await ConnectionManager().sendSocketMessage(type: "get_panels").then((data) => _parsePanels(data)).catchError((e, stacktrace) { - Logger.e('get_panels error: $e', stacktrace: stacktrace); - throw HACException('Can\'t get panles: $e'); + Logger.e('get_panels error: $e', stacktrace: stacktrace); + panels.clear(); + throw HACException('Can\'t get panels: $e'); }); } } void _parsePanels(data) { + panels.clear(); _rawPanels = data; List dashboards = []; data.forEach((k,v) {