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

[New Arch] Uploads #3004

Closed
9 tasks
abelgardep opened this issue Oct 26, 2020 · 2 comments
Closed
9 tasks

[New Arch] Uploads #3004

abelgardep opened this issue Oct 26, 2020 · 2 comments

Comments

@abelgardep
Copy link
Contributor

abelgardep commented Oct 26, 2020

Synchronization epic #2818

ACs:

  • New content is uploaded from:
    • Manual uploads (doc provider)
    • Uploads from camera
    • Auto Uploads
    • Share from external app
  • Content will be uploaded to the selected location and reflected in uploads view
  • Notifications shown with the progress. If the upload successes, notification will be dismissed. If the upload fails, it will remain.
  • Cause of errors will be shown in the uploads view as well
  • The status of the uploads in the view will be persisted. Only the last 30 correct uploads will be displayed
  • Failed uploads because lack of connection will be automatically retried

This AC's correspond with the current status of the app and can be reviewed somewhen. The main target is keeping the current behaviour, moving everything to the new architecture. Improvements also have room.

Splitting up in different issues:

TASKS

  • Research (if needed)
  • Create branch feature/feature_name
  • Development tasks
    • Implement whatever
    • ...
  • Code review and apply changes requested
  • Design test plan
  • QA
  • Merge branch feature/feature_name into master

PR

  • App
  • Library (if needed)

QA

Test plan: https://github.com/owncloud/QA/blob/master/Mobile/Android/Sync/Upload.md

@jesmrec
Copy link
Collaborator

jesmrec commented Aug 20, 2021

Uploads could be splitted in three different steps (one PR for each):

1st step: Single upload

  1. Select the target folder
  2. Select a file using doc provider

file is uploaded and stored in server. No notifications, no error handling. This first step will post the file using the two known methods: NG (oC10) and "full upload" (oCIS). TUS method will be implemented later.

2nd step: notifications & error handling.

  • Network lost
  • App terminated
  • Account removed
  • Target folder removed
  • Waiting for wifi (same as network lost)
  • Maintenance mode
  • Lack of permissions
  • Lack of quota
  • Virus detection

3rd step: conflicts

#3005

@abelgardep
Copy link
Contributor Author

abelgardep commented May 11, 2022

A little information about the uploads and what we can expect from them when moved to new arch

Type Cache file before upload Origin To do after upload Keep local file in scoped storage Type
Camera Upload No StorageAccessFramework Keep original or remove original (settings) no URI
(FAB) Picture from camera No Picture created in temporal file Remove temporal file no system (straight)
(FAB) Upload from files No StorageAccessFramework Keep original no URI
Share with oC - Plain Text No Txt file created in temporal file Remove temporal file no system
Share with oC - Files Yes File -> Cache file Remove temporal file no system
Conflicts - Keep both No File in scoped storage Move file to final location (Rename) yes system
Conflicts - Keep local No File in scoped storage Nothing yes system
Documents Provider system

@jesmrec jesmrec closed this as completed Aug 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants