Merge branch 'krille/catch-all-sync-errors' into 'master'

Catch all sync errors

See merge request famedly/famedlysdk!374
This commit is contained in:
Christian Pauly 2020-06-30 14:47:40 +00:00
commit ad098aa246
1 changed files with 9 additions and 2 deletions

View File

@ -669,18 +669,25 @@ class Client {
}
Future<SyncUpdate> _syncRequest;
Exception _lastSyncError;
Future<void> _sync() async {
if (isLogged() == false || _disposed) return;
try {
_syncRequest = api.sync(
_syncRequest = api
.sync(
filter: syncFilters,
since: prevBatch,
timeout: prevBatch != null ? 30000 : null,
);
)
.catchError((e) {
_lastSyncError = e;
return null;
});
if (_disposed) return;
final hash = _syncRequest.hashCode;
final syncResp = await _syncRequest;
if (syncResp == null) throw _lastSyncError;
if (hash != _syncRequest.hashCode) return;
if (database != null) {
await database.transaction(() async {