Fix duplicating panels
This commit is contained in:
		| @@ -251,23 +251,25 @@ class HomeAssistant { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   Future _getPanels(SharedPreferences sharedPrefs) async { |   Future _getPanels(SharedPreferences sharedPrefs) async { | ||||||
|     panels.clear(); |  | ||||||
|     if (sharedPrefs != null) { |     if (sharedPrefs != null) { | ||||||
|       try { |       try { | ||||||
|         var data = json.decode(sharedPrefs.getString('cached_panels') ?? '{}'); |         var data = json.decode(sharedPrefs.getString('cached_panels') ?? '{}'); | ||||||
|         _parsePanels(data); |         _parsePanels(data); | ||||||
|       } catch (e, stacktrace) { |       } catch (e, stacktrace) { | ||||||
|         Logger.e(e, stacktrace: stacktrace); |         Logger.e(e, stacktrace: stacktrace); | ||||||
|  |         panels.clear(); | ||||||
|       } |       } | ||||||
|     } else { |     } else { | ||||||
|       await ConnectionManager().sendSocketMessage(type: "get_panels").then((data) => _parsePanels(data)).catchError((e, stacktrace) { |       await ConnectionManager().sendSocketMessage(type: "get_panels").then((data) => _parsePanels(data)).catchError((e, stacktrace) { | ||||||
|        Logger.e('get_panels error: $e', stacktrace: stacktrace); |           Logger.e('get_panels error: $e', stacktrace: stacktrace); | ||||||
|           throw HACException('Can\'t get panles: $e'); |           panels.clear(); | ||||||
|  |           throw HACException('Can\'t get panels: $e'); | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   void _parsePanels(data) { |   void _parsePanels(data) { | ||||||
|  |     panels.clear(); | ||||||
|     _rawPanels = data; |     _rawPanels = data; | ||||||
|     List<Panel> dashboards = []; |     List<Panel> dashboards = []; | ||||||
|     data.forEach((k,v) { |     data.forEach((k,v) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user