@@ -263,51 +263,19 @@ class ParseLiveList<T extends ParseObject> {
263
263
final List <Future <void >> loadingNodes = < Future <void >> [];
264
264
265
265
for (String key in paths.keys) {
266
- ParseObject ? keyInObject = object.get <ParseObject >(key);
267
- if (keyInObject != null ) {
266
+ if (object.containsKey (key)) {
268
267
ParseObject ? includedObject = object.get <ParseObject >(key);
269
268
if (includedObject != null ) {
270
269
//If the object is not fetched
271
270
if (! includedObject.containsKey (keyVarUpdatedAt)) {
272
271
//See if oldObject contains key
273
- if (oldObject != null ) {
274
- ParseObject ? keyInOld = oldObject.get <ParseObject >(key);
275
- if (keyInOld != null ) {
276
- includedObject = keyInOld;
277
-
278
- //If the object is not fetched || the ids don't match / the pointer changed
279
- if (! includedObject.containsKey (keyVarUpdatedAt) ||
280
- includedObject.objectId != keyInObject.objectId) {
281
- includedObject = keyInObject;
282
- //fetch from web including sub objects
283
- //same as down there
284
- final QueryBuilder <ParseObject > queryBuilder = QueryBuilder <
285
- ParseObject >(ParseObject (includedObject.parseClassName))
286
- ..whereEqualTo (keyVarObjectId, includedObject.objectId)
287
- ..includeObject (_toIncludeStringList (paths[key]));
288
- loadingNodes.add (queryBuilder
289
- .query ()
290
- .then <void >((ParseResponse parseResponse) {
291
- List <dynamic >? results = parseResponse.results;
292
- if (parseResponse.success &&
293
- results != null &&
294
- results.length == 1 ) {
295
- // ignore: deprecated_member_use_from_same_package
296
- object[key] = results[0 ];
297
- }
298
- }));
299
- continue ;
300
- } else {
301
- // ignore: deprecated_member_use_from_same_package
302
- object[key] = includedObject;
303
- //recursion
304
- loadingNodes
305
- .add (_loadIncludes (includedObject, paths: paths[key]));
306
- continue ;
307
- }
308
- } else {
272
+ ParseObject ? keyInOld = oldObject? .get <ParseObject >(key);
273
+ if (keyInOld != null ) {
274
+ //If the object is not fetched || the ids don't match / the pointer changed
275
+ if (! keyInOld.containsKey (keyVarUpdatedAt) ||
276
+ includedObject.objectId != keyInOld.objectId) {
309
277
//fetch from web including sub objects
310
- //same as up there
278
+ //same as down there
311
279
final QueryBuilder <ParseObject > queryBuilder = QueryBuilder <
312
280
ParseObject >(ParseObject (includedObject.parseClassName))
313
281
..whereEqualTo (keyVarObjectId, includedObject.objectId)
@@ -319,12 +287,36 @@ class ParseLiveList<T extends ParseObject> {
319
287
if (parseResponse.success &&
320
288
results != null &&
321
289
results.length == 1 ) {
322
- // ignore: deprecated_member_use_from_same_package
323
290
object[key] = results[0 ];
324
291
}
325
292
}));
326
293
continue ;
294
+ } else {
295
+ includedObject = keyInOld;
296
+ object[key] = includedObject;
297
+ //recursion
298
+ loadingNodes
299
+ .add (_loadIncludes (includedObject, paths: paths[key]));
300
+ continue ;
327
301
}
302
+ } else {
303
+ //fetch from web including sub objects
304
+ //same as up there
305
+ final QueryBuilder <ParseObject > queryBuilder = QueryBuilder <
306
+ ParseObject >(ParseObject (includedObject.parseClassName))
307
+ ..whereEqualTo (keyVarObjectId, includedObject.objectId)
308
+ ..includeObject (_toIncludeStringList (paths[key]));
309
+ loadingNodes.add (queryBuilder
310
+ .query ()
311
+ .then <void >((ParseResponse parseResponse) {
312
+ List <dynamic >? results = parseResponse.results;
313
+ if (parseResponse.success &&
314
+ results != null &&
315
+ results.length == 1 ) {
316
+ object[key] = results[0 ];
317
+ }
318
+ }));
319
+ continue ;
328
320
}
329
321
}
330
322
} else {
0 commit comments