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

Multi selection on the file list #234

Merged
merged 32 commits into from
Feb 1, 2019
Merged

Multi selection on the file list #234

merged 32 commits into from
Feb 1, 2019

Conversation

mneuwert
Copy link
Contributor

@mneuwert mneuwert commented Jan 24, 2019

Description

Implementing feature request to allow actions like move, delete etc. on multiply selected items

Related Issue

#79

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

BUGS & IMPROVEMENTS

@CLAassistant
Copy link

CLAassistant commented Jan 24, 2019

CLA assistant check
Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
5 out of 7 committers have signed the CLA.

✅ jesmrec
✅ hurradieweltgehtunter
✅ ownclouders
✅ javiergonzper
✅ pablocarmu
❌ mneuwert
❌ felix-schwarz
You have signed the CLA already but the status is still pending? Let us recheck it.

@mneuwert
Copy link
Contributor Author

@jesmrec I think this is something QA could already look at. For now only delete and move actions are supported.

Copy link
Collaborator

@hosy hosy left a comment

Choose a reason for hiding this comment

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

Safe area for the UIToolbar is missing. Please take a look on a device without home button.

Not needed, but just a comment:
Would be nicer to have the Plus-Button in the same row like the Add-Folder button. Furthermore UITabBar should be hidden, if only one item is visible.

@mneuwert
Copy link
Contributor Author

Safe area for the UIToolbar is missing.
@hosy Will check this, thanks

Would be nicer to have the Plus-Button in the same row like the Add-Folder button. Furthermore UITabBar should be hidden, if only one item is visible.

@hosy I have suggested it in another PR, where + button was added. This is still WIP anyway.

@michaelstingl
Copy link
Contributor

michaelstingl commented Jan 24, 2019

Would be nicer to have the Plus-Button in the same row like the Add-Folder button.

