-
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
Receive a file Shared from other app #76
Comments
@javiergonzper In the old app, it's pretty confusing. In some apps, I have 2 different options:
|
@michaelstingl are different things to do more or less the same.
The "Open in ownCloud" is the old way to upload files to ownCloud from other app. Was implemented before the "Extensions" exist on iOS. It could be deleted from the old app because we do not support iOS6 and older anymore. |
@javiergonzper I see “Share to Files”. This should work for the beginning. Wait for user feedback and use cases if this is really needed? |
@michaelstingl from the beginning we just have to implement the "Share Extension" I added more information on the issue in order to know what exactly we need 👍 |
My idea was to not implement the "Share Extension". People can use the “Share to Files” feature everywhere in iOS11+. |
* 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 * 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 * [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 * 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 * Fixes (1) and (2) * disable beta warning * Fixes issue (3) with downloads being cancelled by preview * - Update SDK to address finding (4) in #461 * - Update SDK to solve remaining of finding (4) * - Update ios-sdk to include latest changes - Fix SwiftLint warning in DisplayHostViewController.swift * updated changelog for version 1.1.0 * - change presentation of "Make unavailable offline" action to filled icon + "Available offline" + checkmark - optimize PNG images to save space - fix lack of OAuth2 renewed token propagation (#501: token renewal from Files App) via ios-sdk update * added missing localization string * - Update ios-sdk to satisfy new requirements for using ASAuthorization in iOS 13 * - Fix finding (11) in #461 via SDK update * Fixed issue (6) * - Add debug output to verify theory on stuck uploads issue * - Update SDK to add improved logging and allowing to enable use of OCCores after they were returned and stopped ("zombie core detection") * - Update SDK - Fix retain cycle in MediaUploadSettingsSection that could also lead to a zombie core * using the newest development SDK: - solving showing certificate error in document browser (file provider) - solved importFile on main thread issue * Version Bump to 141 * - added new var to get beta warning state - disabled beta warning, beta build - using the newest development SDK * set new build number * using master SDK version 1.1.0 * Translation sync (#458) * [tx] updated from transifex * Removed the es lang because was wrong and it is not necessary to map it (es -> es) (#310) * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * use newest SDK version * changed file encoding for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * - using correct SDK - solved encoding problems for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * change version number 1.0 -> 1.0.1 * Fixed QA finding (1). "Share item" menu item was not visible, if item was not shared * Fix finding (3) * Fixed an issue with go-to button not being shown in PDF viewer (#403) * Fixed an issue with go-to button not being shown in PDF viewer * Added accessibility labels to bar button items in the PDF viewer * Version Bump to 121 * - Action class: - extend ActionWillRunHandler with a completionHandler and adding a new .perform() method to wrap .willRun() and .run(), allowing for actions to trigger view controller dismissals, wait for them to finish and then present their own view controllers - Card upgrades, improvement and fixes - fix MoreViewController "shaking" on initial presentation - create new CardPresentationSizing protocol to allow view controllers to provide sizing information to CardPresentationController - allow disabling the handle and the ability to dismiss by tapping in the background - create CardViewController as base class for future view controllers that should be presented as cards - Add new DownloadItemsHUDViewController class (a CardViewController subclass) to modally download files, provide a summary, allow cancellation and simplified retrieval of the corresponding OCFile objects - Clean up OpenInAction and rewrite most of it to use DownloadItemsHUDViewController - KVOWaiter allows waiting for an object's value to change, check if the change meets the criteria and then run a block once. Ended up not being used and is therefore not included in the builds. But since it may be useful in the future, left the source code regardless. - Add ProgressSummary.update(progressView:) convenience method * [tx] updated from transifex * - Switch to release/1.0.1 branch for ios-sdk * - Add "Preparing" message to DownloadItemsHUDViewController while scheduling downloads - Update ios-sdk, fixing findings (5) + (6) * - Fix premature release of UIDocumentInteractionController in OpenInAction * using correct release SDK * [tx] updated from transifex * - Add support for Progress.isCancelled to ProgressSummarizer * Version Bump to 122 * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Make File Provider use new SDK option to return immediately from a thumbnail request when offline * [tx] updated from transifex * Version Bump to 123 * - Add new APP_SHORT_VERSION variable to build settings - Make Info.plist for app, File Provider and File Provider UI use it * - Fix remaining (5) issue for cases where the upload succeeded but the server response was cut off, prompting a retry and resulting in a "item already exists" error * - Update ios-sdk * [tx] updated from transifex * [tx] updated from transifex * changed wrong file encoding from UTF-16LE to UTF-8 * QA finding (14) removed ownCloud name from localizable stings * removed ownCloud string in localizable strings * fixed merge conclicts * using newest release SDK * changed file encoding from UTF-16LE to UTF-8 * changed file encoding from UTF-16LE to UTF-8 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * using correct SDK * removed unused string files for fastlane screenshot creation * fixed strange text encoding (Transifex error)= * [tx] updated from transifex * - new localization values from Transifex - changed wrong/too long localization strings - added missing localizations * added new localization language Basque * added localization files for fastlane screenshot generator * updated to newest SDK after localization changes
* 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 * 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 * [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 * iOS 13 dark mode support: - detects dark / light mode changes and applies a different ThemeStyle as needed - added ThemeStyle.darkStyleIdentifier so ThemeStyles can indicate their dark counter part (or their lack thereof, in case of the dark theme) - add setting "Follow system light / dark appearance" to Settings > Theme * 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 * 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() * - Clarify comment * - sortbar was sometimes hidden - fixing layout issue * fixed location identifier for actions * Added more logs in PHAsset+Upload extension * - extend ThemeCollection and Theme support throughout the app, fixing the remaining issues with iOS 13 light/dark mode - ownCloudApp: add annotated properties using ObjC associated values * - Fix infinite loop / crash on trait changes - Improve status bar style changes on dark / light mode changes * - Make Issues view controller themeable / add dark/light mode support * Version Bump to 141 * Version Bump to 142 * Version Bump to 143 * - new ThemedAlertController automatically adapts to the current style, can be used as drop-in replacement for UIAlertController (which it subclasses) - make MoreViewHeader fully Themeable (fixing issues when switching between dark/light mode when visible), including TVG icons - remove hard-coded background color for header in SharingTableViewController - make NamingViewController use a blur effect and keyboard that match the current dark/light mode - make ClientItemCell fully Themeable, including TVG icons - add option to StaticTableViewRow to allow picking different icon tint colors that adapt with dark/light mode changes - make use of that option in LibraryTableViewController - fix magnification glass color in GroupSharingTableViewController and make it fully Themeable - fix SortBar popover content inset issue (iOS 13 only) - fix UISearchBar theme application / magnification glass color in NSObject+ThemeApplication - add support for UIVisualEffectView to NSObject+ThemeApplication - ThemeCollection improvements and fixes - add new properties keyboardAppearance and backgroundBlurEffectStyle - provide tableRowHighlightColors.backgroundColor to fix issue when overriding system-wide dark mode - adopt Themeable for CardPresentationController, fixing wrong background color when dragging up a card that was already open before a theme change * - Address review issues * solved merge conflict error * fixed colors in UISegmentedControl for iOS 13 * set tintColor to UIRefreshControl * Only show theme selection, if follow system appearance is not enabled * fixed iOS 13 content inset issue for popover * set the tint color in ThemedAlertController * set the UITableViewCell interface style for a better, multi-selection circle and disclosure indicator color * UIActivityIndicator is no longer working proper in iOS 13. Removed this UI element from UISearchBar and showing a message view instead * fixed default value of system UI appearance * - Fix finding (7) in #502 * - Fix finding (3) in #502 by translating OCErrorDomain errors to NSCocoaErrorDomain before return (on iOS 13 only) * Show available Themes for current system appearance mode, if enabled * code refactoring * solved some UI updating animations * changed theme selection again and show system appearance in theme selection list * - set the tint color for cells so that checkmark will match the same tint color - changed icon for available offline action * System was not shown as selected value
* #516 truncate middle of file name instead of tail (#517) * new app version and build version * Added a fix for background media playback - Added audio session activation / deactivation code - Also fixed potential issue for background video playback (PiP) as suggested by Apple in https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/creating_a_basic_video_player_ios_and_tvos/playing_audio_from_a_video_asset_in_the_background * Fixed naming of uploaded edited photos * Fixed mission icons for ‘moreFolder’ location (#523) * [feature/darkmode] iOS 13 dark mode support (#489) * 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 * 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 * [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 * iOS 13 dark mode support: - detects dark / light mode changes and applies a different ThemeStyle as needed - added ThemeStyle.darkStyleIdentifier so ThemeStyles can indicate their dark counter part (or their lack thereof, in case of the dark theme) - add setting "Follow system light / dark appearance" to Settings > Theme * 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 * 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() * - Clarify comment * - sortbar was sometimes hidden - fixing layout issue * fixed location identifier for actions * Added more logs in PHAsset+Upload extension * - extend ThemeCollection and Theme support throughout the app, fixing the remaining issues with iOS 13 light/dark mode - ownCloudApp: add annotated properties using ObjC associated values * - Fix infinite loop / crash on trait changes - Improve status bar style changes on dark / light mode changes * - Make Issues view controller themeable / add dark/light mode support * Version Bump to 141 * Version Bump to 142 * Version Bump to 143 * - new ThemedAlertController automatically adapts to the current style, can be used as drop-in replacement for UIAlertController (which it subclasses) - make MoreViewHeader fully Themeable (fixing issues when switching between dark/light mode when visible), including TVG icons - remove hard-coded background color for header in SharingTableViewController - make NamingViewController use a blur effect and keyboard that match the current dark/light mode - make ClientItemCell fully Themeable, including TVG icons - add option to StaticTableViewRow to allow picking different icon tint colors that adapt with dark/light mode changes - make use of that option in LibraryTableViewController - fix magnification glass color in GroupSharingTableViewController and make it fully Themeable - fix SortBar popover content inset issue (iOS 13 only) - fix UISearchBar theme application / magnification glass color in NSObject+ThemeApplication - add support for UIVisualEffectView to NSObject+ThemeApplication - ThemeCollection improvements and fixes - add new properties keyboardAppearance and backgroundBlurEffectStyle - provide tableRowHighlightColors.backgroundColor to fix issue when overriding system-wide dark mode - adopt Themeable for CardPresentationController, fixing wrong background color when dragging up a card that was already open before a theme change * - Address review issues * solved merge conflict error * fixed colors in UISegmentedControl for iOS 13 * set tintColor to UIRefreshControl * Only show theme selection, if follow system appearance is not enabled * fixed iOS 13 content inset issue for popover * set the tint color in ThemedAlertController * set the UITableViewCell interface style for a better, multi-selection circle and disclosure indicator color * UIActivityIndicator is no longer working proper in iOS 13. Removed this UI element from UISearchBar and showing a message view instead * fixed default value of system UI appearance * - Fix finding (7) in #502 * - Fix finding (3) in #502 by translating OCErrorDomain errors to NSCocoaErrorDomain before return (on iOS 13 only) * Show available Themes for current system appearance mode, if enabled * code refactoring * solved some UI updating animations * changed theme selection again and show system appearance in theme selection list * - set the tint color for cells so that checkmark will match the same tint color - changed icon for available offline action * System was not shown as selected value * - Update SDK to new version to include OIDC improvements and OCCore fixes * disable beta build and beta warning * added changelog for version 1.1.1 * - added activity indicator instead of search message - fixed searchbar text color
* 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
* 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
…#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
… 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 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 * 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 * First draft * [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 * Experimented with QLPreview for viewing different document types * Implemented QuickLookThumbnailing support for iOS 13 * Using QLPreviewController for images and office documents * Fixed double-tap to zoom and added single tap to hide bars * 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() * Reordered the code for better readability * Adding QLThumbnailing generated thumbnails to the vault cache in iOS13 - QLThumbnailing is only used if requesting thumbnail from server doesn’t provide a result - Thumbnail generated by QLThumbnailing is added to the vault thumbnail cache * Code clean up * Using weak OCCore reference * Added alternative way of matching MIME types in the DisplayExtension - Simpler and less error-prone than regular expressions - Example implementation in MediaDisplayViewController * Fix for documents sometimes not appearing * Changed ivars / methods naming based on code review feedback * Using iOS file icons for files for which theme doesn’t provide them * Excluded some MIME type icons from the Theme on iOS13 * Implemented approach (3) as suggested by @felix-scwarz * Remove match files * Making sure all image formats are opened in QLPreviewController. Tried also with SVG and animated GIF * Fixed downloading unsupported mime types * Query updates not triggering view controller updates if it’s view is not visible * Only updating the ClientItemCell if actual item has changed * Thumbnail updates optimized * Some fixes for QLPreviewController * Fixed some thumbnail issues * Not using QLPreviewController for images * Only requesting content based thumbnais using QLThumbnailing * Commiting .gitignore and Gemfile.lock * Fixed some file types not being opened * Fixed issue (7) in PR #493 * Fixed some small issues - Opening GIFs with WKWebView based preview to avoid visual artefacts seen with QLPreviewController - Not trying to open files which are not supported by the preview subsystem
* 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 * #463 Add Shortcut support with Parameters (iOS 13) * fixed save file intent, use security scope for copying file * added create folder intent action * - removed progress instance variable - added error completion handler * added accept custom file types for parameter INFile * 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 * 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 * added Get File Info Intent * [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 * - added error handling - moving duplicated code into helper and extensions * improved failure handling * added Intent for checking if a given path exists * improved variable check * added Delete Item at Path Intent handler * return path for created folder and saved file in shortcuts intents * - changed all intent handler to provide accounts - changed formatting for display name - added "Get Account" intent - added descriptions * removed privateLink property from FileInfo * - added sort type and sort direction WIP - added error handling for account failure * Implemented Sort Direction and Sort Type for Directory Listing * adopt fastlane file for new "Intent" target * code signing changes for fastlane * - fixed validation errors on AppStore connect upload - new build number - fixed comments (cherry picked from commit 5ccdebd) * fixed crash on OS version below iOS 13 * removing type identifier, because files of type "text/plain" was not handled correct in Shortcuts.app. Instead of using text content, file name was used. Maybe this is a bug in iOS and will be submitted as bug report to Apple (cherry picked from commit 3fd6f92) * added optional parameter "filename" for SaveFileIntent (cherry picked from commit 067ccd9) * added setting optional file extension * added localization support for Siri Intents * Code refactoring after code review findings * - code refactoring - fixed duplicated symbols for intent definition * - moved shared code from app to framework - better error handling for some intents - using newest SDK, which fixes path problems - set parameter name, extension in SaveFileIntent to optional * moved shared file to framework * - Update SDK to include latest fixes, including for the latest "/Documents" vs "/Documents/" issue * - correct the targeted commit for the ios-sdk git module
* [tx] updated from transifex * Removed the es lang because was wrong and it is not necessary to map it (es -> es) (#310) * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * use newest SDK version * changed file encoding for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * - using correct SDK - solved encoding problems for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * change version number 1.0 -> 1.0.1 * Fixed QA finding (1). "Share item" menu item was not visible, if item was not shared * Fix finding (3) * Fixed an issue with go-to button not being shown in PDF viewer (#403) * Fixed an issue with go-to button not being shown in PDF viewer * Added accessibility labels to bar button items in the PDF viewer * Version Bump to 121 * - Action class: - extend ActionWillRunHandler with a completionHandler and adding a new .perform() method to wrap .willRun() and .run(), allowing for actions to trigger view controller dismissals, wait for them to finish and then present their own view controllers - Card upgrades, improvement and fixes - fix MoreViewController "shaking" on initial presentation - create new CardPresentationSizing protocol to allow view controllers to provide sizing information to CardPresentationController - allow disabling the handle and the ability to dismiss by tapping in the background - create CardViewController as base class for future view controllers that should be presented as cards - Add new DownloadItemsHUDViewController class (a CardViewController subclass) to modally download files, provide a summary, allow cancellation and simplified retrieval of the corresponding OCFile objects - Clean up OpenInAction and rewrite most of it to use DownloadItemsHUDViewController - KVOWaiter allows waiting for an object's value to change, check if the change meets the criteria and then run a block once. Ended up not being used and is therefore not included in the builds. But since it may be useful in the future, left the source code regardless. - Add ProgressSummary.update(progressView:) convenience method * [tx] updated from transifex * - Switch to release/1.0.1 branch for ios-sdk * - Add "Preparing" message to DownloadItemsHUDViewController while scheduling downloads - Update ios-sdk, fixing findings (5) + (6) * - Fix premature release of UIDocumentInteractionController in OpenInAction * using correct release SDK * [tx] updated from transifex * - Add support for Progress.isCancelled to ProgressSummarizer * Version Bump to 122 * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Make File Provider use new SDK option to return immediately from a thumbnail request when offline * [tx] updated from transifex * Version Bump to 123 * - Add new APP_SHORT_VERSION variable to build settings - Make Info.plist for app, File Provider and File Provider UI use it * - Fix remaining (5) issue for cases where the upload succeeded but the server response was cut off, prompting a retry and resulting in a "item already exists" error * - Update ios-sdk * [tx] updated from transifex * [tx] updated from transifex * changed wrong file encoding from UTF-16LE to UTF-8 * QA finding (14) removed ownCloud name from localizable stings * removed ownCloud string in localizable strings * fixed merge conclicts * using newest release SDK * changed file encoding from UTF-16LE to UTF-8 * changed file encoding from UTF-16LE to UTF-8 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * 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) * [tx] updated from transifex * 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 * [tx] updated from transifex * 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 * [tx] updated from transifex * - 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 * 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 * [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 * 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 * removed unused string files for fastlane screenshot creation * Fixes (1) and (2) * disable beta warning * Fixes issue (3) with downloads being cancelled by preview * - Update SDK to address finding (4) in #461 * - Update SDK to solve remaining of finding (4) * fixed strange text encoding (Transifex error)= * - Update ios-sdk to include latest changes - Fix SwiftLint warning in DisplayHostViewController.swift * [tx] updated from transifex * updated changelog for version 1.1.0 * - change presentation of "Make unavailable offline" action to filled icon + "Available offline" + checkmark - optimize PNG images to save space - fix lack of OAuth2 renewed token propagation (#501: token renewal from Files App) via ios-sdk update * added missing localization string * - Update ios-sdk to satisfy new requirements for using ASAuthorization in iOS 13 * - Fix finding (11) in #461 via SDK update * Fixed issue (6) * - Add debug output to verify theory on stuck uploads issue * - Update SDK to add improved logging and allowing to enable use of OCCores after they were returned and stopped ("zombie core detection") * - Update SDK - Fix retain cycle in MediaUploadSettingsSection that could also lead to a zombie core * using the newest development SDK: - solving showing certificate error in document browser (file provider) - solved importFile on main thread issue * Version Bump to 141 * - new localization values from Transifex - changed wrong/too long localization strings - added missing localizations * added new localization language Basque * added localization files for fastlane screenshot generator * updated to newest SDK after localization changes * - added new var to get beta warning state - disabled beta warning, beta build - using the newest development SDK * set new build number * using master SDK version 1.1.0 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * new build number * fixed encoding hell UTF-8 / UTF-16 * - added arabic language files to project - fixed wrong encoding * - fixed wrong padding for label - localized "Feedback" button
* - 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…
* Autoplay Media / Show album artwork in the media player view (#566) * [fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547) * - 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 * - Allow offline browsing of folders in the File Provider * Revert "[fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547)" (#553) This reverts commit 9a0bc93. * Autoplay media files implemented as described in issue #59 * Added album artwork as overlay in the player * Fixed playing next media item in BG and lock screen - Now multiple items can be played contignuously in the background - Now playing info in the lock screen contains artwork, title, artist info and displays correct playback timeline - Audio can be paused / resumed from the lock screen - Added skip controls allowing to jump 10s backwards and forwards from the play-head position in the lock screen * Small fixes * [fix/open-in-on-ipad] Share sheet not visible on iPad (#570) * [fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547) * - 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 * - Allow offline browsing of folders in the File Provider * Revert "[fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547)" (#553) This reverts commit 9a0bc93. * Fix for issue #568: Share sheet was now visible on iPad, if tableview was scrolled down, after first visible page rect * Changed app version to 1.2.0 * [fix/improve_photo_upload_responsiveness] More reliable photo upload (#548) * #516 truncate middle of file name instead of tail (#517) * new app version and build version * Started implementing more secure photo upload * Added a fix for background media playback - Added audio session activation / deactivation code - Also fixed potential issue for background video playback (PiP) as suggested by Apple in https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/creating_a_basic_video_player_ios_and_tvos/playing_audio_from_a_video_asset_in_the_background * Fixed naming of uploaded edited photos * Changes to the mechanism of storing pending PHAsset IDs * Pending media upload task added - When uploading photo / video assets, their local identifiers along with target path are stored in the KV-store of the bookmark - When the app is killed, at next launch, task is spawned which checks if there are any pending assets not yet imported by the core - Pending assets are uploaded * Updated with latest sdk version * Uploading multiple assets within OCCore.schedul(inCoreQueue:) block * Fixed some issues with uploading pending assets * Reworked media uploads - Performing most of the operations synchronously and trying to not spawn to many worker threads - Executing file imports withing OCCore.schedule() call to post-pone execution of sync operations and to reduce their amount * Small fixes * Refactored PendingMediaUploadTaskExtension class * Removed unccessary scheduling of tasks in the next run loop iteration - Removed OnMainThread{..} wrapping from scheduleTasks() - Made sure scheduleTasks() is called after properties affecting current context are set * Modal UI presented when media files are imported * Fixed some review findings * Addressed review findings * Ignoring fastlane sub-folder * Fixed some compiler warnings * Fixed the issue with overwriting asset downloads Now able to store multiple paths along with single asset in the key value store * Added OCActivitiy publishing to MediaUploadQueue * Refactored media upload related OCActivity into separate class * First working implementation of refactored MediaUploadQueue - Simplified the architecture - Separate KV based storadge of upload jobs into MediaUploadStorage class which takes care of handling MediaUploadJob objects - Improved inter-process concurrency handling * Removing stored upload jobs upon activity cancellation * MediaUploadQueue: - switch to "needsScheduling" mechanism to ensure that assets that get added to the queue are processed as timely as possible. Previously, if assets were added while the queue is being processed, no new run that would include the newly added assets would be triggered. - fix broken processing locking: creating an OCProcessSession via "OCProcessSession()" creates a session that is never valid, so the queue would get scheduled multiple times, which could lead to many duplicate uploads. Instead OCProcessManager.shared.processSession is now used, which returns a valid session of the current process. - make control over MediaUploadStorage.processing atomic to avoid race conditions - use copies of MediaUploadStorage.queue and MediaUploadStorage.jobs as starting point for scheduling, to avoid running into issues if MediaUploadStorage is cached by OCKeyValueStorage and a change to these is made during enumeration - added additional error logging in case of upload errors - make addUpload() trigger the newly introduced setNeedsScheduling() so that calls to scheduleUploads() become unnecessary when adding assets to the queue. MediaUploadStorage: - convert property-like methods into actual properties Localizable.strings: - fix two errors that led to the file becoming unparseable ios-sdk: - SDK update to avoid unneeded deserializations * - Remove duplicate file * Fixed problem with updating key-value store for every single media asset - When key value store is updated separately for every media item, there is huge number of background tasks, worker threads etc. being spawned. - Now adding assets to be uploaded within single [OCKeyValueStore updateObjectForKey:…] block * [fix/fp-word] Fix Word FileProvider issue (#574) * - Overhaul -importDocumentAtURL: to use file coordination and return placeholders only after they've been added to the database (via updated SDK) - Fix app toolbar icons glitch when re-opening the client browser for an account after launch * - Switch from develop to master branch for ios-sdk * - Update SDK to fix finding (1) * Fixed (4) and (5) - Disabled skip X seconds commands for now - Added play next / previous track commands - Removing system-wide now playing info if corresponding media playback view controller gets released * #550 fixed QA finding (1) for regression test 1.2.0, Import panel was not displayed on iOS 13 * Fixed a now playing issue with jumping time * Fixed issue with images not being uploaded when MP4 conversion option was active * new build number * Temporarily removed conversion of videos to MP4 * disable beta warning * Translation Sync (#525) * [tx] updated from transifex * Removed the es lang because was wrong and it is not necessary to map it (es -> es) (#310) * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * use newest SDK version * changed file encoding for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * - using correct SDK - solved encoding problems for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * change version number 1.0 -> 1.0.1 * Fixed QA finding (1). "Share item" menu item was not visible, if item was not shared * Fix finding (3) * Fixed an issue with go-to button not being shown in PDF viewer (#403) * Fixed an issue with go-to button not being shown in PDF viewer * Added accessibility labels to bar button items in the PDF viewer * Version Bump to 121 * - Action class: - extend ActionWillRunHandler with a completionHandler and adding a new .perform() method to wrap .willRun() and .run(), allowing for actions to trigger view controller dismissals, wait for them to finish and then present their own view controllers - Card upgrades, improvement and fixes - fix MoreViewController "shaking" on initial presentation - create new CardPresentationSizing protocol to allow view controllers to provide sizing information to CardPresentationController - allow disabling the handle and the ability to dismiss by tapping in the background - create CardViewController as base class for future view controllers that should be presented as cards - Add new DownloadItemsHUDViewController class (a CardViewController subclass) to modally download files, provide a summary, allow cancellation and simplified retrieval of the corresponding OCFile objects - Clean up OpenInAction and rewrite most of it to use DownloadItemsHUDViewController - KVOWaiter allows waiting for an object's value to change, check if the change meets the criteria and then run a block once. Ended up not being used and is therefore not included in the builds. But since it may be useful in the future, left the source code regardless. - Add ProgressSummary.update(progressView:) convenience method * [tx] updated from transifex * - Switch to release/1.0.1 branch for ios-sdk * - Add "Preparing" message to DownloadItemsHUDViewController while scheduling downloads - Update ios-sdk, fixing findings (5) + (6) * - Fix premature release of UIDocumentInteractionController in OpenInAction * using correct release SDK * [tx] updated from transifex * - Add support for Progress.isCancelled to ProgressSummarizer * Version Bump to 122 * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Make File Provider use new SDK option to return immediately from a thumbnail request when offline * [tx] updated from transifex * Version Bump to 123 * - Add new APP_SHORT_VERSION variable to build settings - Make Info.plist for app, File Provider and File Provider UI use it * - Fix remaining (5) issue for cases where the upload succeeded but the server response was cut off, prompting a retry and resulting in a "item already exists" error * - Update ios-sdk * [tx] updated from transifex * [tx] updated from transifex * changed wrong file encoding from UTF-16LE to UTF-8 * QA finding (14) removed ownCloud name from localizable stings * removed ownCloud string in localizable strings * fixed merge conclicts * using newest release SDK * changed file encoding from UTF-16LE to UTF-8 * changed file encoding from UTF-16LE to UTF-8 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * 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) * [tx] updated from transifex * 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 * [tx] updated from transifex * 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 * [tx] updated from transifex * - 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 * 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 * [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 * 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 * removed unused string files for fastlane screenshot creation * Fixes (1) and (2) * disable beta warning * Fixes issue (3) with downloads being cancelled by preview * - Update SDK to address finding (4) in #461 * - Update SDK to solve remaining of finding (4) * fixed strange text encoding (Transifex error)= * - Update ios-sdk to include latest changes - Fix SwiftLint warning in DisplayHostViewController.swift * [tx] updated from transifex * updated changelog for version 1.1.0 * - change presentation of "Make unavailable offline" action to filled icon + "Available offline" + checkmark - optimize PNG images to save space - fix lack of OAuth2 renewed token propagation (#501: token renewal from Files App) via ios-sdk update * added missing localization string * - Update ios-sdk to satisfy new requirements for using ASAuthorization in iOS 13 * - Fix finding (11) in #461 via SDK update * Fixed issue (6) * - Add debug output to verify theory on stuck uploads issue * - Update SDK to add improved logging and allowing to enable use of OCCores after they were returned and stopped ("zombie core detection") * - Update SDK - Fix retain cycle in MediaUploadSettingsSection that could also lead to a zombie core * using the newest development SDK: - solving showing certificate error in document browser (file provider) - solved importFile on main thread issue * Version Bump to 141 * - new localization values from Transifex - changed wrong/too long localization strings - added missing localizations * added new localization language Basque * added localization files for fastlane screenshot generator * updated to newest SDK after localization changes * - added new var to get beta warning state - disabled beta warning, beta build - using the newest development SDK * set new build number * using master SDK version 1.1.0 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * new build number * fixed encoding hell UTF-8 / UTF-16 * - added arabic language files to project - fixed wrong encoding * - fixed wrong padding for label - localized "Feedback" button * removed Feedback button from server list view * Renamed instant upload to auto upload * Version Bump to 146 * added changelog for version 1.2.0 * Updated oC SDK to latest master * Fixed compilation issue * Fix infinite loop when duplicating a Folder in Files app (#577) - QueryFileListTableViewController: request only needed/used data (#577) - FileProviderExtension: return correct error for file collissions (previously commented out due to duplicate bug) on iOS 13.3 and later - FileProviderEnumerator: include the root item only for the root folder. If it's not included, no folder can be created in the root directory. If a non-root folder is included in a query result for its content, the Files Duplicate action will loop infinitely. * added missing delete bookmark confirmation * fixed german translation string * using ThemeWindow in SceneDelegate * fixed getting current system appearance * fixed broken badge generation for bitrise builds, reverting to an old pange version * - adapt to ios-sdk changes with regards to OCActivityIdentifier - make ClientActivityViewController prevent display sleep while shown and there are activities * - Turn UIApplication.shared.currentWindow into a property and adapt code accordingly * using correct SDK * Remove previous merge debris * - Remove previous merge debris, part 2 * update sdk reference Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> Co-authored-by: Jesús Recio Rincón <[email protected]>
* [tx] updated from transifex * use newest SDK version * changed file encoding for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * - using correct SDK - solved encoding problems for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * change version number 1.0 -> 1.0.1 * Fixed QA finding (1). "Share item" menu item was not visible, if item was not shared * Fix finding (3) * Fixed an issue with go-to button not being shown in PDF viewer (#403) * Fixed an issue with go-to button not being shown in PDF viewer * Added accessibility labels to bar button items in the PDF viewer * Version Bump to 121 * - Action class: - extend ActionWillRunHandler with a completionHandler and adding a new .perform() method to wrap .willRun() and .run(), allowing for actions to trigger view controller dismissals, wait for them to finish and then present their own view controllers - Card upgrades, improvement and fixes - fix MoreViewController "shaking" on initial presentation - create new CardPresentationSizing protocol to allow view controllers to provide sizing information to CardPresentationController - allow disabling the handle and the ability to dismiss by tapping in the background - create CardViewController as base class for future view controllers that should be presented as cards - Add new DownloadItemsHUDViewController class (a CardViewController subclass) to modally download files, provide a summary, allow cancellation and simplified retrieval of the corresponding OCFile objects - Clean up OpenInAction and rewrite most of it to use DownloadItemsHUDViewController - KVOWaiter allows waiting for an object's value to change, check if the change meets the criteria and then run a block once. Ended up not being used and is therefore not included in the builds. But since it may be useful in the future, left the source code regardless. - Add ProgressSummary.update(progressView:) convenience method * [tx] updated from transifex * - Switch to release/1.0.1 branch for ios-sdk * - Add "Preparing" message to DownloadItemsHUDViewController while scheduling downloads - Update ios-sdk, fixing findings (5) + (6) * - Fix premature release of UIDocumentInteractionController in OpenInAction * using correct release SDK * [tx] updated from transifex * - Add support for Progress.isCancelled to ProgressSummarizer * Version Bump to 122 * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Make File Provider use new SDK option to return immediately from a thumbnail request when offline * [tx] updated from transifex * Version Bump to 123 * - Add new APP_SHORT_VERSION variable to build settings - Make Info.plist for app, File Provider and File Provider UI use it * - Fix remaining (5) issue for cases where the upload succeeded but the server response was cut off, prompting a retry and resulting in a "item already exists" error * - Update ios-sdk * [tx] updated from transifex * [tx] updated from transifex * changed wrong file encoding from UTF-16LE to UTF-8 * QA finding (14) removed ownCloud name from localizable stings * removed ownCloud string in localizable strings * fixed merge conclicts * using newest release SDK * changed file encoding from UTF-16LE to UTF-8 * changed file encoding from UTF-16LE to UTF-8 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * 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) * [tx] updated from transifex * 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 * [tx] updated from transifex * 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 * [tx] updated from transifex * - 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 * 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 * [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 * 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 * removed unused string files for fastlane screenshot creation * Fixes (1) and (2) * disable beta warning * Fixes issue (3) with downloads being cancelled by preview * - Update SDK to address finding (4) in #461 * - Update SDK to solve remaining of finding (4) * fixed strange text encoding (Transifex error)= * - Update ios-sdk to include latest changes - Fix SwiftLint warning in DisplayHostViewController.swift * [tx] updated from transifex * updated changelog for version 1.1.0 * - change presentation of "Make unavailable offline" action to filled icon + "Available offline" + checkmark - optimize PNG images to save space - fix lack of OAuth2 renewed token propagation (#501: token renewal from Files App) via ios-sdk update * added missing localization string * - Update ios-sdk to satisfy new requirements for using ASAuthorization in iOS 13 * - Fix finding (11) in #461 via SDK update * Fixed issue (6) * - Add debug output to verify theory on stuck uploads issue * - Update SDK to add improved logging and allowing to enable use of OCCores after they were returned and stopped ("zombie core detection") * - Update SDK - Fix retain cycle in MediaUploadSettingsSection that could also lead to a zombie core * using the newest development SDK: - solving showing certificate error in document browser (file provider) - solved importFile on main thread issue * Version Bump to 141 * - new localization values from Transifex - changed wrong/too long localization strings - added missing localizations * added new localization language Basque * added localization files for fastlane screenshot generator * updated to newest SDK after localization changes * - added new var to get beta warning state - disabled beta warning, beta build - using the newest development SDK * set new build number * using master SDK version 1.1.0 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * Autoplay Media / Show album artwork in the media player view (#566) * [fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547) * - 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 * - Allow offline browsing of folders in the File Provider * Revert "[fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547)" (#553) This reverts commit 9a0bc93215b786e715b0a89cc9aa793fd121407b. * Autoplay media files implemented as described in issue #59 * Added album artwork as overlay in the player * Fixed playing next media item in BG and lock screen - Now multiple items can be played contignuously in the background - Now playing info in the lock screen contains artwork, title, artist info and displays correct playback timeline - Audio can be paused / resumed from the lock screen - Added skip controls allowing to jump 10s backwards and forwards from the play-head position in the lock screen * Small fixes * [fix/open-in-on-ipad] Share sheet not visible on iPad (#570) * [fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547) * - 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 * - Allow offline browsing of folders in the File Provider * Revert "[fix/fp-offline-browsing] Allow offline browsing of folders in the File Provider (#547)" (#553) This reverts commit 9a0bc93215b786e715b0a89cc9aa793fd121407b. * Fix for issue #568: Share sheet was now visible on iPad, if tableview was scrolled down, after first visible page rect * Changed app version to 1.2.0 * [tx] updated from transifex * [fix/improve_photo_upload_responsiveness] More reliable photo upload (#548) * #516 truncate middle of file name instead of tail (#517) * new app version and build version * Started implementing more secure photo upload * Added a fix for background media playback - Added audio session activation / deactivation code - Also fixed potential issue for background video playback (PiP) as suggested by Apple in https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/creating_a_basic_video_player_ios_and_tvos/playing_audio_from_a_video_asset_in_the_background * Fixed naming of uploaded edited photos * Changes to the mechanism of storing pending PHAsset IDs * Pending media upload task added - When uploading photo / video assets, their local identifiers along with target path are stored in the KV-store of the bookmark - When the app is killed, at next launch, task is spawned which checks if there are any pending assets not yet imported by the core - Pending assets are uploaded * Updated with latest sdk version * Uploading multiple assets within OCCore.schedul(inCoreQueue:) block * Fixed some issues with uploading pending assets * Reworked media uploads - Performing most of the operations synchronously and trying to not spawn to many worker threads - Executing file imports withing OCCore.schedule() call to post-pone execution of sync operations and to reduce their amount * Small fixes * Refactored PendingMediaUploadTaskExtension class * Removed unccessary scheduling of tasks in the next run loop iteration - Removed OnMainThread{..} wrapping from scheduleTasks() - Made sure scheduleTasks() is called after properties affecting current context are set * Modal UI presented when media files are imported * Fixed some review findings * Addressed review findings * Ignoring fastlane sub-folder * Fixed some compiler warnings * Fixed the issue with overwriting asset downloads Now able to store multiple paths along with single asset in the key value store * Added OCActivitiy publishing to MediaUploadQueue * Refactored media upload related OCActivity into separate class * First working implementation of refactored MediaUploadQueue - Simplified the architecture - Separate KV based storadge of upload jobs into MediaUploadStorage class which takes care of handling MediaUploadJob objects - Improved inter-process concurrency handling * Removing stored upload jobs upon activity cancellation * MediaUploadQueue: - switch to "needsScheduling" mechanism to ensure that assets that get added to the queue are processed as timely as possible. Previously, if assets were added while the queue is being processed, no new run that would include the newly added assets would be triggered. - fix broken processing locking: creating an OCProcessSession via "OCProcessSession()" creates a session that is never valid, so the queue would get scheduled multiple times, which could lead to many duplicate uploads. Instead OCProcessManager.shared.processSession is now used, which returns a valid session of the current process. - make control over MediaUploadStorage.processing atomic to avoid race conditions - use copies of MediaUploadStorage.queue and MediaUploadStorage.jobs as starting point for scheduling, to avoid running into issues if MediaUploadStorage is cached by OCKeyValueStorage and a change to these is made during enumeration - added additional error logging in case of upload errors - make addUpload() trigger the newly introduced setNeedsScheduling() so that calls to scheduleUploads() become unnecessary when adding assets to the queue. MediaUploadStorage: - convert property-like methods into actual properties Localizable.strings: - fix two errors that led to the file becoming unparseable ios-sdk: - SDK update to avoid unneeded deserializations * - Remove duplicate file * Fixed problem with updating key-value store for every single media asset - When key value store is updated separately for every media item, there is huge number of background tasks, worker threads etc. being spawned. - Now adding assets to be uploaded within single [OCKeyValueStore updateObjectForKey:…] block * [fix/fp-word] Fix Word FileProvider issue (#574) * - Overhaul -importDocumentAtURL: to use file coordination and return placeholders only after they've been added to the database (via updated SDK) - Fix app toolbar icons glitch when re-opening the client browser for an account after launch * - Switch from develop to master branch for ios-sdk * - Update SDK to fix finding (1) * Fixed (4) and (5) - Disabled skip X seconds commands for now - Added play next / previous track commands - Removing system-wide now playing info if corresponding media playback view controller gets released * #550 fixed QA finding (1) for regression test 1.2.0, Import panel was not displayed on iOS 13 * Fixed a now playing issue with jumping time * Fixed issue with images not being uploaded when MP4 conversion option was active * new build number * Temporarily removed conversion of videos to MP4 * disable beta warning * fixed encoding hell UTF-8 / UTF-16 * - added arabic language files to project - fixed wrong encoding * - fixed wrong padding for label - localized "Feedback" button * Translation Sync (#525) * [tx] updated from transifex * Removed the es lang because was wrong and it is not necessary to map it (es -> es) (#310) * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * use newest SDK version * changed file encoding for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * - using correct SDK - solved encoding problems for localization files * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * change version number 1.0 -> 1.0.1 * Fixed QA finding (1). "Share item" menu item was not visible, if item was not shared * Fix finding (3) * Fixed an issue with go-to button not being shown in PDF viewer (#403) * Fixed an issue with go-to button not being shown in PDF viewer * Added accessibility labels to bar button items in the PDF viewer * Version Bump to 121 * - Action class: - extend ActionWillRunHandler with a completionHandler and adding a new .perform() method to wrap .willRun() and .run(), allowing for actions to trigger view controller dismissals, wait for them to finish and then present their own view controllers - Card upgrades, improvement and fixes - fix MoreViewController "shaking" on initial presentation - create new CardPresentationSizing protocol to allow view controllers to provide sizing information to CardPresentationController - allow disabling the handle and the ability to dismiss by tapping in the background - create CardViewController as base class for future view controllers that should be presented as cards - Add new DownloadItemsHUDViewController class (a CardViewController subclass) to modally download files, provide a summary, allow cancellation and simplified retrieval of the corresponding OCFile objects - Clean up OpenInAction and rewrite most of it to use DownloadItemsHUDViewController - KVOWaiter allows waiting for an object's value to change, check if the change meets the criteria and then run a block once. Ended up not being used and is therefore not included in the builds. But since it may be useful in the future, left the source code regardless. - Add ProgressSummary.update(progressView:) convenience method * [tx] updated from transifex * - Switch to release/1.0.1 branch for ios-sdk * - Add "Preparing" message to DownloadItemsHUDViewController while scheduling downloads - Update ios-sdk, fixing findings (5) + (6) * - Fix premature release of UIDocumentInteractionController in OpenInAction * using correct release SDK * [tx] updated from transifex * - Add support for Progress.isCancelled to ProgressSummarizer * Version Bump to 122 * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Addressing (5) via SDK update rescheduling/retrying dropped requests * - Make File Provider use new SDK option to return immediately from a thumbnail request when offline * [tx] updated from transifex * Version Bump to 123 * - Add new APP_SHORT_VERSION variable to build settings - Make Info.plist for app, File Provider and File Provider UI use it * - Fix remaining (5) issue for cases where the upload succeeded but the server response was cut off, prompting a retry and resulting in a "item already exists" error * - Update ios-sdk * [tx] updated from transifex * [tx] updated from transifex * changed wrong file encoding from UTF-16LE to UTF-8 * QA finding (14) removed ownCloud name from localizable stings * removed ownCloud string in localizable strings * fixed merge conclicts * using newest release SDK * changed file encoding from UTF-16LE to UTF-8 * changed file encoding from UTF-16LE to UTF-8 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * 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) * [tx] updated from transifex * 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 * [tx] updated from transifex * 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 * [tx] updated from transifex * - 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 * 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 * [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 * Version Bump to 139 * Feature/task scheduling (#484) * #386 Added relevant classes * First draft …
* - 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…
* Version Bump to 123 * - Add new APP_SHORT_VERSION variable to build settings - Make Info.plist for app, File Provider and File Provider UI use it * - Fix remaining (5) issue for cases where the upload succeeded but the server response was cut off, prompting a retry and resulting in a "item already exists" error * - Update ios-sdk * [tx] updated from transifex * [tx] updated from transifex * changed wrong file encoding from UTF-16LE to UTF-8 * QA finding (14) removed ownCloud name from localizable stings * removed ownCloud string in localizable strings * fixed merge conclicts * using newest release SDK * changed file encoding from UTF-16LE to UTF-8 * changed file encoding from UTF-16LE to UTF-8 * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * [tx] updated from transifex * 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) * [tx] updated from transifex * 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 * [tx] updated from transifex * 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 * [tx] updated from transifex * - 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 * 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 * [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 * 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 * removed unused string files for fastlane screenshot creation * Fixes (1) and (2) * disable beta warning * Fixes issue (3) with downloads being cancelled by preview * - Update SDK to address finding (4) in #461 * - Update SDK to solve remaining of finding (4) * fixed strange text encoding (Transifex error)= * - Update ios-sdk to include latest changes - Fix SwiftLint warning in DisplayHostViewController.swift * [tx] updated from transifex * updated changelog for version 1.1.0 * - change presentation of "Make unavailable offline" action to filled icon + "Available offline" + checkmark - optimize PNG images to save space - fix lack of OAuth2 renewed token propagation (#501: token renewal from Files App) via ios-sdk update * added missing localization string * - Update ios-sdk to satisfy new requirements for using ASAuthorization in iOS 13 * - Fix finding (11) in #461 via SDK update * Fixed issue (6) * - Add debug output to verify theory on stuck uploads issue * - Update SDK to add improved logging and allowing to enable use of OCCores after they were returned and stopped ("zombie core detection") * - Update SDK - Fix retain cycle in MediaUploadSettingsSection that could also lead to a zombie core * using the newest development SDK: - solving showing certificate error in document browser (file provider) - solved importFile on main thread issue * Version Bump to 141 * - new localization values from Transifex - changed wrong/too long localization strings - added missing localizations * added new localization language Basque * added localization files for fastlane screenshot generator * updated to newest SDK after localization changes * - added new var to get beta warning state - disabled beta warning, beta build - using the newest development SDK * set new build number * using master SDK version 1.1.0 * - 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/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…
* [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 * [tx] updated from transifex * - 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 * 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 * [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 * 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 * removed unused string files for fastlane screenshot creation * Fixes (1) and (2) * disable beta warning * Fixes issue (3) with downloads being cancelled by preview * - Update SDK to address finding (4) in #461 * - Update SDK to solve remaining of finding (4) * fixed strange text encoding (Transifex error)= * - Update ios-sdk to include latest changes - Fix SwiftLint warning in DisplayHostViewController.swift * [tx] updated from transifex * updated changelog for version 1.1.0 * - change presentation of "Make unavailable offline" action to filled icon + "Available offline" + checkmark - optimize PNG images to save space - fix lack of OAuth2 renewed token propagation (#501: token renewal from Files App) via ios-sdk update * added missing localization string * - Update ios-sdk to satisfy new requirements for using ASAuthorization in iOS 13 * - Fix finding (11) in #461 via SDK update * Fixed issue (6) * - Add debug output to verify theory on stuck uploads issue * - Update SDK to add improved logging and allowing to enable use of OCCores after they were returned and stopped ("zombie core detection") * - Update SDK - Fix retain cycle in MediaUploadSettingsSection that could also lead to a zombie core * using the newest development SDK: - solving showing certificate error in document browser (file provider) - solved importFile on main thread issue * Version Bump to 141 * - new localization values from Transifex - changed wrong/too long localization strings - added missing localizations * added new localization language Basque * added localization files for fastlane screenshot generator * updated to newest SDK after localization changes * - added new var to get beta warning state - disabled beta warning, beta build - using the newest development SDK * set new build number * using master SDK version 1.1.0 * - 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 th…
* localized share extension display name * - Temporarily disable processSession check via SDK update * added missing localized strings * using newest SDK * Translation sync (#646) * [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 * [tx] updated from transifex * - 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 * 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 * [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 * 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 * removed unused string files for fastlane screenshot creation * Fixes (1) and (2) * disable beta warning * Fixes issue (3) with downloads being cancelled by preview * - Update SDK to address finding (4) in #461 * - Update SDK to solve remaining of finding (4) * fixed strange text encoding (Transifex error)= * - Update ios-sdk to include latest changes - Fix SwiftLint warning in DisplayHostViewController.swift * [tx] updated from transifex * updated changelog for version 1.1.0 * - change presentation of "Make unavailable offline" action to filled icon + "Available offline" + checkmark - optimize PNG images to save space - fix lack of OAuth2 renewed token propagation (#501: token renewal from Files App) via ios-sdk update * added missing localization string * - Update ios-sdk to satisfy new requirements for using ASAuthorization in iOS 13 * - Fix finding (11) in #461 via SDK update * Fixed issue (6) * - Add debug output to verify theory on stuck uploads issue * - Update SDK to add improved logging and allowing to enable use of OCCores after they were returned and stopped ("zombie core detection") * - Update SDK - Fix retain cycle in MediaUploadSettingsSection that could also lead to a zombie core * using the newest development SDK: - solving showing certificate error in document browser (file provider) - solved importFile on main thread issue * Version Bump to 141 * - new localization values from Transifex - changed wrong/too long localization strings - added missing localizations * added new localization language Basque * added localization files for fastlane screenshot generator * updated to newest SDK after localization changes * - added new var to get beta warning state - disabled beta warning, beta build - using the newest development SDK * set new build number * using master SDK version 1.1.0 * - 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.s…
* 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 * Added new actions for Pasteboard: Copy, Cut, Import * - updated version and build number - enabled beta warning * - add support for direct theming of progress colors also for light and dark mode * using URL keyboard for configure up a branded server URL * localized missing string in sharing receipient search field * [fix/auto-page-scrolling] Auto Enable Page Scrolling in Detail View (#920) * [feature/align-bookmark-names] Align bookmark names with Android and web (#922) * [feature/prevent-sleep-detail-view] Presentation Mode (#893) * [feature/french-localization] French Localization (#927) * #4450 added french localization with latest translated strings from transifex * Calens changelog updated * Calens changelog updated Co-authored-by: hosy <[email protected]> * [feature/fileprovider-passcode-UI] File Provider Passcode UI (#881) * [feature/drag-drop-setting] Setting to disable dragging files inside the app (#643) * #581 Added new setting to disable dragging files inside the app * addressed CR findings and changed the title and the default value * changed variable name for prevent dragging files and folders * - update SDK - adapt BookmarkViewController to latest OCBookmarkManager usage patterns - improve Illustrator ".ai" support - override for failing iOS MIMEType -> UTI conversion in FileProvider (-> fix grayed out items in Files app) - add "application/illustrator" mime type to PDFViewerViewController to allow viewing Illustrator files in-app - improved sorting - replace "type" with "kind" to match Files app and change method: - sort by type (folder / file) - if identical: sort by suffix (with fallback to MIMEType if no suffix is available) - if identical: use "_various" for comparison * Using creationDate instead of modificationDate (#668) Change shall avoid upload of duplicated photos since e.g. modificationDate can change if the photo was edited. Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * Update documentation to reflect changes in instant photo upload (#677) * Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900.Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900. * Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900.Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900. * Update docs/modules/ROOT/pages/ios_task_scheduling.adoc Co-Authored-By: Phil Davis <[email protected]> * Update docs/modules/ROOT/pages/ios_task_scheduling.adoc Co-Authored-By: Phil Davis <[email protected]> * Changed documentation to reflect changes in instant photo upload Co-authored-by: Matthew Setter <[email protected]> Co-authored-by: Matthew Setter <[email protected]> Co-authored-by: Matthew Setter <[email protected]> Co-authored-by: Phil Davis <[email protected]> Co-authored-by: Michael Neuwert <[email protected]> * [feature/improve-public-link-creation] Improve creation of public link (#673) * #671 Improve creation of public link - enable dragging public link - added clear button on public link name - copy link to clipboard, after link was created * - added in-app notifications to the app - show a notification if a public or private link was copied to the clipboard * implemented own notification banner class to show in-app notifications without a need of local notification permissions * resolved crash * - implemented own animator class - renamed class - added completion handler on dismissal - added shadow * [fix/audio-stop-playing] Stop playing Audio when item loosing focus (#686) * #683 fix stop playing audio, when scrollview was swiped to next item, play again, when come back to the audio item * moved code to given delegate methods * [fix/round-shape-button] Fix round shape for pin code buttons (#689) * #654 bring back the round shape to the button, after changes in super class * added a new enum type to set corner radius with enum values * [feature/folders-first] Option to show folders at the top (#680) * - add "Show folders at the top" option in Settings - fix DisplaySettings change propagation within the same process (relevant when using multiple scenes on iPadOS) - restructure SortMethod and add support to show folders at the top for all sort methods * - Update CONFIGURATION.md to include new and previously undocumented configuration options * [feature/resign-script] Resign Script (#690) * Resign script with instructions how to resign an IPA file with an other certificate and provisioning profiles * Using correct markdown format * changed formatting for better readability * Updated readme file * changed new lines * changed formatting * changed formatting * changed wording * - changed folder structure - added a parameter check for the signing method * - show available certificate identities in usage - check provisioning profiles fingerprint if matches with signing identity fingerprint * [iOS] Open private link in app (#609) * Adapted to latest SDK changes in develop branch * Implemented support for private links - Support for opening links using custom URL scheme owncloud:// - Support for associated domains added - Test associated domain configured * Some small fix for presenting linked item * Fixed an issue with universal links not being opened if the app was terminated in iOS13 * Triggering item download if necessary when core connection status changes to online * Added a comment requested in code review * Fixed build issues * Iterating through multiple bookmarks possibly related to same URL * Fixed review finding * Fixed various swift Lint findings * Fixed minor swift lint warnings * - Licensing: add finishTransaction call for SKPaymentTransactionStateRestored transactions * Fixes an issue with private link not being opened This would happen in case user has kept opened a card with actions (via 3 dots button) * Removed dead code and ensured that no item is opened at next launch if user returns to server list * Handling going back in state restoration * Added error message in case link can’t be resolved * Swiflit trailing space warnings fixed * - Update SDK to resolve issues * Made download dependant on state of the connection More reliable download mechanism for file previews: - Trigger download only if network connectivity is available - React to connection state changes * Fixed an issue with owncloud:// schemed links not opened * Trying to trigger download when network becomes available * Fixed swift lint warning * Avoiding multiple update of display view state * Updated to the latest SDK * Fixed an issue with DispatchGroup.leave() sometimes not being called * Adapted for a new connection status .connecting * Some swift lint warnings fixed * Some refactoring in the DisplayViewController * Tried to make DisplayViewController more maintenance friendly - Code restructuring - Handling of connection status - Re-worked view state handling - Tried to unwind some deeply nested hard to understand if conditions * Included a fix in the SDK which brings back missing parent OCItems * Showing “Connecting…” before OCCore switches connection status to online * Several small changes * Improved private link handling - Refactored to avoid unnecessary code duplication - Improved error messages - Showing progress HUD while link is being resolved since it might take time espeially with multiple configured bookmarks and so on * Updated to the develop/latest SDK revision * Changed how error message is chosen if the item for private link is not found * Using OCCoreConnectionStatusSignal instead of OCCore.connectionStatus * Fixed “Connecting…” visual glitch and added spinner shown while connecting * Fixed opening of app registered scheme on iOS13 As well as eventually a bug concerning file imports in case the app was not launched * Added a delay for iOS 12.x for the private link resolution So when the root view controller is instantiated it might already start some operations like opening a root of bookmark etc. Otherwise it would probably require some complex coordination managed centrally. On iOS 13 such hack would be unnecessary since there UIApplicationDelegate callbacks are not used anymore. * Improvement for QA finding If the bookmark to which private link has pointed is not configured, wrong error message has been shown * Fixed an issue with incorrect error message being shown In case item was removed * Fixed an issue with file previews - Not downloading by default if file can’t be previewed - Downloading and opening files which can be previewed by QLPreviewController * Fixed an issue with renderSpecificView() called at inapropriate time Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Felix Schwarz <[email protected]> * new version and build number * - Update SDK to add latest SDK HTTP request/response logging improvements * Fixed some issues with VoiceOver / accessibility labels (#701) * Set accessibility properties on the actions menu drag handle * Fixed accessibility label for the favorite / unfavorite button * Fixed wrong order of accesibility labels for star button (favorite) * Added accesibility label for button activating multiple item selection * Added proper accessibility labels to the toolbar items * added mouse pointer hover effect to drag view Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * - Update SDK to add preliminary/experimental TUS support * show view controllers as formSheet, because fullscreen is to large for this small view on the iPad * Take Photo or Video and Upload (#707) * First draft of take photo and upload feature * Don’t allow image editing when taking new pic * Next iteration of “Take photo or video” - Preserving image meta-data - Conversion HEIC -> JPEG depending on media upload settings - Conversion MOV -> MP4 - Localized action name * Fixed media naming and added some error logs * Some cosmetic code changes * Changed keyboard shortcut to Cmd+Shift+3 * Added logs to camera upload action * Added progress hud in case photo / video export would take longer * Added more logs * Added a check for HEIC support Warning added to the log in case HEIC is not supported Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * - update SDK to include JSON logging options - add Xcode scheme env var templates to simplify testing * [feature/contextual-menu] Contextual Menu for File List Items (#718) * Correct some typos (#620) Fix small errors in typos Co-authored-by: Matthias Hühne <[email protected]> * add extra check in release checklist, to avoid missing translations in some languages (#640) Co-authored-by: Matthias Hühne <[email protected]> * Fix docs build errors (#666) Co-authored-by: Matthias Hühne <[email protected]> * #717 Implemented a contextual menu for the file list which includes the same items as the more menu card * - UIMenu title removed - use table row label color as image tint color (UIMenu background color is wrong in simulator and dark mode) * solved tint color problems for UIAction icon * fixed wording and localization Co-authored-by: Carlos Damken <[email protected]> Co-authored-by: Jesús Recio <[email protected]> Co-authored-by: Matthew Setter <[email protected]> * Fix for the resign script (#721) - Do not embed entitlements into library binaries when signing frameworks. Otherwise leading to validation issue with AppStore Connect. - Set NSExtensionFileProviderDocumentGroup to appropriate app group. This was missing Co-authored-by: Michael Neuwert <[email protected]> * Another fix for resigning script Delete tmp.plist after it is no longer being used, otherwise leads to ITMS-90048 Bundle is invalid. * Support changing the format of uploaded image file names (#687) * Improved various aspects of media uploads - Changed a way how assets are exported which photo uploads significantly faster - Refactored PHAsset+Upload.swift extensions which is now way more readable. - Improved naming of assets - Changed default naming of uploaded assets to the scheme legacy app was using - Added an option allowing to preserve “original” asset names as used by iOS photo library - Prepared code for future enhancments (exporting additional assets like RAW images and live photo video clips * Localization of strings and other tiny changes * Made a mechanism deriving original media asset name more reliable * Fixed requesting image data * Using PHAsset.creationDate as lastModifiedDate when uploading media asset The timestamp is then set into corresponding property in the WebDAV request allowing to have proper file creation date when uploaded to oC server instance. * Picking edited version of the photo when uploading by default * Moved files around to have a cleaner structure in Xcode * Using PHAssetResourceManager for export whenever possible * Fixed small issues * Corrected some comments * Fixes issue (1) found in QA testing Fixed duplicated .MP4 extension when uploading videos Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Felix Schwarz <[email protected]> * Fixed 1.4 branch * - update SDK to include tus creation-with-upload support - add additional env parameters for logging, auth methods * - update SDK to fix infinite loops when hitting a redirect or certificate issue, eliminating redundant issues, respecting and remembering choices to either retry or put the connection offline * [fix/various] Various fixes (#713) * - FileProvider: extend hardcoded MIME/Suffix -> UTI maps so files of these types are properly displayed in the Files app * - add new ItemContainer protocol allowing the retrieval of an item from another object - UIImageView+Thumbnails - fix item version comparison for thumbnails requested from the SDK (using ItemContainer) - add item version comparison for thumbnails generated locally via QLThumbnailGenerator (using ItemContainer) * - Update SDK * - sharing items will be shown as subsection in contextual menu - only show sharing items, if sharing is enabled and core is online * changed image for rename menu item to pencil on > iOS 13 * Fixes for markup and PDF viewer (#730) * Activate editing mode in viewDidAppear() Sort of a hack but there is apparently no other way of achieving this * Display more button in the PDF viewer. Preserving already configured UIBarButtonItem instances when adding more button. * Re-rendering content if it has got modified locally E.g. user could open markup editor and scribble on picture or PDF. Without this fix, he would need to go back to the file list and re-open document to see the changes. * Fix for auto-tapping markup button Co-authored-by: Michael Neuwert <[email protected]> * fixes malformed file * fixed code signing: - use entitlements from app binary instead of provisioning profile - set app values from provisioning profile to entitlements file - only set NSExtensionFileProviderDocumentGroup for File Provider extension * Include new dialog to encourage users to add a new app review in App Store (#728) * Added all bits and pieces for app review request * Fix for a review task not being run * Changed the way review prompt is presented * Fixed review findings * Corrected sign of time interval properties * Another sign for time interval corrected * Corrected the way review is requested Co-authored-by: Michael Neuwert <[email protected]> * [feature/auth-migration] Authentication Method Migration (#682) * - OCBookmark+Extension - clean up OCBookmarkUserInfoKeys and move them to their own extension - add new OCBookmark.scanForAuthenticationMethodsRequired to mark bookmarks as needing a scan for available auth methods before editing - BookmarkViewController - add support for OCBookmark.scanForAuthenticationMethodsRequired - ClientRootViewController - add scan for available authentication methods once when encountering an authorization error - rename "Ignore" to "Continue offline" - extend ClientRootViewControllerAuthenticationDelegate to include preferredAuthenticationMethods - prepare for inline authentication data (username + password - or - tokens) gathering in the next step * - Client: add support for handling auth failures inline, without dropping out of the connection: - ClientAuthenticationUpdater - offers high-level abstraction - ties together token-/web-based auth UI and password-based auth UI (ClientAuthenticationUpdaterViewController) - ClientAuthenticationUpdaterViewController - view controller specialized in requesting a password from the user * - Update SDK * - ClientRootViewController: add support for OCCoreConnectionStatus.connecting * - Update SDK * - ClientAuthenticationUpdater: add check for .preferredAuthenticationMethodIdentifiers to .canUpdateInline - ClientRootViewController: add support for plain HTTP bookmarks to authentication method scan - add additional logging Co-authored-by: Matthias Hühne <[email protected]> * iOS13 gesture based multiple selection (#734) * iOS13 gesture based multiple selection - In file list view (2 finger pan) - In photo selection grid view (1 finger or 2 finger pan) * Disable gesture based multi-selection if prevent dragging optin is active * changed option title and added a subtitle with a short description * using better wording Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * [feature/emm] EMM version support (#706) * Add EMM support: - new OCLicenseEMMProvider - unlocks all pro features if the main bundle ID (as found in the app's or app extension's Info.plist) ends with either "-emm" or ".emm" - OCLicenseEMMProvider.isEMMVersion provides information on whether the app is an EMM version - Licensing Setup: if the app is an EMM version, no App Store IAP provider is set up/added - Settings: for EMM versions, don't show the "Pro Features" or "Purchases" entries * - added new fastlane lane to build a emm version of the iOS app - using the new fastlane file from migration bundle-id branch * init fastlane deliver action to get the current metadata from the app store to prepare for different apps uploads (regular iOS app and EMM version) * new fastlane action to parse the release notes plist file * - new fastlane lane too upload regular and emm iOS build to the AppStore, before release note, screenshots can be created automatically - new fastlane action to generate the release notes from the ReleaseNotes.plist - added new options for fastlane lane * show suffix "EMM" on settings, support mail, when the app was a EMM build * - fixed signing issues - changed copyright date - removed app name metadata template, because of conflicts when using different apps - updated release notes * - added app icon for emm version - exchange app icon with emm version before building - added a description.txt metadata file for emm app version * - added app icon for emm app (AppStore Connect upload) - moving description and app icon for metadata upload - uncomment code after testing * new app icon for emm version * fixed app icon dimensions * using function from OCLicenseEMMProvider * enable binary upload on deliver action for emm build * using newest SDK, to prevent using UIWebView * updated app version number Co-authored-by: Matthias Hühne <[email protected]> * Removed test configuration of associated domains * Instant Uploads part II + more (#714) * Improved various aspects of media uploads - Changed a way how assets are exported which photo uploads significantly faster - Refactored PHAsset+Upload.swift extensions which is now way more readable. - Improved naming of assets - Changed default naming of uploaded assets to the scheme legacy app was using - Added an option allowing to preserve “original” asset names as used by iOS photo library - Prepared code for future enhancments (exporting additional assets like RAW images and live photo video clips * Localization of strings and other tiny changes * Made a mechanism deriving original media asset name more reliable * Fixed requesting image data * Using PHAsset.creationDate as lastModifiedDate when uploading media asset The timestamp is then set into corresponding property in the WebDAV request allowing to have proper file creation date when uploaded to oC server instance. * Picking edited version of the photo when uploading by default * Moved files around to have a cleaner structure in Xcode * Using PHAssetResourceManager for export whenever possible * Fixed small issues * Corrected some comments * Some small refactoring changes * Add support for cellular transfer settings - rename StorageSettingsSection to DataSettingsSection to extend scope - add row and cellular transfer summary to DataSettingsSection - add new CellularSettingsViewController to present and allow control over cellular settings * - Update SDK with cellular switch improvements * - Update SDK to adjust concurrency budgets for sync action so that wifi-only up-/downloads can't block cellular up-/downloads entirely * Moved media upload settings into separate view - New view for media upload settings - Split settings into sections: Export, Auto Upload - Changed appearance of the Upload Path setting - Code refactoring changes * Fixed swift lint warning * Added cellular switch for media uploads * Separate configuration for video auto-upload Added posibility to select different account / path for video auto-uploads * Fixed small issue in video upload * Improved the UX for photo album view in upload - Improved the way thumbnails are requested - While view is active thumbnails for albums are cached - Added activity indicator which is shown while albums are being fetched from photo library * Uploading media from iCloud - Showing cloud based photo albums in the selection UI - Ability do upload media which is not available locally * Improved vide exporting code * Showing camera roll first in list of albums * Refactored the method for asset fetching into separate extension * Media upload queue refactoring - More modular design and more maintainable code - Started using OperationQueue for individual imports and created dedicated Operation subclass * Forgot to add license header * Small tweaks in media upload queue - Changed import queue QoS to utility - Added another cancellation point for MediaUploadOperation * Configured main thread checker not to stop on first hit * Background media uploads - Improved and extended settings UI - Using both BackgroundTasks and background location to enable background media uploads - Local notifications informing about background uploads * Fixed few issues concerning auto-upload settings * Fixed some issues and added cellular switch for videos - Some code refactoring in PHAsset export code - Calling the upload completion handler when placeholder item is created allowing MediaUploadQueue to proceed * Fixed an issue with photoLibraryChangeDetected flag reset at inappropriate time * Improved wording in background upload settings * Refactored local notifications in separate category * Fixed swift lint warnings * Cleaned up code * Improved task scheduling code * Re-added AVAsset extension * Don’t show auto-upload settings if no accounts are configured * Small improvements - Wording for background location on iOS13 changed - Added cell identifiers for easier creation of UI tests * Fix of UI test was necessary since settings have moved * Additional test for auto-upload settings added * Fixed remaining failing UI tests * Implemented CLLocationManagerDelegate error callback * Re-applied a fix lost during merging * Changed a way location tracking is initiated - Start when app is going into background - Stop when app is foreground - Switch from significant location to visit monitoring * Fixed review findings * Removed a WiFi requirement from pending media upload task * Removed some unused code * Added more logs * - add experimental option to force-enable background NSURLSession usage in the app - in code, change all instances of the usage of the term "master" to "main" * Removed an option allowing background NSURLSession * Change the way background upload settings behave * Removed background upload settings Commented out and added a TODO * Fixed some swift lint warnings * Fixed review finding * Only show bookmark / path if instant upload is enabled Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Felix Schwarz <[email protected]> * [feature/cellular-switch] Cellular transfer options (#709) * Correct some typos (#620) Fix small errors in typos Co-authored-by: Matthias Hühne <[email protected]> * Add support for cellular transfer settings - rename StorageSettingsSection to DataSettingsSection to extend scope - add row and cellular transfer summary to DataSettingsSection - add new CellularSettingsViewController to present and allow control over cellular settings * - Update SDK with cellular switch improvements * - Update SDK to adjust concurrency budgets for sync action so that wifi-only up-/downloads can't block cellular up-/downloads entirely * - Update SDK with new prefixed-HTTP/single-line logging options - Add new scheme options to selectively turn off single-line and prefixed HTTP logging * - Update SDK to include logging improvements * add extra check in release checklist, to avoid missing translations in some languages (#640) Co-authored-by: Matthias Hühne <[email protected]> * - Update SDK * - in code, change all instances of the usage of the term "master" to "main" - update SDK * - removal of iOS 11 support (including SFAuthenticationSession) and updating to iOS 12+ APIs, adaption of docs where needed - migration from MobileCoreServices to CoreServices - drop deprecated serialization APIs in AppLockManager and FileProvider - Cellular Options - display a message if cellular transfers have been disabled via MDM - adopt updated SDK to include cellular option improvements * - Update message in Cellular Settings and dynamically show/hide it depending on whether the main switch is enabled or not Co-authored-by: Carlos Damken <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> Co-authored-by: Jesús Recio <[email protected]> * [feature/app-version-clipboard] App Version Infos to Clipboard (#741) * #740 moved app version infos from footer to a row to perform a copy action to the clipboard with app version infos * - fixed localization - removed unneeded completion block * removed target ownCloud File Provider UI, because this was never used Deletion of this target solves a problem when building with fastlane (code signing error) * [fix/missing-file-list-actions] Implements missing actions in Quick Access file list (#743) * #733 some actions like contextual menu, multiple selection and swipe actions was missing in the generic file list class. Moved missing code to super class or super-super class. * moved table view row swipe actions to parent class * [feature/message-queue] Message Queue to allow flexible handling of issues and messages (#662) * - ClientRootViewController: do not add dot to the end of the short connection status description if it already has one - UIImageView+Thumbnails: fix retain loop, leading to leaking an OCCore - and all possible issues relating to that * - Update to latest SDK * - Update SDK and adapt ProgressSummarizer for new event type * - Fix core-stop-blocking share reload query retain loop via SDK update * - add permission checks to CreateFolderAction, DeleteAction, DocumentEditingAction, MoveAction, RenameAction, ScanAction and UploadBaseAction, so they are unavailable if permissions aren't sufficient for their usage - add alert to inform the user that no actions are available in cases where no actions are available for a folder and the user presses the folder action "+" button * - Update SDK * fixed QA finding (1) #623 * Fix for QA issue (2) Media upload settings shall not allow selection of the upload folder which lacks required Permissions * #623 QA finding (6) allow Markup it at least one permission is available and restrict save actions to available permissions * - address issue (1) using ActionContext.query.rootItem * OCCore+Extension.swift: - remove items from OCShareQueries where they are not used by the core to avoid warnings in the log - add option for partial matches to sharesSharedWithMe() via allowPartialMatch option PublicLinkTableViewController.swift: - take advantage of allowPartialMatch option - determine share nested the deepest to determine permissions (fixes finding 84) in #632 * - Update SDK * - avoid using ":", "/" and "\" in localized time stamp of auto-created file names for document scanning, using "-" instead - update SDK * - DisplayViewController - make sure content is updated as new versions become available (fixing #630) - FileProvider - make use of new SDK OCClaimLockTypeRead to encourage automatic file updates for opened files - SDK update * - Update SDK * - Update SDK * - DisplayViewController: - update for local changes, tracking the last modified date of the local file - source:didSet: remove duplicate/out-of-sync checks * - EditDocumentViewController: fixing tabs, refresh when source file changes - DisplayViewController: clarify code, add debug output - OCItem+Extension: new OCItem.contentDifferent(than:core:) to determine whether the content of an item has likely changed based on two OCItem, based on identifiers and size, adapt OCItem.displaysDifferent(than:in:) to use the new method. * - Change method to refresh QLPreviewController to .reloadData() as it works more reliable * - Update SDK * - Initial support for message queue * - wrote down UI integration ideas * - ownCloudApp framework - NotificationManager: provides necessary infrastructure for local notifications - NotificationMessagePresenter: an OCMessagePresenter using local notifications - File Provider - temporarily drop all early-error-catching code to allow debugging messages - Client - ClientActivityViewController: added support for display of OCMessages - ClientRootViewController: - added notificationPresenter and issueMessagePresenter - added presentAlertAsCard(viewController:withHandle:dismissable:) to present view controllers using the alertQueue - rewrite MessageCell to use the new AlertView instead - Messages - AlertView and AlertViewController provide alert views suitable for showing as a card or inline in a table - CardIssueMessagePresenter: an OCMessagePresenter presenting messages as a card - SyncIssueMessagePresenter: an OCMessagePresenter bridging messages to the legacy OCIssue interface - ServerListTableViewController: provide option for auto resolution using a particular error - Fixes - MediaUploadQueue: fix deadlock and make sure the tracking doesn't stop prematurely (also resulting in a deadlock) - ProgressSummarizer: fix dangling pointer warning * - Update SDK to incorporate ocis OIDC change * Various fixes: - SwiftLint: add implicit_getter to disabled_rules as it is broken and produces false positive warnings - MediaUploadQueue: fix deadlock and avoid premature end of tracking (resulting in a hung/dysfunctional app) - ProgressSummarizer: fix warning - FileProviderExtension: adopt new lock type API * - Update SDK to include OCAuthenticationMethodOpenIDConnect changes for ocis * - WebViewDisplayViewController: add support for content updates, clean up code - PreviewViewController: add support for content updates, clean up code * - ImageDisplayViewController: add support for image file updates - MediaDisplayViewController: fix indentation - PDFViewerViewController: add support for file updates, fix indentation * - CardIssueMessagePresenter: option to only show one message at once * - Update SDK for latest improvements * - AppDelegate: register notification categories at launch - ClientRootViewController: add and remove presenters at core start/stop - RoundedLabel: clean up and add styling support via Style struct and switch all usages of RoundedLabel over to new syntax - ServerListTableViewController - track message count on a per-bookmark basis - update app icon badge count - broadcast change notifications - ServerListBookmarkCell: add message count badge - DisplayHostViewController & QueryFileListTableViewController: stop observation of OCQuery.state before stopping OCQueries - MessageSelector: make filtering optional to allow for usage without filtering - NotificationManager - add support to create and register notification categories based on registered OCSyncIssueTemplates - add support for routing and handling notification responses via ComposeNotificationIdentifier() and NotificationResponseHandler category - NotificationMessagePresenter: implement NotificationResponseHandler category to feed back notification responses to OCMessageQueue * - ClientRootViewController: rename card message presenter var - ClientSessionManager: new class to keep track of active client sessions and route messages for presentation. All ClientRootViewController instances should henceforth be created through it - CardIssueMessagePresenter: add bookmark UUID to .identifier and adapt to new presentation completionHandler - ServerListTableViewController - add support for ClientSessionManager delegation - add support for presenting messages after successful login - SyncIssueMessagePresenter: add bookmark UUID to .identifier and adapt to new presentation completionHandler - NotificationMessagePresenter - add bookmark UUID to .identifier and adapt to new presentation completionHandler - implement endPresentationOfMessage to remove notifications for removed messages - add support for taps on notifications * - SDK update - ClientSessionManager: change showMessage(notification:) and ClientSessionManagerDelegate from binary to based on priorities - AlertView and AlertViewController: add optional header view and label - CardIssueMessagePresenter: show bookmark .shortName as header for messages not belonging to the presenter's bookmark - SceneDelegate and ThemeWindow: tracking which window is visible and in foreground - ServerListTableViewController > ClientSessionManagerDelegate: - take foreground status into account when computing the presentation priority - add support for presenting messages from other accounts, based on foreground status and availability of "unused" scenes * - Update SDK * Add support for grouping messages: - new MessageGroup class to store messages in groups - MessageGroupCell replaces MessageCell - improve performance - add alternative layout for groups with more than one message: - switch to apply a choice to more than one message; badge count if switch is on - button to show all messages - extend MessageSelector with support for maintaining MessageGroups - MessageTableViewController to show messages as a list of individual messages * - Update SDK * - Update SDK * - remove SyncIssueMessagePresenter as it is not used - show messages only if they haven't already been resolved (previously shown until removed from the queue) - update code to use OCMessage properties rather than OCMessage.syncIssue, replacing OCSyncIssue dependant code whereever possible - add MessageQueueExample.swift to show how to use OCMessageQueue from within the app - fix bug where messages without categoryIdentifier would be grouped together * FileProvider changes: - re-instate local error handling for creation of folders in the File Provider - add support for class settings to disable local error handling for test purposes * - bring up an alert if a new folder is attampted to be created in a location where another item with the same name already exists - add support for providing a title to the namecheck/validation result in NamingViewController * - OCMessage+Extension: convenience method to simplify presentation of OCMessages in the app - move MessageSelector from ClientActivityViewController to ClientRootViewController for joint access from different parts of the app - MessageSelector: add option to also collect and update a Set of OCSyncRecordIDs found in active messages - ClientActivityCell + ClientActivityViewController: add support to show tappable warning sign instead of progress indicator if a message for the activity's sync record ID has been found - ClientItemCell + FileListTableViewcontroller/ClientQueryViewController: add support to show tappable warning sign instead of progress indicator or more button if a message for the item's active sync record IDs has been found * - Remove unused code from SDk * - display "All done" message in Status tab when there are no messages or activities going on * - Fix review findings * - more nuanced status message in case of pending issues * - Adding key command support to AlertViewController * - remove duplicate/reunify diverged code in "ownCloudAppShared/SDK Extensions/OCItem+Extension.swift" and "ownCloud/SDK Extensions/OCItem+Extension.swift" - move app-specific code to OCItem+AppExtension.swift - update ownCloudAppShared/SDK Extensions/OCItem+Extension.swift with all changes - optimize speed of: - OCItem+Extension.isShareRootItem() by checking only the parent item and cache the result for the duration of the runloop iteration - OCItem+Extension.shareRootItem(from:) by wrapping all SQLite lookups into a single transaction, avoiding unnecessary idle/wait time * - Update SDK to add Cancel option for uploads * - Add initial call to (re)set app icon count in case the app got deleted with messages but kept the count upon reinstall * - Address finding (5) in #662 via SDK update ("ugly" authentication error message) * - Extensions / Categories: - move OCBookmark.userName, .displayName and .shortName to ownCloudApp.framework so it becomes available to the NotificationMessagePresenter - NotificationManager: - extend NotificationManager to provide equivalents for relevant methods of UNUserNotificationCenter - change all usages of UNUserNotificationCenter to NotificationManager - NotificationMessagePresenter: - add account information to notifications - only add account information if the user has more than one account in the app - Update SDK * - Update SDK to address (6) * - fix finding (6) glitch where message/warning icons wouldn't disappear when resuming a download or upload * - Update SDK * - Update SDK Co-authored-by: Matthias Hühne <[email protected]> Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * - Update SDK to develop (now containing all changes from feature/message-queue) * - Fix static analyzer warnings * - Update SDK to fix owncloud/enterprise#4053 and owncloud/ios-app#732 * - Update SDK * [feature/branding] Branding / Static Login support (#637) * - New Static Login - StaticLoginBundle: container for all Static Login parameters - StaticLoginProfile: individual parameters for a Static Login - StaticLoginViewController: WIP implementation for a Static Login UI - Theme extensions - UIButton support - ThemeStyleIdentifier typealias for more expressive APIs - Static Table View - added support for headerView and footerView of section * - Add closeHandler-support to ClientRootViewController to run a block when a connection is closed by the user - Fix crash in OCItem+Extension.lastModifiedInReadableFormat by adding a missing check - Make sure ProgressHUDViewController.dismiss() always calls the completion block - ServerListTableViewController enhancements: - hasToolbar-property to turn the toolbar on/off - make initialization with XIB optional - add showModal(), didUpdateServerList() and openBookmark() hooks for subclasses - Add StaticLoginServerListViewController (ServerListTableViewController subclass) - Add "Done" button to SettingsViewController if it is used as the rootViewController - Add loginThemeStyleID to StaticLoginBundle - Make StaticLoginSetupViewController feature-complete - Add new ThemeView that can be used as container for ThemeAppliers that get removed automatically when the view is freed - Relocate FullWidthHeaderView and make it a ThemeView subview - Extend StaticTableViewSection.addButtonFooter() to support cancel-only versions - Add toolbar to StaticLoginViewController - Fix copyright notice formatting * New Iconset for iOS: Filetype Icons * Documentation for the app color scheme * markdown definition for color theme values * added links to type definitons * added color definition * added global colors * added color values for dark scheme * added light and classic color scheme * Preparing branding support with themes and colors from plist file * - using theme styles from plist file - using splash image in welcome view * set tint color for server list icon * Add example images * Change the color of the bookmark-logo * Change colors to match example-theme * use different icons * All colors are not customizable by setting the color in Theme.plist. If the key is not set in plist, the default value will be used. * fixed resolving theme color pair * Added appiconset and changes branding colors * Color adjustments and edited bookmark-logo * Add Surf logos and colors * setting new theme generic colors and reading them from keypath, if existing * Add Surf logos and colors * Add first SURF branding * removed iOS 13 code * Merge branch 'master' into Design * fixed broken project file * fixed broken plist file after merge * Cleanup after cherry-pick from Design branch * Add colors from SURF * Add changes to Fastfile from tag 1.1.0 * Comment out Themes tests * removed bookmark icon tint color * Add new bookmark-icon.png * Change the name to SURFdrive * changed app name in build settings instead of target name * customize search bar * Add new bookmark icon and polish color settings * Add new bookmark icon and polish color settings * Change the name to SURFdrive, again * - searchbar customization - theming delete button in pass code view * - Fix Swift and SwiftLint warnings - Remove unused UploadsSettingsSection (was replaced by MediaUploadSettings) * - adopted Fastfile to set the app name - added app name to Themes.plist - removed unneeded theme * set correct path in Fastfile * removed output name, because Bitrise expects other ipa name * using branded image for quick access tab * setting the placeholder color for UISearchBar text field in iOS 13 * check if app is branded, disable help and feedback, if branded app * - support for branded urls (help, privacy) - changed plist name * hide Theme settings for branded apps * using correct branding file name * added tint color for alert view labels * Branded App Name fixes * Using correct app name, if branded * Change spp name in extension targets for branded apps * - using newest SDK for custom User-Agent - setting CFBundleName by fastlane - fixed badge text bug, caused by pango version - updated Gems * Added a vendor setting, if an account can be added, in UI (can b * - changed AppName to use organizationNamer of Bundle in Branding.plist - added maxBookmarkCount - cleanup - bug fixing * - only show Feedback only for unbranded clients - Fastlane: use new plist value from bundle dictionary as appName - use correct logo image, without tint color - set custom logo in Branding.plist * added feedb…
* - set new version number/build number - enabled beta build * Configuration documentation updated * fixing toolbar color value for branded clients (was overridden before) * [feature/six-digits-passcode] 6 Digits Passcode (#1000) * [feature/filename-webui-layout] Web UI Filename Layout (#1001) * #968 Adopt the filename layout to the new WebUI: - bold file name 17px - nomal file extension 15px * added changelog entry * Calens changelog updated * changed from bold to semibold * fixed CR findings: - renamed methods - using UIFont.preferredFont instead of fixed font size points * Calens changelog updated Co-authored-by: hosy <[email protected]> * fixed segmented control tint color theming * [feature/pasteboard] Pasteboard Actions (#514) * 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 * Added new actions for Pasteboard: Copy, Cut, Import * - updated version and build number - enabled beta warning * - add support for direct theming of progress colors also for light and dark mode * using URL keyboard for configure up a branded server URL * localized missing string in sharing receipient search field * [fix/auto-page-scrolling] Auto Enable Page Scrolling in Detail View (#920) * [feature/align-bookmark-names] Align bookmark names with Android and web (#922) * [feature/prevent-sleep-detail-view] Presentation Mode (#893) * [feature/french-localization] French Localization (#927) * #4450 added french localization with latest translated strings from transifex * Calens changelog updated * Calens changelog updated Co-authored-by: hosy <[email protected]> * [feature/fileprovider-passcode-UI] File Provider Passcode UI (#881) * [feature/drag-drop-setting] Setting to disable dragging files inside the app (#643) * #581 Added new setting to disable dragging files inside the app * addressed CR findings and changed the title and the default value * changed variable name for prevent dragging files and folders * - update SDK - adapt BookmarkViewController to latest OCBookmarkManager usage patterns - improve Illustrator ".ai" support - override for failing iOS MIMEType -> UTI conversion in FileProvider (-> fix grayed out items in Files app) - add "application/illustrator" mime type to PDFViewerViewController to allow viewing Illustrator files in-app - improved sorting - replace "type" with "kind" to match Files app and change method: - sort by type (folder / file) - if identical: sort by suffix (with fallback to MIMEType if no suffix is available) - if identical: use "_various" for comparison * Using creationDate instead of modificationDate (#668) Change shall avoid upload of duplicated photos since e.g. modificationDate can change if the photo was edited. Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * Update documentation to reflect changes in instant photo upload (#677) * Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900.Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900. * Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900.Document task scheduling This relates to https://github.com/owncloud/ios-app/pull/484 and https://github.com/owncloud/docs/issues/1900. * Update docs/modules/ROOT/pages/ios_task_scheduling.adoc Co-Authored-By: Phil Davis <[email protected]> * Update docs/modules/ROOT/pages/ios_task_scheduling.adoc Co-Authored-By: Phil Davis <[email protected]> * Changed documentation to reflect changes in instant photo upload Co-authored-by: Matthew Setter <[email protected]> Co-authored-by: Matthew Setter <[email protected]> Co-authored-by: Matthew Setter <[email protected]> Co-authored-by: Phil Davis <[email protected]> Co-authored-by: Michael Neuwert <[email protected]> * [feature/improve-public-link-creation] Improve creation of public link (#673) * #671 Improve creation of public link - enable dragging public link - added clear button on public link name - copy link to clipboard, after link was created * - added in-app notifications to the app - show a notification if a public or private link was copied to the clipboard * implemented own notification banner class to show in-app notifications without a need of local notification permissions * resolved crash * - implemented own animator class - renamed class - added completion handler on dismissal - added shadow * [fix/audio-stop-playing] Stop playing Audio when item loosing focus (#686) * #683 fix stop playing audio, when scrollview was swiped to next item, play again, when come back to the audio item * moved code to given delegate methods * [fix/round-shape-button] Fix round shape for pin code buttons (#689) * #654 bring back the round shape to the button, after changes in super class * added a new enum type to set corner radius with enum values * [feature/folders-first] Option to show folders at the top (#680) * - add "Show folders at the top" option in Settings - fix DisplaySettings change propagation within the same process (relevant when using multiple scenes on iPadOS) - restructure SortMethod and add support to show folders at the top for all sort methods * - Update CONFIGURATION.md to include new and previously undocumented configuration options * [feature/resign-script] Resign Script (#690) * Resign script with instructions how to resign an IPA file with an other certificate and provisioning profiles * Using correct markdown format * changed formatting for better readability * Updated readme file * changed new lines * changed formatting * changed formatting * changed wording * - changed folder structure - added a parameter check for the signing method * - show available certificate identities in usage - check provisioning profiles fingerprint if matches with signing identity fingerprint * [iOS] Open private link in app (#609) * Adapted to latest SDK changes in develop branch * Implemented support for private links - Support for opening links using custom URL scheme owncloud:// - Support for associated domains added - Test associated domain configured * Some small fix for presenting linked item * Fixed an issue with universal links not being opened if the app was terminated in iOS13 * Triggering item download if necessary when core connection status changes to online * Added a comment requested in code review * Fixed build issues * Iterating through multiple bookmarks possibly related to same URL * Fixed review finding * Fixed various swift Lint findings * Fixed minor swift lint warnings * - Licensing: add finishTransaction call for SKPaymentTransactionStateRestored transactions * Fixes an issue with private link not being opened This would happen in case user has kept opened a card with actions (via 3 dots button) * Removed dead code and ensured that no item is opened at next launch if user returns to server list * Handling going back in state restoration * Added error message in case link can’t be resolved * Swiflit trailing space warnings fixed * - Update SDK to resolve issues * Made download dependant on state of the connection More reliable download mechanism for file previews: - Trigger download only if network connectivity is available - React to connection state changes * Fixed an issue with owncloud:// schemed links not opened * Trying to trigger download when network becomes available * Fixed swift lint warning * Avoiding multiple update of display view state * Updated to the latest SDK * Fixed an issue with DispatchGroup.leave() sometimes not being called * Adapted for a new connection status .connecting * Some swift lint warnings fixed * Some refactoring in the DisplayViewController * Tried to make DisplayViewController more maintenance friendly - Code restructuring - Handling of connection status - Re-worked view state handling - Tried to unwind some deeply nested hard to understand if conditions * Included a fix in the SDK which brings back missing parent OCItems * Showing “Connecting…” before OCCore switches connection status to online * Several small changes * Improved private link handling - Refactored to avoid unnecessary code duplication - Improved error messages - Showing progress HUD while link is being resolved since it might take time espeially with multiple configured bookmarks and so on * Updated to the develop/latest SDK revision * Changed how error message is chosen if the item for private link is not found * Using OCCoreConnectionStatusSignal instead of OCCore.connectionStatus * Fixed “Connecting…” visual glitch and added spinner shown while connecting * Fixed opening of app registered scheme on iOS13 As well as eventually a bug concerning file imports in case the app was not launched * Added a delay for iOS 12.x for the private link resolution So when the root view controller is instantiated it might already start some operations like opening a root of bookmark etc. Otherwise it would probably require some complex coordination managed centrally. On iOS 13 such hack would be unnecessary since there UIApplicationDelegate callbacks are not used anymore. * Improvement for QA finding If the bookmark to which private link has pointed is not configured, wrong error message has been shown * Fixed an issue with incorrect error message being shown In case item was removed * Fixed an issue with file previews - Not downloading by default if file can’t be previewed - Downloading and opening files which can be previewed by QLPreviewController * Fixed an issue with renderSpecificView() called at inapropriate time Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Felix Schwarz <[email protected]> * new version and build number * - Update SDK to add latest SDK HTTP request/response logging improvements * Fixed some issues with VoiceOver / accessibility labels (#701) * Set accessibility properties on the actions menu drag handle * Fixed accessibility label for the favorite / unfavorite button * Fixed wrong order of accesibility labels for star button (favorite) * Added accesibility label for button activating multiple item selection * Added proper accessibility labels to the toolbar items * added mouse pointer hover effect to drag view Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * - Update SDK to add preliminary/experimental TUS support * show view controllers as formSheet, because fullscreen is to large for this small view on the iPad * Take Photo or Video and Upload (#707) * First draft of take photo and upload feature * Don’t allow image editing when taking new pic * Next iteration of “Take photo or video” - Preserving image meta-data - Conversion HEIC -> JPEG depending on media upload settings - Conversion MOV -> MP4 - Localized action name * Fixed media naming and added some error logs * Some cosmetic code changes * Changed keyboard shortcut to Cmd+Shift+3 * Added logs to camera upload action * Added progress hud in case photo / video export would take longer * Added more logs * Added a check for HEIC support Warning added to the log in case HEIC is not supported Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * - update SDK to include JSON logging options - add Xcode scheme env var templates to simplify testing * [feature/contextual-menu] Contextual Menu for File List Items (#718) * Correct some typos (#620) Fix small errors in typos Co-authored-by: Matthias Hühne <[email protected]> * add extra check in release checklist, to avoid missing translations in some languages (#640) Co-authored-by: Matthias Hühne <[email protected]> * Fix docs build errors (#666) Co-authored-by: Matthias Hühne <[email protected]> * #717 Implemented a contextual menu for the file list which includes the same items as the more menu card * - UIMenu title removed - use table row label color as image tint color (UIMenu background color is wrong in simulator and dark mode) * solved tint color problems for UIAction icon * fixed wording and localization Co-authored-by: Carlos Damken <[email protected]> Co-authored-by: Jesús Recio <[email protected]> Co-authored-by: Matthew Setter <[email protected]> * Fix for the resign script (#721) - Do not embed entitlements into library binaries when signing frameworks. Otherwise leading to validation issue with AppStore Connect. - Set NSExtensionFileProviderDocumentGroup to appropriate app group. This was missing Co-authored-by: Michael Neuwert <[email protected]> * Another fix for resigning script Delete tmp.plist after it is no longer being used, otherwise leads to ITMS-90048 Bundle is invalid. * Support changing the format of uploaded image file names (#687) * Improved various aspects of media uploads - Changed a way how assets are exported which photo uploads significantly faster - Refactored PHAsset+Upload.swift extensions which is now way more readable. - Improved naming of assets - Changed default naming of uploaded assets to the scheme legacy app was using - Added an option allowing to preserve “original” asset names as used by iOS photo library - Prepared code for future enhancments (exporting additional assets like RAW images and live photo video clips * Localization of strings and other tiny changes * Made a mechanism deriving original media asset name more reliable * Fixed requesting image data * Using PHAsset.creationDate as lastModifiedDate when uploading media asset The timestamp is then set into corresponding property in the WebDAV request allowing to have proper file creation date when uploaded to oC server instance. * Picking edited version of the photo when uploading by default * Moved files around to have a cleaner structure in Xcode * Using PHAssetResourceManager for export whenever possible * Fixed small issues * Corrected some comments * Fixes issue (1) found in QA testing Fixed duplicated .MP4 extension when uploading videos Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Felix Schwarz <[email protected]> * Fixed 1.4 branch * - update SDK to include tus creation-with-upload support - add additional env parameters for logging, auth methods * - update SDK to fix infinite loops when hitting a redirect or certificate issue, eliminating redundant issues, respecting and remembering choices to either retry or put the connection offline * [fix/various] Various fixes (#713) * - FileProvider: extend hardcoded MIME/Suffix -> UTI maps so files of these types are properly displayed in the Files app * - add new ItemContainer protocol allowing the retrieval of an item from another object - UIImageView+Thumbnails - fix item version comparison for thumbnails requested from the SDK (using ItemContainer) - add item version comparison for thumbnails generated locally via QLThumbnailGenerator (using ItemContainer) * - Update SDK * - sharing items will be shown as subsection in contextual menu - only show sharing items, if sharing is enabled and core is online * changed image for rename menu item to pencil on > iOS 13 * Fixes for markup and PDF viewer (#730) * Activate editing mode in viewDidAppear() Sort of a hack but there is apparently no other way of achieving this * Display more button in the PDF viewer. Preserving already configured UIBarButtonItem instances when adding more button. * Re-rendering content if it has got modified locally E.g. user could open markup editor and scribble on picture or PDF. Without this fix, he would need to go back to the file list and re-open document to see the changes. * Fix for auto-tapping markup button Co-authored-by: Michael Neuwert <[email protected]> * fixes malformed file * fixed code signing: - use entitlements from app binary instead of provisioning profile - set app values from provisioning profile to entitlements file - only set NSExtensionFileProviderDocumentGroup for File Provider extension * Include new dialog to encourage users to add a new app review in App Store (#728) * Added all bits and pieces for app review request * Fix for a review task not being run * Changed the way review prompt is presented * Fixed review findings * Corrected sign of time interval properties * Another sign for time interval corrected * Corrected the way review is requested Co-authored-by: Michael Neuwert <[email protected]> * [feature/auth-migration] Authentication Method Migration (#682) * - OCBookmark+Extension - clean up OCBookmarkUserInfoKeys and move them to their own extension - add new OCBookmark.scanForAuthenticationMethodsRequired to mark bookmarks as needing a scan for available auth methods before editing - BookmarkViewController - add support for OCBookmark.scanForAuthenticationMethodsRequired - ClientRootViewController - add scan for available authentication methods once when encountering an authorization error - rename "Ignore" to "Continue offline" - extend ClientRootViewControllerAuthenticationDelegate to include preferredAuthenticationMethods - prepare for inline authentication data (username + password - or - tokens) gathering in the next step * - Client: add support for handling auth failures inline, without dropping out of the connection: - ClientAuthenticationUpdater - offers high-level abstraction - ties together token-/web-based auth UI and password-based auth UI (ClientAuthenticationUpdaterViewController) - ClientAuthenticationUpdaterViewController - view controller specialized in requesting a password from the user * - Update SDK * - ClientRootViewController: add support for OCCoreConnectionStatus.connecting * - Update SDK * - ClientAuthenticationUpdater: add check for .preferredAuthenticationMethodIdentifiers to .canUpdateInline - ClientRootViewController: add support for plain HTTP bookmarks to authentication method scan - add additional logging Co-authored-by: Matthias Hühne <[email protected]> * iOS13 gesture based multiple selection (#734) * iOS13 gesture based multiple selection - In file list view (2 finger pan) - In photo selection grid view (1 finger or 2 finger pan) * Disable gesture based multi-selection if prevent dragging optin is active * changed option title and added a subtitle with a short description * using better wording Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * [feature/emm] EMM version support (#706) * Add EMM support: - new OCLicenseEMMProvider - unlocks all pro features if the main bundle ID (as found in the app's or app extension's Info.plist) ends with either "-emm" or ".emm" - OCLicenseEMMProvider.isEMMVersion provides information on whether the app is an EMM version - Licensing Setup: if the app is an EMM version, no App Store IAP provider is set up/added - Settings: for EMM versions, don't show the "Pro Features" or "Purchases" entries * - added new fastlane lane to build a emm version of the iOS app - using the new fastlane file from migration bundle-id branch * init fastlane deliver action to get the current metadata from the app store to prepare for different apps uploads (regular iOS app and EMM version) * new fastlane action to parse the release notes plist file * - new fastlane lane too upload regular and emm iOS build to the AppStore, before release note, screenshots can be created automatically - new fastlane action to generate the release notes from the ReleaseNotes.plist - added new options for fastlane lane * show suffix "EMM" on settings, support mail, when the app was a EMM build * - fixed signing issues - changed copyright date - removed app name metadata template, because of conflicts when using different apps - updated release notes * - added app icon for emm version - exchange app icon with emm version before building - added a description.txt metadata file for emm app version * - added app icon for emm app (AppStore Connect upload) - moving description and app icon for metadata upload - uncomment code after testing * new app icon for emm version * fixed app icon dimensions * using function from OCLicenseEMMProvider * enable binary upload on deliver action for emm build * using newest SDK, to prevent using UIWebView * updated app version number Co-authored-by: Matthias Hühne <[email protected]> * Removed test configuration of associated domains * Instant Uploads part II + more (#714) * Improved various aspects of media uploads - Changed a way how assets are exported which photo uploads significantly faster - Refactored PHAsset+Upload.swift extensions which is now way more readable. - Improved naming of assets - Changed default naming of uploaded assets to the scheme legacy app was using - Added an option allowing to preserve “original” asset names as used by iOS photo library - Prepared code for future enhancments (exporting additional assets like RAW images and live photo video clips * Localization of strings and other tiny changes * Made a mechanism deriving original media asset name more reliable * Fixed requesting image data * Using PHAsset.creationDate as lastModifiedDate when uploading media asset The timestamp is then set into corresponding property in the WebDAV request allowing to have proper file creation date when uploaded to oC server instance. * Picking edited version of the photo when uploading by default * Moved files around to have a cleaner structure in Xcode * Using PHAssetResourceManager for export whenever possible * Fixed small issues * Corrected some comments * Some small refactoring changes * Add support for cellular transfer settings - rename StorageSettingsSection to DataSettingsSection to extend scope - add row and cellular transfer summary to DataSettingsSection - add new CellularSettingsViewController to present and allow control over cellular settings * - Update SDK with cellular switch improvements * - Update SDK to adjust concurrency budgets for sync action so that wifi-only up-/downloads can't block cellular up-/downloads entirely * Moved media upload settings into separate view - New view for media upload settings - Split settings into sections: Export, Auto Upload - Changed appearance of the Upload Path setting - Code refactoring changes * Fixed swift lint warning * Added cellular switch for media uploads * Separate configuration for video auto-upload Added posibility to select different account / path for video auto-uploads * Fixed small issue in video upload * Improved the UX for photo album view in upload - Improved the way thumbnails are requested - While view is active thumbnails for albums are cached - Added activity indicator which is shown while albums are being fetched from photo library * Uploading media from iCloud - Showing cloud based photo albums in the selection UI - Ability do upload media which is not available locally * Improved vide exporting code * Showing camera roll first in list of albums * Refactored the method for asset fetching into separate extension * Media upload queue refactoring - More modular design and more maintainable code - Started using OperationQueue for individual imports and created dedicated Operation subclass * Forgot to add license header * Small tweaks in media upload queue - Changed import queue QoS to utility - Added another cancellation point for MediaUploadOperation * Configured main thread checker not to stop on first hit * Background media uploads - Improved and extended settings UI - Using both BackgroundTasks and background location to enable background media uploads - Local notifications informing about background uploads * Fixed few issues concerning auto-upload settings * Fixed some issues and added cellular switch for videos - Some code refactoring in PHAsset export code - Calling the upload completion handler when placeholder item is created allowing MediaUploadQueue to proceed * Fixed an issue with photoLibraryChangeDetected flag reset at inappropriate time * Improved wording in background upload settings * Refactored local notifications in separate category * Fixed swift lint warnings * Cleaned up code * Improved task scheduling code * Re-added AVAsset extension * Don’t show auto-upload settings if no accounts are configured * Small improvements - Wording for background location on iOS13 changed - Added cell identifiers for easier creation of UI tests * Fix of UI test was necessary since settings have moved * Additional test for auto-upload settings added * Fixed remaining failing UI tests * Implemented CLLocationManagerDelegate error callback * Re-applied a fix lost during merging * Changed a way location tracking is initiated - Start when app is going into background - Stop when app is foreground - Switch from significant location to visit monitoring * Fixed review findings * Removed a WiFi requirement from pending media upload task * Removed some unused code * Added more logs * - add experimental option to force-enable background NSURLSession usage in the app - in code, change all instances of the usage of the term "master" to "main" * Removed an option allowing background NSURLSession * Change the way background upload settings behave * Removed background upload settings Commented out and added a TODO * Fixed some swift lint warnings * Fixed review finding * Only show bookmark / path if instant upload is enabled Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Felix Schwarz <[email protected]> * [feature/cellular-switch] Cellular transfer options (#709) * Correct some typos (#620) Fix small errors in typos Co-authored-by: Matthias Hühne <[email protected]> * Add support for cellular transfer settings - rename StorageSettingsSection to DataSettingsSection to extend scope - add row and cellular transfer summary to DataSettingsSection - add new CellularSettingsViewController to present and allow control over cellular settings * - Update SDK with cellular switch improvements * - Update SDK to adjust concurrency budgets for sync action so that wifi-only up-/downloads can't block cellular up-/downloads entirely * - Update SDK with new prefixed-HTTP/single-line logging options - Add new scheme options to selectively turn off single-line and prefixed HTTP logging * - Update SDK to include logging improvements * add extra check in release checklist, to avoid missing translations in some languages (#640) Co-authored-by: Matthias Hühne <[email protected]> * - Update SDK * - in code, change all instances of the usage of the term "master" to "main" - update SDK * - removal of iOS 11 support (including SFAuthenticationSession) and updating to iOS 12+ APIs, adaption of docs where needed - migration from MobileCoreServices to CoreServices - drop deprecated serialization APIs in AppLockManager and FileProvider - Cellular Options - display a message if cellular transfers have been disabled via MDM - adopt updated SDK to include cellular option improvements * - Update message in Cellular Settings and dynamically show/hide it depending on whether the main switch is enabled or not Co-authored-by: Carlos Damken <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> Co-authored-by: Jesús Recio <[email protected]> * [feature/app-version-clipboard] App Version Infos to Clipboard (#741) * #740 moved app version infos from footer to a row to perform a copy action to the clipboard with app version infos * - fixed localization - removed unneeded completion block * removed target ownCloud File Provider UI, because this was never used Deletion of this target solves a problem when building with fastlane (code signing error) * [fix/missing-file-list-actions] Implements missing actions in Quick Access file list (#743) * #733 some actions like contextual menu, multiple selection and swipe actions was missing in the generic file list class. Moved missing code to super class or super-super class. * moved table view row swipe actions to parent class * [feature/message-queue] Message Queue to allow flexible handling of issues and messages (#662) * - ClientRootViewController: do not add dot to the end of the short connection status description if it already has one - UIImageView+Thumbnails: fix retain loop, leading to leaking an OCCore - and all possible issues relating to that * - Update to latest SDK * - Update SDK and adapt ProgressSummarizer for new event type * - Fix core-stop-blocking share reload query retain loop via SDK update * - add permission checks to CreateFolderAction, DeleteAction, DocumentEditingAction, MoveAction, RenameAction, ScanAction and UploadBaseAction, so they are unavailable if permissions aren't sufficient for their usage - add alert to inform the user that no actions are available in cases where no actions are available for a folder and the user presses the folder action "+" button * - Update SDK * fixed QA finding (1) #623 * Fix for QA issue (2) Media upload settings shall not allow selection of the upload folder which lacks required Permissions * #623 QA finding (6) allow Markup it at least one permission is available and restrict save actions to available permissions * - address issue (1) using ActionContext.query.rootItem * OCCore+Extension.swift: - remove items from OCShareQueries where they are not used by the core to avoid warnings in the log - add option for partial matches to sharesSharedWithMe() via allowPartialMatch option PublicLinkTableViewController.swift: - take advantage of allowPartialMatch option - determine share nested the deepest to determine permissions (fixes finding 84) in #632 * - Update SDK * - avoid using ":", "/" and "\" in localized time stamp of auto-created file names for document scanning, using "-" instead - update SDK * - DisplayViewController - make sure content is updated as new versions become available (fixing #630) - FileProvider - make use of new SDK OCClaimLockTypeRead to encourage automatic file updates for opened files - SDK update * - Update SDK * - Update SDK * - DisplayViewController: - update for local changes, tracking the last modified date of the local file - source:didSet: remove duplicate/out-of-sync checks * - EditDocumentViewController: fixing tabs, refresh when source file changes - DisplayViewController: clarify code, add debug output - OCItem+Extension: new OCItem.contentDifferent(than:core:) to determine whether the content of an item has likely changed based on two OCItem, based on identifiers and size, adapt OCItem.displaysDifferent(than:in:) to use the new method. * - Change method to refresh QLPreviewController to .reloadData() as it works more reliable * - Update SDK * - Initial support for message queue * - wrote down UI integration ideas * - ownCloudApp framework - NotificationManager: provides necessary infrastructure for local notifications - NotificationMessagePresenter: an OCMessagePresenter using local notifications - File Provider - temporarily drop all early-error-catching code to allow debugging messages - Client - ClientActivityViewController: added support for display of OCMessages - ClientRootViewController: - added notificationPresenter and issueMessagePresenter - added presentAlertAsCard(viewController:withHandle:dismissable:) to present view controllers using the alertQueue - rewrite MessageCell to use the new AlertView instead - Messages - AlertView and AlertViewController provide alert views suitable for showing as a card or inline in a table - CardIssueMessagePresenter: an OCMessagePresenter presenting messages as a card - SyncIssueMessagePresenter: an OCMessagePresenter bridging messages to the legacy OCIssue interface - ServerListTableViewController: provide option for auto resolution using a particular error - Fixes - MediaUploadQueue: fix deadlock and make sure the tracking doesn't stop prematurely (also resulting in a deadlock) - ProgressSummarizer: fix dangling pointer warning * - Update SDK to incorporate ocis OIDC change * Various fixes: - SwiftLint: add implicit_getter to disabled_rules as it is broken and produces false positive warnings - MediaUploadQueue: fix deadlock and avoid premature end of tracking (resulting in a hung/dysfunctional app) - ProgressSummarizer: fix warning - FileProviderExtension: adopt new lock type API * - Update SDK to include OCAuthenticationMethodOpenIDConnect changes for ocis * - WebViewDisplayViewController: add support for content updates, clean up code - PreviewViewController: add support for content updates, clean up code * - ImageDisplayViewController: add support for image file updates - MediaDisplayViewController: fix indentation - PDFViewerViewController: add support for file updates, fix indentation * - CardIssueMessagePresenter: option to only show one message at once * - Update SDK for latest improvements * - AppDelegate: register notification categories at launch - ClientRootViewController: add and remove presenters at core start/stop - RoundedLabel: clean up and add styling support via Style struct and switch all usages of RoundedLabel over to new syntax - ServerListTableViewController - track message count on a per-bookmark basis - update app icon badge count - broadcast change notifications - ServerListBookmarkCell: add message count badge - DisplayHostViewController & QueryFileListTableViewController: stop observation of OCQuery.state before stopping OCQueries - MessageSelector: make filtering optional to allow for usage without filtering - NotificationManager - add support to create and register notification categories based on registered OCSyncIssueTemplates - add support for routing and handling notification responses via ComposeNotificationIdentifier() and NotificationResponseHandler category - NotificationMessagePresenter: implement NotificationResponseHandler category to feed back notification responses to OCMessageQueue * - ClientRootViewController: rename card message presenter var - ClientSessionManager: new class to keep track of active client sessions and route messages for presentation. All ClientRootViewController instances should henceforth be created through it - CardIssueMessagePresenter: add bookmark UUID to .identifier and adapt to new presentation completionHandler - ServerListTableViewController - add support for ClientSessionManager delegation - add support for presenting messages after successful login - SyncIssueMessagePresenter: add bookmark UUID to .identifier and adapt to new presentation completionHandler - NotificationMessagePresenter - add bookmark UUID to .identifier and adapt to new presentation completionHandler - implement endPresentationOfMessage to remove notifications for removed messages - add support for taps on notifications * - SDK update - ClientSessionManager: change showMessage(notification:) and ClientSessionManagerDelegate from binary to based on priorities - AlertView and AlertViewController: add optional header view and label - CardIssueMessagePresenter: show bookmark .shortName as header for messages not belonging to the presenter's bookmark - SceneDelegate and ThemeWindow: tracking which window is visible and in foreground - ServerListTableViewController > ClientSessionManagerDelegate: - take foreground status into account when computing the presentation priority - add support for presenting messages from other accounts, based on foreground status and availability of "unused" scenes * - Update SDK * Add support for grouping messages: - new MessageGroup class to store messages in groups - MessageGroupCell replaces MessageCell - improve performance - add alternative layout for groups with more than one message: - switch to apply a choice to more than one message; badge count if switch is on - button to show all messages - extend MessageSelector with support for maintaining MessageGroups - MessageTableViewController to show messages as a list of individual messages * - Update SDK * - Update SDK * - remove SyncIssueMessagePresenter as it is not used - show messages only if they haven't already been resolved (previously shown until removed from the queue) - update code to use OCMessage properties rather than OCMessage.syncIssue, replacing OCSyncIssue dependant code whereever possible - add MessageQueueExample.swift to show how to use OCMessageQueue from within the app - fix bug where messages without categoryIdentifier would be grouped together * FileProvider changes: - re-instate local error handling for creation of folders in the File Provider - add support for class settings to disable local error handling for test purposes * - bring up an alert if a new folder is attampted to be created in a location where another item with the same name already exists - add support for providing a title to the namecheck/validation result in NamingViewController * - OCMessage+Extension: convenience method to simplify presentation of OCMessages in the app - move MessageSelector from ClientActivityViewController to ClientRootViewController for joint access from different parts of the app - MessageSelector: add option to also collect and update a Set of OCSyncRecordIDs found in active messages - ClientActivityCell + ClientActivityViewController: add support to show tappable warning sign instead of progress indicator if a message for the activity's sync record ID has been found - ClientItemCell + FileListTableViewcontroller/ClientQueryViewController: add support to show tappable warning sign instead of progress indicator or more button if a message for the item's active sync record IDs has been found * - Remove unused code from SDk * - display "All done" message in Status tab when there are no messages or activities going on * - Fix review findings * - more nuanced status message in case of pending issues * - Adding key command support to AlertViewController * - remove duplicate/reunify diverged code in "ownCloudAppShared/SDK Extensions/OCItem+Extension.swift" and "ownCloud/SDK Extensions/OCItem+Extension.swift" - move app-specific code to OCItem+AppExtension.swift - update ownCloudAppShared/SDK Extensions/OCItem+Extension.swift with all changes - optimize speed of: - OCItem+Extension.isShareRootItem() by checking only the parent item and cache the result for the duration of the runloop iteration - OCItem+Extension.shareRootItem(from:) by wrapping all SQLite lookups into a single transaction, avoiding unnecessary idle/wait time * - Update SDK to add Cancel option for uploads * - Add initial call to (re)set app icon count in case the app got deleted with messages but kept the count upon reinstall * - Address finding (5) in #662 via SDK update ("ugly" authentication error message) * - Extensions / Categories: - move OCBookmark.userName, .displayName and .shortName to ownCloudApp.framework so it becomes available to the NotificationMessagePresenter - NotificationManager: - extend NotificationManager to provide equivalents for relevant methods of UNUserNotificationCenter - change all usages of UNUserNotificationCenter to NotificationManager - NotificationMessagePresenter: - add account information to notifications - only add account information if the user has more than one account in the app - Update SDK * - Update SDK to address (6) * - fix finding (6) glitch where message/warning icons wouldn't disappear when resuming a download or upload * - Update SDK * - Update SDK Co-authored-by: Matthias Hühne <[email protected]> Co-authored-by: Michael Neuwert <[email protected]> Co-authored-by: Matthias Hühne <[email protected]> * - Update SDK to develop (now containing all changes from feature/message-queue) * - Fix static analyzer warnings * - Update SDK to fix owncloud/enterprise#4053 and owncloud/ios-app#732 * - Update SDK * [feature/branding] Branding / Static Login support (#637) * - New Static Login - StaticLoginBundle: container for all Static Login parameters - StaticLoginProfile: individual parameters for a Static Login - StaticLoginViewController: WIP implementation for a Static Login UI - Theme extensions - UIButton support - ThemeStyleIdentifier typealias for more expressive APIs - Static Table View - added support for headerView and footerView of section * - Add closeHandler-support to ClientRootViewController to run a block when a connection is closed by the user - Fix crash in OCItem+Extension.lastModifiedInReadableFormat by adding a missing check - Make sure ProgressHUDViewController.dismiss() always calls the completion block - ServerListTableViewController enhancements: - hasToolbar-property to turn the toolbar on/off - make initialization with XIB optional - add showModal(), didUpdateServerList() and openBookmark() hooks for subclasses - Add StaticLoginServerListViewController (ServerListTableViewController subclass) - Add "Done" button to SettingsViewController if it is used as the rootViewController - Add loginThemeStyleID to StaticLoginBundle - Make StaticLoginSetupViewController feature-complete - Add new ThemeView that can be used as container for ThemeAppliers that get removed automatically when the view is freed - Relocate FullWidthHeaderView and make it a ThemeView subview - Extend StaticTableViewSection.addButtonFooter() to support cancel-only versions - Add toolbar to StaticLoginViewController - Fix copyright notice formatting * New Iconset for iOS: Filetype Icons * Documentation for the app color scheme * markdown definition for color theme values * added links to type definitons * added color definition * added global colors * added color values for dark scheme * added light and classic color scheme * Preparing branding support with themes and colors from plist file * - using theme styles from plist file - using splash image in welcome view * set tint color for server list icon * Add example images * Change the color of the bookmark-logo * Change colors to match example-theme * use different icons * All colors are not customizable by setting the color in Theme.plist. If the key is not set in plist, the default value will be used. * fixed resolving theme color pair * Added appiconset and changes branding colors * Color adjustments and edited bookmark-logo * Add Surf logos and colors * setting new theme generic colors and reading them from keypath, if existing * Add Surf logos and colors * Add first SURF branding * removed iOS 13 code * Merge branch 'master' into Design * fixed broken project file * fixed broken plist file after merge * Cleanup after cherry-pick from Design branch * Add colors from SURF * Add changes to Fastfile from tag 1.1.0 * Comment out Themes tests * removed bookmark icon tint color * Add new bookmark-icon.png * Change the name to SURFdrive * changed app name in build settings instead of target name * customize search bar * Add new bookmark icon and polish color settings * Add new bookmark icon and polish color settings * Change the name to SURFdrive, again * - searchbar customization - theming delete button in pass code view * - Fix Swift and SwiftLint warnings - Remove unused UploadsSettingsSection (was replaced by MediaUploadSettings) * - adopted Fastfile to set the app name - added app name to Themes.plist - removed unneeded theme * set correct path in Fastfile * removed output name, because Bitrise expects other ipa name * using branded image for quick access tab * setting the placeholder color for UISearchBar text field in iOS 13 * check if app is branded, disable help and feedback, if branded app * - support for branded urls (help, privacy) - changed plist name * hide Theme sett…
As a user, I want the possibility to send a file from an app to ownCloud iOS app to be uploaded to my ownCloud Sever.
Technical info:
We need to implemente the
Share extension
technical info at the Apple DocumentationAC:
Open to discussion:
The UI depends of this because we have here 2 options:
The text was updated successfully, but these errors were encountered: