@@ -160,27 +160,28 @@ class ParseLiveList<T extends ParseObject> {
160
160
for (int i = 0 ; i < _list.length; i++ ) {
161
161
if (after (object, _list[i].object) != true ) {
162
162
_list.insert (i, ParseLiveListElement <T >(object, loaded: loaded));
163
- _eventStreamController.sink.add (ParseLiveListAddEvent <T >(i, object));
163
+ _eventStreamController.sink.add (ParseLiveListAddEvent <T >(
164
+ i, object? .clone (object? .toJson (full: true ))));
164
165
return ;
165
166
}
166
167
}
167
168
_list.add (ParseLiveListElement <T >(object, loaded: loaded));
168
- _eventStreamController.sink
169
- . add ( ParseLiveListAddEvent < T >( _list.length - 1 , object));
169
+ _eventStreamController.sink. add ( ParseLiveListAddEvent < T >(
170
+ _list.length - 1 , object? . clone (object ? . toJson (full : true )) ));
170
171
}
171
172
172
173
void _objectUpdated (T object) {
173
174
for (int i = 0 ; i < _list.length; i++ ) {
174
175
if (_list[i].object.get <String >(keyVarObjectId) ==
175
176
object.get <String >(keyVarObjectId)) {
176
- //TODO: better soulution
177
- // if (after( _list[i].object, object) == null) {
178
- // _list[i].object = object;
179
- // } else {
180
- _list. removeAt (i). dispose ();
181
- _eventStreamController.sink. add ( ParseLiveListDeleteEvent < T >( i, object));
182
- _objectAdded (object);
183
- // }
177
+ if ( after (_list[i].object, object) == null ) {
178
+ _list[i].object = object;
179
+ } else {
180
+ _list. removeAt (i). dispose ();
181
+ _eventStreamController.sink. add ( ParseLiveListDeleteEvent < T >(
182
+ i, object? . clone (object ? . toJson (full : true )) ));
183
+ _objectAdded (object);
184
+ }
184
185
break ;
185
186
}
186
187
}
@@ -191,7 +192,8 @@ class ParseLiveList<T extends ParseObject> {
191
192
if (_list[i].object.get <String >(keyVarObjectId) ==
192
193
object.get <String >(keyVarObjectId)) {
193
194
_list.removeAt (i).dispose ();
194
- _eventStreamController.sink.add (ParseLiveListDeleteEvent <T >(i, object));
195
+ _eventStreamController.sink.add (ParseLiveListDeleteEvent <T >(
196
+ i, object? .clone (object? .toJson (full: true ))));
195
197
break ;
196
198
}
197
199
}
@@ -256,12 +258,12 @@ class ParseLiveListElement<T extends ParseObject> {
256
258
257
259
Stream <T > get stream => _streamController? .stream;
258
260
259
- T get object => _object;
261
+ T get object => _object? . clone (_object ? . toJson (full : true )) ;
260
262
261
263
set object (T value) {
262
264
_loaded = true ;
263
265
_object = value;
264
- _streamController? .add (object );
266
+ _streamController? .add (_object ? . clone (_object ? . toJson (full : true )) );
265
267
}
266
268
267
269
bool get loaded => _loaded;
0 commit comments