-
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
[experimental/12.0] Experimental version 12.0 #1153
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- add OCViewHost as container for views provided via OCViewProviders / OCResourceRequests - add view providers for OCAvatar, OCResourceTextPlaceholder - add OCCircularContentView, OCCircularImageView, OCCircularTextView - BookmarkViewController: download a users's avatar and save it in the bookmark - ClientRootViewController: check for an updated version of the user's avatar on every connect - GroupSharingTableViewController: display avatars instead of icons for users - StaticTableViewRow: add support for leading accessory cell - ThemeTableViewCell: extend support for custom layout, revise CellLayouter to support single line of text - remove bolted-on QuickLook thumbnailing (now covered by the new OCResource system) - update static/single login + accounts list UI to work with avatars
…ager - OCViewHost: improve responsiveness and direct updates (saving unnecessary main runloop cycles), add explicit reload method - ResourceViewHost: subclass of OCViewHost with support for auto-reload on Theme change - ItemPolicyCell, DisplayViewController, ServerListBookmarkCell, ShareClientItemCell, ClientItemCell, NamingViewController, MoreViewHeader: switch from UIImageView and old thumbnail / icon API mix to ResourceViewHost - move ThemeView base class from ownCloudApp to ownCloudAppShared - extend OCAvatar+ViewProvider to OCImage+ViewProvider, so it also returns views for all other OCImages - add ResourceItemIcon and ResourceSourceItemIcons to return TVG resources and provide views for them - VectorImageView: clear layer if not image could be created
- remove all code for iOS versions < iOS 13.4 - fix deprecation warnings (partially with rewrites)
- remove `doc/APP_BUILD_FLAGS.md`
- FileProviderExtension: change comment to reflect drive-dependant path changes
- add ClientSpacesTableViewController as temporary solution to present and pick spaces for spaces-enabled accounts - adapt QueryFileListTableViewController, ClientDirectoryPickerViewController, ClientQueryViewController, ClientRootViewController to support drives structurally
- fix duplicate drive entries - working eTag polling via drive list
- update schemes to Xcode 13.3
…sed on one data source / section (WIP)
* - migrated code to new OpenSSL 1.1.1 API - using OpenSSL Package * - update SDK * - update ios-sdk Co-authored-by: Matthias Hühne <> Co-authored-by: Felix Schwarz <[email protected]>
- add environment variable switch to enable/disable action-timeout-simulator host simulator
…on, adding CollectionViewCellConfiguration to pass additional parameters alongside simple objects - update SDK - update project to use latest OpenSSL version, following merge of SDK with ios-sdk/develop
- OCImage+ViewProvider: add support for content mode context attributes - new collection view cell types - DriveListCell: list cell representing drives - DriveHeaderCell: subclass of DriveListCell with different layout, for representing drives as headers (with large image and text) - ExpandableResourceCell: shows resources at full width, allowing expansion/collapse if the resource's height exceeds a certain threshold - ItemListCell: representing an OCItem - CollectionViewCellConfiguration: - add .core property - add CollectionViewCellStyle type and property to pass styling information to cells - CollectionViewCellProvider+StandardImplementations: move cell provider registration code into specific cell classes - CollectionViewController: allow control over list appearance - CollectionViewSection: add support for section-wide and per-cell CollectionViewCellStyle configuration - ClientItemViewController: new view controller to form basis of new collection view based file list UI - refactor NSMutableAttributedString styling code from ClientItemCell.swift into NSMutableAttributedString+AppendStyled.swift - UIFont+Weight: extension providing preferred system fonts at specific weights - UILabel+Extension: factor out code to make labels wrap text into multiple lines (makeLabelWrapText) - OCResourceText+ViewProvider: add view provider for OCResourceText, supporting markdown (via Down), otherwise falling back to plain text - add Down Markdown library LICENSE into ownCloudAppShared and registration as license extension
…ons for MoreItemHandling and OpenItemHandling for ClientItemViewController - CollectionViewCellConfiguration: add new item style passing along ItemCellActionHandlers - ItemCellActionHandlers: new class to encapsulate the different handlers for an item - ClientItemViewController: provide ItemCellActionHandlers and make the most used item actions available
- fix most deprecation warnings - FileProvider: replace .typeIdentifier with .contentType - new class ClientContext: - used to encapsulate and pass around all important API / UI objects to all parts of the UI - allow customization for specific purposes through primitive "inheritance" - can be passed around "strongly" while storing OCCore reference "weakly" (structural barrier to accidential retains) - replace ItemCellActionHandlers with ClientContext - create updated "Action" versions of MoreItemHandling, OpenItemHandling, RevealItemAction, rename InlineMessageSupport to InlineMessageCenter - restructure code to move MoreItemAction, OpenItemAction and InlineMessageCenter to the ClientRootViewController level (ClientRootViewController+ItemActions) - add theming support and shadow effect to ExpandableResourceCell (via new GradientView) - ItemListCell, CollectionViewCellConfiguration, event handling: rewire for ClientContext - Theme: replace WeakThemeable with NSHashTable for more speed / memory efficiency - OCResourceText+OCViewProvider: implement ThemeableTextView to add theming support - update minimum version of PLCrashReporter to 1.10.1 (from 1.7.0) - update SDK
- fix indentation in several places
- squash more warnings
- OCResourceText+ViewProvider.swift: move from ownCloudAppShared to app to avoid Down linker warning - AppStatistics: switch to new API for requesting a review
…gside advances in the code - FileProvider: - FileProviderContentEnumerator: implement an NSFileProviderEnumerator driven by OCVFSContent - FileProviderExtension: adapt implementation to be based on OCVFS - OCVFSNode+FileProviderItem: make OCVFSNode comply to NSFileProviderItem - first basically functioning implementation with Spaces support - update SDK for improved VFS support
- 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
…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
…pp 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
- 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
…o feature/new-navigation
…nnect() to enrich bookmark with metadata and user name during setup. Required to present the correct UI for space-based accounts.
…at's being processed via open-web or open
- 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
- 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
- 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
…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
- 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
- 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
- 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
…t: 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 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Branch for an experimental build of version 12.0 based on the following branches:
milestone/12.0
([milestone/12.0] Version 12.0 #1095)feature/app-provider
([feature/app-provider] App Provider support #1151)feature/new-search
([feature/new-search] New search experience for version 12 #1142)feature/new-navigation
([feature/new-navigation] New navigation #1162)