nextcloud / nextcloud/notes-android
Syncing/refreshing is extremly slow
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 168
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 31
Description
This issue respects the following points:
- I have read the FAQ
- I have searched for existing issues
- The issue affects the Notes Android app, neither the Notes server app nor the Nextcloud Android app.
Describe the bug
Refreshing/Syncing the Notes app takes way too long (~10 seconds), even if nothing has changed.
I think this means all remote notes are downloaded on every request, at least thats what I got from quickly glancing over the relevant code.
As per the Nextcloud Notes Api docs:
https://github.com/nextcloud/notes/blob/main/docs/api/v1.md#get-all-notes-get-notes
PruneBefore should be used to only download notes that have been remotely changed since the last update:
pruneBefore integer, optional All notes without change before of this Unix timestamp are purged from the response, i.e. only the attribute id is included. You should use the Unix timestamp value from the last request's HTTP response header Last-Modified in order to reduce transferred data size.
(or alternatively the ETAG contained in the response)
This is still an issue even if I'm wrong about the cause, it shouldn't take more than a second (accounting for network latency).
Expected behavior
No response
Notes Android version
3.5
Notes server version
4.11
Nextcloud Android version
3.30.6
Nextcloud version
30.0.4
Device
Samsung Galaxy Z Flip 5
Android Version
14
App Store
- Google Play Store
- F-Droid
- Huawei App Gallery
Stacktrace
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Notes API documentation linked in the issue, then trace the Android app's refresh and sync implementation that requests remote notes. Measure a refresh with no remote changes and determine whether the request uses the documented change markers. Done means unchanged notes are not fully transferred and refresh time is reduced to the expected range.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java
- Domain
- api, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100