-
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/keyboard-commands] Keyboard Commands for all actions on iPad #495
Conversation
- uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly
…es will be deleted to give the user a UI feedback
- minor code fixes
…y log file using new SDK protocol - Show SDK commit hash in Settings
…ller style for testing
* Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings
* Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK
Log device, version and locale info #446
Added an activity indicator for deleting offline copies #438
Naming improvements for upload, duplicate and folder creation #430
…se suggestion is not working in tests
…was dismissed - use the current development SDK
- fixed create folder action - delete local copy, if needed - code review changes
- add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession
- Cancel Search - Commands for internal Alert Views - Change slider value - Crash in welcome view
@jesmrec
|
everything fixed. I will perform a 2nd QA round. |
(12) [NOT REPRODUCIBLE]The option to create account from the welcome view (cmd + "+") is lost. It appears in the command list, but it does not work IPadPro iOS13.1.3 |
(13) [FIXED]
Long press on cmd to check the options available: Option to delete: cmd +1 -> works fine IPadPro iOS13.1.3 |
- Cancel did not dismiss alert view - Only show alert view key commands
@jesmrec
(12) is working after the second try, I think this is a iOS related bug and I would suggest: (Won't fix) |
(14) [FIXED]
Current: You can move up and down to select a user from the matches list. If you press right arrow, app crashes IPadPro iOS13.1.3 |
(15) [FIXED]
Current: crash IPadPro iOS13.1.3 |
(16) [WONT FIX]Maybe not an app issue, just for clarification: In you switch from oC to other app, and after a while, you switch again to oC, the keyboard control is lost (nothing works).You have to kill the app and open it again in order the keyboard to work again. |
@jesmrec (14), (15) is fixed, (16) is an Apple iOS bug |
# Conflicts: # ios-sdk
With the fixed (14) and (15) i can check the sharing options. Two things (probably the last ones): (17): create a public link. Then, open the link and edit the name of the link -> app crashes I miss an command to share the public link. |
…s, added share command
@jesmrec finding (17) fixed, sharing command is now available, sharing view cannot be controlled with keyboard commands from the app |
(17) is fixed and the new command is welcome. |
Feature approved |
* - Fix Swift and SwiftLint warnings - Remove unused UploadsSettingsSection (was replaced by MediaUploadSettings) * - address libzip Xcode project upgrade warning - add research note to FileProviderExtension - update SDK * [feature/multiple-windows] Multiple window support for iPadOS (#498) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * first draft for supporting multiple windows * implemented opening an account in a new window * added row action * - open account, now opens file list - implemented open account from table view edit action - implemented contextual menu for account row * Starting implementing state restoration * Implemented UI restoration state for window scenes * Implemented UI state restoration for opening a OCItem * - only show close window item on iPad - fixed icons for location * - only show "Open in new Window" on iPad - better view restoration - deselect row * - added new menu item to open a new window - fixed tint color for icons * - added missing localization strings - removed no longer needed class * - fixed code review findings - code refactoring * - moved creating file list stack code into ClientRootViewController class - added iOS 13 available query * fixed merge error * fixed drag and drop between accounts (when dragging items from one window to the other window on iPad) * prevent dragging folders from one account to an other account * [feature/docs] Docs support (#494) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * show always the account selection sheet and added a note, that only one file can be imported at once * - Update ios-sdk * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * Version Bump to 137 * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * - Added new document scanner action - supports saving as PDF, JPEG or PNG - supports saving multiple pages into one PDF file, or one PDF file per page - supports several scans per file - uses CoreGraphics to save JPEG-compressed images, saving storage (2.7 MB vs 31 MB for a two page document) and encoding/upload time compared to using Apple's PDFKit - Extended StaticTableViewRow with better support for custom views and accessories * Version Bump to 139 * Feature/task scheduling (#484) * #386 Added relevant classes * First draft of the scheduled task manager * Just changed some comments * Implemented background fetch * Implemented background update fetch * Clean up of the code * Fixed merge problems from previous commit And eliminated some warnings * Small changes in background fetch operation * Some refactoring done * Added some user defaults for media upload * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * UI for bookmark / upload path selection * Added dummy implementation of media upload task * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * Refactored current implementation of media upload * Added method to fetch photos from photo library * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * First draft of instant photo upload implementation * Calling task completion handler after upload was finished * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Fixed QA finding (1) * Using PHAsset.creationDate to check which media files shall be instantly uploaded * Fixed naming of class / group * Moved Tasks folder * Fixed some review findings * - Fix issue where a busy bookmark alert is followed by duplicating the bookmark * Fixed some review findings * Improved background update fetching * Fixed some issues in media upload * Fixed a type in settings key * Improvements in the instant media upload task * Added missing returnCore in the selection of the instant upload path * Fixed QA finding (3) * Fixes for the correct core returning / requesting * Small cosmetic code changes * Fixed video and serialized photo / video uploads * Moved upload() method to UploadBaseAction class * Some refactoring in InstantMediaUploadTaskExtension * Improvements for bookmark / path selection for instant upload * Remove instant upload configuration if bookmark is not available * minor refactoring * Added possibility to cancel account selection * Small fix: reset the path if new account is selected * Using item tracking instead of OCQuery - Disabling instant photo upload if target directory is removed - Item tracking is potentially faster since it can use cached item information and is not always issuing PROPFIND * Made some ivars private * Detect in settings that instant upload path is gone In this case instant upload is disabled * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Showing warning that instant upload was disabled * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * Added alert shown when in settings when instant upload is disabled * Added fetchUpdates() within which target folder tracking is started * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Update to the latest changes in the SDK Those changes reduce memory consumption used for hash calculation * Change required to accomodate latest SDK changes * Less parallel photo uploads * - update SDK to address stuck sync action issues - no longer auto-open the last selected bookmark when launched by iOS in the background. Instead, the last selected bookmark is now auto-openend only when the app comes to the foreground. - update FileProviderInterfaceManager to better support the case where the app ships without File Provider. * Fixed compilation warning * - Add ATS exemption for File Provider * - Update SDK * - Update SDK + add colored debugging option to scheme * Addressed code review comments * Removed unneeded weak self * Removed another unwanted weak self * - Fix OCEvent-dropping issue via SDK update with fix - Make UploadMediaAction use OCBackgroundTask to protect while exporting * - Added missing OCBackgroundTask.start call in UploadMediaAction - Update SDK * Fixed missing copyright information and some warnings * Version Bump to 140 * Media upload pending flag added - Displaying a warning alert on the next launch, in case media upload couldn’t be completed due e.g. app being terminated in a backround or even due to an app crash. - Fixed an issue with DispatchGroup.notify() called prematurely in MediaUploadQueue.uploadAssets() * - sortbar was sometimes hidden - fixing layout issue * fixed location identifier for actions * Added more logs in PHAsset+Upload extension * Version Bump to 141 * Version Bump to 142 * - refactor ScanImageView into FixedHeightImageView - adopt SF Symbols for ScanAction icon - replace unused, commented out commented code with a longer comment in a different place, explaining why Quartz is used instead of PDFKit for PDF export - various smaller cleanups and syntax improvements * Version Bump to 143 * Version Bump to 144 * Version Bump to 145 * - Merge fixes * - Remove change of beta alert from branch * - address finding (1): if the file name is removed and empty, disable the "Save" button in the Document Scanner * [fix/2ndLevelSort] Sort alphabetically if sort attribute is equal (#546) * - Update SDK to disable background NSURLSession usage in the app * - Fix alphabetically random order when sorting by anything but alphabetically: now items that share the same sort attribute value are subsequently also sorted alphabetically * - Update SDK * [feature/keyboard-commands] Keyboard Commands for all actions on iPad (#495) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * Implement UIKeyCommands to access all actions and navigate through table views via hardware key shortcuts * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * fixed table selection in StaticTableView with key command * Version Bump to 137 * - moved KeyCommands extension into own file - added new commands * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * using correct SDK after merge * fixed changed selectButton variable name after merge * - added missing commands - added photo album, photo selection - fixed deselecting row * fixed folder actions commands * added sharing and links key commands * - added key commands for LibrarySharing - added localization * - added missing key commands - fixed keep selection, if FileList was reloaded - fixed localization - implemented copy and paste commands - implemented new selection commands (letters, top, bottom, page) * added commands for bookmark selection * Determine, if the internal pasteboard is the current item and use it * - implemented "Cut"-Command, "Favorite"-Command - implemented Next, Previous Command for image gallery and PDF viewer - fixed Sort-Type Command Key, because of system conflicts - changed command key for adding a new account * - refactored code to own actions - cleanup code - use extensions for key commands * - fixed code review findings - moving pasteboard actions copy, import and cut to separate PR * Fixed QA finding (6), unfavorite was not possible, favorite was wrong * - fixed QA finding (1), directory picker key commands fixed - fixed QA finding (4), create folder in root folder - fixed QA finding (5), available offline for selected item - fixed QA finding (6), make unavailable - fixed QA finding (8), dismiss manage account view * added keyboard commands for - open account in new window - scan document - discard window - open window * - fixed duplicated keyboard commands - fixed crash on selecting next item in list * Finding (7) fixed - added keyboard commands for IssuesViewController * fixed findings (3), (7), (9), (11) - Cancel Search - Commands for internal Alert Views - Change slider value - Crash in welcome view * added missing localization strings * fixed finding (13) - Cancel did not dismiss alert view - Only show alert view key commands * Finding: (14), (15) crash fixed * Fixed finding (17) and do not show tab bar controllers for modal views, added share command * - Remove document scanning feature (pending licensing feature) * - Allow offline browsing of folders in the File Provider (#554) * [feature/ios13_ql_preview] QuickLookPreview and QuickLookThumbnailing integration (#493) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently vi…
* - Fix Swift and SwiftLint warnings - Remove unused UploadsSettingsSection (was replaced by MediaUploadSettings) * - address libzip Xcode project upgrade warning - add research note to FileProviderExtension - update SDK * [feature/multiple-windows] Multiple window support for iPadOS (#498) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * first draft for supporting multiple windows * implemented opening an account in a new window * added row action * - open account, now opens file list - implemented open account from table view edit action - implemented contextual menu for account row * Starting implementing state restoration * Implemented UI restoration state for window scenes * Implemented UI state restoration for opening a OCItem * - only show close window item on iPad - fixed icons for location * - only show "Open in new Window" on iPad - better view restoration - deselect row * - added new menu item to open a new window - fixed tint color for icons * - added missing localization strings - removed no longer needed class * - fixed code review findings - code refactoring * - moved creating file list stack code into ClientRootViewController class - added iOS 13 available query * fixed merge error * fixed drag and drop between accounts (when dragging items from one window to the other window on iPad) * prevent dragging folders from one account to an other account * [feature/docs] Docs support (#494) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * show always the account selection sheet and added a note, that only one file can be imported at once * - Update ios-sdk * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * Version Bump to 137 * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * - Added new document scanner action - supports saving as PDF, JPEG or PNG - supports saving multiple pages into one PDF file, or one PDF file per page - supports several scans per file - uses CoreGraphics to save JPEG-compressed images, saving storage (2.7 MB vs 31 MB for a two page document) and encoding/upload time compared to using Apple's PDFKit - Extended StaticTableViewRow with better support for custom views and accessories * Version Bump to 139 * Feature/task scheduling (#484) * #386 Added relevant classes * First draft of the scheduled task manager * Just changed some comments * Implemented background fetch * Implemented background update fetch * Clean up of the code * Fixed merge problems from previous commit And eliminated some warnings * Small changes in background fetch operation * Some refactoring done * Added some user defaults for media upload * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * UI for bookmark / upload path selection * Added dummy implementation of media upload task * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * Refactored current implementation of media upload * Added method to fetch photos from photo library * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * First draft of instant photo upload implementation * Calling task completion handler after upload was finished * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Fixed QA finding (1) * Using PHAsset.creationDate to check which media files shall be instantly uploaded * Fixed naming of class / group * Moved Tasks folder * Fixed some review findings * - Fix issue where a busy bookmark alert is followed by duplicating the bookmark * Fixed some review findings * Improved background update fetching * Fixed some issues in media upload * Fixed a type in settings key * Improvements in the instant media upload task * Added missing returnCore in the selection of the instant upload path * Fixed QA finding (3) * Fixes for the correct core returning / requesting * Small cosmetic code changes * Fixed video and serialized photo / video uploads * Moved upload() method to UploadBaseAction class * Some refactoring in InstantMediaUploadTaskExtension * Improvements for bookmark / path selection for instant upload * Remove instant upload configuration if bookmark is not available * minor refactoring * Added possibility to cancel account selection * Small fix: reset the path if new account is selected * Using item tracking instead of OCQuery - Disabling instant photo upload if target directory is removed - Item tracking is potentially faster since it can use cached item information and is not always issuing PROPFIND * Made some ivars private * Detect in settings that instant upload path is gone In this case instant upload is disabled * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Showing warning that instant upload was disabled * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * Added alert shown when in settings when instant upload is disabled * Added fetchUpdates() within which target folder tracking is started * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Update to the latest changes in the SDK Those changes reduce memory consumption used for hash calculation * Change required to accomodate latest SDK changes * Less parallel photo uploads * - update SDK to address stuck sync action issues - no longer auto-open the last selected bookmark when launched by iOS in the background. Instead, the last selected bookmark is now auto-openend only when the app comes to the foreground. - update FileProviderInterfaceManager to better support the case where the app ships without File Provider. * Fixed compilation warning * - Add ATS exemption for File Provider * - Update SDK * - Update SDK + add colored debugging option to scheme * Addressed code review comments * Removed unneeded weak self * Removed another unwanted weak self * - Fix OCEvent-dropping issue via SDK update with fix - Make UploadMediaAction use OCBackgroundTask to protect while exporting * - Added missing OCBackgroundTask.start call in UploadMediaAction - Update SDK * Fixed missing copyright information and some warnings * Version Bump to 140 * Media upload pending flag added - Displaying a warning alert on the next launch, in case media upload couldn’t be completed due e.g. app being terminated in a backround or even due to an app crash. - Fixed an issue with DispatchGroup.notify() called prematurely in MediaUploadQueue.uploadAssets() * - sortbar was sometimes hidden - fixing layout issue * fixed location identifier for actions * Added more logs in PHAsset+Upload extension * Version Bump to 141 * Version Bump to 142 * - refactor ScanImageView into FixedHeightImageView - adopt SF Symbols for ScanAction icon - replace unused, commented out commented code with a longer comment in a different place, explaining why Quartz is used instead of PDFKit for PDF export - various smaller cleanups and syntax improvements * Version Bump to 143 * Version Bump to 144 * Version Bump to 145 * - Merge fixes * - Remove change of beta alert from branch * - address finding (1): if the file name is removed and empty, disable the "Save" button in the Document Scanner * [fix/2ndLevelSort] Sort alphabetically if sort attribute is equal (#546) * - Update SDK to disable background NSURLSession usage in the app * - Fix alphabetically random order when sorting by anything but alphabetically: now items that share the same sort attribute value are subsequently also sorted alphabetically * - Update SDK * [feature/keyboard-commands] Keyboard Commands for all actions on iPad (#495) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * Implement UIKeyCommands to access all actions and navigate through table views via hardware key shortcuts * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * fixed table selection in StaticTableView with key command * Version Bump to 137 * - moved KeyCommands extension into own file - added new commands * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * using correct SDK after merge * fixed changed selectButton variable name after merge * - added missing commands - added photo album, photo selection - fixed deselecting row * fixed folder actions commands * added sharing and links key commands * - added key commands for LibrarySharing - added localization * - added missing key commands - fixed keep selection, if FileList was reloaded - fixed localization - implemented copy and paste commands - implemented new selection commands (letters, top, bottom, page) * added commands for bookmark selection * Determine, if the internal pasteboard is the current item and use it * - implemented "Cut"-Command, "Favorite"-Command - implemented Next, Previous Command for image gallery and PDF viewer - fixed Sort-Type Command Key, because of system conflicts - changed command key for adding a new account * - refactored code to own actions - cleanup code - use extensions for key commands * - fixed code review findings - moving pasteboard actions copy, import and cut to separate PR * Fixed QA finding (6), unfavorite was not possible, favorite was wrong * - fixed QA finding (1), directory picker key commands fixed - fixed QA finding (4), create folder in root folder - fixed QA finding (5), available offline for selected item - fixed QA finding (6), make unavailable - fixed QA finding (8), dismiss manage account view * added keyboard commands for - open account in new window - scan document - discard window - open window * - fixed duplicated keyboard commands - fixed crash on selecting next item in list * Finding (7) fixed - added keyboard commands for IssuesViewController * fixed findings (3), (7), (9), (11) - Cancel Search - Commands for internal Alert Views - Change slider value - Crash in welcome view * added missing localization strings * fixed finding (13) - Cancel did not dismiss alert view - Only show alert view key commands * Finding: (14), (15) crash fixed * Fixed finding (17) and do not show tab bar controllers for modal views, added share command * - Remove document scanning feature (pending licensing feature) * - Allow offline browsing of folders in the File Provider (#554) * [feature/ios13_ql_preview] QuickLookPreview and QuickLookThumbnailing integration (#493) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently vi…
* - Fix Swift and SwiftLint warnings - Remove unused UploadsSettingsSection (was replaced by MediaUploadSettings) * - address libzip Xcode project upgrade warning - add research note to FileProviderExtension - update SDK * [feature/multiple-windows] Multiple window support for iPadOS (#498) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * first draft for supporting multiple windows * implemented opening an account in a new window * added row action * - open account, now opens file list - implemented open account from table view edit action - implemented contextual menu for account row * Starting implementing state restoration * Implemented UI restoration state for window scenes * Implemented UI state restoration for opening a OCItem * - only show close window item on iPad - fixed icons for location * - only show "Open in new Window" on iPad - better view restoration - deselect row * - added new menu item to open a new window - fixed tint color for icons * - added missing localization strings - removed no longer needed class * - fixed code review findings - code refactoring * - moved creating file list stack code into ClientRootViewController class - added iOS 13 available query * fixed merge error * fixed drag and drop between accounts (when dragging items from one window to the other window on iPad) * prevent dragging folders from one account to an other account * [feature/docs] Docs support (#494) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * show always the account selection sheet and added a note, that only one file can be imported at once * - Update ios-sdk * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * Version Bump to 137 * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * - Added new document scanner action - supports saving as PDF, JPEG or PNG - supports saving multiple pages into one PDF file, or one PDF file per page - supports several scans per file - uses CoreGraphics to save JPEG-compressed images, saving storage (2.7 MB vs 31 MB for a two page document) and encoding/upload time compared to using Apple's PDFKit - Extended StaticTableViewRow with better support for custom views and accessories * Version Bump to 139 * Feature/task scheduling (#484) * #386 Added relevant classes * First draft of the scheduled task manager * Just changed some comments * Implemented background fetch * Implemented background update fetch * Clean up of the code * Fixed merge problems from previous commit And eliminated some warnings * Small changes in background fetch operation * Some refactoring done * Added some user defaults for media upload * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * UI for bookmark / upload path selection * Added dummy implementation of media upload task * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * Refactored current implementation of media upload * Added method to fetch photos from photo library * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * First draft of instant photo upload implementation * Calling task completion handler after upload was finished * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Fixed QA finding (1) * Using PHAsset.creationDate to check which media files shall be instantly uploaded * Fixed naming of class / group * Moved Tasks folder * Fixed some review findings * - Fix issue where a busy bookmark alert is followed by duplicating the bookmark * Fixed some review findings * Improved background update fetching * Fixed some issues in media upload * Fixed a type in settings key * Improvements in the instant media upload task * Added missing returnCore in the selection of the instant upload path * Fixed QA finding (3) * Fixes for the correct core returning / requesting * Small cosmetic code changes * Fixed video and serialized photo / video uploads * Moved upload() method to UploadBaseAction class * Some refactoring in InstantMediaUploadTaskExtension * Improvements for bookmark / path selection for instant upload * Remove instant upload configuration if bookmark is not available * minor refactoring * Added possibility to cancel account selection * Small fix: reset the path if new account is selected * Using item tracking instead of OCQuery - Disabling instant photo upload if target directory is removed - Item tracking is potentially faster since it can use cached item information and is not always issuing PROPFIND * Made some ivars private * Detect in settings that instant upload path is gone In this case instant upload is disabled * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Showing warning that instant upload was disabled * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * Added alert shown when in settings when instant upload is disabled * Added fetchUpdates() within which target folder tracking is started * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Update to the latest changes in the SDK Those changes reduce memory consumption used for hash calculation * Change required to accomodate latest SDK changes * Less parallel photo uploads * - update SDK to address stuck sync action issues - no longer auto-open the last selected bookmark when launched by iOS in the background. Instead, the last selected bookmark is now auto-openend only when the app comes to the foreground. - update FileProviderInterfaceManager to better support the case where the app ships without File Provider. * Fixed compilation warning * - Add ATS exemption for File Provider * - Update SDK * - Update SDK + add colored debugging option to scheme * Addressed code review comments * Removed unneeded weak self * Removed another unwanted weak self * - Fix OCEvent-dropping issue via SDK update with fix - Make UploadMediaAction use OCBackgroundTask to protect while exporting * - Added missing OCBackgroundTask.start call in UploadMediaAction - Update SDK * Fixed missing copyright information and some warnings * Version Bump to 140 * Media upload pending flag added - Displaying a warning alert on the next launch, in case media upload couldn’t be completed due e.g. app being terminated in a backround or even due to an app crash. - Fixed an issue with DispatchGroup.notify() called prematurely in MediaUploadQueue.uploadAssets() * - sortbar was sometimes hidden - fixing layout issue * fixed location identifier for actions * Added more logs in PHAsset+Upload extension * Version Bump to 141 * Version Bump to 142 * - refactor ScanImageView into FixedHeightImageView - adopt SF Symbols for ScanAction icon - replace unused, commented out commented code with a longer comment in a different place, explaining why Quartz is used instead of PDFKit for PDF export - various smaller cleanups and syntax improvements * Version Bump to 143 * Version Bump to 144 * Version Bump to 145 * - Merge fixes * - Remove change of beta alert from branch * - address finding (1): if the file name is removed and empty, disable the "Save" button in the Document Scanner * [fix/2ndLevelSort] Sort alphabetically if sort attribute is equal (#546) * - Update SDK to disable background NSURLSession usage in the app * - Fix alphabetically random order when sorting by anything but alphabetically: now items that share the same sort attribute value are subsequently also sorted alphabetically * - Update SDK * [feature/keyboard-commands] Keyboard Commands for all actions on iPad (#495) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * Implement UIKeyCommands to access all actions and navigate through table views via hardware key shortcuts * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * fixed table selection in StaticTableView with key command * Version Bump to 137 * - moved KeyCommands extension into own file - added new commands * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * using correct SDK after merge * fixed changed selectButton variable name after merge * - added missing commands - added photo album, photo selection - fixed deselecting row * fixed folder actions commands * added sharing and links key commands * - added key commands for LibrarySharing - added localization * - added missing key commands - fixed keep selection, if FileList was reloaded - fixed localization - implemented copy and paste commands - implemented new selection commands (letters, top, bottom, page) * added commands for bookmark selection * Determine, if the internal pasteboard is the current item and use it * - implemented "Cut"-Command, "Favorite"-Command - implemented Next, Previous Command for image gallery and PDF viewer - fixed Sort-Type Command Key, because of system conflicts - changed command key for adding a new account * - refactored code to own actions - cleanup code - use extensions for key commands * - fixed code review findings - moving pasteboard actions copy, import and cut to separate PR * Fixed QA finding (6), unfavorite was not possible, favorite was wrong * - fixed QA finding (1), directory picker key commands fixed - fixed QA finding (4), create folder in root folder - fixed QA finding (5), available offline for selected item - fixed QA finding (6), make unavailable - fixed QA finding (8), dismiss manage account view * added keyboard commands for - open account in new window - scan document - discard window - open window * - fixed duplicated keyboard commands - fixed crash on selecting next item in list * Finding (7) fixed - added keyboard commands for IssuesViewController * fixed findings (3), (7), (9), (11) - Cancel Search - Commands for internal Alert Views - Change slider value - Crash in welcome view * added missing localization strings * fixed finding (13) - Cancel did not dismiss alert view - Only show alert view key commands * Finding: (14), (15) crash fixed * Fixed finding (17) and do not show tab bar controllers for modal views, added share command * - Remove document scanning feature (pending licensing feature) * - Allow offline browsing of folders in the File Provider (#554) * [feature/ios13_ql_preview] QuickLookPreview and QuickLookThumbnailing integration (#493) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename u…
* [fix/ui-tests] Fixing UI Tests for iOS 13 / Xcode 11 (#608) * - Fix Swift and SwiftLint warnings - Remove unused UploadsSettingsSection (was replaced by MediaUploadSettings) * - address libzip Xcode project upgrade warning - add research note to FileProviderExtension - update SDK * [feature/multiple-windows] Multiple window support for iPadOS (#498) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * first draft for supporting multiple windows * implemented opening an account in a new window * added row action * - open account, now opens file list - implemented open account from table view edit action - implemented contextual menu for account row * Starting implementing state restoration * Implemented UI restoration state for window scenes * Implemented UI state restoration for opening a OCItem * - only show close window item on iPad - fixed icons for location * - only show "Open in new Window" on iPad - better view restoration - deselect row * - added new menu item to open a new window - fixed tint color for icons * - added missing localization strings - removed no longer needed class * - fixed code review findings - code refactoring * - moved creating file list stack code into ClientRootViewController class - added iOS 13 available query * fixed merge error * fixed drag and drop between accounts (when dragging items from one window to the other window on iPad) * prevent dragging folders from one account to an other account * [feature/docs] Docs support (#494) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * show always the account selection sheet and added a note, that only one file can be imported at once * - Update ios-sdk * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * Version Bump to 137 * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * - Added new document scanner action - supports saving as PDF, JPEG or PNG - supports saving multiple pages into one PDF file, or one PDF file per page - supports several scans per file - uses CoreGraphics to save JPEG-compressed images, saving storage (2.7 MB vs 31 MB for a two page document) and encoding/upload time compared to using Apple's PDFKit - Extended StaticTableViewRow with better support for custom views and accessories * Version Bump to 139 * Feature/task scheduling (#484) * #386 Added relevant classes * First draft of the scheduled task manager * Just changed some comments * Implemented background fetch * Implemented background update fetch * Clean up of the code * Fixed merge problems from previous commit And eliminated some warnings * Small changes in background fetch operation * Some refactoring done * Added some user defaults for media upload * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * UI for bookmark / upload path selection * Added dummy implementation of media upload task * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * Refactored current implementation of media upload * Added method to fetch photos from photo library * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * First draft of instant photo upload implementation * Calling task completion handler after upload was finished * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * Fixed QA finding (1) * Using PHAsset.creationDate to check which media files shall be instantly uploaded * Fixed naming of class / group * Moved Tasks folder * Fixed some review findings * - Fix issue where a busy bookmark alert is followed by duplicating the bookmark * Fixed some review findings * Improved background update fetching * Fixed some issues in media upload * Fixed a type in settings key * Improvements in the instant media upload task * Added missing returnCore in the selection of the instant upload path * Fixed QA finding (3) * Fixes for the correct core returning / requesting * Small cosmetic code changes * Fixed video and serialized photo / video uploads * Moved upload() method to UploadBaseAction class * Some refactoring in InstantMediaUploadTaskExtension * Improvements for bookmark / path selection for instant upload * Remove instant upload configuration if bookmark is not available * minor refactoring * Added possibility to cancel account selection * Small fix: reset the path if new account is selected * Using item tracking instead of OCQuery - Disabling instant photo upload if target directory is removed - Item tracking is potentially faster since it can use cached item information and is not always issuing PROPFIND * Made some ivars private * Detect in settings that instant upload path is gone In this case instant upload is disabled * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Showing warning that instant upload was disabled * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * Added alert shown when in settings when instant upload is disabled * Added fetchUpdates() within which target folder tracking is started * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Update to the latest changes in the SDK Those changes reduce memory consumption used for hash calculation * Change required to accomodate latest SDK changes * Less parallel photo uploads * - update SDK to address stuck sync action issues - no longer auto-open the last selected bookmark when launched by iOS in the background. Instead, the last selected bookmark is now auto-openend only when the app comes to the foreground. - update FileProviderInterfaceManager to better support the case where the app ships without File Provider. * Fixed compilation warning * - Add ATS exemption for File Provider * - Update SDK * - Update SDK + add colored debugging option to scheme * Addressed code review comments * Removed unneeded weak self * Removed another unwanted weak self * - Fix OCEvent-dropping issue via SDK update with fix - Make UploadMediaAction use OCBackgroundTask to protect while exporting * - Added missing OCBackgroundTask.start call in UploadMediaAction - Update SDK * Fixed missing copyright information and some warnings * Version Bump to 140 * Media upload pending flag added - Displaying a warning alert on the next launch, in case media upload couldn’t be completed due e.g. app being terminated in a backround or even due to an app crash. - Fixed an issue with DispatchGroup.notify() called prematurely in MediaUploadQueue.uploadAssets() * - sortbar was sometimes hidden - fixing layout issue * fixed location identifier for actions * Added more logs in PHAsset+Upload extension * Version Bump to 141 * Version Bump to 142 * - refactor ScanImageView into FixedHeightImageView - adopt SF Symbols for ScanAction icon - replace unused, commented out commented code with a longer comment in a different place, explaining why Quartz is used instead of PDFKit for PDF export - various smaller cleanups and syntax improvements * Version Bump to 143 * Version Bump to 144 * Version Bump to 145 * - Merge fixes * - Remove change of beta alert from branch * - address finding (1): if the file name is removed and empty, disable the "Save" button in the Document Scanner * [fix/2ndLevelSort] Sort alphabetically if sort attribute is equal (#546) * - Update SDK to disable background NSURLSession usage in the app * - Fix alphabetically random order when sorting by anything but alphabetically: now items that share the same sort attribute value are subsequently also sorted alphabetically * - Update SDK * [feature/keyboard-commands] Keyboard Commands for all actions on iPad (#495) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing some action over an item (#447) * Rename updates the currently visible file in the gallery * Keeping gallery alive fix - Don’t pop to the root view controller on destructive action by default - Only pop to the root if all items have been deleted - Select next item upon deletion of the current ones - Update UIPageViewController data source if number of items changes due e.g. to duplication or deletion * Small fixes * Fixed review findings * Media player implemented using AVKit (#429) * Media player implemented using AVKit * Added possibility to stream audio / video * Improved error handling * Fixed review finding * Added background audio, airplay and PiP mode * Propagating safe area to the main view of AVPlayerViewController * Another fix for safe area considering layout of AVPlayerViewController * Updated to latest develop version of SDK * Display error message in case file couldn’t be preview e.g. due to file corruption (#427) * Fixed UI test for creating folder, need to return a fixed name, because suggestion is not working in tests * added a description header and changed typo * - fixed showing the directory picker controller, after the card view was dismissed - use the current development SDK * Version Bump to 126 * - create local copy of import file, if needed - fixed create folder action - delete local copy, if needed - code review changes * - improved duplicate item deletion behaviour - add additional safeguard so duplicate files are only deleted if they were actually duplicated (previously non-duplicate files could be removed if duplication or folder creation failed) - remove temporary container folder, too - add 2 second delay before returning the core to give the core an opportunity to schedule the upload on a NSURLSession * Version Bump to 127 * changed back signing identity * Version Bump to 128 * added required CFBundleTypeName key * Version Bump to 129 * updated changelog * use formSheet presentation style for the iPad when showing the document picker * Fix for images not being displayed in the gallery * Version Bump to 130 * Version Bump to 131 * [fix/sharing-search] Fixed min length for searching sharing users (#455) * #454 used correct comparator for sharingSearchMinLength and set a new default value, if capability does not exists * added a constant for defaultSharingSearchMinLength value * - Update ios-sdk to address finding (1) in ios-app #446 * Preventing updating UI in DisplayViewController while item is being changed - Not calling present(item:) while meta data of OCItem is being updated - Elliminated an assumption in MediaDisplayViewController that render renderSpecificView() can be called only once. - Making sure that AVPlayer is not re-created upon changes in OCItem but that rather AVPlayerItem is replaced. * Fixed a small warning * Tried to improve gallery logic concerning items modification - Watch out if the modification does still includes the item with local ID of the currently visible item. - Take care of failed move but watching out for reappearing items * Added a setting allowing to decide user if media files shall be streamed * - Add debug output to Display*ViewController - Fix SwiftLint warnings * Fixed handling of deleted / moved item in the gallery * Another small fix for handling of failed item move * Version Bump to 132 * Added LSSupportsOpeningDocumentsInPlace key to Info.plist * Fixed Info.plist and added LSHandlerRank property * Fix for #455 issue: no search request triggered * show always the account selection sheet and added a note, that only one file can be imported at once * use securtiy scoped file operation for importing a file * Fix for the PR #447 (keep gallery alive) (#465) * Keeping track of individual OCItems in DisplayViewController instances But loading the list of items in the gallery only once and not reacting to any changes (moving, deleting) * Removed query stop call in DisplayHostViewController Since this query is not created there but just passed from the parent view. * Removing more button if the currently viewed file got moved or deleted * Fixed updating UI after renaming current item * Fixed a warning * Fixed issues in the gallery * - Minor fixes * [feature/bundle-import] Add support for certain bundle formats to the share sheet (#471) * - Add support for import of bundle-based document formats through transparent zipping - moved previous FileProvider functionality into ownCloudApp.framework - new method OCCore.importItemNamed() ensures correct handling of bundle-based document formats - fixes finding (4) in #445 - Changed LSSupportsOpeningDocumentsInPlace to NO address two issues: - the app is now listed as "Copy to ownCloud" (previously "Open in ownCloud", which was technically not correct) - previously, documents using "Open to ownCloud" would no longer open in f.ex. Pages, but in the ownCloud app when selected in the Files app * - Refactored ImportFilesController around using NSFileCoordinator, fixing finding (1) in #471 * changed path for moved Info.plist for target ownCloudAppFramework * Version Bump to 133 * [feature/sort direction] Allow sorting asc/desc for all sort methods (#474) * #470 added change sort direction asc/desc for all sort methods * - removed comments - changed translation keys * fixes sort comparator for sort method "shared" * use correct images for sort direction asc and desc * updated choosing sort method from a tableView/Popover instead of a UIAlertViewController * set maximum width for popover and set arrow direction * Added show sort direction in UISegmentControl * - make sure arrows of popovers appear in same color as the popover contents - fix issue where direction was toggled during setup of SortBar (setting of initial value from user defaults), so logging in, logging out and logging in would change the sort direction - reset sort direction to ascendant when switching sort methods - SortMethodTableViewController - remove extraneous instance lets - enforce row height used for table view height calculation - change table view height calculation to account for the last divider (which could look a bit off if present) * tap on segment control was fired twice, because there was a missing check, if selected segment changed * fixed changing width on selecting an other segment * fixed jumping width of sortSegmentControl items by setting the same width for all items by calculating the longest width before * [fix/index-bar] Make Index Bar available in general file list (#469) * #413 show index bar in general file list - Index bar is only visible, if sorting is "Sort by name" - Index bar is only visible, if more than one different letters are available - Index bar is only visible, if more items are available as visible * - adopt to new sort methods - reverse index list, if sort direction is descendant * Version Bump to 134 * Version Bump to 135 * Version Bump to 136 * Change behaviour of default expiration date (#476) * Enabling expiration date switch if default expiration date is configured Checking files_sharing.public.expire_date.expire_date.days server capability. If it is set then it is used as default date and the switch is enabled even if the expiration date is not enforced. * Fixed QA issue (1) * Fixed QA finding (2): limiting the date range if expiration date is enforced * Implement UIKeyCommands to access all actions and navigate through table views via hardware key shortcuts * Permission increasing UX in reshares (#467) * Not showing permissions which can’t be elevated Affecting items shared with the current users which are being reshared * Fixed an issue with wrong permissions displayed when creating public link - Checking if permissions can be elevated for the public link - Only viable options are displayed * Fixed a trailing whitespace warning * Fixed another compiler warning * Inhereting permissions from the share when creating public link * Fixed QA finding (4) * Fixed QA finding (1) * Fixed QA finding (2) * fixed table selection in StaticTableView with key command * Version Bump to 137 * - moved KeyCommands extension into own file - added new commands * [feature/itempolicy] Item Policy / Available Offline support (#456) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * - Update SDK * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Add initial support for cookies via SDK update * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * - Update ios-sdk - Take advantage of the new key-value store and OCCoreSkipAvailableOfflineKey to make sure available offline files are not immediately downloaded again after clearing the vault from local copies of available offline files. - Logging into an account removes any previously set OCCoreSkipAvailableOfflineKey from the key value store - Move Bookmark locking to an OCBookmarkManager category (next stop: use the new key-value store and bake support for locking bookmarks directly into the SDK) * - Add missing localization * Update SDK with latest fixes * - Fix SettingsTests bugs * - Apply additional fixes to UI tests and disable the remaining failing ones * - Wait for connection initialization to complete before requesting sharing info - Use latest SDK with cookie filtering * - Turn off Request/Response log tags only filter in project file * - Disable cookie support * - Address (13) via SDK update * link against newest development SDK * Fixes for UI testing: - use new SDK version that returns errors if the SQLite DB has not been opened - MockOCCore.state now returns .running to avoid queueing of PROPFINDs * - Fix unit tests * - UI testing: make MockOCCore.state no longer return .running due to side effects - fixed conflicting constraints in two places * - force-delete bookmarks in UI tests if timeout has passed, log error but don't assert in that case - handle case where a swipe on table cells in DeleteBookmarkTests triggers deletion outright * - Further hardening of SettingsTests against timing differences local vs. CI * - make SettingsTest.testCheckMoreItems() more robust * Version Bump to 138 * [feature/reorder buttons] Reorder Navigation Bar Actions (#478) * Available Offline Support - new MakeAvailableOfflineAction and MakeUnavailableOfflineAction actions - new Available Offline Library section - easy access to all files available offline via Available Offline - new ItemPolicyTableViewController and ItemPolicyCell prepared for reuse for presenting other item policies - Design: added SVG/TVG/PNG icons and cloud symbols for make available offline / make unavailable offline ClientItemCell changes - new ClientItemResolvingCell can resolve item from LocalID or path, new superclass of ShareClientItemCell and ItemPolicyCell - string to use as content for title and detail are now provided via titleLabelString(for:) and detailLabelString(for:), updated via updateLabels(with:), making customization easier - support for new available offline badge ProgressSummarizer changes - changed ProgressSummary from a struct to a class, addressing issue #451 ("Waiting for server response..." message sometimes not disappearing) * - Adopt OCClaim to ensure files aren't deleted while they are being used in - DisplayViewController - DownloadItemsHUDViewController - FileListTableViewController - File Provider - Add new Storage Settings to allow control over how long unused local copies are kept around - DisplayViewController now uses OCClaims to ensure files aren't deleted while they are being viewed - ClientItemCell uses new SDK APIs to - show "available offline" badges for folders - to indicate if an item has been made available offline directly (solid icon) or indirectly (dimmed icon) - keep the cloud status icon updated following changes - Change "+" icon to "•••" icon in file list, rename plusButton to folderAction everywhere - Action.provideAlertAction() now applies padding to images if necessary so their text aligns at the same horizontal offset - Fix typo in BookmarkInfoViewController and change wording from "Delete Offline Copies" to "Delete Local Copies" for consistency - Update swiftlint.yml to silence ownCloudScreenshotsTests warnings * - Update ios-sdk * - Make changes requested in code review, adding missing localizable strings and removing extraneous code * #477 reorganize navigation bar with create and more button and moved select button to sort menu * added safeAreaLayoutGuide.rightAnchor * - Update SDK * changed "Select" image * - Add downloadTriggerIdentifier and availableOfflinePolicyCoverage as properties that trigger the update of an item's visual representation (addressing finding 6 in #456) - Update make available offline action to use new convertExistingLocalDownloads option (addressing finding 2 in #456) - Update SDK (addressing finding 5 in #456) * Items in moved Available Offline folders should no longer be cleared locally and re-downloaded, following under the hood improvements in the ios-sdk * - Temporarily disable some UI tests broken due to lack of database running * - Fix issue (11) in #456 by updating the lastUsed date of already downloaded items when they are viewed * - Added slider type to StaticTableViewRow - changed storage settings to allow picking a timeframe via slider rather than a list of time frames * - Change text from "Remove" to "Make unavailable offline" in Quick Access > Available Offline list (addressing issue (9)) * - Update BookmarkInfoViewController to provide users with the choice to also remove local copies of items marked as Available Offline, issuing a warning and giving the users a way to cancel, addressing issue (12) in #456. * addresses: - missing multiselection UI in toolbar - missing select all / deselect all button in navigation bar * set if selectButton should be shown * disable temporary some tests due to bitrise failures * using correct SDK after merge * fixed changed selectButton variable name after merge * - added missing commands - added photo album, photo selection - fixed deselecting row * fixed folder actions commands * added sharing and links key commands * - added key commands for LibrarySharing - added localization * - added missing key commands - fixed keep selection, if FileList was reloaded - fixed localization - implemented copy and paste commands - implemented new selection commands (letters, top, bottom, page) * added commands for bookmark selection * Determine, if the internal pasteboard is the current item and use it * - implemented "Cut"-Command, "Favorite"-Command - implemented Next, Previous Command for image gallery and PDF viewer - fixed Sort-Type Command Key, because of system conflicts - changed command key for adding a new account * - refactored code to own actions - cleanup code - use extensions for key commands * - fixed code review findings - moving pasteboard actions copy, import and cut to separate PR * Fixed QA finding (6), unfavorite was not possible, favorite was wrong * - fixed QA finding (1), directory picker key commands fixed - fixed QA finding (4), create folder in root folder - fixed QA finding (5), available offline for selected item - fixed QA finding (6), make unavailable - fixed QA finding (8), dismiss manage account view * added keyboard commands for - open account in new window - scan document - discard window - open window * - fixed duplicated keyboard commands - fixed crash on selecting next item in list * Finding (7) fixed - added keyboard commands for IssuesViewController * fixed findings (3), (7), (9), (11) - Cancel Search - Commands for internal Alert Views - Change slider value - Crash in welcome view * added missing localization strings * fixed finding (13) - Cancel did not dismiss alert view - Only show alert view key commands * Finding: (14), (15) crash fixed * Fixed finding (17) and do not show tab bar controllers for modal views, added share command * - Remove document scanning feature (pending licensing feature) * - Allow offline browsing of folders in the File Provider (#554) * [feature/ios13_ql_preview] QuickLookPreview and QuickLookThumbnailing integration (#493) * Naming improvements based on latest SDK: - uploads use new OCCoreOptionAutomaticConflictResolutionNameStyle option to automatically resolve naming conflicts during upload - Duplicate action uses the new OCCore name suggestion API to - determine naming conflicts and resolve them automatically - match the name style of the file to duplicate, f.ex. - duplicating "File copy.jpg" will create "File copy 2.jpg" - duplicating "File (1).jpg" will create "File (2).jpg" - duplicating "File Kopie 2.jpg" will create "File Kopie 3.jpg" - folder creation uses the new OCCore name suggestion API to - detect naming conflicts beforehand - pre-fill the new folder name name with an unused name directly * #393 added an activity indicator which will be shown, if offline copies will be deleted to give the user a UI feedback * - Change SDK branch to master * #76 user can import files using the iOS share sheet. all file types are accepted. * - using new SDK with fixes for requesting core - minor code fixes * - Log device, version and locale information at the beginning of every log file using new SDK protocol - Show SDK commit hash in Settings * fixed crash, changed bookmark name to shortname * changed UIAlertViewController for account selection to CardViewController style for testing * fixed icon badge creation for fastlane lane In-House Enterprise IPA generation * install librsvg for fastlane via sh * moved import file code to own class * added option to automatically resolve name conflicts, if file name already exists * Changed app version to 1.1.0 * enabled beta build and warning * Keep the gallery alive after doing som…
Description
All available actions should be handled by keyboard commands.
Also added:
Related Issue
#282
Motivation and Context
Completely control the app with a hardware keyboard
How Has This Been Tested?
At first connect a hardware keyboard to your iPad (bluetooth or wired).
To show available keyboard commands, long press the
Command
key. This will show you, which actions are currently possible (depends on selected items).Screenshots (if appropriate):
Types of changes
Checklist:
QA
Test plan:
https://github.com/owncloud/QA/blob/master/Mobile/iOS-app/Version%201.2.0/Keyboard.md
BUGS & IMPROVEMENTS