Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[milestone/12.0] Version 12.0 (#1095)
* - SDK update to fix possible crash bug - address open/public Swift compiler warnings * - bump build number to 234 * - bump build number to 235 * Fix issues with ocis sharing: - respect OCCapabilities.federatedSharingSupported - GroupSharingTableViewController: fix delete share issue by calling the correct method * - bump version to 236 * - fix Xcode 14 warnings * - upgrade SDK - adapt to OCShare.itemType type change - replace UIImage(systemName:) code with one using OCSymbol - fix more Xcode 14 warnings * - update SDK to gain OCStatistic capabilities - ClientItemViewController: - implement support for "folder removed" state - adjust message spacing - refactor navigation bar code - add footer to display statistics for the current location, feeding from OCQuery-provided OCStatistics - prepare to also include quota information in the footer - update KNOWN_ISSUES.md * - ItemListCell: align separator layout guide with icon - ViewCell: add separatorLayoutGuideCustomizer to allow customization of separator layout guide for individual views - ClientItemViewController: add support to display quota information (space remaining) - UIView+EmbedAndLayout: add code to embed multiple views vertically, modify existing ConstraintSet type * - update SDK to gain fixed "Personal" and "Shares" names * - ios-sdk: OCSyncActionCopyMove: prevent copying and moving of items into themselves - ViewCell: fix seperatorLayoutGuide constraint on reuse (could cause visual glitch of full-length separator line when there shouldn't have been one) - update known issues * - SDK update to gain Accept-Language header addition for in-app web app presentation - ClientWebAppViewController: implement logic to immediately dismiss the view controller when tapping the close button, but keep the web view alive until the "close" event arrives from the webview - or 10 seconds have passed * - Action: add new class setting for excluded activities - OpenInAction: honor excluded activities, bring up UIActivityViewController instead of UIDocumentInteractionController even for a single item if activities are excluded - ownCloud.xcscheme: add env var example for action.excludedSystemActivities to block copying to pasteboard * - update SDK to bring over UUID-based Shares Jail detection * - bump build number to 237 * - StaticLoginSetupViewController: add OCConnection.connect() / .disconnect() to enrich bookmark with metadata and user name during setup. Required to present the correct UI for space-based accounts. * - bump build number to 238 * - fix "App Provider language always English" via ios-sdk update * - bump version to 239 * - update SDK for specific error message when trying to open a file that's being processed via open-web or open * - update SDK * - ClientSidebarViewController: side bar view controller - CollectionViewSection: add hideIfEmptyDataSource feature/property - ClientContext: add ViewControllerPusher protocol and methods for unifying pushing of view controllers to navigation / into view - OCDrive+Interactions, OCItem+Interactions, OCSavedSearch+Interactions: move to new ClientContext method for pushing * - CollectionViewController: - add support for hierarchic collection views and hierarchic data sources - add shouldDeselect() method - use snapshot.reconfigureItems() instead of snapshot.reloadItems() for more efficient updates (reuses cell rather than recreating it from scratch) - CollectionViewCellConfiguration: - add new sideBar StyleType - UIView+EmbedAndLayout: add AnchorSet and extend API to utilize it - many fixes * Snapshot with sidebar basically working, before making deeper changes - App Controllers - AppRootViewController: the root view controller of the entire app, manages sidebar and more - AppSidebarViewController: side bar view controller, managing the side bar / first view - Account Connection/Consumer classes - AccountConnection: manages a connection for the UI and makes its resources and message available to one or more consumers - AccountConnectionPool: creates new and keeps track of AccountConnection instances - AccountConnectionRichStatus: helper class to provide a consistent, simple, rich status for the whole account (wip) - AccountConsumer: group everything that is linked to an OCCore, allowing simple and clean addition and removal of consumers, providing a layer of separation/abstraction from UI concerns - Account Controller classes - AccountController: links AccountConnection to the UI, provides sidebar content for an account - AccountControllerSection: makes AccountController contents available as a CollectionViewSection - AccountControllerCell: provides a cell representation for an AccountController, providing an icon to disconnect ("eject") a connection - DriveListCell: add an icon for the sidebar, representing the (special) kind of drive - CollectionView: - CollectionSidebarViewController: extend ViewControllerNavigationPusher with sidebar view controller parameter - CollectionViewCellProvider+StandardImplementations: add cell provider for .sidebar style type - CollectionViewSection: - implement OCDataItem + OCDataItemVersioning protocol - improve support for handling dynamic updates in hierarchic layouts - CollectionViewController: - add support providing sections from an OCDataSource (just set .sectionsDataSource) - properly support per-section ClientContext (use section.clientContext if set) - OCDataItem+InteractionProtocols: add new, optional method to DataItemSelectionInteraction to provide control over whether an item should be selectable - OCLocation+Interactions: implement the DataItemSelectionInteraction - general: move many classes from ownCloud.app to ownCloudApp.framework - Temporary changes: - ClientRootViewController: semi-functional, intermediate version to validate side bar design, to be removed entirely - ClientTabBarController: see ClientRootViewController - SceneDelegate: move to AppRootViewController as root view controller * - move from UIImage(systemName:) to OCSymbol.icon(forSymbolName:) in most places - split AppSidebarViewController into framework (ClientSidebarViewController in ownCloudAppShared) and app (extension ClientSidebarViewController) parts and extend the implementation with settings and account creation toolbar items - BookmarkInfoViewController: add hook that gets called when the user taps "Done" and dismisses the view controller - BookmarkViewController: add extension with convenience method to set up and display the BookmarkViewController for editing and creating new bookmarks - OCBookmarkManager: - OCBookmarkManager+Management: extensions in app and framework to set up and display the BookmarkInfoViewController or delete an account, including confirmation by the user - OCBookmarkManager+Locking: move app-local locking of bookmarks to the ownCloudAppShared framework and extend on the concept with new attemptLock() method - AccountConnection: - add new .noCore status to differentiate it from .offline - make consumer optional for connect() and disconnect() - post AccountConnection.StatusChangedNotification notifications when .status changes - RichStatus: add property for labeling the interaction - AccountController: - add saved searches to the items data source - AccountControllerCell: listen to AccountConnection.StatusChangedNotification to update colored status indicator, fix other status reporting glitches - SavedSearchCell: add specific cell for .sideBar style - Navigation Revocations - new toolkit to detect when presented content has disappeared and provide a handling path (consult the respective README.md for details) - NavigationRevocationEvent: struct for a rich expression of events like disconnects, drive removals and more - NavigationRevocationAction: listen to events and perform an action once they find a matching event, lifetime can be to other objects - NavigationRevocationManager: global management of NavigationRevocationAction with memory semantics to allow automatic removal after a NavigationRevocationAction has become obsolete - NavigationRevocationTrigger: provides triggers for events such as specific items being removed from a datasource, objects being deallocated and more, can send a global event and/or invoke an action directly - UIViewController+NavigationRevocation: provide a simple API to register a view controller for revocation to common events - ClientContext: add new NavigationRevocationHandler protocol and property to handle navigation revocations - CollectionSidebarViewController: add support for NavigationRevocationHandler - OCDrive/OCLocation/OCSavedSearch+Interactions: register view controllers for Navigation Recovation, using NavigationRevocationHandler - ClientItemViewController: - show special drive header only for .project (so not for personal or Shares Jail) spaces - fix navigation title * - bump build number to 240 - AppRootViewController: - add focusedBookmark tracking - add focusedBookmark specific notificationPresenter and cardMessagePresenter - port over message presentation - port over beta warning - port over review prompting - port over enforced passcode setup (as of yet untested) - BookmarkViewController: - ensure editing uses the latest copy from OCBookmarkManager - present modally rather than .overFullscreen on iPad - ClientActivityViewController: add initializer for AccountConnection and use AccountConnectionConsumer to hook into events - ClientSessionManager: remove unused code, ensure delegates are only weakly referenced - AccountConnection: complete MessageSelector support - AccountConnectionConsumer: switch form NSObject to AnyObject, add new method to AccountConnectionMessageUpdates to track message counts - AccountController: introduce SpecialItems type, property and data source - AccountControllerCell: add support for message counting badge - ActionCell: add sidebar support, add badgeCount accessory support - CollectionSidebarAction: - new class, subclassing OCAction to provide specific functionality around Sidebars, f.ex. dynamic creation of view controllers upon selection, keeping track of and caching previously generated view controllers - also implements extensions to OCAction to wrap properties - CollectionSidebarViewController: add new method sectionOfCurrentSelection to easily determine the section in which the currently selected item is located - ClientSidebarViewController: add .focusedBookmark property (KVO capable) - OCAction+Interactions: add support for supportsDrop * - update KNOWN_ISSUES - AppRootViewController: add support for beta warning, bookmark editing, message presentation, release notes and more - AppDelegate: launch into AppRootViewController instead of ServerListTableViewController - remove ServerListTableViewController from target - ReleaseNotesDatasource: clean up code and make class-level methods what were instance methods - rename "Search view" to "Saved search" - AccountConnection: add AuthFailure struct and status and make Status a non-String enum - AccountConnectionPool: add AccountConnectionAuthErrorConsumer to new connections by default - refactor authentication error handling into - AccountAuthentication* classes - AccountConnectionAuthErrorConsumer (as helper for AccountConnection) - AccountConnectionErrorHandler (as helper for AccountController) - AccountController: - keep references to important items - add support for saved searches - add support for OC10 root folder - clicking spaces shows a spaces grid (AccountControllerSpacesGridViewController) - AccountControllerCell: adapt to Status enum changes - ActionCell: add support for different types (coloring), accessories, badge count, button labels and more - DriveGridCell: cell subclass to support AccountControllerSpacesGridViewController - DriveListCell: add grid support - CollectionViewController: - add performDataSourceUpdate() mechanism to avoid changes being made to the data sources while other changes are already made - CollectionSidebarAction: - extend OCAction properties - implement class to show view controllers on selection - add support for children - CollectionViewAction: actions to be performed on the collection view when specific items become available - CollectionViewSection: add support for .grid() layout, fix crash bug - ClientContext: add alertQueue, bookmarkEditingHandler, .presentationViewController property and present(viewController:animated:completion:) method - ClientSidebarViewController: add support for default view controller - ClientDefaultViewController: content shown when nothing is selected in the sidebar - ClientItemViewController: add select all/deselect all support - (re)start implementation of location picker (WIP) - UIView+EmbedAndLayout: add new method for centering another view inside an existing view, with minimum/maxiumum/fixed size and minimum insets - Theme: add support for split view content themeing, temporarily remove almost all themes until support for them arrives - ThemeNavigationController: move from ThemeApplierTokens to implementing Themeable - AppUserActivity: start (re)implementing support for NSUserActivity * - bump build number to 241 * - update KNOWN_ISSUES - move OCResourceText+ViewProvider and Down framework from app to ownCloudAppShared as it is needed for a rich spaces view in the location picker - extract embedding behaviour from AppRootViewController into EmbeddingViewController - implement ClientLocationPicker and ClientLocationPickerViewController - rewrite Share Extension based on ClientLocationPicker and ComposedMessageView - upgrade AutoUploadSecttingsSection and auto photo/video uploads to use ClientLocationPicker and OCLocations - migrate or partially rewrite CopyAction, MoveAction, ImportFilesController to use ClientLocationPicker - AccountConnectionPool: add method to disconnect all connections in the pool - AccountController: add options to - change cell appearance - hide the account pill - (not) auto select the personal folder - Action: - add method to provide a UIBarButtonItem - add new location .locationPickerBar for appearance in ClientLocationPicker - WebApp: ensure apps are presented full screen on iPad, not in a popover - DriveGridCell: always show title + subtitle to align titles, truncate both at 1 line - ItemListCell: add support for appearance (ClientItemAppearance) for regular and disabled appearances - CollectionViewController: add .hideNavigationBar property that does what it says on the tin - ClientContext: expand validation system to allow passing a ClientContext to validation methods and permission handlers (allows to implement behaviour for f.ex. a specific view controller rather than all view controllers descending from it) - ClientItemViewController: add .location and .viewControllerUUID properties - Interactions for OCDrive, OCItem, OCLocation: set bookmarkUUID in locations that are used for newly created ClientItemViewControllers - ComposedMessageView: add support for .buttons - OCBookmarkManager+Management: make sure to use exact OCBookmark instance when removing a bookmark - UINavigationItem+Extension: simplify workaround for iOS 16 navigation title truncation bug - remove ClientDirectoryPickerViewController and ClientSpacesTableViewController - bump build number to 241 * - BookmarkViewController/IssuesCardViewController/OCLicenseEnvironment: adapt to OCBookmark.certificateStore change - xcscheme: add connection.associated-certificates-tracking-rule example that opts in all *.local certificates into certificate change tracking - remove ClientTabBarController - update known issues * - update SDK - update KNOWN_ISSUES.md - remove EarlGrey and everything that depends on it - AccountController: - SpecialItems -> ExtraItems to clarify features being distinct - collect "real" special items in three dictionaries rather than each in its own instance variable * - remove legacy migration * - DisplayHostViewController: update to use an OCDataSource subscription to track underlying items, not an OCQuery - AccountController: add Quick Access, including Favorites and Available Offline - OpenInWebAppAction: add keyboard shortcut (fixing finding in #1151) - OCSavedSearch+Interactions: add new .customIconName and .useNameAsTitle properties and helper methods - SavedSearchCell: add support for .customIconName and .useNameAsTitle - CollectionViewController: add .insert(sections:at:) method - ClientContext add .queryDatasource property - SortedItemDataSource: helper data source to allow sorting of items from other data sources - OCItemPolicy+Interactions: add context menu and swipe action support to remove policy - remove unused UIImageView+Thumbnails.swift, mark others for removal * - bump build number to 243 * - AccountController: - add support for showing/hiding account pill - add sharing items - add support for favorites support capability - CollectionViewController: - separate usage of Wrapped IDs from hierarchic content - trigger data source updated when sections are hidden/shown - add setNeedsSourceUpdate() for more efficient updates - add workaround for UICollectionViewDiffableDataSource requesting cells from the wrong section when moved from there to another section - CollectionViewSection: fix hideIfEmptyDataSource issue (previously did hide when not empty) - ClientSharedWithMeViewController: new view controller to present pending, accepted and declined shares - MoreViewHeader: add support for favorites support capability * - OCShare+Interactions: add swipe + popup actions - ClientSharedWithMeViewController: add title to list - update SDK * - NEW: UniversalItemListCell - provides a single cell implementation for two-line (title + detail) + thumbnail + accessories content - fine-grained encapsulation of content into UniversalItemListCell.Content objects for atomic, extensible content updates - fed through a content provider protocol (UniversalItemListCellContentProvider) that classes can adopt to asynchronously provide and update content via a completion handler - built-in accessory support for more, reveal, progress and messages - uses SegmentView for details line to allow rich/mixed content for different types - UniversalItemListCellContentProvider implementation for OCItem, replacing ItemListCell - UniversalItemListCellContentProvider implementation for OCShare - InlineMessageCenter: make method names follow a single pattern - ResourceItemIcon: add convenience method to return the best matching icon for a mime type - SegmentView: - add new alpha property for items - various fixes (preventing unwanted animations and flickering due to tinting images + text, fix a retain loop) - ThemeView: add missing call to didMoveToSuperview() * - remove ItemListCell - update KNOWN_ISSUES.md - UnshareAction: add support for unsharing accepted "local" shares - add missing localizations - AccountConnection: inject shareJailQueryCustomizer into newly retrieved OCCore - AccountController: no longer unfold Spaces by default - ClientSharedByMeViewController: view controller to present shares shared to other users and links, including reveal and copy to clipboard - fix navigation title UILabel becoming too large - extend UniversalItemListCellContentProvider for OCShare with copy to clipboard, accept/decline and reveal accessories - upgrade project to Xcode 14.2 - bump version to 245 * fastlane gym: changed workspace to project, because it no longer is using cocoapod * - refactor and modularize URL scheme open URL handling code - add handling for "owncloud://pb/" commands to allow control of OCClassSettingsFlatSourcePostBuild * - include env var launch example for post-build.allowed-settings - add error checking when clearing individual postbuild setting values * - remove duplicate "Tap to relaunch." messages * - Browser Navigation: - replaces UINavigationController and UISplitViewController - allows back/forward navigation and invoking the side bar - automatically switches between full width sidebar, side-by-side sidebar and sidebar-floating-on-top layouts depending on available width and content - AppRootViewController: switch from UISplitViewController to BrowserNavigationViewController - ClientContext: add additional property and push support for BrowserNavigationViewController - EmbeddingViewController: add additional subclassing points for customization - ClientLocationBarController: view controller displaying an OCLocation and allowing to jump to a parent location with a single tap - ClientItemViewController: add bottom location bar if .location is set, using ClientLocationBarController - SegmentView: - add support for scrolling - add support for limiting vertical usage - allow customization of "overflow" gradient color - add support for providing gesture recognizers for items - ActionTapGestureRecognizer: subclass of UITapGestureRecognizer that allows providing a closure as action to perform - UIView+EmbedAndLayout: embedHorizontally() gains limitHeight option that limits the height of the layout - CollectionViewController: fill entire height with stack view, use a helper UIView to limit UICollectionView to safe area - OCItem+Interactions: add revocations for view controllers pushed by reveal and open interactions - UniversalItemListCell: work around _UITemporaryLayoutWidths auto-layout warning for accessory views - Licensing - add OCLicenseQAProvider to allow enabling Pro Features for QA purposes - OCLicenseEMMProvider: fix provider ID - add toggle to "Advanced" settings allowing to unlock Pro Features for QA. Available only in beta builds. - bump build number to 246 * Calens changelog updated * - rename "Purchases" to "Purchases & Subscriptions" in Settings - invoke AppStore.showManageSubscriptions() to allow direct subscription management where available, fallback to https://apps.apple.com/account/subscriptions * - fix "Select All" not working in Multiselect - adapt Multiselect to BrowserNavigationViewController * - removal of legacy code * - fix issue where OC10 accounts showed up empty in the File Provider * - NavigationContent extension of UINavigationItem - adapt SearchViewController, ClientItemViewController, ClientLocationPickerViewController and BrowserNavigationViewController to use NavigationContent instead of UINavigationItem directly - fix background color and spacing for SearchViewController.scopeViewController to align with file list - update KNOWN_ISSUES.md * - bump build number to 247 * - address static analyzer findings - address SwiftLint findings * added new branding parameter von theme.json url * - adapt to OCLocation.parent nullability change - unify/fix navigation titles and context.drive for ClientItemViewController - add new issue to KNOWN_ISSUES.md - make OCLocation breadcrumb generation general-purpose, so it can be used not just by ClientLocationBarController but also f.ex. dropdowns - BrowserNavigationItem: add .canTrimViewController property - update SDK * Fixes for Xcode 14 fastlane builds and resigning Fastfile: - needs setting manual code signing, because of signing swift package failures Resign Script: - seems like not all provisioning profiles contains SHA-1 values but SHA-256 values. Changed that for checking. * - AppDelegate / SceneDelegate cleanup * retrieving theme.json file and icon * - removed unneeded code - using new SDK * - moved code from SDK into app framework - using server url from core - check, if branded json url exists and use logo image instead of avatar * - BrowserNavigationBookmark - new class to capture location information that can then be used to restore/create a view controller - supports arbitrary OCDataItems - used of state restoration, sidebar selection - usable for browser navigation history compacting & view controller restore (tbd) - can be attached to view controllers via new UIViewController.navigationBookmark property - BrowserNavigationBookmark+AccountController: provide ID bridge to side bar - BrowserNavigationViewController: add support for a delegate (used to sync selection in sidebar) - BrowserNavigationHistory: fix bug in .currentItem implementation - BrowserNavigationItem: add .navigationBookmark property - DataItemBrowserNavigationBookmarkReStore protocol - allows storing and restoring view controllers individually on a per-OCDataItem basis - implementation for OCItem, OCLocation and OCSavedSearch - OCDrive: support for DataItemSelectionInteraction now uses OCLocation's implementation under the hood - AppStateActions - new, extensible and universal mechanism for building complex UI scenes with dependencies - used for state saving, state restoration, scene building and more - actions for opening a connection, navigation to the personal folder or a BrowserNavigationBookmark - or revealing an OCItem - high-level conceptual overview in accompanying README.md - ClientContext: new .scene property - CollectionViewController: implemented recordSelection() and SelectionOperation, leaving it commented out for future (re)consideration - CollectionViewAction: - new .highlight and .unhighlightAll actions - add support for "select first matching item" to .select and .highlight - AccountConnectionPool: new .activeConnections property to return active connections - AccountConnection: fix busyStatus handling bug - OCSavedSearch: allow override of uuid (needed for sidebar navigation item selection/state restoration) - URL+Extensions: refactor to allow opening links via app scheme (f.ex. https://demo.owncloud.org/f/27 via owncloud://demo.owncloud.org/f/27) - DisplayHostViewController: no longer require OCQuery or OCDataSource - creating an "internal" one if needed - update CONFIGURATION.json - update KNOWN_ISSUES.md - update ios-sdk - bump build number - remove ServerListTableViewController, ServerListTableHeaderView, OpenItemUserActivity and more source files that are no longer in use * - allow more customization when generating breadcrumbs from OCLocation, make segment composition available globally - complete implementation of "Available Offline" view - provide rich view of OCItemPolicys with path and icon - allow revealing items marked available offline in their respective location - provide "no items" views for: - Available Offline - Favorites - all search-based Quick Access views (PDF Documents, Documents, Images, Videos, Audios) - unify header views using a new ComposedMessageView category - update KNOWN_ISSUES.md * - Collection Views - add support for supplementary items via CollectionViewSupplementaryItem and CollectionViewSupplementaryCellProvider - implement TitleSupplementaryCell for section titles, including pinning support - implement ViewSupplementaryCell for arbitrary views, including pinning support - allow specifying CollectionViewSupplementaryItem on a per-section level - ClientItemViewController: adopt CollectionViewSupplementaryItem with ViewSupplementaryCell to show SortBar as pinned section header - ClientSharedByMeViewController, ClientSharedWithMeViewController, Available Offline and more: adopt headers based on supplementary cells, removing the need to use wrapping data sources in many places (efficiency win!) - remove legacy search scope code from SortBar - remove legacy Push Presentation Controller code - fix miscellaneous warnings through small code changes * - new class DataSourceCondition: - allows triggering actions based on item count of datasources - allows logical combinations of several conditions - CollectionViewController: add .coverView property and support for filled, centered and top layout - CollectionViewSection: adopt DataSourceCondition to implement .hideIfEmptyDataSource - AccountControllerSpacesGridViewController: add "No spaces" message if no spaces are shared with user - ClientSharedByMeViewController and ClientSharedWithMeViewController: add respective "no items" messages - AppRootViewController: no longer scroll highlighted sidebar items into center - ComposedMessageView: theme image views with tintColor * - DisplaySettings: provide query condition(s) implementing display settings filters (new queryConditionForDisplaySettings property) - AccountSearchScope, DriveSearchScope, ContainerSearchScope: use DisplaySettings.queryConditionForDisplaySettings to limit search results to those that should be visible - CollectionViewController: fix crash bug when sections with supplementary views are hidden * - AccountController: ensure Saved Search sidebar item is only visible if the account has saved searches - CollectionViewController.WrappedItem: add readable description for improved debugging - CollectionViewSection: fix a crash bug if an item is inserted into a child data source whose parent item is hidden or not (yet) in the collection view's data source * - add support for authenticated WebFinger and retrieval of server instances via SDK update - currently does not implement a picker for retrieved instances but always uses the first one returned by the server * - bump version to 249 * - update SDK to implement enterprise#5579, including sending a Referer header when requesting the IdP configuration - bump build number to 250 * - ClientItemViewController: ensure navigationItem.title is set by .navigationTitle for proper back button labeling in UINavigationControllers - ClientLocationPicker: fix destination of view controller pushes - make sure they get pushed to the picker, not the parent context's browser controller * - ContainerSearchScope: ensure the folder within which the scope starts is not included in the results itself * - AppProvider: lang parameter fix via SDK update (ensure ISO-639-1 (uses only 2 characters) by cutting off any differentiators (f.ex. "en-GB" becomes "en")) * - update SDK to possible address finding (38) in feature/new-navigation * - ClientLocationPickerViewController: fix vertical cancelButton constraint * - OCShare+Interactions: make unshare action available via context menu and popup, use OCCore.delete() for unsharing * - DisplayExtensionContext: subclass to allow passing the ClientContext to actions invoked from the more menu in DisplayViewController - DisplayHostViewController: use DisplayExtensionContext and create a ClientContext child with a different originatingViewController - DisplayViewController: clarify naming of method invoked when the more button is pressed in the viewer * - enlarge "reveal" and "more" accessory buttons * - bump build number to 252 - tag v12alpha1 * - fixed fastlane build error - updated needed Xcode version for fastlane builds * added a class setting key to set the default bookmark name when creating a new bookmark "bookmark.default-name" * - introduce ThemeCSS and convert existing code base to use the new APIs - progressed, but still work-in-progress * - further CSS theming advances and cleanup * - update SDK to include authenticated WebFinger fix - BookmarkViewController: consistent spacing with tabs to improve code readability * - remove unused customizedColorsByPath code * - additional CSS fixes and refinements * - further CSS color and code warning fixes * - Settings now uses insetGrouped layout - Action cards now use insetGrouped layout - Spaces grid view updates depending on size class (animated!) - StaticTableRow: CSS updates and fixes, including a retain loop that existed before - fix appearance of group disclosure chevron in sidebar when item is selected * - add ImportPasteboardAction as action for empty folders * - fix action cell background appearance in dark mode * - MakeTVG: update for latest Swift version - add space.svg + space.tvg - display "Files" (for OC10) or name of space for root folder(s) and show appropriate icon * - SDK update: fix connection validation in case WebFinger lookup is not present - fix more CSS styling issues * - add "more" button to spaces in spaces grid view - fix "Access Denied" warning icon color in sidebar - limit Paste action to writeable locations - CollectionViewSection: add missing ClientContext in CollectionViewCellConfiguration * - add new SharedKeyCommands to ownCloudAppShared.framework, to implement key commands that should be available in app and extensions - move PasscodeViewController key commands over to SharedKeyCommands * - bump build number to 253 * - address #1188 via SDK update - show space names and icons if a space's root folder is made available offline or shared, in the respective views - remove separator background color in available offline view - bump build number to 254 * - AccountControllerSpacesGridViewController: fix warning - ThemeCSS: cleanup, provide documentation in README.md * - Branding+App: add missing copyright notice - add CSS support to branding - complete first revision of CSS documentation, including an example for CSS branding * - ThemeCSS README: add missing language MD annotation * - OCResourceText+ViewProvider: fix Theme registration timing to work with CSS themeing * - CSS README.md: correct title levels * - ClientLocationPickerViewController: - fix color errors for account cells - add additional separator line on top for more visual clarity - use grouped collection background color for navigation bar - ThemeCollection: minor code cleanup * - fix finding (37) in #1162 - ImageDisplayViewController: fix new warning in Xcode 14.3 * - ItemLayout: - new enum as high-level abstraction for item layout - provides layout objects and values - ClientContext: add new itemLayout property - SortBar: add new layout-toggling button, clean up delegate methods - ClientItemViewController: - add support for grid views, ItemLayout, SortBar and ClientContext advances - move footer view to a separate section to avoid layout interference, simplify the code and provide better performance - CollectionViewSection: - cleanup code - add support for changing cell layout and style in one go, without animation - UniversalItemListCell: add support for grid layout - ViewSupplementaryCell: - prepare to support different ElementKinds (f.ex. footers, etc.) - fix zIndex to make the cell float above separators as well * - SegmentViewItem: add concept of lines to allow realizing different layouts from a single array of items - OCItem+UniversalItemListCellContentProvider: tag detail segment item .lines - UniversalItemListCell: use SegmentViewItem.lines tagging to switch between single line and two lines details - SegmentView: preparations to dynamically apply a gradient mask when views exceed the boundaries * - NamingViewController: - select file names without extension when editing names - support picking a "fallback" icon - CreateDocumentAction: show fallback icon based on mimeType of created document type * - demo for using combined data sources and composed message views * - ThemeCSS demo * - onboarding view - move branding setup into BookmarkViewController * removed default value * - BrowserNavigationHistory: guard instance variables items and position in a thread-safe way - BrowserNavigationItem: add viewControllerIfLoaded property to allow retrieving a view controller only if it exists and without triggering its (re)creation - ClientSidebarViewController: ensure removal of /all/ history items for a view controller when it is revoked - UIViewController+NavigationRevocation: add debug logging, respect the passed revocationTriggers * - optimize grid cell margin usage * - ClientItemViewController: make SortBar.itemLayout match ClientContext.itemLayout * - Spaces grid overview: make more (…) button resist compression, fixing layout issue with long space titles that don't fit horizontally * - ClientItemViewController: - skip driveSection creation if not necessary - show quota for personal space * - add selection checkmark for multi selection in grid view * - bump build number to 255 * - ThemeCSS: implement match-cache for massive speedup * - ClientItemViewController: show "Loading…" when the contents of a folder is still being loaded * - CSS: remove Fill from .fill colors for TVG vector images - CSS README: add section for vector icon color CSS selectors * - cosmetic code changes * - UniversalItemListCell: add titleAndDetailsHeight() method to allow determining space needed for details and title - CollectionViewSection.CellLayout: add new .fillingGrid layout that dynamically adjusts cell size to achieve best size / space fit + center cells - ItemLayout: adopt CellLayout.fillingGrid - AccountControllerSpacesGridView: adopt CellLayout.fillingGrid - bump build number ot 256 * - update KNOWN_ISSUES.md * - fix indenting * - fix indenting * - fix indenting * - fix indenting * added corners to uiimage * - Action: clarify types to fix warnings - Action+UserInterface: remove legacy sharing code - BottomButtonBar: make code for bottom button bar with text re-usable (extracted from ClientLocationPickerViewController) - CollectionItemViewController: remove unused searchController ivar - ClientLocationPickerViewController: adopt BottomButtonBar - CollaborateAction: switch to invoking SharingViewController and make it widely available - ComposedMessageView: add withRoundedBackgroundView option to .infoBox() - DocumentActionViewController: remove distinction between links and user/group share actions, consolidate into one action and moving to SharingViewController - NavigationContent: make initializer publicly available - OCCore+Extension: remove replaced legacy code - OCIdentity+UniversalItemListCellContentProvider: implement UniversalItemListCellContentProvider for OCIdentity - OCItem+Extension: make date formatters usable from other code - OCShare+Interactions: add support for selection, invoking the new ShareViewController or SharingViewController to allow editing support - OCShare+UniversalItemListCellContentProvider: add support for different views - OCShareRole+UniversalItemListCellContentProvider: implement UniversalItemListCellContentProvider for OCShareRole - OptionGroup + OptionItem: helper classes to easily implement "static" UI controls inside a CollectionViewController - RecipientSearchScope: SearchScope subclass for searching recipients using OCRecipientSearchController() - SearchElement: convince property .composedSearchTerm for simple concatenation of search element strings - SearchScope: add convenience accessor for recipient search - SegmentView: refine truncation mode support and layout - SegmentViewItem + SegmentViewItemView: add lineBreakMode and UIView-embedding support - ShareViewController: new class to create, view and edit individual OCShares - SharingViewController: new class to manage user/group and link shares of an item - TitleSupplementaryCell: add additional title supplementary cells for medium and small sized titles - UICellAccessory+Extension: convenience methods to create accessories with buttons - UIImage+ViewProvider: implement OCViewProvider support for UIImage - UniversalItemListCell: - add .icon(image:) as Icon type to allow providing UIImages directly - add additional cellStyle support for .header and .tableLine - remove replaced legacy code: GroupSharingTableViewController, GroupSharingEditTableViewController, PublicLinkTableViewController, PublicLinkEditTableViewController, LinksAction * - File Provider UI: - add AppComponent ID to Infop.list - DocumentActionViewController: - use theme depending on user setting - fix missing icons issue - ownCloudAppShared + OCItem: - move OCItem status icons into ownCloudAppShared.framework, make them easily accessible via OCItem category - adapt code to use OCItem.*Icon * - bump build number to 257 * - Saved Searches: add support for saving folder-scoped searches * CR findings fixed * - CollectionViewSection: fix layout issue when switching between layouts by changing order of operations - CollectionViewCellStyle: add two new grid styles: low detail and no detail and a convenience accessor for determining if a style is a grid layout - ItemLayout: - add two new grid layouts: low detail (with only name label) and no detail (with only thumbnail) - provide a minimum/maximum range for thumbnails in grid layouts to better fill screen of larger iPhones - add method to provide description + icon for every layout - SortBar: add a picker to switch between the (now) four available layouts - UniversalItemListCell: implement two additional grid cell layouts/styles * - add localization for the four item layouts * - ClientItemViewController: show "No actions available" when tapping the "+" button in the navigation bar for a folder without the necessary permissions * - ActionContext: provide convenience accessor for .rootItem - CollaborateAction: only display if item is actually shareable - CutAction: only display if items are moveable - DuplicateAction: use the proper rootItem for the permission check - FavoriteAction/UnfavoriteAction: only show when favorites are supported on the server - ImportPasteboardAction: use the proper rootItem for the permission check - fix preliminary permission checks for various actions * - ClientItemViewController: add pull to refresh support for OCQuery-based content * - ShareViewController: disallow clicks on OCShare links when editing them, fixing finding (1) in #1198 * - SDK update: return a descriptive error when a share create/modify/delete request fails due to a missing internet connection - NavigationRevocationEvent: add new .connectionStateEntered() and .connectionStateLeft() events - AccountConnection: emit .connectionStateEntered() and .connectionStateLeft() events - UIViewController+NavigationRevocation: offer simplified .connectionOffline trigger for change events for connecting, unavailable, offline connection states - BottomButtonBar: add support for disabling buttons and showing an activity indicator - SharingViewController: adopt .connectionClosed + .connectionOffline triggers to dismiss view controller when internet connection drops - ShareViewController: - adopt .connectionClosed + .connectionOffline triggers to dismiss view controller when internet connection drops - provide status feedback via new BottomButtonBar functionality - ClientSharedByMeViewController + ClientSharedWithMeViewController: show message when Internet connection drops, indicating that Sharing requires an internet connection - ClientSidebarViewController: add revocation support for presented view controllers, including "deeply" presented view controllers * - OCQueryCondition+SearchSegmenter: make "owner:" equate rather than start with ownerUserName * migrated branded ownboarding into regular account setup * fixed issue, when adding account is not allowed and changed button title * removed no longer needed branded login files * re-added documentation metadata for moved class settings * fixed removed key * updated to latest SDK commit * - removed rounded corner from onboarding icons - added title * set Xcode version to 14.1 for Mac mini builds * - OCShare+UniversalItemListCellContentProvider: update for OCItem-less implementation - ShareViewController: - update for OCItem-less implementation - fix role preselection (was missing) - SharingViewController: use an OCShareQuery instead of the global sharedByMe and sharedByLink data sources due to https://github.com/owncloud/ocis/issues/5355 * - fix issue where an authentication error isn't displayed but instead the account remains "Offline" forever - change wording from "internet connection" to "active connection" for sharing * - SharingViewController: add refresh interval for OCShareQuery to reflect changes * - OCShare+Interactions: reveal accepted .sharedWithMe items when clicked - OCShare+UniversalItemListCellContentProvider: add reveal button for accepted .sharedWithMe items * - fix finding (42) in #1162 * - OCShare+Interactions: replace icon "checkmark" with "checkmark.circle" to avoid ambiguity with selection in context menus - OCShare+UniversalItemListCellContentProvider: replace distinct "Accept" and "Decline" accessory buttons with single "..." accessory popup button for trait collection size compact - ThemeCollection: add CSS for .accessory.action - UICellAccessory+Extension: add menu parameter to easily build button accessories showing the menu as primary action * - Sharing: add "Invited persons" role for drive-based servers * fixed CR findings * - update and clean up KNOWN_ISSUES.md - fix finding (1) in #1205, log a message when reloading a non-visible/non-existing section is attempted * - fix SwiftLint warnings / indentation * - fix ThemeCSSLabel textColor not always set correctly on initial color application * - Branding+App: added .welcome CSS selector - AppRootViewController: add css selectors to welcome message - ThemeCollection: add CSS records for .welcome screen * - add test env vars * - remove unrelated changes from auto-formatting * - project: add branch, tags and build date to Info.plist - update KNOWN_ISSUES - bump build number to 259 - add GitInfo class to provide git + build information for app and SDK, remove LastGitCommit() function, adapt code using LastGitCommit() to use GitInfo instead - UnshareAction: do not appear for drive root folders - MoreSettingsSection: use GitInfo for both app and SDK to provide more verbose version info, add build date * - BookmarkViewController: avoid premature deallocation of connection instance * - bump build number to 260 * - GitInfo: show verbose version info only if not on main branch or beta warning is active * - OCShare+UniversalItemListCellContentProvider and OCShare+Interactions: adapt to also handle federated shares - ComposedMessageView: use a standard 100 x 100 frame to avoid initial auto layout issue + messages - OCItemTracker: add personal drive ID to legacy root locations for drive-based accounts * - OCQueryCondition+SearchSegmenter: pull localization from correct bundle (fixes #1211) * - add missing translations (#1201, #1184) * - fix localization issue documented in #1201 * - add missing localizations and translations for Sharing * - update SDK: WebFinger now respects `connection.allowed-authentication-methods`: if a list is provided and OIDC is not part of it, WebFinger is skipped * - generate_docs.sh: update to respect CocoaPods removal, update project and destination for testing to latest Xcode * Update configuration-documentation.yml - GitHub workflow: update configuration-documentation.yml to no longer include CocoaPods installation and use Xcode 14.3 * configuration-documentation.yml: skip Xcode version selection * Configuration documentation updated * - AccountController+ExtraItems: remove duplicate code - fix diagnostic navigation, make Diagnostic views use ClientContext where necessary * - bump build number to 261 * - update SDK for OCBookmark item versioning and OCBookmarkManager data source improvements - AccountConnection: fix indentation - ownCloudAppFramework: add PocketSVG - OCImage+ViewProvider: add view provider support for SVG images * changed required Xcode version * - fix dynamic linker (dyld) crash by adding PocketSVG as framework to the main app * - ThemeButton: respect CSS colors for fill/stroke and different states by using new UIButton.Configuration API * - ReleaseNotesHostViewController: update CSS selectors - ThemeButton: add convenience initializer for better passing both css selectors and a button configuration * - adapt usage of ThemeButton to changes * - Branding+App: add `auto` option for `branding.url-theme-json`, which constructs the `branding.json` URL from the respective server's URL - add debug scheme option to simplify testing with `branding.url-theme-json=auto` * - update SDK to gain ETag-tracking of URL-based, remote resources - OCItemTracker:resolve warning * - ThemeButton: - set default configuration when initializing by decoding - add support for corner radius to updateConfiguration() - fixes Passcode view controller buttons not being styled correctly * - fixed welcome css selectors - added a new composed message view element imageButton and added the image parameter to the button element * - fix indentation in various source files - modify ThemeButton to handle .buttonFont differently, now via UIButton.Configuration and without default value - fix wrong font being used for ThemeButtons in PasscodeViewController * - ActionCell: allow passing custom CSS selectors for the cell via `OCAction.cssSelectors` * first draft for adding a help section in the sidebar * added branded help section to sidebar * - OCDataItem+InteractionProtocols/DataItemSelectionInteraction: - add new performItemDeselection parameter to completion block that forces deselection of the item upon completion - adapt implementations of protocol accordingly - OCAction: add new property OCAction.automaticDeselection that automatically deselects an OCAction cell after selection * - ClientSidebarViewController: - add action.automaticDeselection to help action - fix SwiftLint warnings * Added new sidebar-links branding values, which computes a dynamic link section in the sidebar (can have multiple values) * Configuration documentation updated * set symbol to optional and added an optional struct string image to use an image name, which must be added to the app bundle * - remove accidentally added override in Branding.isBranded - normalize indentation * - add project-wide tab setting defaults * CR finding: fixed branding parameter help description * - added a placeholder image for the sidebar link icon - removed templating the sidebar link icon * - CreateDocumentAction: open newly created documents in the first available web app by default, make modes (create, create-and-open) configurable via class settings - ScanViewController: fix wrong API usage for progressHUDViewController - ClientWebAppViewController: add doneHandler to be called when the view controller is dismissed - OpenInWebAppAction: schedule refresh of parent item folder when returning from web app - UniversalItemListCell: fix icon updates flickering - ProgressHUDViewController: add safeguard against double-dismissals * - CollectionViewController: - avoid zero-sized ThemeCSSView - use auto-layout for collection view in non-stackview layouts, too - AccountControllerCell: - fix conflicting constraints - improve positioning of title and detail labels * - CollectionViewController: double-check that CollectionViewSections from a datasource are associated with the respective CollectionViewController - CollectionViewSection: detect initial encounters with OCDataSourceSubscription and use .items instead of .addedItems in that case - ClientSidebarViewController: mitigate (2) in #1095 by manually triggering a refresh of the root data source if the criteria are met * - CollectionViewSection: dial back subscription update handling change, as it led to duplicates and a crash * - bump build number to 265 * - VendorServices: set isBetaBuild and showBetaWarning to false * - ReleaseNotes.plist: - remove no longer used "ImageData" key - add release notes for version 12.0 * Configuration documentation updated * - PasscodeController: - clean up layout - remove image view over biometrical button - use image on biometrical button directly - improve language in ReleaseNotes.plist * - bump build number to 266 * - fix finding (3) in #1095 * - fix finding (4) in #1095 * - fix finding (6) in #1095 * - fix finding (13) in #1095 * - fix finding (8) in #1095 * - fix finding (10) in #1095 * - FileProviderExtension: fix accidental passing of OCVFSNode instead of OCItem as parentItem to -reportLocalModificationOfItem: via -itemChangedAtURL:; log error message if item or parentItem OCItem instances can't be found - fixes finding (11) in #1095 * - add missing ios-sdk commit update - fixes finding (11) in #1095 * - fix finding (15) in #1095 * added version 12.0 release notes * set current build number * added callens changelog files * changed callens folder name * Calens changelog updated --------- Co-authored-by: Matthias Hühne <> Co-authored-by: felix-schwarz <felix-schwarz@users.noreply.github.com> Co-authored-by: Matthias Hühne <github@hosy.de> Co-authored-by: hosy <hosy@users.noreply.github.com>
- Loading branch information