Cache reading issues fix

This commit is contained in:
Yegor Vialov 2020-05-06 17:51:06 +00:00
parent 3d828914cc
commit 90105c3b09
2 changed files with 25 additions and 15 deletions

View File

@ -140,9 +140,9 @@ class HomeAssistant {
Future _getConfig(SharedPreferences sharedPrefs) async { Future _getConfig(SharedPreferences sharedPrefs) async {
_instanceConfig?.clear(); _instanceConfig?.clear();
if (sharedPrefs != null) { if (sharedPrefs != null && sharedPrefs.containsKey('cached_config')) {
try { try {
var data = json.decode(sharedPrefs.getString('cached_config') ?? '{}'); var data = json.decode(sharedPrefs.getString('cached_config'));
_parseConfig(data); _parseConfig(data);
} catch (e, stacktrace) { } catch (e, stacktrace) {
Logger.e('Error gettong config from cache: $e', stacktrace: stacktrace); Logger.e('Error gettong config from cache: $e', stacktrace: stacktrace);
@ -160,9 +160,9 @@ class HomeAssistant {
} }
Future _getStates(SharedPreferences sharedPrefs) async { Future _getStates(SharedPreferences sharedPrefs) async {
if (sharedPrefs != null) { if (sharedPrefs != null && sharedPrefs.containsKey('cached_states')) {
try { try {
var data = json.decode(sharedPrefs.getString('cached_states') ?? '[]'); var data = json.decode(sharedPrefs.getString('cached_states'));
_parseStates(data); _parseStates(data);
} catch (e, stacktrace) { } catch (e, stacktrace) {
Logger.e('Error getting cached states: $e', stacktrace: stacktrace); Logger.e('Error getting cached states: $e', stacktrace: stacktrace);
@ -183,9 +183,9 @@ class HomeAssistant {
} }
Future _getLovelace(SharedPreferences sharedPrefs) { Future _getLovelace(SharedPreferences sharedPrefs) {
if (sharedPrefs != null) { if (sharedPrefs != null && sharedPrefs.containsKey('cached_lovelace')) {
try { try {
var data = json.decode(sharedPrefs.getString('cached_lovelace') ?? '{}'); var data = json.decode(sharedPrefs.getString('cached_lovelace'));
_rawLovelaceData = data; _rawLovelaceData = data;
} catch (e) { } catch (e) {
autoUi = true; autoUi = true;
@ -221,9 +221,9 @@ class HomeAssistant {
Future _getServices(SharedPreferences prefs) async { Future _getServices(SharedPreferences prefs) async {
services?.clear(); services?.clear();
if (prefs != null) { if (prefs != null && prefs.containsKey('cached_services')) {
try { try {
var data = json.decode(prefs.getString('cached_services') ?? '{}'); var data = json.decode(prefs.getString('cached_services'));
_parseServices(data); _parseServices(data);
} catch (e, stacktrace) { } catch (e, stacktrace) {
Logger.e(e, stacktrace: stacktrace); Logger.e(e, stacktrace: stacktrace);
@ -240,10 +240,20 @@ class HomeAssistant {
Future _getUserInfo(SharedPreferences sharedPrefs) async { Future _getUserInfo(SharedPreferences sharedPrefs) async {
_userName = null; _userName = null;
if (sharedPrefs != null && sharedPrefs.containsKey('cached_user')) {
try {
var data = json.decode(sharedPrefs.getString('cached_user'));
_parseUserInfo(data);
} catch (e, stacktrace) {
Logger.e('Error getting cached user info: $e', stacktrace: stacktrace);
}
return Future.value();
} else {
await ConnectionManager().sendSocketMessage(type: "auth/current_user").then((data) => _parseUserInfo(data)).catchError((e) { await ConnectionManager().sendSocketMessage(type: "auth/current_user").then((data) => _parseUserInfo(data)).catchError((e) {
Logger.e('auth/current_user error: $e'); Logger.e('auth/current_user error: $e');
}); });
} }
}
void _parseUserInfo(data) { void _parseUserInfo(data) {
_rawUserInfo = data; _rawUserInfo = data;
@ -251,9 +261,9 @@ class HomeAssistant {
} }
Future _getPanels(SharedPreferences sharedPrefs) async { Future _getPanels(SharedPreferences sharedPrefs) async {
if (sharedPrefs != null) { if (sharedPrefs != null && sharedPrefs.containsKey('cached_panels')) {
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);

View File

@ -54,7 +54,7 @@ class _EntityHistoryWidgetState extends State<EntityHistoryWidget> {
}); });
} }
}).catchError((e) { }).catchError((e) {
Logger.e("Error loading $entityId history: $e"); Logger.e("Error loading $entityId history: $e", skipCrashlytics: true);
if (!_disposed) { if (!_disposed) {
setState(() { setState(() {
_history = []; _history = [];