Re-implemented getting tasks with the new seperate endpoint #39

Open
konrad wants to merge 34 commits from feature/task-list into master
Owner

TODO

  • Basic implementation working
  • Sorting -> (Same as in the web app, user sortable will be a later pr)
    Needs a good way to hanlde query parameters in the services
  • Endless scrolling
  • Show loading animation when tasks are loading
  • Create a custom widget which handles auto loading new tasks and inserting dividers.
# TODO * [x] Basic implementation working * [x] Sorting -> (Same as in the web app, user sortable will be a later pr) Needs a good way to hanlde query parameters in the services * [x] Endless scrolling * [ ] Show loading animation when tasks are loading * [ ] Create a custom widget which handles auto loading new tasks and inserting dividers.
konrad added the
enhancement
Status: Ready for Review
labels 2020-01-15 22:34:01 +00:00
JonasFranz was assigned by konrad 2020-01-15 22:34:08 +00:00
Author
Owner

An interesting side-effect: When scrolling slowly, it works as expected. When scrolling fast, it only loads the first 50 items and throws an error.

Also, the scrolling is kind of buggy, as in not 60fps. More like 10.

An interesting side-effect: When scrolling slowly, it works as expected. When scrolling fast, it only loads the first 50 items and throws an error. Also, the scrolling is kind of buggy, as in not 60fps. More like 10.
Author
Owner

Loading seems to work now.

Loading seems to work now.
Author
Owner

Looks like it is trying to load the next page until the end of time. (I stopped it at 704)

Looks like it is trying to load the next page until the end of time. (I stopped it at 704)
Author
Owner

I found all service implementations are using the same http client (which makes sense) but because the max number of pages is saved in the client in the _maxPages attribute, when there is a request by a completly different service in between the loading of two pages of data, _maxPages gets overridden.

It looks like the list with all namespaces is loaded between the first and the second page of tasks.

  1. Why is there a request of a completly different (invisible) thing while the tasks are being loaded?
  2. Why does it try to load tasks although maxPages is zero?
  3. Where can we put the max number of pages to prevent making too much api requests?
I found all service implementations are using the same http client (which makes sense) but because the max number of pages is saved in the client in the `_maxPages` attribute, when there is a request by a completly different service in between the loading of two pages of data, `_maxPages` gets overridden. It looks like the list with all namespaces is loaded between the first and the second page of tasks. 1. Why is there a request of a completly different (invisible) thing while the tasks are being loaded? 2. Why does it try to load tasks although `maxPages` is zero? 3. Where can we put the max number of pages to prevent making too much api requests?
Author
Owner

I've added a workaround for loading a page, it seems to be working now.

The third one needs to be fixed though.

The first one maybe not in this pr.

I've added a workaround for loading a page, it seems to be working now. The third one needs to be fixed though. The first one maybe not in this pr.
konrad changed title from WIP: Re-implemented getting tasks with the new seperate endpoint to Re-implemented getting tasks with the new seperate endpoint 2020-05-26 10:48:39 +00:00
JonasFranz requested changes 2020-06-17 16:16:27 +00:00
@ -63,0 +77,4 @@
task: taskState.tasks[index],
)
: null;
})
Collaborator

Please create a custom widget which handles auto loading new tasks and inserting dividers.

Please create a custom widget which handles auto loading new tasks and inserting dividers.
@ -109,13 +110,14 @@ class _ListPageState extends State<ListPage> {
}
_addItem(String name, BuildContext context) {
// FIXME: Use provider
Collaborator

resolve provider

resolve provider
Author
Owner

Done.

Done.
konrad marked this conversation as resolved
@ -104,0 +108,4 @@
child: ListPage(
taskList: list,
),
),
Collaborator

Maybe init the provider in the ListPage? Make sure to use Builder as child when doing it.

Maybe init the provider in the ListPage? Make sure to use Builder as child when doing it.
Author
Owner

You mean in the build method of it?

You mean in the `build` method of it?
konrad added 3 commits 2020-06-24 08:57:35 +00:00
continuous-integration/drone/push Build is passing Details
9c2622e77f
Add sentry (#43)
Refactor DSN to constants

Use correct import

Add sentry

Co-authored-by: Jonas Franz <info@jonasfranz.software>
Reviewed-on: #43
Reviewed-by: konrad <konrad@kola-entertainments.de>
continuous-integration/drone/push Build is passing Details
6c0762d458
Provide build for iOS (#42)
Remove pipeline for feature/ios

Merge branch 'master' of ssh://git.kolaente.de:9022/vikunja/app into feature/ios

Fix CI

Add keychain pw

ensure keychain

Disable code signing while building

Fix CI

Merge branch 'feature/ios' of ssh://git.kolaente.de:9022/vikunja/app into feature/ios

Add keychain password

Merge branch 'master' into feature/ios

Add compliance

Add secrets

Remove build app step

Use other version

Set Utf8

Fix CI

Fix CI

Fix beta deployment

Add deploy step

Fix CI

Fix CI

Fix ci

fix ci

fix ci

test ci

fix ci

Fix keychain

Fix keychain

Use custom keychain

Add security unlock

Add MATCH_PASSWORD

Add match

Add fastlane

Add ios pipeline to build

Add ios pipeline to build

Co-authored-by: Jonas Franz <info@jonasfranz.software>
Co-authored-by: Buildslave <buildslave@macmini.fritz.box>
Reviewed-on: #42
Reviewed-by: konrad <konrad@kola-entertainments.de>
continuous-integration/drone/pr Build is passing Details
a89068bbdf
Merge branch 'master' into feature/task-list
# Conflicts:
#	pubspec.lock
#	pubspec.yaml
konrad added 1 commit 2020-06-24 09:12:19 +00:00
continuous-integration/drone/pr Build is passing Details
d4dbc5b4ae
Use provider to add a new task
JonasFranz requested changes 2020-06-25 06:22:49 +00:00
@ -68,0 +87,4 @@
// are not using pagination.
if (response.headers["x-pagination-total-pages"] != null) {
_maxPages = int.parse(response.headers["x-pagination-total-pages"]);
}
Collaborator

Please save this in stores. This shouldn't be handled by the client.

Please save this in stores. This shouldn't be handled by the client.
Author
Owner

Done!

Done!
konrad added 1 commit 2020-06-25 08:09:14 +00:00
continuous-integration/drone/pr Build is failing Details
11e5711aab
Move all maxPages related stuff to provider
konrad added 1 commit 2020-06-25 08:10:34 +00:00
continuous-integration/drone/pr Build is failing Details
873bcef161
format
Author
Owner

Related: #50

Related: https://kolaente.dev/vikunja/app/issues/50
This repo is archived. You cannot comment on pull requests.
No description provided.