Skip to content

ParseLiveList#324

Merged
phillwiggins merged 23 commits into
parse-community:release/1.0.26from
fischerscode:live-list
Mar 10, 2020
Merged

ParseLiveList#324
phillwiggins merged 23 commits into
parse-community:release/1.0.26from
fischerscode:live-list

Conversation

@fischerscode

@fischerscode fischerscode commented Mar 9, 2020

Copy link
Copy Markdown
Contributor

As many Apps are build around dynamic lists, where items are added, loaded, removed and reordered,
I decided to implement a 'LiveList' to simplify the implementation.

Have a look in the README for further information.

Please consider merging this new feature.
Cheers!

@RodrigoSMarques

Copy link
Copy Markdown
Contributor

@maaeps
Tip: If possible, update the sample application using this Widget.

@fischerscode

Copy link
Copy Markdown
Contributor Author

@RodrigoSMarques
Good idea!
I will do so.

@phillwiggins

Copy link
Copy Markdown
Member

Wow, that's a really nice feature? More than happy to merge in. Shall I wait for the sample app to be updated?

Does any other Parse SDK have this feature? I really like it.

@fischerscode

Copy link
Copy Markdown
Contributor Author

@phillwiggins
I will try to update the sample app right now.
So we can wait, I guess.

I only worked with the Android SDK jet. There was nothing like this.

@fischerscode

Copy link
Copy Markdown
Contributor Author

Somehow I can't get the example working.
(can't login nor sign up)

@phillwiggins @RodrigoSMarques
Does anyone mind, me creating a second example for this feature?

@phillwiggins

phillwiggins commented Mar 9, 2020 via email

Copy link
Copy Markdown
Member

@fischerscode

Copy link
Copy Markdown
Contributor Author

I added a very simple example.
Feel free to make it more advanced ;-)

@phillwiggins phillwiggins merged commit 085ffb2 into parse-community:release/1.0.26 Mar 10, 2020
@phillwiggins

Copy link
Copy Markdown
Member

Excellent work. I'm going to run a few tests on the latest version (1.0.26) and release today if everything seems okay. Any objections @maaeps @RodrigoSMarques ?

@fischerscode

Copy link
Copy Markdown
Contributor Author

@phillwiggins
I have one more performance improvement.
It's marked as TODO in the livelist file.
I will commit this improvement today.

I also thought about providing the itemBuilder some kind of snapshot (similar to FutureBuilder)
That might make improvements in the future simpler.
What do you think about that?

Apart form that, I think a release should be fine.

@phillwiggins

Copy link
Copy Markdown
Member

I think add the performance improvement today, leave the other idea until after today.

I will run a few tests my end and if all is well we will release today. I think there's a bug with 1.0.25.

@fischerscode fischerscode mentioned this pull request Mar 10, 2020
fischerscode added a commit to fischerscode/Parse-SDK-Flutter that referenced this pull request Mar 10, 2020
fischerscode added a commit to fischerscode/Parse-SDK-Flutter that referenced this pull request Mar 10, 2020
phillwiggins pushed a commit that referenced this pull request Mar 10, 2020
* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.
phillwiggins pushed a commit that referenced this pull request Mar 10, 2020
* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* Remove: RemovedItemBuilder

duplicade to ChildBuilder

* removed firstBuild

* ParseLiveListElementSnapshot added
@RodrigoSMarques

Copy link
Copy Markdown
Contributor

Hi @maaeps
ParseLiveList not working in Flutter Web.
I did a Parse lib test on Flutter Web and had several errors even without using ParseLiveList.

Version 1.0.25 its OK.

Many compile erros:

