From 962b5368e2e3734c138b5d0c80cec94de8d59b2f Mon Sep 17 00:00:00 2001 From: maaeps Date: Thu, 12 Mar 2020 20:33:57 +0100 Subject: [PATCH] LiveQuery: fixes list is null --- lib/src/utils/parse_live_list.dart | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/src/utils/parse_live_list.dart b/lib/src/utils/parse_live_list.dart index 9f4dd1955..19a6d6f45 100644 --- a/lib/src/utils/parse_live_list.dart +++ b/lib/src/utils/parse_live_list.dart @@ -89,9 +89,9 @@ class ParseLiveList { final ParseResponse parseResponse = await _runQuery(); if (parseResponse.success) { _list = parseResponse.results - .map>( + ?.map>( (dynamic element) => ParseLiveListElement(element)) - .toList(); + ?.toList() ?? List>(); } LiveQuery() @@ -111,9 +111,9 @@ class ParseLiveList { .getClientEventStream .listen((LiveQueryClientEvent event) async { if (event == LiveQueryClientEvent.CONNECTED) { - ParseResponse parseResponse = await _runQuery(); + final ParseResponse parseResponse = await _runQuery(); if (parseResponse.success) { - List newlist = parseResponse.results; + final List newList = parseResponse.results ?? List(); //update List for (int i = 0; i < _list.length; i++) { @@ -123,21 +123,21 @@ class ParseLiveList { bool stillInList = false; - for (int j = 0; j < newlist.length; j++) { - if (newlist[j].get(keyVarObjectId) == currentObjectId) { + for (int j = 0; j < newList.length; j++) { + if (newList[j].get(keyVarObjectId) == currentObjectId) { stillInList = true; - if (newlist[j] + if (newList[j] .get(keyVarUpdatedAt) .isAfter(currentObject.get(keyVarUpdatedAt))) { - QueryBuilder queryBuilder = QueryBuilder.copy(_query) + final QueryBuilder queryBuilder = QueryBuilder.copy(_query) ..whereEqualTo(keyVarObjectId, currentObjectId); queryBuilder.query().then((ParseResponse result) { - if (result.success) { + if (result.success && result.results != null) { _objectUpdated(result.results.first); } }); } - newlist.removeAt(j); + newList.removeAt(j); j--; break; } @@ -148,8 +148,8 @@ class ParseLiveList { } } - for (int i = 0; i < newlist.length; i++) { - _objectAdded(newlist[i], loaded: false); + for (int i = 0; i < newList.length; i++) { + _objectAdded(newList[i], loaded: false); } } } @@ -207,8 +207,8 @@ class ParseLiveList { keyVarObjectId, _list[index].object.get(keyVarObjectId)) ..setLimit(1); final ParseResponse response = await queryBuilder.query(); - if (response.success && response.results != null) { - _list[index].object = response.results.first; + if (response.success) { + _list[index].object = response.results?.first; } else { _list[index].object = null; throw response.error;