fix(upload-list): handle conflict actions#16819
fix(upload-list): handle conflict actions#16819alperozturk96 wants to merge 6 commits intomasterfrom
Conversation
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
|
/backport to stable-33.1.0 |
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
| <string name="upload_local_storage_full">Local storage full</string> | ||
| <string name="upload_old_android">Encryption is only possible with >= Android 5.0</string> | ||
| <string name="upload_sync_conflict">Sync conflict, please resolve manually</string> | ||
| <string name="upload_sync_conflict_checking">Checking for upload conflicts…</string> |
There was a problem hiding this comment.
@kra-mo Please share your feedback regarding wording :)
|
APK file: https://github.com/nextcloud/android/actions/runs/24192202894/artifacts/6350914432 |
Co-authored-by: Laura Kramolis <git@kramo.page> Signed-off-by: Alper Öztürk <67455295+alperozturk96@users.noreply.github.com>
|
test-Unit test failed, but no output was generated. Maybe a preliminary stage failed. |
|
APK file: https://github.com/nextcloud/android/actions/runs/24240286482/artifacts/6369848734 |
|
blue-Light-Screenshot test failed, but no output was generated. Maybe a preliminary stage failed. |
pr is updated. please check shared flow.
Issue
On Android, we are showing conflicts based on the stored last upload result, but this is wrong because the server can change at any moment. As a result, we may display an incorrect status, and the user might try to open the conflict resolution dialog even though it’s unnecessary, perhaps the file no longer exists on the remote server or has been moved.
Flow
First check remote path from
OCUploadviaReadFileOperation-> if file not there remove conflict error and allow user to retry uploadIf file exists on remote and same -> if file not there remove conflict error and allow user to retry upload
If file exists and different -> show conflict resolve dialog
Changes
isSamelogic since its necessary for this PR as well.UploadListAdapterHelper,UploadListAdapterActionsince needed for handling conflicts and not bloating the adapter logic. Also we need to implement other actions as well in future.UploadFileOperationFactorysince huge constructor needs to be repeated for each fileDemo - if conflict exists
Screen_recording_20260409_150419.webm
Demo - if conflict not exists anymore (e.g. file moved or removed from server)
Screen_recording_20260409_150442.webm