Not in scope of this PR. There are discussions in other issues… (see #198 (comment) for example)

@jesmrec
Copy link
Contributor

jesmrec commented Jan 25, 2019

@mneuwert i will QA when you finish. Ping me and i will take care.

@jesmrec jesmrec requested review from jesmrec and pablocarmu January 28, 2019 10:15
@mneuwert
Copy link
Contributor Author

@jesmrec now it is ready!

mneuwert and others added 7 commits January 31, 2019 12:12
* - Minor memory optimizations - Updated to latest SDK

* - Save changes prior to merge with master

* - Convert to Swift 4.2

* - Further Swift 4.2 changes

* - Update to latest SDK develop commit

* - Adapting APP to latest SDK changes
	- maintenance mode support
	- replacing uses of reachability monitor with OCCore.connectionStatus

* - Added back ownCloudUI.framework to copy phase of ownCloud target
- Updated to latest SDK

* - Add support for OCLogToggle in Settings
- App now logs current log settings at launch

* - Fix issues in ClientQueryViewController related to UITableView not reloading when its view controller is not "visible":
	- no longer uses items from table view cells to initiate actions
	- detects if UITableView.reloadData is set to do nothing and repeats the call in viewWillAppear
- The fixed issue was causing #178 and possibly others

* - Remove last traces of OCMocking.framework from ownCloud app target, make sure it's only built, linked to and copied in the ownCloudTests target

* - Fix EarlGrey/CocoaPods workspace / build errors

* - Adopt new OCLogger tags APIs in Log.swift and FileProviderExtension

* - Update SDK

* - Remove superfluous [FP] from log message

* - Make sure DisplayViewController uses the updated version of an item after downloading it instead of the (now) outdated original version

* - Update to latest SDK

* - Fixing thumbnail aspect ratio and removing duplicate code in NamingViewController (#141)

* - Update SDK

* - Exit editing mode in the server list when the user selects an existing or adds a new bookmark (as reported by @mneuwert)

* - Adapt app code base to change in OCError Swift conversion (following OCErrorAuthorizationCancelled typo correction)

* - Fix #152: if the user cancels OAuth2, an error is no longer shown (and errors are better to read with recent SDK updates)

* - Update to latest SDK

* - Make ProgressSummarizer only consider Progress objects with descriptions, resolving "ghost" progress bars without any information in them

* - Adapt to change of name of OCConnectionIssue to OCIssue

* - Update to latest SDK
- ConnectionIssueViewController
        - added option to provide a block to be called when dismissal has finished
        - normalize code formatting
- UIAlertController+OCIssue
        - added option to provide a completionHandler that's called when the user made a choice
- ClientRootViewController
        - switched issue and alert presentation to use a AsyncSequentialQueue to present them in order and not on top of each other
        - fixed a bug where a UIViewController that's in the process of being dismissed led to a failure to present alerts and issues

* - Make DisplayViewController use OCCoreOptionReturnImmediatelyIfOfflineOrUnavailable and fix a typo (#179)

* - Added priority summaries to ProgressSummarizer
- Fixed a crash bug in ImageDisplayViewController
- Removed core connection status interpretation from ClientQueryViewController
- Added core connection status tracking to ClientRootViewController and utilize priority summaries to display offline or server in maintenance mode status messages

* - Fix an issue where "Offline." was shortly shown when logging in
- Switch to utilizing short connection status descriptions coming straight from the SDK's connection signal providers
- Adapt Localizable.strings accordingly

* - Add *.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist to .gitignore

* - Updated ios-sdk

* - Made FileProviderEnumerator use an OCQuery that includes the root item (fixes #203)
- Made FileProviderExtension observe the domain property and trigger an initial query of the root directory when none has even been done before (fixes #205)

* - Adapted to latest round of nullability additions in the SDK
- Fixing potential crash bugs in DisplayHostViewController, ConnectionIssueViewController, SortMethod and others
- Update actions
	- make use of .completed() instead of calling the completionHandler directly
	- fixing multi-item support for several actions (completionHandler would previously get executed once for every item instead of once)
- ClientDirectoryPickerViewController now calls the completinHandler even on cancelation
- Cleaned up OCIssue+Extension and OCItem+Extension
- Replacing AsyncSequentialQueue with OCAsyncSequentialQueue

* - Update SDK

* - Updated ios-sdk

* - Update ios-sdk with IPC fixes

* - Adapt tests to SDK changes (all tests pass)
- Stop CocoaPods from sending statistics by adding a line to the Podfile turning this off

* - Present cache contents while waiting for a reply from the server
- Updated SDK fixing a lot of issues

* - Replacing DispatchQueue.main.async* with OnMainThread and a newly added OnMainThread(after: timeInterval)

* - Add verbose logging to FileProviderExtension to track the commands received by iOS and the results that were returned

* - Temporary workaround: make importFileFromURL: not return directly with the placeholder, but only when upload has completed - and then return the final item

* - Switching ios-sdk to updated master branch
* Added the languages cs_CZ de de_DE en_GB ko mk nb_NO nn_NO pt_BR pt_PT ru sq th_TH zh_CN

* Fixed a compilation issue because CZ file

* Updated the commit of the SDK
ownclouders and others added 10 commits January 31, 2019 12:27
* - Made the Copy action.
- Fix some UI Color scheme inconsistencies.

* - Made the 'Copy here'  button respect the original title

* - SDK Update

* - Fix for a lint warning
* -Add proper message when no connection and user tries to make the open in action

* - Localize the error message.

* - Made the name of the app to be the app's name in the bundle
@jesmrec
Copy link
Contributor

jesmrec commented Jan 31, 2019

(1) Improvement

  1. Select several files
  2. Move them to a location where exists other files with the same name

Current: Error file appears as many times as files repeated. If you move 90 files, you will receive 90 alerts.

This should not be a blocker and can be addressed separately

@jesmrec
Copy link
Contributor

jesmrec commented Feb 1, 2019

Approved on my side

@jesmrec jesmrec added the Approved by QA Approved by QA label Feb 1, 2019
felix-schwarz and others added 7 commits February 1, 2019 14:18
* - Minor memory optimizations - Updated to latest SDK

* - Save changes prior to merge with master

* - Convert to Swift 4.2

* - Further Swift 4.2 changes

* - Update to latest SDK develop commit

* - Adapting APP to latest SDK changes
	- maintenance mode support
	- replacing uses of reachability monitor with OCCore.connectionStatus

* - Added back ownCloudUI.framework to copy phase of ownCloud target
- Updated to latest SDK

* - Add support for OCLogToggle in Settings
- App now logs current log settings at launch

* - Fix issues in ClientQueryViewController related to UITableView not reloading when its view controller is not "visible":
	- no longer uses items from table view cells to initiate actions
	- detects if UITableView.reloadData is set to do nothing and repeats the call in viewWillAppear
- The fixed issue was causing #178 and possibly others

* - Remove last traces of OCMocking.framework from ownCloud app target, make sure it's only built, linked to and copied in the ownCloudTests target

* - Fix EarlGrey/CocoaPods workspace / build errors

* - Adopt new OCLogger tags APIs in Log.swift and FileProviderExtension

* - Update SDK

* - Remove superfluous [FP] from log message

* - Make sure DisplayViewController uses the updated version of an item after downloading it instead of the (now) outdated original version

* - Update to latest SDK

* - Fixing thumbnail aspect ratio and removing duplicate code in NamingViewController (#141)

* - Update SDK

* - Exit editing mode in the server list when the user selects an existing or adds a new bookmark (as reported by @mneuwert)

* - Adapt app code base to change in OCError Swift conversion (following OCErrorAuthorizationCancelled typo correction)

* - Fix #152: if the user cancels OAuth2, an error is no longer shown (and errors are better to read with recent SDK updates)

* - Update to latest SDK

* - Make ProgressSummarizer only consider Progress objects with descriptions, resolving "ghost" progress bars without any information in them

* - Adapt to change of name of OCConnectionIssue to OCIssue

* - Update to latest SDK
- ConnectionIssueViewController
        - added option to provide a block to be called when dismissal has finished
        - normalize code formatting
- UIAlertController+OCIssue
        - added option to provide a completionHandler that's called when the user made a choice
- ClientRootViewController
        - switched issue and alert presentation to use a AsyncSequentialQueue to present them in order and not on top of each other
        - fixed a bug where a UIViewController that's in the process of being dismissed led to a failure to present alerts and issues

* - Make DisplayViewController use OCCoreOptionReturnImmediatelyIfOfflineOrUnavailable and fix a typo (#179)

* - Added priority summaries to ProgressSummarizer
- Fixed a crash bug in ImageDisplayViewController
- Removed core connection status interpretation from ClientQueryViewController
- Added core connection status tracking to ClientRootViewController and utilize priority summaries to display offline or server in maintenance mode status messages

* - Fix an issue where "Offline." was shortly shown when logging in
- Switch to utilizing short connection status descriptions coming straight from the SDK's connection signal providers
- Adapt Localizable.strings accordingly

* - Add *.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist to .gitignore

* - Updated ios-sdk

* - Made FileProviderEnumerator use an OCQuery that includes the root item (fixes #203)
- Made FileProviderExtension observe the domain property and trigger an initial query of the root directory when none has even been done before (fixes #205)

* - Adapted to latest round of nullability additions in the SDK
- Fixing potential crash bugs in DisplayHostViewController, ConnectionIssueViewController, SortMethod and others
- Update actions
	- make use of .completed() instead of calling the completionHandler directly
	- fixing multi-item support for several actions (completionHandler would previously get executed once for every item instead of once)
- ClientDirectoryPickerViewController now calls the completinHandler even on cancelation
- Cleaned up OCIssue+Extension and OCItem+Extension
- Replacing AsyncSequentialQueue with OCAsyncSequentialQueue

* - Update SDK

* - Updated ios-sdk

* - Update ios-sdk with IPC fixes

* - Adapt tests to SDK changes (all tests pass)
- Stop CocoaPods from sending statistics by adding a line to the Podfile turning this off

* - Present cache contents while waiting for a reply from the server
- Updated SDK fixing a lot of issues

* - Replacing DispatchQueue.main.async* with OnMainThread and a newly added OnMainThread(after: timeInterval)

* - Add verbose logging to FileProviderExtension to track the commands received by iOS and the results that were returned

* - Temporary workaround: make importFileFromURL: not return directly with the placeholder, but only when upload has completed - and then return the final item

* - Switching ios-sdk to updated master branch
- Updated the th translations pushed recently to the right folder
- Updated the commit of the library
@jesmrec jesmrec merged commit 98413f7 into master Feb 1, 2019
@delete-merged-branch delete-merged-branch bot deleted the feature/multi-selection branch February 1, 2019 14:33
@jesmrec jesmrec mentioned this pull request Feb 6, 2019
45 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants