Fix duplicating panels
This commit is contained in:
parent
b4ad3061e4
commit
3c0bd68b0a
@ -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