Compiler message:
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:68:3: Error: Type 'Subscription' not found.
  Subscription _liveQuerySubscription;
  ^^^^^^^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:69:22: Error: Type 'LiveQueryClientEvent' not found.
  StreamSubscription<LiveQueryClientEvent> _liveQueryClientEventSubscription;
                     ^^^^^^^^^^^^^^^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:68:3: Error: 'Subscription' isn't a type.
  Subscription _liveQuerySubscription;
  ^^^^^^^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:69:22: Error: 'LiveQueryClientEvent' isn't a type.
  StreamSubscription<LiveQueryClientEvent> _liveQueryClientEventSubscription;
                     ^^^^^^^^^^^^^^^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:101:16: Error: 'Subscription' isn't a type.
        .then((Subscription<T> subscription) {
               ^^^^^^^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:113:18: Error: 'LiveQueryClientEvent' isn't a type.
        .listen((LiveQueryClientEvent event) async {
                 ^^^^^^^^^^^^^^^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:98:10: Error: The getter 'client' isn't defined for the class 'LiveQuery'.
 - 'LiveQuery' is from 'package:parse_server_sdk/src/network/parse_live_query_web.dart' ('../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/network/parse_live_query_web.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'client'.
        .client
         ^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:111:10: Error: The getter 'client' isn't defined for the class 'LiveQuery'.
 - 'LiveQuery' is from 'package:parse_server_sdk/src/network/parse_live_query_web.dart' ('../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/network/parse_live_query_web.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'client'.
        .client
         ^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:114:20: Error: The getter 'LiveQueryClientEvent' isn't defined for the class 'ParseLiveList<T>'.
 - 'ParseLiveList' is from 'package:parse_server_sdk/src/utils/parse_live_list.dart' ('../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'LiveQueryClientEvent'.
      if (event == LiveQueryClientEvent.CONNECTED) {
                   ^^^^^^^^^^^^^^^^^^^^
../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/utils/parse_live_list.dart:239:19: Error: The getter 'client' isn't defined for the class 'LiveQuery'.
 - 'LiveQuery' is from 'package:parse_server_sdk/src/network/parse_live_query_web.dart' ('../../../../Rodrigo/flutter/.pub-cache/git/Parse-SDK-Flutter-f8af2b658e93c4e3ac9b9d89ed6b0a6603edcd5e/lib/src/network/parse_live_query_web.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'client'.
      LiveQuery().client.unSubscribe(_liveQuerySubscription);
                  ^^^^^^

``

@fischerscode

Copy link
Copy Markdown
Contributor Author

@RodrigoSMarques
I think LiveQuery uses a different sourcecode on web.
I will have a look at it.
Can you please create a seperate issue for this?

@fischerscode

Copy link
Copy Markdown
Contributor Author

@RodrigoSMarques
This should be fixed with #340.
Let me know if LiveList makes further problems in your code.

@RodrigoSMarques

RodrigoSMarques commented Mar 27, 2020

Copy link
Copy Markdown
Contributor

HI @maaeps
I'm going to do a test.
Thanks.

phillwiggins added a commit that referenced this pull request Mar 28, 2020
* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Added an example of how to update existing object values (#309)

* Fixed the Parse().initialize's return value (#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Added example for update existing Object values

Maybe need some correction. Thank you.

Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Specifying return type of get<T> as T instead of dynamic (#310)

* Fixed the Parse().initialize's return value (#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Specified T return type instead of dynamic for get<T> method

Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Live query connection stream (#314)

* Fixed the Parse().initialize's return value (#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* added live-query-client-event-stream

* Update parse_live_query.dart

* Cleanup

Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Livequery reconnecting controller (#316)

* Fix: reconnecting

Done as in #315 (comment) described.

* Changed type of Future

Done as described in fischerscode@805e830#r37587405.

* Revert "Changed type of Future"

This reverts commit fecee76.

* adding LiveQueryReconnectingController

This is a solution for #315 (comment)

How it works:
- Only the LiveQueryReconnectingController handles reconnecting after a connection loss.
- LiveQueryReconnectingController holds informations:
  1. connection state of the device
  2. did the user disconnected from the server
  3. is currently a connection to the server estalished
- LiveQueryReconnectingController tries to reconnect after preset timespans.

* cleanup

* remove _userDisconnected from Client

This is not needed any more.
Keeping track of this information is now done by LiveQueryReconnectingController.

* subscribe(query) modified

Wait until client is connected to live-query-server.

Fixes fischerscode@d058eb0#r37612749

* Parsequery OR (#317)

* Start adding or

First idea for #213

Works with normal Query and LiveQuery.

Missing:
- any kind of "UserError handling"
- further testing

* Update parse_query.dart

* Fix for Sembast-API change (#322)

See: #321 (comment)

* added QueryBuilder.copy(QueryBuilder<T> query) (#320)

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* ParseLiveList (#324)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* added ParseACL to parseEncode (#326)

As described in #325 (comment).

Should Fix #325

* ParseLiveList Performance improvement (#327)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* ParseLiveListElementSnapshot added (#329)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* LiveList - Performance Improvement

This is the change mentioned in #324 (comment)

Requires #326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* Remove: RemovedItemBuilder

duplicade to ChildBuilder

* removed firstBuild

* ParseLiveListElementSnapshot added

* Clear unsaved changes (#331)

* added clearUnsavedChanges

An idea for #318

* moved clearUnsavedChanges to ParseBase

* LiveQueryController: connect at init (#332)

Should fix #330

* LiveList: fixed defaultBuilder (#333)

* Added generics to Query/LiveQuery (#336)

* LiveQuery: fixes list is null (#334)

* Fix: #341 (#342)

It seems like `subscription.on(LiveQueryEvent.update` reuses a existing object.

* Updating LiveQuery for web (#340)

* LiveQuery: fixes list is null

* Updating LiveQuery for web

parse_live_query_web was outdated compared to parse_live_query.

Note: parse_live_query was copied and fixed again for this change.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>

* Release/1.0.26 - Code formatting, remove lint issues

Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>
Co-authored-by: L. Rommy Arbantas <arbantas@gmail.com>
Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Michal Baran <baranmichal25@gmail.com>
Co-authored-by: Maximilian Fischer <45403027+maaeps@users.noreply.github.com>
fischerscode added a commit to fischerscode/Parse-SDK-Flutter that referenced this pull request Sep 5, 2020
* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Added an example of how to update existing object values (parse-community#309)

* Fixed the Parse().initialize's return value (parse-community#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Added example for update existing Object values

Maybe need some correction. Thank you.

Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Specifying return type of get<T> as T instead of dynamic (parse-community#310)

* Fixed the Parse().initialize's return value (parse-community#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Specified T return type instead of dynamic for get<T> method

Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Live query connection stream (parse-community#314)

* Fixed the Parse().initialize's return value (parse-community#307)

* Release/1.0.26 - Update docs

* Updated Live Queries related documentation (parse-community#301)

* Fixed the parse initialize method

Parse().initialize returns a new instantiation of the Parse class, but it should return the initialized instance.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* added live-query-client-event-stream

* Update parse_live_query.dart

* Cleanup

Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>
Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>

* Livequery reconnecting controller (parse-community#316)

* Fix: reconnecting

Done as in parse-community#315 (comment) described.

* Changed type of Future

Done as described in 805e830#r37587405.

* Revert "Changed type of Future"

This reverts commit fecee76.

* adding LiveQueryReconnectingController

This is a solution for parse-community#315 (comment)

How it works:
- Only the LiveQueryReconnectingController handles reconnecting after a connection loss.
- LiveQueryReconnectingController holds informations:
  1. connection state of the device
  2. did the user disconnected from the server
  3. is currently a connection to the server estalished
- LiveQueryReconnectingController tries to reconnect after preset timespans.

* cleanup

* remove _userDisconnected from Client

This is not needed any more.
Keeping track of this information is now done by LiveQueryReconnectingController.

* subscribe(query) modified

Wait until client is connected to live-query-server.

Fixes d058eb0#r37612749

* Parsequery OR (parse-community#317)

* Start adding or

First idea for parse-community#213

Works with normal Query and LiveQuery.

Missing:
- any kind of "UserError handling"
- further testing

* Update parse_query.dart

* Fix for Sembast-API change (parse-community#322)

See: parse-community#321 (comment)

* added QueryBuilder.copy(QueryBuilder<T> query) (parse-community#320)

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* added QueryBuilder.copy(QueryBuilder<T> query)

Added a implementation to create a new QueryBuilder based on an old one.
This is a deep copy.
Tested only with basic queries.

* ParseLiveList (parse-community#324)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* added ParseACL to parseEncode (parse-community#326)

As described in parse-community#325 (comment).

Should Fix parse-community#325

* ParseLiveList Performance improvement (parse-community#327)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* ParseLiveListElementSnapshot added (parse-community#329)

* Created ParseLiveList

* LiveList & LivListBuilder works

* Cleanup

* changed to animated list

* Fix in dataloading

* updated AnimatedList

* Finished Animations & cleanup

* handle reconnect

* Added dispose methodes & renamed classes & cleanup

* cleanup

* Fix animation duration

* added README ParseLiveList section

* Initialized example_livelist

* Update application_constants.dart

* Update .gitignore

* Revert "Update .gitignore"

This reverts commit 4d8982d.

* Update .gitignore

* HotFix: object Update from client

If the client changes the object.
(ParseObject does not get copied)

* Implemented simple example

* Update README.md

* Update main.dart

* Update README.md

* Update README.md

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* LiveList - Performance Improvement

This is the change mentioned in parse-community#324 (comment)

Requires parse-community#326

* example_livelist: use clientKey

* Changed example_livelist query

In the README I wrote, you can use a field called "show" to hide elements.

* Remove: RemovedItemBuilder

duplicade to ChildBuilder

* removed firstBuild

* ParseLiveListElementSnapshot added

* Clear unsaved changes (parse-community#331)

* added clearUnsavedChanges

An idea for parse-community#318

* moved clearUnsavedChanges to ParseBase

* LiveQueryController: connect at init (parse-community#332)

Should fix parse-community#330

* LiveList: fixed defaultBuilder (parse-community#333)

* Added generics to Query/LiveQuery (parse-community#336)

* LiveQuery: fixes list is null (parse-community#334)

* Fix: parse-community#341 (parse-community#342)

It seems like `subscription.on(LiveQueryEvent.update` reuses a existing object.

* Updating LiveQuery for web (parse-community#340)

* LiveQuery: fixes list is null

* Updating LiveQuery for web

parse_live_query_web was outdated compared to parse_live_query.

Note: parse_live_query was copied and fixed again for this change.

Co-authored-by: Phill Wiggins <phill.wiggins@gmail.com>

* Release/1.0.26 - Code formatting, remove lint issues

Co-authored-by: mregandla <3104483+mregandla@users.noreply.github.com>
Co-authored-by: L. Rommy Arbantas <arbantas@gmail.com>
Co-authored-by: James Brinkerhoff <th3brink@gmail.com>
Co-authored-by: Michal Baran <baranmichal25@gmail.com>
Co-authored-by: Maximilian Fischer <45403027+maaeps@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants