-
Notifications
You must be signed in to change notification settings - Fork 131
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
[feature/se-concurrency] Sync Engine concurrency support #369
Conversation
- Fix separator insets in item list
…nt space left on the server (fix (4))
- fixed long status messages, while setting dynamically numbers of lines
…he background was shown incorrectly
…rk and whenever editing a bookmark and saving it (previously UI seemed stuck for a couple of seconds)
…tion for OCErrors so they are included when serialized, so they become visible in the Files app, too - Fixing issue (8) in #237
- Remove trash method and permission flag for items in FP, so "Delete Now" is the only option and Files app shows a warning - Fixing (11) in #237
… into release_1.0.0
- Add new action extension location .plusButton - Add Action extensions support to provide UIAlertAction objects - Add .plusButton location to CreateFolder action - Extend the ClientQueryViewController plusBarButton to include action extensions in the alert that's being shown - Implementing improvement (15) from #237
… distinct Action Extensions - Extend ActionProgressHandler to cater for both publishing and unpublishing progress objects - Replace repeated code with a method to provide a ActionProgressHandler in ClientItemQueryViewController - Make CreateFolderAction require a folder as parent item - Make MoveAction present on the provided ViewController, not its navigationController - Extend error handling in several places
… into release_1.0.0
- remove create folder button from left - left-align the sort option and rename it "Sort by" (from "Sorted by") - turn the sort option button from a ThemeButton to a UIButton and replace the unicode arrow with an elegant chevron - remove sortBar location for action extensions - clean up SortBar code - NSObject+ThemeApplication - replace use of isKindOfClass and force-casts with if let constructs - add support for UIButton themeing - fix "flashing" reording right after opening a connection by setting the OCQuery sort method before starting the query - fix bug where an alert was shown for invalid credentials, but the Edit button did not work - fix ClientRootViewController.closeClient(), so it calls the completionHandler - adjust the editing method to the changed view and navigation controller structure - minor code formatting and style fixes in several places
… into release_1.0.0
…n re-entering multi-selection
- Fix spelling of CreateFolderAction.identifier value - Simplify implementation of DuplicateAction by refactoring it to use new SDK APIs, addressing issue (7) in #237 - Fix potential future crash in ClientDirectoryPickerViewController by avoiding force-casting - Make OCItem.parentItem in OCItem+Extension more robust using new SDK API - Adapt FileProviderExtension to use new, supported SDK APIs instead of the island implementation that was -findKnownExistingItemInParent:withName: - Add (and comment out) code that lets FileProviderExtension.createDirectoryWithName return as soon as the placeholder item is available - Add empty implementations for trashItemWithIdentifier/untrashItemWithIdentifier/setLastUsedDate/supportedServiceSourcesForItemIdentifier to comply with requirement of overriding all methods raised in the documentation
… into release_1.0.0
…ature/se-concurrency
- now groups progress by type and provides summaries such as "Uploading X of Y files.." that are easier to follow for the user - now prioritizes newer progress submissions over old ones, taking into account the possbility these may be executed earlier due to Sync Engine concurrency
(1) should be addressed by d744a44 with the following changes:
|
- Remove unused original DisplayHostViewController - Rename GalleryHostViewController to DisplayViewController - move Viewer code below Client where it logically belongs and split it up into subdirectories - (Re-)add download progress reporting to ClientQueryViewController and initially add it to Display*ViewController classes
Re (1) again: re-added the missing lines, so download progress is now once again shown in the progress summary bar |
(2)With the last update related the behaviour of the progress bar, i notice this: Using the default budget:
Current: Suggested (more ideas welcome): if the progress message is X -> ongoing transfers (maximum 6 for the default budget, or separate for uploads/downloads) so, it counts only the pending stuff because the finished one is out of scope in terms of Status. what do you think? CC @michaelstingl |
Thanks for the feedback @jesmrec!
I think that would be confusing to the average user and not provide much additional information. Most of the time it'd be There's also a mathematical problem with dropping the finished actions from the count. Imagine 5 transfers, with one at 90%, the rest at 0%. That'd result in an overall progress of 18% ((0.9 + 0 + 0 + 0 + 0)/5 = 0.18). If all downloads then progress by 10%, the one with 90% hits 100% and is removed. The previously evenly advancing overall progress then suddenly drops from 18% to 10% ((0.1 + 0.1 + 0.1 + 0.1)/4 = 0.1), so the progress bar would jump around, which a progress bar should ideally never do. That's why actions keep getting added to the count until the count is back to 1, at which point the progress of the last download can be shown directly. I originally started out with messages following the pattern I then changed it to the current So with you bringing it up, I'd be totally fine to change it back to |
Ok, i got your idea and make sense to do it in that way. Let's give a try. |
Approved on my side, correct application of concurrency taking in account the budgets. |
…ded in the test target) so tests pass - Remove XCTestsCase+Extension as it provides no benefit over Xcode's own messages whn tests start and finish
Description
This PR adds Sync Engine concurrency support to the app, so that more than one Sync Action (like move, copy, delete, download, upload, …) can be executed at once. To enable this, the Sync Engine:
Types of changes
Test plan:
https://github.com/owncloud/QA/blob/master/Mobile/iOS-app/Concurrency.md
Bugs & improvements: