nextcloud / nextcloud/notes-android

Syncing/refreshing is extremly slow

Open
#2,531 10 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug Performance 🚀 Upstream :: SSO
Dominant language
Java
Stars
1.1k
Forks
168
Avg merge
1d 17h
Merged PRs (30d)
31

Description

This issue respects the following points:
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.