Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#7815 Delayed synchronization #11278

Open
wants to merge 121 commits into
base: master
Choose a base branch
from

Conversation

BatPio
Copy link

@BatPio BatPio commented Jan 19, 2023

Fixes #7815
Fixes #2323

  • Tests written, or not not needed
    Some tests are written. I'm waiting for suggestions on what else can be tested.

Delay configuration:

sync_delay

BatPio added 13 commits January 19, 2023 22:54
#	CHANGELOG.md
#	app/schemas/com.nextcloud.client.database.NextcloudDatabase/66.json
#	app/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java
#	app/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt
#	app/src/main/res/values-b+en+001/strings.xml
#	app/src/main/res/values-bg-rBG/strings.xml
#	app/src/main/res/values-cs-rCZ/strings.xml
#	app/src/main/res/values-da/strings.xml
#	app/src/main/res/values-de/strings.xml
#	app/src/main/res/values-es/strings.xml
#	app/src/main/res/values-fr/strings.xml
#	app/src/main/res/values-hu-rHU/strings.xml
#	app/src/main/res/values-pl/strings.xml
#	app/src/main/res/values-tr/strings.xml
#	app/src/main/res/values-zh-rCN/strings.xml
#	app/src/main/res/values-zh-rHK/strings.xml
#	app/src/main/res/values-zh-rTW/strings.xml
#	app/src/main/res/values/strings.xml

Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
@codecov
Copy link

codecov bot commented Jan 20, 2023

Codecov Report

Merging #11278 (3d40c3a) into master (aeb1632) will increase coverage by 0.07%.
The diff coverage is 37.20%.

❗ Current head 3d40c3a differs from pull request most recent head 501d1fe. Consider uploading reports for the commit 501d1fe to get more accurate results

Additional details and impacted files
@@             Coverage Diff              @@
##             master   #11278      +/-   ##
============================================
+ Coverage     31.44%   31.52%   +0.07%     
- Complexity     3413     3427      +14     
============================================
  Files           575      577       +2     
  Lines         42018    42146     +128     
  Branches       5660     5664       +4     
============================================
+ Hits          13214    13286      +72     
- Misses        26861    26905      +44     
- Partials       1943     1955      +12     
Impacted Files Coverage Δ
...com/nextcloud/client/database/NextcloudDatabase.kt 100.00% <ø> (ø)
...cloud/client/database/entity/SyncedFolderEntity.kt 0.00% <0.00%> (ø)
...java/com/nextcloud/client/di/ComponentsModule.java 0.00% <ø> (ø)
...in/java/com/nextcloud/client/jobs/FilesSyncWork.kt 21.95% <0.00%> (-0.18%) ⬇️
...loud/android/datamodel/FilesystemDataProvider.java 4.39% <0.00%> (-0.10%) ⬇️
...oud/android/datamodel/SyncedFolderDisplayItem.java 35.29% <ø> (ø)
...ncloud/android/datamodel/SyncedFolderProvider.java 10.93% <0.00%> (-0.18%) ⬇️
...ain/java/com/owncloud/android/db/ProviderMeta.java 100.00% <ø> (ø)
...cloud/android/ui/activity/SyncedFoldersActivity.kt 20.43% <0.00%> (-0.55%) ⬇️
.../dialog/SyncedFolderPreferencesDialogFragment.java 0.00% <0.00%> (ø)
... and 11 more

Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
Signed-off-by: batpio <[email protected]>
@BatPio BatPio marked this pull request as ready for review January 21, 2023 22:34
@BatPio BatPio linked an issue Jan 21, 2023 that may be closed by this pull request
Copy link
Member

@AlvaroBrey AlvaroBrey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't tested this yet, especially to see how this will behave with existing autoupload folders. This can't be tested without adressing my first comment below, however.

Having said that, this looks quite promising! Thanks for contributing @BatPio

@BatPio
Copy link
Author

BatPio commented Jan 15, 2025

@alperozturk96
Testing is time-consuming.

After setting the auto upload delay for a directory, you need to add a new file to that directory and wait. After the delay time has elapsed, the file should appear on the server. It is important to check that the file has not appeared on the server before the delay time has elapsed. Due to the Android's sync interval, the delay may increase by an additional 15 minutes.
In case of a 30-minute delay, the file should appear on server no earlier than after 30 minutes and no later than after 45 minutes.

I tested this with screenshots. Unfortunately, I have no idea how to test this without waiting.

…ified-master-v2

# Conflicts:
#	app/schemas/com.nextcloud.client.database.NextcloudDatabase/86.json
#	app/src/main/java/com/nextcloud/client/database/NextcloudDatabase.kt
#	app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt
…tion-simplified-master-v2' into feature/7815/delayed-synchronization-simplified-master-v2
Signed-off-by: batpio <[email protected]>
@BatPio
Copy link
Author

BatPio commented Feb 6, 2025

@alperozturk96

I have adapted my code to the current solution with FilesystemDataProvider. MR is ready for testing

@alperozturk96
Copy link
Collaborator

alperozturk96 commented Feb 7, 2025

@tobiasKaminsky @ZetaTom

I tested auto upload seems like okay. Could you please review, especially FilesystemDataProvider.java and FilesSyncWork.kt ?

Copy link
Collaborator

@ZetaTom ZetaTom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for taking the time to contribute these enhancements and for maintaining this pull request.

In general this seems to work. The duration selector dialogue is very intuitive. Great work!

The phrase Delay file upload suggests that the upload of a given file is delayed. However, we're only looking for files older than the specified time. This becomes an issue when there are files already present or when files are moved to the auto upload folder. These files will most likely be uploaded immediately. To address this issue, I would suggest to rename the feature to something like Exclude recent files or Minimum file age.

I think that we should involve @Hyeyoung346 in this discussion.

<string name="common_clear">Clear</string>
<string name="common_days_short">d</string>
<string name="common_hours_short">h</string>
<string name="common_minutes_short">m</string>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<string name="common_minutes_short">m</string>
<string name="common_minutes_short">min</string>

To my knowledge min is the standard abbreviation.

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="42dp"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure that this value will work using different font sizes and faces. I've also noticed that the clear button (⊗) disappears on smaller screen sizes.

BatPio and others added 18 commits February 19, 2025 21:22
…ified-master-v2

# Conflicts:
#	app/schemas/com.nextcloud.client.database.NextcloudDatabase/87.json
#	app/src/main/java/com/nextcloud/client/database/NextcloudDatabase.kt
Signed-off-by: batpio <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow setting a delay before auto upload / auto upload on-device deletion delayed / scheduled auto-upload
10 participants