Skip to content

Commit 46bd2d1

Browse files
authored
LiveQuery: fixes list is null (#334)
1 parent f8af2b6 commit 46bd2d1

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

lib/src/utils/parse_live_list.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ class ParseLiveList<T extends ParseObject> {
8989
final ParseResponse parseResponse = await _runQuery();
9090
if (parseResponse.success) {
9191
_list = parseResponse.results
92-
.map<ParseLiveListElement<T>>(
92+
?.map<ParseLiveListElement<T>>(
9393
(dynamic element) => ParseLiveListElement<T>(element))
94-
.toList();
94+
?.toList() ?? List<ParseLiveListElement<T>>();
9595
}
9696

9797
LiveQuery()
@@ -112,9 +112,9 @@ class ParseLiveList<T extends ParseObject> {
112112
.getClientEventStream
113113
.listen((LiveQueryClientEvent event) async {
114114
if (event == LiveQueryClientEvent.CONNECTED) {
115-
ParseResponse parseResponse = await _runQuery();
115+
final ParseResponse parseResponse = await _runQuery();
116116
if (parseResponse.success) {
117-
List<T> newlist = parseResponse.results;
117+
final List<T> newList = parseResponse.results ?? List<T>();
118118

119119
//update List
120120
for (int i = 0; i < _list.length; i++) {
@@ -124,21 +124,21 @@ class ParseLiveList<T extends ParseObject> {
124124

125125
bool stillInList = false;
126126

127-
for (int j = 0; j < newlist.length; j++) {
128-
if (newlist[j].get<String>(keyVarObjectId) == currentObjectId) {
127+
for (int j = 0; j < newList.length; j++) {
128+
if (newList[j].get<String>(keyVarObjectId) == currentObjectId) {
129129
stillInList = true;
130-
if (newlist[j]
130+
if (newList[j]
131131
.get<DateTime>(keyVarUpdatedAt)
132132
.isAfter(currentObject.get<DateTime>(keyVarUpdatedAt))) {
133-
QueryBuilder<T> queryBuilder = QueryBuilder<T>.copy(_query)
133+
final QueryBuilder<T> queryBuilder = QueryBuilder<T>.copy(_query)
134134
..whereEqualTo(keyVarObjectId, currentObjectId);
135135
queryBuilder.query<T>().then((ParseResponse result) {
136-
if (result.success) {
136+
if (result.success && result.results != null) {
137137
_objectUpdated(result.results.first);
138138
}
139139
});
140140
}
141-
newlist.removeAt(j);
141+
newList.removeAt(j);
142142
j--;
143143
break;
144144
}
@@ -149,8 +149,8 @@ class ParseLiveList<T extends ParseObject> {
149149
}
150150
}
151151

152-
for (int i = 0; i < newlist.length; i++) {
153-
_objectAdded(newlist[i], loaded: false);
152+
for (int i = 0; i < newList.length; i++) {
153+
_objectAdded(newList[i], loaded: false);
154154
}
155155
}
156156
}
@@ -208,8 +208,8 @@ class ParseLiveList<T extends ParseObject> {
208208
keyVarObjectId, _list[index].object.get<String>(keyVarObjectId))
209209
..setLimit(1);
210210
final ParseResponse response = await queryBuilder.query<T>();
211-
if (response.success && response.results != null) {
212-
_list[index].object = response.results.first;
211+
if (response.success) {
212+
_list[index].object = response.results?.first;
213213
} else {
214214
_list[index].object = null;
215215
throw response.error;

0 commit comments

Comments
 (0)