diff --git a/.tx/config b/.tx/config
index 91d9ed4da..4c4590ee1 100644
--- a/.tx/config
+++ b/.tx/config
@@ -28,4 +28,3 @@ lang_map = cs_CZ: cs, de_DE: de-DE, en_GB: en-GB, nb_NO: nb-NO, nn_NO: nn-NO, pt
source_file = fastlane/screenshots/en/title.strings
source_lang = en
type = STRINGS
-
diff --git a/.xcode-version b/.xcode-version
index c27905ac3..c32eced3a 100644
--- a/.xcode-version
+++ b/.xcode-version
@@ -1 +1 @@
-13.4.1
+14.3
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e06254fa1..940436e76 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,57 @@
+Changelog for ownCloud iOS Client [11.11.0] (2022-09-26)
+=======================================
+The following sections list the changes in ownCloud iOS Client 11.11.0 relevant to
+ownCloud admins and users.
+
+[11.11.0]: https://github.com/owncloud/ios-app/compare/milestone/11.10.1...milestone/11.11.0
+
+Summary
+-------
+
+* Bugfix - Respect privateLinks capability: [#1138](https://github.com/owncloud/ios-app/issues/1138)
+* Bugfix - Enabling Markup Mode, Showing Video Controls on iOS 16, Updating Theme: [#1141](https://github.com/owncloud/ios-app/issues/1141)
+* Bugfix - Share Extension Passcode Lock Interval: [#1156](https://github.com/owncloud/ios-app/issues/1156)
+* Bugfix - Video Metadata Image: [#5296](https://github.com/owncloud/enterprise/issues/5296)
+* Change - New Dark Mode Themes: [#1146](https://github.com/owncloud/ios-app/issues/1146)
+
+Details
+-------
+
+* Bugfix - Respect privateLinks capability: [#1138](https://github.com/owncloud/ios-app/issues/1138)
+
+ Respect files.privateLinks capability and do not offer to create private links when
+ privateLinks are not supported.
+
+ https://github.com/owncloud/ios-app/issues/1138
+
+* Bugfix - Enabling Markup Mode, Showing Video Controls on iOS 16, Updating Theme: [#1141](https://github.com/owncloud/ios-app/issues/1141)
+
+ Enabling markup mode was broken on iOS 16 because of rearranged navigation bar and toolbar
+ items. Video player controls were not showing on iOS 16. Furthermore when a new theme was
+ chosen, this causes that the UITabBar and UIToolbar does not updates colours.
+
+ https://github.com/owncloud/ios-app/issues/1141
+
+* Bugfix - Share Extension Passcode Lock Interval: [#1156](https://github.com/owncloud/ios-app/issues/1156)
+
+ The passcode lock interval was not taken into use in the share extension.
+
+ https://github.com/owncloud/ios-app/issues/1156
+
+* Bugfix - Video Metadata Image: [#5296](https://github.com/owncloud/enterprise/issues/5296)
+
+ If a video file includes a metadata image, the video file was not visible, because the metadata
+ image was overlaying.
+
+ https://github.com/owncloud/enterprise/issues/5296
+
+* Change - New Dark Mode Themes: [#1146](https://github.com/owncloud/ios-app/issues/1146)
+
+ Adds a new dark mode theme which is mostly equal to the web UI dark mode theme. Furthermore it adds
+ a black dark mode theme.
+
+ https://github.com/owncloud/ios-app/issues/1146
+
Changelog for ownCloud iOS Client [11.10.1] (2022-08-02)
=======================================
The following sections list the changes in ownCloud iOS Client 11.10.1 relevant to
@@ -130,11 +184,11 @@ Summary
* Bugfix - Fix WebDAV endpoint URL for media playback after restoration: [#1093](https://github.com/owncloud/ios-app/pull/1093)
* Bugfix - OAuth token renewal race condition: [#1105](https://github.com/owncloud/ios-app/pull/1105)
+* Change - Infinite PROPFIND support: [#950](https://github.com/owncloud/ios-app/issues/950)
+* Change - Rename Account (without re-authentication): [#972](https://github.com/owncloud/ios-app/issues/972)
* Change - Biometrical Authentication Button: [#1004](https://github.com/owncloud/ios-app/issues/1004)
* Change - Poll for changes efficiency enhancements: [#1043](https://github.com/owncloud/ios-app/pull/1043)
* Change - Webfinger / server location: [#1059](https://github.com/owncloud/ios-app/pull/1059)
-* Change - Infinite PROPFIND support: [#950](https://github.com/owncloud/ios-app/issues/950)
-* Change - Rename Account (without re-authentication): [#972](https://github.com/owncloud/ios-app/issues/972)
Details
-------
@@ -153,6 +207,20 @@ Details
https://github.com/owncloud/ios-app/pull/1105
+* Change - Infinite PROPFIND support: [#950](https://github.com/owncloud/ios-app/issues/950)
+
+ Added support for prepopulation of newly created account bookmarks via infinite PROPFINDs,
+ which speeds up the initial scan
+
+ https://github.com/owncloud/ios-app/issues/950
+
+* Change - Rename Account (without re-authentication): [#972](https://github.com/owncloud/ios-app/issues/972)
+
+ Check if only the account name was changed in edit mode: save and dismiss without
+ re-authentication
+
+ https://github.com/owncloud/ios-app/issues/972
+
* Change - Biometrical Authentication Button: [#1004](https://github.com/owncloud/ios-app/issues/1004)
Added biometrical authentication button to provide a fallback for the fileprovider or app, if
@@ -174,20 +242,6 @@ Details
https://github.com/owncloud/ios-app/pull/1059
-* Change - Infinite PROPFIND support: [#950](https://github.com/owncloud/ios-app/issues/950)
-
- Added support for prepopulation of newly created account bookmarks via infinite PROPFINDs,
- which speeds up the initial scan
-
- https://github.com/owncloud/ios-app/issues/950
-
-* Change - Rename Account (without re-authentication): [#972](https://github.com/owncloud/ios-app/issues/972)
-
- Check if only the account name was changed in edit mode: save and dismiss without
- re-authentication
-
- https://github.com/owncloud/ios-app/issues/972
-
Changelog for ownCloud iOS Client [11.8.2] (2022-01-17)
=======================================
The following sections list the changes in ownCloud iOS Client 11.8.2 relevant to
@@ -234,12 +288,19 @@ ownCloud admins and users.
Summary
-------
-* Change - Fallback on OIDC Dynamic Client Registration: [#1068](https://github.com/owncloud/ios-app/pull/1068)
* Change - Localized Sort Order: [#975](https://github.com/owncloud/ios-app/issues/975)
+* Change - Fallback on OIDC Dynamic Client Registration: [#1068](https://github.com/owncloud/ios-app/pull/1068)
Details
-------
+* Change - Localized Sort Order: [#975](https://github.com/owncloud/ios-app/issues/975)
+
+ Improved sorting results and localized sorting across query results and database queries,
+ via the SDK's new OCLOCALIZED collation and sort comparator.
+
+ https://github.com/owncloud/ios-app/issues/975
+
* Change - Fallback on OIDC Dynamic Client Registration: [#1068](https://github.com/owncloud/ios-app/pull/1068)
Adds authentication-oauth2.oidc-fallback-on-client-registration-failure -
@@ -249,13 +310,6 @@ Details
https://github.com/owncloud/ios-app/pull/1068
-* Change - Localized Sort Order: [#975](https://github.com/owncloud/ios-app/issues/975)
-
- Improved sorting results and localized sorting across query results and database queries,
- via the SDK's new OCLOCALIZED collation and sort comparator.
-
- https://github.com/owncloud/ios-app/issues/975
-
Changelog for ownCloud iOS Client [11.8.0] (2021-12-01)
=======================================
The following sections list the changes in ownCloud iOS Client 11.8.0 relevant to
@@ -390,13 +444,13 @@ ownCloud admins and users.
Summary
-------
+* Bugfix - (PDF-Viewer) Keyboard does not disappear: [#894](https://github.com/owncloud/ios-app/issues/894)
* Bugfix - Enabling Markup Edit Mode on iOS 15: [#1012](https://github.com/owncloud/ios-app/issues/1012)
* Bugfix - Automatic photo upload crash on iOS 15: [#1017](https://github.com/owncloud/ios-app/pull/1017)
* Bugfix - Open Private Link in Branded Client: [#1031](https://github.com/owncloud/ios-app/issues/1031)
-* Bugfix - (PDF-Viewer) "Go to page" action does not open last page: [#1033](https://github.com/owncloud/ios-app/issues/1033)
* Bugfix - Open Private Link in Branded App: [#1031](https://github.com/owncloud/ios-app/issues/1031)
+* Bugfix - (PDF-Viewer) "Go to page" action does not open last page: [#1033](https://github.com/owncloud/ios-app/issues/1033)
* Bugfix - (Branding) iOS 12 crash when entering Settings: [#4701](https://github.com/owncloud/enterprise/issues/4701)
-* Bugfix - (PDF-Viewer) Keyboard does not disappear: [#894](https://github.com/owncloud/ios-app/issues/894)
* Change - (Branding) Add build flags support: [#1026](https://github.com/owncloud/ios-app/pull/1026)
* Change - Added associated domains to resign script: [#1028](https://github.com/owncloud/ios-app/pull/1028)
* Change - (Branding) Send Feedback via URL: [#1035](https://github.com/owncloud/ios-app/pull/1035)
@@ -408,6 +462,12 @@ Summary
Details
-------
+* Bugfix - (PDF-Viewer) Keyboard does not disappear: [#894](https://github.com/owncloud/ios-app/issues/894)
+
+ Keyboard does not disappear when using the "Go to page" action on the iPad.
+
+ https://github.com/owncloud/ios-app/issues/894
+
* Bugfix - Enabling Markup Edit Mode on iOS 15: [#1012](https://github.com/owncloud/ios-app/issues/1012)
Auto-enabling the markup edit mode on iOS 15 was broken.
@@ -430,29 +490,23 @@ Details
https://github.com/owncloud/ios-app/issues/1031
-* Bugfix - (PDF-Viewer) "Go to page" action does not open last page: [#1033](https://github.com/owncloud/ios-app/issues/1033)
-
- The last page of a PDF file could not be opened with the "Go to page" action.
-
- https://github.com/owncloud/ios-app/issues/1033
-
* Bugfix - Open Private Link in Branded App: [#1031](https://github.com/owncloud/ios-app/issues/1031)
Private links will now be opened in detail view, if the app client is branded.
https://github.com/owncloud/ios-app/issues/1031
-* Bugfix - (Branding) iOS 12 crash when entering Settings: [#4701](https://github.com/owncloud/enterprise/issues/4701)
+* Bugfix - (PDF-Viewer) "Go to page" action does not open last page: [#1033](https://github.com/owncloud/ios-app/issues/1033)
- Addresses an issue where a branded build of the app crashes on iOS 12 upon entering Settings.
+ The last page of a PDF file could not be opened with the "Go to page" action.
- https://github.com/owncloud/enterprise/issues/4701
+ https://github.com/owncloud/ios-app/issues/1033
-* Bugfix - (PDF-Viewer) Keyboard does not disappear: [#894](https://github.com/owncloud/ios-app/issues/894)
+* Bugfix - (Branding) iOS 12 crash when entering Settings: [#4701](https://github.com/owncloud/enterprise/issues/4701)
- Keyboard does not disappear when using the "Go to page" action on the iPad.
+ Addresses an issue where a branded build of the app crashes on iOS 12 upon entering Settings.
- https://github.com/owncloud/ios-app/issues/894
+ https://github.com/owncloud/enterprise/issues/4701
* Change - (Branding) Add build flags support: [#1026](https://github.com/owncloud/ios-app/pull/1026)
@@ -558,14 +612,20 @@ ownCloud admins and users.
Summary
-------
+* Bugfix - FileProvider UI on iOS 12: [#986](https://github.com/owncloud/ios-app/issues/986)
* Bugfix - In some cases, background media upload worked not as expected: [#4547](https://github.com/owncloud/enterprise/issues/4547)
* Bugfix - Fixed misleading warnings at let's encrypt cert renewal: [#4558](https://github.com/owncloud/enterprise/issues/4558)
-* Bugfix - FileProvider UI on iOS 12: [#986](https://github.com/owncloud/ios-app/issues/986)
* Change - Additional URL Scheme: [#979](https://github.com/owncloud/ios-app/issues/979)
Details
-------
+* Bugfix - FileProvider UI on iOS 12: [#986](https://github.com/owncloud/ios-app/issues/986)
+
+ Views in FileProvider UI (public links, share with user) could not be dismissed on iOS 12
+
+ https://github.com/owncloud/ios-app/issues/986
+
* Bugfix - In some cases, background media upload worked not as expected: [#4547](https://github.com/owncloud/enterprise/issues/4547)
https://github.com/owncloud/enterprise/issues/4547
@@ -574,12 +634,6 @@ Details
https://github.com/owncloud/enterprise/issues/4558
-* Bugfix - FileProvider UI on iOS 12: [#986](https://github.com/owncloud/ios-app/issues/986)
-
- Views in FileProvider UI (public links, share with user) could not be dismissed on iOS 12
-
- https://github.com/owncloud/ios-app/issues/986
-
* Change - Additional URL Scheme: [#979](https://github.com/owncloud/ios-app/issues/979)
Added an additional URL scheme to open a specific app, if more than one ownCloud apps are
@@ -597,9 +651,6 @@ ownCloud admins and users.
Summary
-------
-* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
-* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
-* Bugfix - Enabling Markup Mode: [#4468](https://github.com/owncloud/enterprise/issues/4468)
* Bugfix - Improved AppStore Review Request Time: [#845](https://github.com/owncloud/ios-app/pull/845)
* Bugfix - Changed wording in documentation: [#867](https://github.com/owncloud/ios-app/pull/867)
* Bugfix - Fix bookmark name editing: [#877](https://github.com/owncloud/ios-app/pull/877)
@@ -612,11 +663,11 @@ Summary
* Bugfix - Disable Markup Action for Mime-Type Gif: [#952](https://github.com/owncloud/ios-app/issues/952)
* Bugfix - UI refinements in action card: [#956](https://github.com/owncloud/ios-app/issues/956)
* Bugfix - State Restoration for Branded Login: [#957](https://github.com/owncloud/ios-app/issues/957)
-* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
-* Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428)
-* Change - "Go to Page" reallocated in PDF previews: [#4448](https://github.com/owncloud/enterprise/issues/4448)
-* Change - French Localization: [#4450](https://github.com/owncloud/enterprise/issues/4450)
+* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
+* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
+* Bugfix - Enabling Markup Mode: [#4468](https://github.com/owncloud/enterprise/issues/4468)
* Change - Local account-wide search using custom queries: [#53](https://github.com/owncloud/ios-app/issues/53)
+* Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428)
* Change - Unified Branding with MDM support: [#697](https://github.com/owncloud/ios-app/issues/697)
* Change - Presentation Mode: [#704](https://github.com/owncloud/ios-app/issues/704)
* Change - Class Settings Metadata Support: [#831](https://github.com/owncloud/ios-app/issues/831)
@@ -633,30 +684,13 @@ Summary
* Change - File Provider Passcode Protection: [#880](https://github.com/owncloud/ios-app/issues/880)
* Change - Updated Keyboard Shortcuts: [#902](https://github.com/owncloud/ios-app/issues/902)
* Change - Added Actions to File Provider: Sharing & Public Links: [#910](https://github.com/owncloud/ios-app/pull/910)
+* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
+* Change - "Go to Page" reallocated in PDF previews: [#4448](https://github.com/owncloud/enterprise/issues/4448)
+* Change - French Localization: [#4450](https://github.com/owncloud/enterprise/issues/4450)
Details
-------
-* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
-
- - adds a paragraph on top of the Acknowledgements to provide additional context - adds
- PLCrashReporter license to acknowledgements
-
- https://github.com/owncloud/enterprise/issues/4284
-
-* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
-
- - UI fix for branded login on the iPad - Fill color for branded button was not used
-
- https://github.com/owncloud/enterprise/issues/4367
- https://github.com/owncloud/enterprise/issues/4366
-
-* Bugfix - Enabling Markup Mode: [#4468](https://github.com/owncloud/enterprise/issues/4468)
-
- In some cases enabling markup mode failed.
-
- https://github.com/owncloud/enterprise/issues/4468
-
* Bugfix - Improved AppStore Review Request Time: [#845](https://github.com/owncloud/ios-app/pull/845)
Changed request time for In-App review and fixed storing the first launch date
@@ -741,33 +775,25 @@ Details
https://github.com/owncloud/ios-app/issues/957
-* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
-
- - Passcode lock enforcement via class setting. User can be forced to set-up a passcode when he
- first starts the app - Auto-generated MDM documentation
-
- https://github.com/owncloud/enterprise/issues/4104
-
-* Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428)
+* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
- - A PDF file can be opened in fullscreen view and hides unnecessary UI elements. (Tap to trigger
- full screen view) - Thumbnails positioned based on vertical size class after rotating the
- device to give the displayed document more screen real estate.
+ - adds a paragraph on top of the Acknowledgements to provide additional context - adds
+ PLCrashReporter license to acknowledgements
- https://github.com/owncloud/ios-app/issues/428
+ https://github.com/owncloud/enterprise/issues/4284
-* Change - "Go to Page" reallocated in PDF previews: [#4448](https://github.com/owncloud/enterprise/issues/4448)
+* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
- The "Go to Page" option for PDF files has been reallocated to the Actions menu, and is also
- available by tapping on the page label.
+ - UI fix for branded login on the iPad - Fill color for branded button was not used
- https://github.com/owncloud/enterprise/issues/4448
+ https://github.com/owncloud/enterprise/issues/4367
+ https://github.com/owncloud/enterprise/issues/4366
-* Change - French Localization: [#4450](https://github.com/owncloud/enterprise/issues/4450)
+* Bugfix - Enabling Markup Mode: [#4468](https://github.com/owncloud/enterprise/issues/4468)
- Added french localization.
+ In some cases enabling markup mode failed.
- https://github.com/owncloud/enterprise/issues/4450
+ https://github.com/owncloud/enterprise/issues/4468
* Change - Local account-wide search using custom queries: [#53](https://github.com/owncloud/ios-app/issues/53)
@@ -776,6 +802,14 @@ Details
https://github.com/owncloud/ios-app/issues/53
+* Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428)
+
+ - A PDF file can be opened in fullscreen view and hides unnecessary UI elements. (Tap to trigger
+ full screen view) - Thumbnails positioned based on vertical size class after rotating the
+ device to give the displayed document more screen real estate.
+
+ https://github.com/owncloud/ios-app/issues/428
+
* Change - Unified Branding with MDM support: [#697](https://github.com/owncloud/ios-app/issues/697)
Refactored Branding, introducing a new Branding class, unifying branding support with class
@@ -895,6 +929,26 @@ Details
https://github.com/owncloud/ios-app/pull/910
+* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
+
+ - Passcode lock enforcement via class setting. User can be forced to set-up a passcode when he
+ first starts the app - Auto-generated MDM documentation
+
+ https://github.com/owncloud/enterprise/issues/4104
+
+* Change - "Go to Page" reallocated in PDF previews: [#4448](https://github.com/owncloud/enterprise/issues/4448)
+
+ The "Go to Page" option for PDF files has been reallocated to the Actions menu, and is also
+ available by tapping on the page label.
+
+ https://github.com/owncloud/enterprise/issues/4448
+
+* Change - French Localization: [#4450](https://github.com/owncloud/enterprise/issues/4450)
+
+ Added french localization.
+
+ https://github.com/owncloud/enterprise/issues/4450
+
Changelog for ownCloud iOS Client [11.5.2] (2021-03-03)
=======================================
The following sections list the changes in ownCloud iOS Client 11.5.2 relevant to
@@ -905,19 +959,13 @@ ownCloud admins and users.
Summary
-------
-* Bugfix - Accessing hyperlinks in PDF documents: [#4432](https://github.com/owncloud/enterprise/issues/4432)
* Bugfix - PDF thumbnail view position on the iPad: [#905](https://github.com/owncloud/ios-app/pull/905)
* Bugfix - Misplaced Collapsible Progress Bar in detail view: [#906](https://github.com/owncloud/ios-app/issues/906)
+* Bugfix - Accessing hyperlinks in PDF documents: [#4432](https://github.com/owncloud/enterprise/issues/4432)
Details
-------
-* Bugfix - Accessing hyperlinks in PDF documents: [#4432](https://github.com/owncloud/enterprise/issues/4432)
-
- Tap on hyperlinks in PDF documents opens the link.
-
- https://github.com/owncloud/enterprise/issues/4432
-
* Bugfix - PDF thumbnail view position on the iPad: [#905](https://github.com/owncloud/ios-app/pull/905)
Fixed the position of the PDF thumbnail view on the iPad from the bottom to the right position to
@@ -932,6 +980,12 @@ Details
https://github.com/owncloud/ios-app/issues/906
+* Bugfix - Accessing hyperlinks in PDF documents: [#4432](https://github.com/owncloud/enterprise/issues/4432)
+
+ Tap on hyperlinks in PDF documents opens the link.
+
+ https://github.com/owncloud/enterprise/issues/4432
+
Changelog for ownCloud iOS Client [11.5.1] (2021-02-17)
=======================================
The following sections list the changes in ownCloud iOS Client 11.5.1 relevant to
@@ -963,13 +1017,12 @@ ownCloud admins and users.
Summary
-------
-* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
-* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
* Bugfix - Improved AppStore Review Request Time: [#845](https://github.com/owncloud/ios-app/pull/845)
* Bugfix - Changed wording in documentation: [#867](https://github.com/owncloud/ios-app/pull/867)
* Bugfix - Fix bookmark name editing: [#877](https://github.com/owncloud/ios-app/pull/877)
* Bugfix - Media Player Behaviour: [#884](https://github.com/owncloud/ios-app/pull/884)
-* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
+* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
+* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
* Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428)
* Change - Unified Branding with MDM support: [#697](https://github.com/owncloud/ios-app/issues/697)
* Change - Class Settings Metadata Support: [#831](https://github.com/owncloud/ios-app/issues/831)
@@ -982,24 +1035,11 @@ Summary
* Change - TLS certificate comparison: [#872](https://github.com/owncloud/ios-app/pull/872)
* Change - New Issue view / presentation: [#874](https://github.com/owncloud/ios-app/pull/874)
* Change - Automated Calens Changelog Creation: [#879](https://github.com/owncloud/ios-app/pull/879)
+* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
Details
-------
-* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
-
- - adds a paragraph on top of the Acknowledgements to provide additional context - adds
- PLCrashReporter license to acknowledgements
-
- https://github.com/owncloud/enterprise/issues/4284
-
-* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
-
- - UI fix for branded login on the iPad - Fill color for branded button was not used
-
- https://github.com/owncloud/enterprise/issues/4367
- https://github.com/owncloud/enterprise/issues/4366
-
* Bugfix - Improved AppStore Review Request Time: [#845](https://github.com/owncloud/ios-app/pull/845)
Changed request time for In-App review and fixed storing the first launch date
@@ -1029,12 +1069,19 @@ Details
https://github.com/owncloud/ios-app/pull/884
-* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
+* Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284)
- - Passcode lock enforcement via class setting. User can be forced to set-up a passcode when he
- first starts the app - Auto-generated MDM documentation
+ - adds a paragraph on top of the Acknowledgements to provide additional context - adds
+ PLCrashReporter license to acknowledgements
- https://github.com/owncloud/enterprise/issues/4104
+ https://github.com/owncloud/enterprise/issues/4284
+
+* Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367)
+
+ - UI fix for branded login on the iPad - Fill color for branded button was not used
+
+ https://github.com/owncloud/enterprise/issues/4367
+ https://github.com/owncloud/enterprise/issues/4366
* Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428)
@@ -1127,6 +1174,13 @@ Details
https://github.com/owncloud/ios-app/pull/879
+* Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104)
+
+ - Passcode lock enforcement via class setting. User can be forced to set-up a passcode when he
+ first starts the app - Auto-generated MDM documentation
+
+ https://github.com/owncloud/enterprise/issues/4104
+
## Release version 11.4.5 (January 2021)
- Fix: Crash in Detail View (#855)
diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md
index 576976d90..e144ef90f 100644
--- a/KNOWN_ISSUES.md
+++ b/KNOWN_ISSUES.md
@@ -1,4 +1,4 @@
-# Known issues in version 12.0 alpha 2
+# Known issues
## WARNING
@@ -9,42 +9,87 @@ It should only be used with dedicated test servers, test data - and test devices
- in the new browsing experience, some features are not yet available:
- a grid view
- breadcrumb title
- - item / folder / usage info at the bottom of lists
- spaces do not yet show a member count or provide access to a list of members
- subscription of spaces can't be turned on/off yet
-- the root of spaces-based accounts is not yet shown as hierarchic sidebar
-- support for sharing is widely untested and/or unavailable in the alpha
-- inactivated state of spaces is not yet represented in the UI
-- Copy & Paste allows copying a folder into a subfolder of its own / itself, leading to an infinite cycle
- handling of detached drives with user data in them (see OCVault.detachedDrives)
-- sync actions that are actually complete are not always cleared from the Status tab until a logout/login
-- dropping an item into its source/origin folder (same view controller) triggers a MOVE that fails
+- [x] clicking a file in favorite view doesn't open the viewer (due to lack of context.query - the viewer clases need to be updated to use data sources rather than queries)
+- support for OC10 sharing is incomplete:
+ - lack of actions for accepted shares
+ - federated shares are not yet included in "Shared with me" view
+- spaces support for Shortcuts
+
+Missing:
+- [x] quick access
+- [x] proper iPhone support
+- [ ] static login/branded login UI
+- [x] state restoration
+- [ ] full inline progress reporting when account databases are updated on first login
+- [ ] progress reporting in active connections
+- [x] migration from the Legacy app clarified: the feature was removed
+- [x] iPadOS: opening an account in a new window
+ - [x] by context menu (openAccountInWindow)
+ - [x] by drag and drop (see ServerListTableViewController: UITableViewDragDelegate)
+- [x] account auto connect (also account.auto-connect in ServerListTableViewController) -> no longer necessary, handled by state restoration
+- [x] opening private links (display(itemWithID…:…))
+- [x] account issue handling
+- [x] functional share extension
+- [ ] full themeing/branding support
+- [ ] reinstate Key Commands
+
+Jesus:
+- [ ] Presentation view after installing is missing
+- [x] The icon to hide/show the sidebar is missing in portrait mode. -> resolved by BrowserNavigation replacement of UINavigationController
+- [x] Adding an oCIS account with existing custom spaces makes the app freezes and then crashes
+- [x] If an space is browsed and new space image is added in the web client, app crashes
+- [x] "Open in new window" option does not work. It does nothing after clicking
+- [x] I miss the option to "Select All" and "Deselect All" in multiselection
+- [x] "Copy" and "Move" operations show empty folder picker. No way to consolidate.
+- [ ] "Cut"/"Paste" only working in space scope
+- [ ] Upper bar (time, hour, battery level, and so on) is black under dark themes, not visible (fixable?)
+
+Matthias:
+- [x] Selecting an OC10 account's root folder twice results in an empty list -> not reproducible in latest builds
+
+Michael:
+- [x] Account deletion by swipe doesn't work
+- [x] Crash searching for accounts to share with
+- [x] Certificate warning when an account refers to a mix of hostnames
+- [ ] UI rendering picking an account for photo uploads on iPhone: prompt full length, button super-compressed.
## File Provider
- dragging an entire space on top of another starts a full copy of the space, which eventually fails halfway through
## SDK
-- local storage consumed by spaces that are then deleted or inactivated is not reclaimed
- pre-population of accounts using infinite PROPFIND is not supported
# Evolution roadmap
-- collection views
- - support sidebars / hierarchies, including expanded state, with dynamic updates from data sources
-
-- location picker replaces folder picker
- - supports picking
- - accounts
- - spaces
- - folders
- - returns an OCLocation
+- [ ] collection views
+ - [x] support sidebars / hierarchies, including expanded state, with dynamic updates from data sources
+ - [x] ItemListCell: replace manual composition of info line below name with SegmentView
+ - [x] allows to show different content there, f.ex. Space and Folder in search
+ - [ ] sticky sort / multiselect bar in file lists
+
+- [x] location picker replaces folder picker
+ - [x] supports picking
+ - [x] accounts
+ - [x] spaces
+ - [x] folders
+ - [x] returns an OCLocation
- allow passing "quick locations" to present on top in a group
- track and re-offer last-picked / recent locations (via account's KVS)
- quick access to personal and other spaces
- integrate favorites as group
+ - [x] use for preferences and share extension
+
+- improved bookmark setup / editing
+ - browsing UI for ALL certificates stored in a bookmark's store, not just the primary certificate
- account list
- allow grouping accounts (i.e. Home / Work)
- - replace simple list with modern CollectionViewController-based UI
+ - [x] replace simple list with modern CollectionViewController-based UI
+
+- available offline
+ - allow creating available offline item policies from smart searches - or directly from the search UI
- make sync smarter, f.ex.:
- a file that is updated locally multiple times only should be uploaded once, not once for every update
@@ -69,4 +114,6 @@ It should only be used with dedicated test servers, test data - and test devices
- other errors
- report to user, drop silently, retry (how often/long?)?
-- more expressive "Empty folder" message display, based on new .message item type
+- [x] more expressive "Empty folder" message display, based on new .message item type
+
+- show spinner while recreating a scene via "Open in new window"
diff --git a/Podfile b/Podfile
deleted file mode 100644
index 3c5337fd8..000000000
--- a/Podfile
+++ /dev/null
@@ -1,17 +0,0 @@
-ENV['COCOAPODS_DISABLE_STATS'] = 'true'
-
-target 'ownCloudTests' do
- project 'ownCloud'
-
- use_frameworks! # Required for Swift Test Targets only
- inherit! :search_paths # Required for not double-linking libraries in the app and test targets.
- pod 'EarlGrey', '~> 1.16'
-end
-
-target 'ownCloudScreenshotsTests' do
- project 'ownCloud'
-
- use_frameworks! # Required for Swift Test Targets only
- inherit! :search_paths # Required for not double-linking libraries in the app and test targets.
- pod 'EarlGrey', '~> 1.16'
-end
diff --git a/Podfile.lock b/Podfile.lock
deleted file mode 100644
index 6700af4b7..000000000
--- a/Podfile.lock
+++ /dev/null
@@ -1,16 +0,0 @@
-PODS:
- - EarlGrey (1.16.0)
-
-DEPENDENCIES:
- - EarlGrey (~> 1.16)
-
-SPEC REPOS:
- trunk:
- - EarlGrey
-
-SPEC CHECKSUMS:
- EarlGrey: 455e5597ae5ccaca92cd46b81d8b25cacec060a1
-
-PODFILE CHECKSUM: 9075b8f92281024401a0039c3477c9a16650b092
-
-COCOAPODS: 1.10.0
diff --git a/changelog/11.11.0_2022-09-26/1138 b/changelog/11.11.0_2022-09-26/1138
new file mode 100644
index 000000000..b5d61f2b2
--- /dev/null
+++ b/changelog/11.11.0_2022-09-26/1138
@@ -0,0 +1,5 @@
+Bugfix: Respect privateLinks capability
+
+Respect files.privateLinks capability and do not offer to create private links when privateLinks are not supported.
+
+https://github.com/owncloud/ios-app/issues/1138
diff --git a/changelog/11.11.0_2022-09-26/1141 b/changelog/11.11.0_2022-09-26/1141
new file mode 100644
index 000000000..5e7f8ffee
--- /dev/null
+++ b/changelog/11.11.0_2022-09-26/1141
@@ -0,0 +1,7 @@
+Bugfix: Enabling Markup Mode, Showing Video Controls on iOS 16, Updating Theme
+
+Enabling markup mode was broken on iOS 16 because of rearranged navigation bar and toolbar items.
+Video player controls were not showing on iOS 16.
+Furthermore when a new theme was chosen, this causes that the UITabBar and UIToolbar does not updates colours.
+
+https://github.com/owncloud/ios-app/issues/1141
diff --git a/changelog/11.11.0_2022-09-26/1146 b/changelog/11.11.0_2022-09-26/1146
new file mode 100644
index 000000000..bf5bdb0b6
--- /dev/null
+++ b/changelog/11.11.0_2022-09-26/1146
@@ -0,0 +1,5 @@
+Change: New Dark Mode Themes
+
+Adds a new dark mode theme which is mostly equal to the web UI dark mode theme. Furthermore it adds a black dark mode theme.
+
+https://github.com/owncloud/ios-app/issues/1146
diff --git a/changelog/11.11.0_2022-09-26/1156 b/changelog/11.11.0_2022-09-26/1156
new file mode 100644
index 000000000..b330c6dc0
--- /dev/null
+++ b/changelog/11.11.0_2022-09-26/1156
@@ -0,0 +1,5 @@
+Bugfix: Share Extension Passcode Lock Interval
+
+The passcode lock interval was not taken into use in the share extension.
+
+https://github.com/owncloud/ios-app/issues/1156
diff --git a/changelog/11.11.0_2022-09-26/5296 b/changelog/11.11.0_2022-09-26/5296
new file mode 100644
index 000000000..826e39c72
--- /dev/null
+++ b/changelog/11.11.0_2022-09-26/5296
@@ -0,0 +1,5 @@
+Bugfix: Video Metadata Image
+
+If a video file includes a metadata image, the video file was not visible, because the metadata image was overlaying.
+
+https://github.com/owncloud/enterprise/issues/5296
diff --git a/doc/BUILD_CUSTOMIZATION.md b/doc/BUILD_CUSTOMIZATION.md
new file mode 100644
index 000000000..ce413fb34
--- /dev/null
+++ b/doc/BUILD_CUSTOMIZATION.md
@@ -0,0 +1,38 @@
+# Build Flags
+
+## Description
+
+Build Flags can be used to control the inclusion or exclusion of certain functionality or features at compile time.
+
+## Usage in Branding
+
+A **space-separated** list of flags can be specified in the `Branding.plist` with the key `build.flags`, f.ex.:
+
+```xml
+build.flags
+DISABLE_BACKGROUND_LOCATION
+```
+
+## Flags
+
+The following options can be used as `build.flags`:
+
+### `DISABLE_BACKGROUND_LOCATION`
+
+Removes the following from the app:
+- the option for location-triggered background uploads from Settings
+- the location description keys from the app's `Info.plist`
+
+Not used by default.
+
+### `DISABLE_APPSTORE_LICENSING`
+
+Removes the following from the app:
+- App Store integration for OCLicense
+- App Store related view controllers and settings section
+
+### `DISABLE_PLAIN_HTTP`
+
+Removes the following from the app:
+- the `NSAppTransportSecurity` dictionary from the app's `Info.plist`
+- including the `NSAllowsArbitraryLoads` key that's needed to allow plain/unsecured HTTP connections
diff --git a/doc/CONFIGURATION.json b/doc/CONFIGURATION.json
index 631d8df97..7725deea3 100644
--- a/doc/CONFIGURATION.json
+++ b/doc/CONFIGURATION.json
@@ -1,18 +1,4 @@
[
- {
- "autoExpansion" : "none",
- "category" : "Account",
- "categoryTag" : "account",
- "classIdentifier" : "account",
- "className" : "ownCloud.ServerListTableViewController",
- "defaultValue" : false,
- "description" : "Skip \"Account\" screen / automatically open \"Files\" screen after login",
- "flatIdentifier" : "account.auto-connect",
- "key" : "auto-connect",
- "label" : "account.auto-connect",
- "status" : "supported",
- "type" : "bool"
- },
{
"autoExpansion" : "none",
"category" : "Actions",
@@ -35,6 +21,10 @@
"description" : "Copy",
"value" : "com.owncloud.action.copy"
},
+ {
+ "description" : "New document",
+ "value" : "com.owncloud.action.createDocument"
+ },
{
"description" : "Create folder",
"value" : "com.owncloud.action.createFolder"
@@ -47,6 +37,10 @@
"description" : "Delete",
"value" : "com.owncloud.action.delete"
},
+ {
+ "description" : "Close Window",
+ "value" : "com.owncloud.action.discardscene"
+ },
{
"description" : "Duplicate",
"value" : "com.owncloud.action.duplicate"
@@ -83,6 +77,10 @@
"description" : "Open in",
"value" : "com.owncloud.action.openin"
},
+ {
+ "description" : "Open in a new Window",
+ "value" : "com.owncloud.action.openscene"
+ },
{
"description" : "Go to page",
"value" : "com.owncloud.action.pdfpage"
@@ -149,6 +147,10 @@
"description" : "Copy",
"value" : "com.owncloud.action.copy"
},
+ {
+ "description" : "New document",
+ "value" : "com.owncloud.action.createDocument"
+ },
{
"description" : "Create folder",
"value" : "com.owncloud.action.createFolder"
@@ -161,6 +163,10 @@
"description" : "Delete",
"value" : "com.owncloud.action.delete"
},
+ {
+ "description" : "Close Window",
+ "value" : "com.owncloud.action.discardscene"
+ },
{
"description" : "Duplicate",
"value" : "com.owncloud.action.duplicate"
@@ -197,6 +203,10 @@
"description" : "Open in",
"value" : "com.owncloud.action.openin"
},
+ {
+ "description" : "Open in a new Window",
+ "value" : "com.owncloud.action.openscene"
+ },
{
"description" : "Go to page",
"value" : "com.owncloud.action.pdfpage"
@@ -241,6 +251,61 @@
"status" : "advanced",
"type" : "stringArray"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Actions",
+ "categoryTag" : "actions",
+ "classIdentifier" : "action",
+ "className" : "ownCloudAppShared.Action",
+ "description" : "List of all operating system activities that should be excluded from OS share sheets in actions such as Open In.",
+ "flatIdentifier" : "action.excludedSystemActivities",
+ "key" : "excludedSystemActivities",
+ "label" : "action.excludedSystemActivities",
+ "possibleValues" : [
+ {
+ "description" : "Add to reading list",
+ "value" : "com.apple.UIKit.activity.AddToReadingList"
+ },
+ {
+ "description" : "AirDrop",
+ "value" : "com.apple.UIKit.activity.AirDrop"
+ },
+ {
+ "description" : "Assign to contact",
+ "value" : "com.apple.UIKit.activity.AssignToContact"
+ },
+ {
+ "description" : "Copy to pasteboard",
+ "value" : "com.apple.UIKit.activity.CopyToPasteboard"
+ },
+ {
+ "description" : "Mail",
+ "value" : "com.apple.UIKit.activity.Mail"
+ },
+ {
+ "description" : "Markup as PDF",
+ "value" : "com.apple.UIKit.activity.MarkupAsPDF"
+ },
+ {
+ "description" : "Message",
+ "value" : "com.apple.UIKit.activity.Message"
+ },
+ {
+ "description" : "Open in (i)Books",
+ "value" : "com.apple.UIKit.activity.OpenInIBooks"
+ },
+ {
+ "description" : "Print",
+ "value" : "com.apple.UIKit.activity.Print"
+ },
+ {
+ "description" : "Save to camera roll",
+ "value" : "com.apple.UIKit.activity.SaveToCameraRoll"
+ }
+ ],
+ "status" : "advanced",
+ "type" : "stringArray"
+ },
{
"autoExpansion" : "none",
"category" : "App",
@@ -289,7 +354,7 @@
"categoryTag" : "app",
"classIdentifier" : "app",
"className" : "ownCloudAppShared.VendorServices",
- "defaultValue" : false,
+ "defaultValue" : true,
"description" : "Controls if the app is built for beta or release purposes.",
"flatIdentifier" : "app.is-beta-build",
"key" : "is-beta-build",
@@ -317,7 +382,7 @@
"categoryTag" : "app",
"classIdentifier" : "app",
"className" : "ownCloudAppShared.VendorServices",
- "defaultValue" : false,
+ "defaultValue" : true,
"description" : "Controls whether a warning should be shown on the first run of a beta version.",
"flatIdentifier" : "app.show-beta-warning",
"key" : "show-beta-warning",
@@ -408,6 +473,20 @@
"status" : "advanced",
"type" : "string"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "OIDC",
+ "categoryTag" : "oidc",
+ "classIdentifier" : "authentication-oauth2",
+ "className" : "OCAuthenticationMethodOAuth2",
+ "defaultValue" : true,
+ "description" : "If client registration is enabled, but registration fails, controls if the error should be ignored and the default client ID and secret should be used instead.",
+ "flatIdentifier" : "authentication-oauth2.oidc-fallback-on-client-registration-failure",
+ "key" : "oidc-fallback-on-client-registration-failure",
+ "label" : "authentication-oauth2.oidc-fallback-on-client-registration-failure",
+ "status" : "supported",
+ "type" : "bool"
+ },
{
"autoExpansion" : "none",
"category" : "OIDC",
@@ -824,6 +903,19 @@
"status" : "advanced",
"type" : "string"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Build",
+ "categoryTag" : "build",
+ "classIdentifier" : "build",
+ "className" : "BuildOptions",
+ "description" : "Set a custom app group identifier via Branding.plist parameter. This value will be set by fastlane. Changes OCAppGroupIdentifier, OCKeychainAccessGroupIdentifier and updates other, directly signing-relevant parts of the Info.plist. With this value set, fastlane needs the provisioning profiles and certificate with the app group identifier. This is needed, if a customer is using an own resigning script which does not handle setting the app group identifier.",
+ "flatIdentifier" : "build.app-group-identifier",
+ "key" : "app-group-identifier",
+ "label" : "build.app-group-identifier",
+ "status" : "supported",
+ "type" : "string"
+ },
{
"autoExpansion" : "none",
"category" : "Build",
@@ -831,7 +923,7 @@
"classIdentifier" : "build",
"className" : "BuildOptions",
"defaultValue" : "owncloud",
- "description" : "Name of the URL scheme to use for private links. Must be provided in Branding.plist at build time. For documentation, please see doc/BUILD_CUSTOMIZATION.md.",
+ "description" : "Name of the URL scheme to use for private links. Must be provided in Branding.plist at build time. For documentation, please see https://github.com/owncloud/ios-app/blob/master/doc/BUILD_CUSTOMIZATION.md.",
"flatIdentifier" : "build.custom-app-scheme",
"key" : "custom-app-scheme",
"label" : "build.custom-app-scheme",
@@ -845,7 +937,7 @@
"classIdentifier" : "build",
"className" : "BuildOptions",
"defaultValue" : "oc",
- "description" : "Name of the URL scheme to use for OAuth2/OIDC authentication. Must be provided in Branding.plist at build time. The authentication redirect URI parameters must also be changed accordingly in Branding.plist and on the server side. For documentation, please see doc/BUILD_CUSTOMIZATION.md.",
+ "description" : "Name of the URL scheme to use for OAuth2/OIDC authentication. Must be provided in Branding.plist at build time. The authentication redirect URI parameters must also be changed accordingly in Branding.plist and on the server side. For documentation, please see https://github.com/owncloud/ios-app/blob/master/doc/BUILD_CUSTOMIZATION.md.",
"flatIdentifier" : "build.custom-auth-scheme",
"key" : "custom-auth-scheme",
"label" : "build.custom-auth-scheme",
@@ -858,13 +950,26 @@
"categoryTag" : "build",
"classIdentifier" : "build",
"className" : "BuildOptions",
- "description" : "A set of space separated flags to customize the build. Must be provided in Branding.plist at build time. For documentation, please see doc/BUILD_CUSTOMIZATION.md.",
+ "description" : "A set of space separated flags to customize the build. Must be provided in Branding.plist at build time. For documentation, please see https://github.com/owncloud/ios-app/blob/master/doc/BUILD_CUSTOMIZATION.md.",
"flatIdentifier" : "build.flags",
"key" : "flags",
"label" : "build.flags",
"status" : "supported",
"type" : "string"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Build",
+ "categoryTag" : "build",
+ "classIdentifier" : "build",
+ "className" : "BuildOptions",
+ "description" : "Set a custom app group identifier via Branding.plist parameter. This value will be set by fastlane. Changes OCAppGroupIdentifier, OCKeychainAccessGroupIdentifier only. Fastlane does not need the provisioning profile and certificate with the given app group identifer. Needs resigning with the correct provisioning profile and certificate. This is needed, if a customer is using an own resigning script which does not handle setting the app group identifier.",
+ "flatIdentifier" : "build.oc-app-group-identifier",
+ "key" : "oc-app-group-identifier",
+ "label" : "build.oc-app-group-identifier",
+ "status" : "supported",
+ "type" : "string"
+ },
{
"autoExpansion" : "none",
"category" : "Connection",
@@ -938,6 +1043,20 @@
"status" : "advanced",
"type" : "bool"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Security",
+ "categoryTag" : "security",
+ "classIdentifier" : "connection",
+ "className" : "OCConnection",
+ "description" : "Rule that defines the criteria that need to be met by a hostname other than a bookmark's hostname for the associated certificate to be added to the bookmark, tracked for changes and validated by the same rules as the bookmark's primary certificate. No value (default) or a value of `(0 == 1)` disables this feature. A value of `$hostname like \"*.mycompany.com\"` tracks the certificates for all hosts ending with mycompany.com.",
+ "flags" : 4,
+ "flatIdentifier" : "connection.associated-certificates-tracking-rule",
+ "key" : "associated-certificates-tracking-rule",
+ "label" : "connection.associated-certificates-tracking-rule",
+ "status" : "advanced",
+ "type" : "string"
+ },
{
"autoExpansion" : "none",
"category" : "Security",
@@ -1028,21 +1147,6 @@
"status" : "advanced",
"type" : "string"
},
- {
- "autoExpansion" : "none",
- "category" : "Endpoints",
- "categoryTag" : "endpoints",
- "classIdentifier" : "connection",
- "className" : "OCConnection",
- "defaultValue" : "index.php/apps/files/api/v1/thumbnail",
- "description" : "Path of the thumbnail endpoint.",
- "flags" : 4,
- "flatIdentifier" : "connection.endpoint-thumbnail",
- "key" : "endpoint-thumbnail",
- "label" : "connection.endpoint-thumbnail",
- "status" : "advanced",
- "type" : "string"
- },
{
"autoExpansion" : "none",
"category" : "Endpoints",
@@ -1261,8 +1365,8 @@
},
{
"autoExpansion" : "none",
- "category" : "Privacy",
- "categoryTag" : "privacy",
+ "category" : "Connection",
+ "categoryTag" : "connection",
"classIdentifier" : "core",
"className" : "OCCore",
"defaultValue" : true,
@@ -1398,6 +1502,242 @@
"status" : "advanced",
"type" : "bool"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Extensions",
+ "categoryTag" : "extensions",
+ "classIdentifier" : "extensions",
+ "className" : "OCExtensionManager",
+ "defaultValue" : [
+
+ ],
+ "description" : "List of all disallowed extensions. If provided, extensions not listed here are allowed.",
+ "flatIdentifier" : "extensions.disallowed",
+ "key" : "disallowed",
+ "label" : "extensions.disallowed",
+ "possibleValues" : [
+ {
+ "description" : "Extension with the identifier action-timeout-simulator.",
+ "value" : "action-timeout-simulator"
+ },
+ {
+ "description" : "Extension with the identifier auth-race-condition.",
+ "value" : "auth-race-condition"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.background_update.",
+ "value" : "com.owncloud.action.background_update"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.collaborate.",
+ "value" : "com.owncloud.action.collaborate"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.copy.",
+ "value" : "com.owncloud.action.copy"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.createDocument.",
+ "value" : "com.owncloud.action.createDocument"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.createFolder.",
+ "value" : "com.owncloud.action.createFolder"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.cutpasteboard.",
+ "value" : "com.owncloud.action.cutpasteboard"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.delete.",
+ "value" : "com.owncloud.action.delete"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.discardscene.",
+ "value" : "com.owncloud.action.discardscene"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.duplicate.",
+ "value" : "com.owncloud.action.duplicate"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.favorite.",
+ "value" : "com.owncloud.action.favorite"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.importpasteboard.",
+ "value" : "com.owncloud.action.importpasteboard"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.instant_media_upload.",
+ "value" : "com.owncloud.action.instant_media_upload"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.links.",
+ "value" : "com.owncloud.action.links"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.makeAvailableOffline.",
+ "value" : "com.owncloud.action.makeAvailableOffline"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.makeUnavailableOffline.",
+ "value" : "com.owncloud.action.makeUnavailableOffline"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.markup.",
+ "value" : "com.owncloud.action.markup"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.move.",
+ "value" : "com.owncloud.action.move"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.openin.",
+ "value" : "com.owncloud.action.openin"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.openscene.",
+ "value" : "com.owncloud.action.openscene"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.pdfpage.",
+ "value" : "com.owncloud.action.pdfpage"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.pending_media_upload.",
+ "value" : "com.owncloud.action.pending_media_upload"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.presentationmode.",
+ "value" : "com.owncloud.action.presentationmode"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.rename.",
+ "value" : "com.owncloud.action.rename"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.scan.",
+ "value" : "com.owncloud.action.scan"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.show-exif.",
+ "value" : "com.owncloud.action.show-exif"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.unfavorite.",
+ "value" : "com.owncloud.action.unfavorite"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.unshare.",
+ "value" : "com.owncloud.action.unshare"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.upload.camera_media.",
+ "value" : "com.owncloud.action.upload.camera_media"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.uploadfile.",
+ "value" : "com.owncloud.action.uploadfile"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.action.uploadphotos.",
+ "value" : "com.owncloud.action.uploadphotos"
+ },
+ {
+ "description" : "Extension with the identifier com.owncloud.light.",
+ "value" : "com.owncloud.light"
+ },
+ {
+ "description" : "Extension with the identifier five-seconds-of-404.",
+ "value" : "five-seconds-of-404"
+ },
+ {
+ "description" : "Extension with the identifier license.Down.",
+ "value" : "license.Down"
+ },
+ {
+ "description" : "Extension with the identifier license.ISRunLoopThread.",
+ "value" : "license.ISRunLoopThread"
+ },
+ {
+ "description" : "Extension with the identifier license.PocketSVG.",
+ "value" : "license.PocketSVG"
+ },
+ {
+ "description" : "Extension with the identifier license.libzip.",
+ "value" : "license.libzip"
+ },
+ {
+ "description" : "Extension with the identifier license.openssl.",
+ "value" : "license.openssl"
+ },
+ {
+ "description" : "Extension with the identifier license.plcrashreporter.",
+ "value" : "license.plcrashreporter"
+ },
+ {
+ "description" : "Extension with the identifier lookup-table.",
+ "value" : "lookup-table"
+ },
+ {
+ "description" : "Extension with the identifier only-404.",
+ "value" : "only-404"
+ },
+ {
+ "description" : "Extension with the identifier org.owncloud.image.",
+ "value" : "org.owncloud.image"
+ },
+ {
+ "description" : "Extension with the identifier org.owncloud.media.",
+ "value" : "org.owncloud.media"
+ },
+ {
+ "description" : "Extension with the identifier org.owncloud.pdfViewer.default.",
+ "value" : "org.owncloud.pdfViewer.default"
+ },
+ {
+ "description" : "Extension with the identifier org.owncloud.ql_preview.",
+ "value" : "org.owncloud.ql_preview"
+ },
+ {
+ "description" : "Extension with the identifier org.owncloud.webview.",
+ "value" : "org.owncloud.webview"
+ },
+ {
+ "description" : "Extension with the identifier recovering-apm.",
+ "value" : "recovering-apm"
+ },
+ {
+ "description" : "Extension with the identifier reject-downloads-500.",
+ "value" : "reject-downloads-500"
+ },
+ {
+ "description" : "Extension with the identifier simple-apm.",
+ "value" : "simple-apm"
+ },
+ {
+ "description" : "Extension with the identifier web-finger.",
+ "value" : "web-finger"
+ }
+ ],
+ "status" : "advanced",
+ "type" : "stringArray"
+ },
+ {
+ "autoExpansion" : "none",
+ "category" : "FileProvider",
+ "categoryTag" : "fileprovider",
+ "classIdentifier" : "fileprovider",
+ "className" : "OCFileProviderSettings",
+ "defaultValue" : true,
+ "description" : "Controls whether the account content is available to other apps via File Provider / Files.app.",
+ "flatIdentifier" : "fileprovider.browseable",
+ "key" : "browseable",
+ "label" : "fileprovider.browseable",
+ "status" : "supported",
+ "type" : "bool"
+ },
{
"autoExpansion" : "none",
"category" : "Connection",
@@ -1412,6 +1752,14 @@
"key" : "active-simulations",
"label" : "host-simulator.active-simulations",
"possibleValues" : [
+ {
+ "description" : "Lets all MOVE/COPY/DELETE/PUT requests fail with a timeout error.",
+ "value" : "action-timeout-simulator"
+ },
+ {
+ "description" : "Responds to all .well-known/webfinger requests with server-instance responses.",
+ "value" : "auth-race-condition"
+ },
{
"description" : "Return status code 404 for every request for the first five seconds.",
"value" : "five-seconds-of-404"
@@ -1431,6 +1779,10 @@
{
"description" : "Redirect any request without cookies to a cookie-setting endpoint, where cookies are set - and then redirect back.",
"value" : "simple-apm"
+ },
+ {
+ "description" : "Responds to all .well-known/webfinger requests with server-instance responses.",
+ "value" : "web-finger"
}
],
"status" : "debugOnly",
@@ -1490,7 +1842,7 @@
"key" : "vacuum-sync-anchor-ttl",
"label" : "item-policy.vacuum-sync-anchor-ttl",
"status" : "debugOnly",
- "type" : "bool"
+ "type" : "int"
},
{
"autoExpansion" : "none",
@@ -1765,6 +2117,21 @@
"classIdentifier" : "log",
"className" : "OCLogger",
"defaultValue" : true,
+ "description" : "Controls whether messages spanning more than one line should be logged as a single line, after replacing new line characters with \"\\n\".",
+ "flags" : 4,
+ "flatIdentifier" : "log.replace-newline",
+ "key" : "replace-newline",
+ "label" : "log.replace-newline",
+ "status" : "advanced",
+ "type" : "bool"
+ },
+ {
+ "autoExpansion" : "none",
+ "category" : "Logging",
+ "categoryTag" : "logging",
+ "classIdentifier" : "log",
+ "className" : "OCLogger",
+ "defaultValue" : false,
"description" : "Controls whether messages spanning more than one line should be broken into their individual lines and each be logged with the complete lead-in/lead-out sequence.",
"flags" : 4,
"flatIdentifier" : "log.single-lined",
@@ -1858,6 +2225,27 @@
"status" : "advanced",
"type" : "int"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Passcode",
+ "categoryTag" : "passcode",
+ "classIdentifier" : "passcode",
+ "className" : "AppLockSettings",
+ "defaultValue" : {
+ "com.air-watch.boxer" : {
+ "allow" : false
+ },
+ "default" : {
+ "allow" : true
+ }
+ },
+ "description" : "Controls the biometrical unlock availability in the share sheet, with per-app level control.",
+ "flatIdentifier" : "passcode.share-sheet-biometrical-unlock-by-app",
+ "key" : "share-sheet-biometrical-unlock-by-app",
+ "label" : "passcode.share-sheet-biometrical-unlock-by-app",
+ "status" : "advanced",
+ "type" : "dictionary"
+ },
{
"autoExpansion" : "none",
"category" : "Passcode",
@@ -1872,6 +2260,22 @@
"status" : "advanced",
"type" : "bool"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Security",
+ "categoryTag" : "security",
+ "classIdentifier" : "post-build",
+ "className" : "OCClassSettingsFlatSourcePostBuild",
+ "defaultValue" : [
+
+ ],
+ "description" : "List of settings (as flat identifiers) that are allowed to be changed post-build via the app's URL scheme. Including a value of \"*\" allows any setting to be changed. Defaults to an empty array (equalling not allowed). ",
+ "flatIdentifier" : "post-build.allowed-settings",
+ "key" : "allowed-settings",
+ "label" : "post-build.allowed-settings",
+ "status" : "advanced",
+ "type" : "stringArray"
+ },
{
"autoExpansion" : "none",
"category" : "Release Notes",
@@ -1898,6 +2302,42 @@
"status" : "debugOnly",
"type" : "string"
},
+ {
+ "autoExpansion" : "none",
+ "category" : "Connection",
+ "categoryTag" : "connection",
+ "classIdentifier" : "server-locator",
+ "className" : "OCServerLocator",
+ "description" : "Lookup table that maps users to server URLs",
+ "flatIdentifier" : "server-locator.lookup-table",
+ "key" : "lookup-table",
+ "label" : "server-locator.lookup-table",
+ "status" : "advanced",
+ "type" : "dictionary"
+ },
+ {
+ "autoExpansion" : "none",
+ "category" : "Connection",
+ "categoryTag" : "connection",
+ "classIdentifier" : "server-locator",
+ "className" : "OCServerLocator",
+ "description" : "Use Server Locator",
+ "flatIdentifier" : "server-locator.use",
+ "key" : "use",
+ "label" : "server-locator.use",
+ "possibleValues" : [
+ {
+ "description" : "Locate server via lookup table. Keys can match against the beginning (f.ex. \"begins:bob@\"), end (f.ex. \"ends:@owncloud.org\") or regular expression (f.ex. \"regexp:\")",
+ "value" : "lookup-table"
+ },
+ {
+ "description" : "Locate server via Webfinger service-instance relation (http://webfinger.owncloud/rel/server-instance) using the entered/provided server URL",
+ "value" : "web-finger"
+ }
+ ],
+ "status" : "advanced",
+ "type" : "string"
+ },
{
"autoExpansion" : "none",
"category" : "Security",
diff --git a/doc/images/el/keyword.strings b/doc/images/el/keyword.strings
index f60e7bc49..8a3dbb69f 100644
Binary files a/doc/images/el/keyword.strings and b/doc/images/el/keyword.strings differ
diff --git a/doc/images/el/title.strings b/doc/images/el/title.strings
index 57713faf8..2f4549f36 100644
Binary files a/doc/images/el/title.strings and b/doc/images/el/title.strings differ
diff --git a/doc/images/ko/keyword.strings b/doc/images/ko/keyword.strings
new file mode 100644
index 000000000..aa725dfd0
Binary files /dev/null and b/doc/images/ko/keyword.strings differ
diff --git a/doc/images/ko/title.strings b/doc/images/ko/title.strings
new file mode 100644
index 000000000..c332ce3eb
Binary files /dev/null and b/doc/images/ko/title.strings differ
diff --git a/enterprise/resign/resignOwncloudApp b/enterprise/resign/resignOwncloudApp
index 23bd551e0..2f8870c83 100755
--- a/enterprise/resign/resignOwncloudApp
+++ b/enterprise/resign/resignOwncloudApp
@@ -7,7 +7,7 @@
# For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
# You should have received a copy of this license along with this program. If not, see .
-VERSION="1.2.0"
+VERSION="1.2.1"
#Define output formats
BOLD="$(tput bold)"
@@ -81,7 +81,7 @@ if [ ! -f "$UNSIGNED_IPA" ]; then
fi
# Get certificate SHA-1
-CERT_SHA_1=`security find-certificate -c "$IDENTITY" -Z | grep "^SHA-1" | cut -d: -f 2 | xargs`
+CERT_SHA_1=`security find-certificate -c "$IDENTITY" -Z | grep "^SHA-256" | cut -d: -f 2 | xargs`
# Create temp directory
mkdir $APPTEMP
@@ -96,7 +96,7 @@ else
# Convert provisioning profile to plist
security cms -D -i "$a" > "$APPTEMP/tmp.plist"
# Get provisioning SHA-1
- PROV_SHA_1=`/usr/libexec/PlistBuddy -c "Print :DeveloperCertificates:0" $APPTEMP/tmp.plist | openssl x509 -inform der -fingerprint | grep "^SHA1" | cut -d= -f 2 | ruby -ne 'puts $_.split(":").join'`
+ PROV_SHA_1=`/usr/libexec/PlistBuddy -c "Print :DeveloperCertificates:0" $APPTEMP/tmp.plist | openssl x509 -inform der -fingerprint | grep "^SHA256" | cut -d= -f 2 | ruby -ne 'puts $_.split(":").join'`
rm -f "$APPTEMP/tmp.plist"
if [ "$CERT_SHA_1" = "$PROV_SHA_1" ]; then
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
index b070b2cd3..53eeba7fb 100644
--- a/fastlane/Fastfile
+++ b/fastlane/Fastfile
@@ -28,7 +28,7 @@ platform :ios do
lane :build_ipa_ad_hoc do
#Create the build
gym(
- workspace: "ownCloud.xcworkspace",
+ project: "ownCloud.xcodeproj",
scheme: "ownCloud",
codesigning_identity: "Apple Distribution: ownCloud GmbH (4AP2STM4H5)",
export_method: "ad-hoc",
@@ -463,8 +463,7 @@ end
if File.exist?(xcode_version_paths)
required_version = File.read(xcode_version_paths).strip
puts "Found required Xcode version: " + required_version
- xcversion(version: required_version)
- ensure_xcode_version()
+ ensure_xcode_version(version: required_version)
end
appName = "ownCloud"
@@ -547,6 +546,12 @@ end
sh "mv ../ownCloud/Resources/Info.plist.mod ../ownCloud/Resources/Info.plist"
end
+ # Special handling for app build flag DISABLE_PLAIN_HTTP (see above why this is needed)
+ if appBuildFlags.include? "DISABLE_PLAIN_HTTP"
+ sh "sed '/#ifndef DISABLE_PLAIN_HTTP/,/#endif/d' ../ownCloud/Resources/Info.plist >../ownCloud/Resources/Info.plist.mod"
+ sh "mv ../ownCloud/Resources/Info.plist.mod ../ownCloud/Resources/Info.plist"
+ end
+
# update_url_schemes can't seem to reach the second URL scheme ("oc") for authentication
# so using sed and a XML property instead
if !appCustomAppScheme.empty?
@@ -824,13 +829,13 @@ end
#Create the build
build_app(
- workspace: "ownCloud.xcworkspace",
+ project: "ownCloud.xcodeproj",
scheme: "ownCloud",
configuration: CONFIGURATION,
codesigning_identity: ENTERPRISE_IDENTITY,
output_name: ipaName,
export_method: EXPORT_METHOD,
- xcargs: "APP_BUILD_FLAGS='" + appBuildFlags + "'",
+ xcargs: "CODE_SIGN_STYLE=Manual APP_BUILD_FLAGS='" + appBuildFlags + "'",
export_options: {
method: EXPORT_METHOD,
provisioningProfiles: {
diff --git a/fastlane/metadata-emm/en-US/release_notes.txt b/fastlane/metadata-emm/en-US/release_notes.txt
index 5da11c0dc..88613836b 100644
--- a/fastlane/metadata-emm/en-US/release_notes.txt
+++ b/fastlane/metadata-emm/en-US/release_notes.txt
@@ -1,9 +1,15 @@
-• UI fixes on iOS 15
-This version fixes some UI problems on iOS 15.
+• New Dark Mode Themes
+Two new dark mode themes are available.
-• Shortcuts Action
-The shortcuts action Delete Path Item did not provided configured accounts.
+• iOS 16: Markup Mode
+Markup mode was not enabled automatically on iOS 16.
-• Increased Timeout for Copy Action
-Timeout for Copy Action was increased up to 10 minutes.
+• iOS 16: Video Player
+Video player controls were not showing on iOS 16.
+
+• Video Player
+Metadata image could overlay the video player canvas.
+
+• Passcode Interval
+The passcode lock interval was not taken into use in the share extension.
diff --git a/fastlane/metadata-owncloud-online/en-US/release_notes.txt b/fastlane/metadata-owncloud-online/en-US/release_notes.txt
index 5da11c0dc..88613836b 100644
--- a/fastlane/metadata-owncloud-online/en-US/release_notes.txt
+++ b/fastlane/metadata-owncloud-online/en-US/release_notes.txt
@@ -1,9 +1,15 @@
-• UI fixes on iOS 15
-This version fixes some UI problems on iOS 15.
+• New Dark Mode Themes
+Two new dark mode themes are available.
-• Shortcuts Action
-The shortcuts action Delete Path Item did not provided configured accounts.
+• iOS 16: Markup Mode
+Markup mode was not enabled automatically on iOS 16.
-• Increased Timeout for Copy Action
-Timeout for Copy Action was increased up to 10 minutes.
+• iOS 16: Video Player
+Video player controls were not showing on iOS 16.
+
+• Video Player
+Metadata image could overlay the video player canvas.
+
+• Passcode Interval
+The passcode lock interval was not taken into use in the share extension.
diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt
index 5da11c0dc..88613836b 100644
--- a/fastlane/metadata/en-US/release_notes.txt
+++ b/fastlane/metadata/en-US/release_notes.txt
@@ -1,9 +1,15 @@
-• UI fixes on iOS 15
-This version fixes some UI problems on iOS 15.
+• New Dark Mode Themes
+Two new dark mode themes are available.
-• Shortcuts Action
-The shortcuts action Delete Path Item did not provided configured accounts.
+• iOS 16: Markup Mode
+Markup mode was not enabled automatically on iOS 16.
-• Increased Timeout for Copy Action
-Timeout for Copy Action was increased up to 10 minutes.
+• iOS 16: Video Player
+Video player controls were not showing on iOS 16.
+
+• Video Player
+Metadata image could overlay the video player canvas.
+
+• Passcode Interval
+The passcode lock interval was not taken into use in the share extension.
diff --git a/fastlane/screenshots/ar/keyword.strings b/fastlane/screenshots/ar/keyword.strings
new file mode 100644
index 000000000..57ed3deb4
Binary files /dev/null and b/fastlane/screenshots/ar/keyword.strings differ
diff --git a/fastlane/screenshots/ar/title.strings b/fastlane/screenshots/ar/title.strings
new file mode 100644
index 000000000..57ed3deb4
Binary files /dev/null and b/fastlane/screenshots/ar/title.strings differ
diff --git a/fastlane/screenshots/ca/keyword.strings b/fastlane/screenshots/ca/keyword.strings
new file mode 100644
index 000000000..8d6072935
Binary files /dev/null and b/fastlane/screenshots/ca/keyword.strings differ
diff --git a/fastlane/screenshots/de-DE/keyword.strings b/fastlane/screenshots/de-DE/keyword.strings
new file mode 100644
index 000000000..fe237c7fe
Binary files /dev/null and b/fastlane/screenshots/de-DE/keyword.strings differ
diff --git a/fastlane/screenshots/de-DE/title.strings b/fastlane/screenshots/de-DE/title.strings
new file mode 100644
index 000000000..0a9465ab8
Binary files /dev/null and b/fastlane/screenshots/de-DE/title.strings differ
diff --git a/fastlane/screenshots/de/keyword.strings b/fastlane/screenshots/de/keyword.strings
new file mode 100644
index 000000000..fe237c7fe
Binary files /dev/null and b/fastlane/screenshots/de/keyword.strings differ
diff --git a/fastlane/screenshots/de/title.strings b/fastlane/screenshots/de/title.strings
new file mode 100644
index 000000000..0a9465ab8
Binary files /dev/null and b/fastlane/screenshots/de/title.strings differ
diff --git a/fastlane/screenshots/de_CH/keyword.strings b/fastlane/screenshots/de_CH/keyword.strings
new file mode 100644
index 000000000..fe237c7fe
Binary files /dev/null and b/fastlane/screenshots/de_CH/keyword.strings differ
diff --git a/fastlane/screenshots/de_CH/title.strings b/fastlane/screenshots/de_CH/title.strings
new file mode 100644
index 000000000..0a9465ab8
Binary files /dev/null and b/fastlane/screenshots/de_CH/title.strings differ
diff --git a/fastlane/screenshots/el/keyword.strings b/fastlane/screenshots/el/keyword.strings
new file mode 100644
index 000000000..8a3dbb69f
Binary files /dev/null and b/fastlane/screenshots/el/keyword.strings differ
diff --git a/fastlane/screenshots/el/title.strings b/fastlane/screenshots/el/title.strings
new file mode 100644
index 000000000..2f4549f36
Binary files /dev/null and b/fastlane/screenshots/el/title.strings differ
diff --git a/fastlane/screenshots/en-GB/keyword.strings b/fastlane/screenshots/en-GB/keyword.strings
new file mode 100644
index 000000000..aba384182
Binary files /dev/null and b/fastlane/screenshots/en-GB/keyword.strings differ
diff --git a/fastlane/screenshots/en-GB/title.strings b/fastlane/screenshots/en-GB/title.strings
new file mode 100644
index 000000000..547033c70
Binary files /dev/null and b/fastlane/screenshots/en-GB/title.strings differ
diff --git a/fastlane/screenshots/es/keyword.strings b/fastlane/screenshots/es/keyword.strings
new file mode 100644
index 000000000..ad1dc0f49
Binary files /dev/null and b/fastlane/screenshots/es/keyword.strings differ
diff --git a/fastlane/screenshots/es/title.strings b/fastlane/screenshots/es/title.strings
new file mode 100644
index 000000000..90b256dbb
Binary files /dev/null and b/fastlane/screenshots/es/title.strings differ
diff --git a/fastlane/screenshots/et_EE/title.strings b/fastlane/screenshots/et_EE/title.strings
new file mode 100644
index 000000000..5086a9bf9
Binary files /dev/null and b/fastlane/screenshots/et_EE/title.strings differ
diff --git a/fastlane/screenshots/eu/keyword.strings b/fastlane/screenshots/eu/keyword.strings
new file mode 100644
index 000000000..bc56f9a28
Binary files /dev/null and b/fastlane/screenshots/eu/keyword.strings differ
diff --git a/fastlane/screenshots/eu/title.strings b/fastlane/screenshots/eu/title.strings
new file mode 100644
index 000000000..3a670b7a7
Binary files /dev/null and b/fastlane/screenshots/eu/title.strings differ
diff --git a/fastlane/screenshots/fr/title.strings b/fastlane/screenshots/fr/title.strings
new file mode 100644
index 000000000..c64d79caf
Binary files /dev/null and b/fastlane/screenshots/fr/title.strings differ
diff --git a/fastlane/screenshots/gl/keyword.strings b/fastlane/screenshots/gl/keyword.strings
new file mode 100644
index 000000000..db8cff283
Binary files /dev/null and b/fastlane/screenshots/gl/keyword.strings differ
diff --git a/fastlane/screenshots/gl/title.strings b/fastlane/screenshots/gl/title.strings
new file mode 100644
index 000000000..4e0cabde7
Binary files /dev/null and b/fastlane/screenshots/gl/title.strings differ
diff --git a/fastlane/screenshots/he/keyword.strings b/fastlane/screenshots/he/keyword.strings
new file mode 100644
index 000000000..05b8a398a
Binary files /dev/null and b/fastlane/screenshots/he/keyword.strings differ
diff --git a/fastlane/screenshots/he/title.strings b/fastlane/screenshots/he/title.strings
new file mode 100644
index 000000000..311f4c0fc
Binary files /dev/null and b/fastlane/screenshots/he/title.strings differ
diff --git a/fastlane/screenshots/km/keyword.strings b/fastlane/screenshots/km/keyword.strings
new file mode 100644
index 000000000..9e578cb74
Binary files /dev/null and b/fastlane/screenshots/km/keyword.strings differ
diff --git a/fastlane/screenshots/ko/keyword.strings b/fastlane/screenshots/ko/keyword.strings
new file mode 100644
index 000000000..aa725dfd0
Binary files /dev/null and b/fastlane/screenshots/ko/keyword.strings differ
diff --git a/fastlane/screenshots/ko/title.strings b/fastlane/screenshots/ko/title.strings
new file mode 100644
index 000000000..c332ce3eb
Binary files /dev/null and b/fastlane/screenshots/ko/title.strings differ
diff --git a/fastlane/screenshots/lv/title.strings b/fastlane/screenshots/lv/title.strings
new file mode 100644
index 000000000..fec42a1f9
Binary files /dev/null and b/fastlane/screenshots/lv/title.strings differ
diff --git a/fastlane/screenshots/pt-BR/keyword.strings b/fastlane/screenshots/pt-BR/keyword.strings
new file mode 100644
index 000000000..37766ce90
Binary files /dev/null and b/fastlane/screenshots/pt-BR/keyword.strings differ
diff --git a/fastlane/screenshots/pt-BR/title.strings b/fastlane/screenshots/pt-BR/title.strings
new file mode 100644
index 000000000..bd1d1bd72
Binary files /dev/null and b/fastlane/screenshots/pt-BR/title.strings differ
diff --git a/fastlane/screenshots/ru/keyword.strings b/fastlane/screenshots/ru/keyword.strings
new file mode 100644
index 000000000..a004b1a7b
Binary files /dev/null and b/fastlane/screenshots/ru/keyword.strings differ
diff --git a/fastlane/screenshots/ru/title.strings b/fastlane/screenshots/ru/title.strings
new file mode 100644
index 000000000..8684188dd
Binary files /dev/null and b/fastlane/screenshots/ru/title.strings differ
diff --git a/fastlane/screenshots/sq/keyword.strings b/fastlane/screenshots/sq/keyword.strings
new file mode 100644
index 000000000..893314b78
Binary files /dev/null and b/fastlane/screenshots/sq/keyword.strings differ
diff --git a/fastlane/screenshots/sq/title.strings b/fastlane/screenshots/sq/title.strings
new file mode 100644
index 000000000..aeab3e0d3
Binary files /dev/null and b/fastlane/screenshots/sq/title.strings differ
diff --git a/fastlane/screenshots/th-TH/keyword.strings b/fastlane/screenshots/th-TH/keyword.strings
new file mode 100644
index 000000000..fa36c4461
Binary files /dev/null and b/fastlane/screenshots/th-TH/keyword.strings differ
diff --git a/fastlane/screenshots/th-TH/title.strings b/fastlane/screenshots/th-TH/title.strings
new file mode 100644
index 000000000..9e8b8b3be
Binary files /dev/null and b/fastlane/screenshots/th-TH/title.strings differ
diff --git a/fastlane/screenshots/tr/keyword.strings b/fastlane/screenshots/tr/keyword.strings
new file mode 100644
index 000000000..c8d9b7ab5
Binary files /dev/null and b/fastlane/screenshots/tr/keyword.strings differ
diff --git a/fastlane/screenshots/tr/title.strings b/fastlane/screenshots/tr/title.strings
new file mode 100644
index 000000000..d6f3387f7
Binary files /dev/null and b/fastlane/screenshots/tr/title.strings differ
diff --git a/fastlane/screenshots/ur_PK/keyword.strings b/fastlane/screenshots/ur_PK/keyword.strings
new file mode 100644
index 000000000..0ffb50a7a
Binary files /dev/null and b/fastlane/screenshots/ur_PK/keyword.strings differ
diff --git a/fastlane/screenshots/zh-Hans/keyword.strings b/fastlane/screenshots/zh-Hans/keyword.strings
new file mode 100644
index 000000000..384e9c30f
Binary files /dev/null and b/fastlane/screenshots/zh-Hans/keyword.strings differ
diff --git a/fastlane/screenshots/zh-Hans/title.strings b/fastlane/screenshots/zh-Hans/title.strings
new file mode 100644
index 000000000..d9d2b6e1b
Binary files /dev/null and b/fastlane/screenshots/zh-Hans/title.strings differ
diff --git a/fastlane/screenshots/zh_TW/keyword.strings b/fastlane/screenshots/zh_TW/keyword.strings
new file mode 100644
index 000000000..c6185c38f
Binary files /dev/null and b/fastlane/screenshots/zh_TW/keyword.strings differ
diff --git a/fastlane/screenshots/zh_TW/title.strings b/fastlane/screenshots/zh_TW/title.strings
new file mode 100644
index 000000000..9676e63d1
Binary files /dev/null and b/fastlane/screenshots/zh_TW/title.strings differ
diff --git a/ios-sdk b/ios-sdk
index 93cfe6b31..5d81d1e01 160000
--- a/ios-sdk
+++ b/ios-sdk
@@ -1 +1 @@
-Subproject commit 93cfe6b31beb2f63624c85766f03f5ca723ad64e
+Subproject commit 5d81d1e017b2a34b0a9cdc0d2677dc0edd148bb1
diff --git a/ownCloud File Provider UI/DocumentActionViewController.swift b/ownCloud File Provider UI/DocumentActionViewController.swift
index 9ff1fe6af..b7b60a746 100644
--- a/ownCloud File Provider UI/DocumentActionViewController.swift
+++ b/ownCloud File Provider UI/DocumentActionViewController.swift
@@ -61,6 +61,16 @@ class DocumentActionViewController: FPUIActionExtensionViewController {
}
}
+ func prepareNavigationController() {
+ if themeNavigationController == nil {
+ themeNavigationController = ThemeNavigationController()
+ if let themeNavigationController = themeNavigationController {
+ view.addSubview(themeNavigationController.view)
+ addChild(themeNavigationController)
+ }
+ }
+ }
+
override func prepare(forAction actionIdentifier: String, itemIdentifiers: [NSFileProviderItemIdentifier]) {
guard let identifier = itemIdentifiers.first else {
@@ -71,11 +81,7 @@ class DocumentActionViewController: FPUIActionExtensionViewController {
let collection = Theme.shared.activeCollection
self.view.backgroundColor = collection.toolbarColors.backgroundColor
- themeNavigationController = ThemeNavigationController()
- if let themeNavigationController = themeNavigationController {
- view.addSubview(themeNavigationController.view)
- addChild(themeNavigationController)
- }
+ prepareNavigationController()
showCancelLabel(with: "Connecting…".localized)
@@ -151,6 +157,12 @@ class DocumentActionViewController: FPUIActionExtensionViewController {
}
override func prepare(forError error: Error) {
+ if !OCFileProviderSettings.browseable {
+ prepareNavigationController()
+ showCancelLabel(with: "File Provider access has been disabled by the administrator.\n\nPlease use the app to access your files.".localized)
+ return
+ }
+
if AppLockManager.supportedOnDevice {
AppLockManager.shared.passwordViewHostViewController = self
AppLockManager.shared.biometricCancelLabel = "Cancel".localized
@@ -163,6 +175,7 @@ class DocumentActionViewController: FPUIActionExtensionViewController {
AppLockManager.shared.showLockscreenIfNeeded()
} else {
+ prepareNavigationController()
showCancelLabel(with: "Passcode protection is not supported on this device.\nPlease disable passcode lock in the app settings.".localized)
}
}
diff --git a/ownCloud File Provider/FileProviderExtension.m b/ownCloud File Provider/FileProviderExtension.m
index c78f3545f..135dafc03 100644
--- a/ownCloud File Provider/FileProviderExtension.m
+++ b/ownCloud File Provider/FileProviderExtension.m
@@ -492,6 +492,12 @@ - (void)createDirectoryWithName:(NSString *)directoryName inParentItemIdentifier
NSError *error = nil;
OCItem *parentItem;
+ if (!OCFileProviderSettings.browseable)
+ {
+ completionHandler(nil, [OCErrorWithDescription(OCErrorInternal, OCLocalized(@"File Provider access has been disabled by the administrator. Please use the app to create new folders.")) translatedError]);
+ return;
+ }
+
FPLogCmdBegin(@"CreateDir", @"Start of createDirectoryWithName=%@, inParentItemIdentifier=%@", directoryName, parentItemIdentifier);
if ((parentItem = [self ocItemForIdentifier:parentItemIdentifier vfsNode:NULL error:&error]) != nil)
@@ -674,6 +680,12 @@ - (void)importDocumentAtURL:(NSURL *)fileURL toParentItemIdentifier:(NSFileProvi
NSError *error = nil;
BOOL stopAccess = NO;
+ if (!OCFileProviderSettings.browseable)
+ {
+ completionHandler(nil, [OCErrorWithDescription(OCErrorInternal, OCLocalized(@"File Provider access has been disabled by the administrator. Please use the share extension to import files.")) translatedError]);
+ return;
+ }
+
if (![Branding.sharedBranding isImportMethodAllowed:BrandingFileImportMethodFileProvider])
{
completionHandler(nil, [OCErrorWithDescription(OCErrorInternal, OCLocalized(@"Importing files through the File Provider is not allowed on this device.")) translatedError]);
@@ -898,6 +910,16 @@ - (void)setLastUsedDate:(NSDate *)lastUsedDate forItemIdentifier:(NSFileProvider
#pragma mark - Enumeration
- (nullable id)enumeratorForContainerItemIdentifier:(NSFileProviderItemIdentifier)containerItemIdentifier error:(NSError **)error
{
+ if (!OCFileProviderSettings.browseable)
+ {
+ if (error != NULL)
+ {
+ *error = [NSError errorWithDomain:NSFileProviderErrorDomain code:NSFileProviderErrorNotAuthenticated userInfo:nil];
+ }
+
+ return (nil);
+ }
+
if (AppLockSettings.sharedAppLockSettings.lockEnabled)
{
NSData *lockedDateData = [[[OCAppIdentity sharedAppIdentity] keychain] readDataFromKeychainItemForAccount:@"app.passcode" path:@"lockedDate"];
@@ -1011,9 +1033,11 @@ - (NSProgress *)fetchThumbnailsForItemIdentifiers:(NSArrayNSExtensionPointIdentifier
com.apple.share-services
NSExtensionPrincipalClass
- ShareNavigationController
+ ShareExtensionViewController
OCAppGroupIdentifier
group.com.owncloud.ios-app
OCAppIdentifierPrefix
$(AppIdentifierPrefix)
+ OCAppComponentIdentifier
+ shareExtension
OCHasFileProvider
OCKeychainAccessGroupIdentifier
diff --git a/ownCloud Share Extension/ShareViewController.swift b/ownCloud Share Extension/ShareExtensionViewController.swift
similarity index 52%
rename from ownCloud Share Extension/ShareViewController.swift
rename to ownCloud Share Extension/ShareExtensionViewController.swift
index d31799d76..13324b063 100644
--- a/ownCloud Share Extension/ShareViewController.swift
+++ b/ownCloud Share Extension/ShareExtensionViewController.swift
@@ -1,275 +1,120 @@
//
-// ShareViewController.swift
+// ShareExtensionViewController.swift
// ownCloud Share Extension
//
-// Created by Matthias Hühne on 10.03.20.
-// Copyright © 2020 ownCloud GmbH. All rights reserved.
+// Created by Felix Schwarz on 07.12.22.
+// Copyright © 2022 ownCloud GmbH. All rights reserved.
//
/*
-* Copyright (C) 2020, ownCloud GmbH.
-*
-* This code is covered by the GNU Public License Version 3.
-*
-* For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
-* You should have received a copy of this license along with this program. If not, see .
-*
-*/
+ * Copyright (C) 2022, ownCloud GmbH.
+ *
+ * This code is covered by the GNU Public License Version 3.
+ *
+ * For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
+ * You should have received a copy of this license along with this program. If not, see .
+ *
+ */
import UIKit
+import UniformTypeIdentifiers
import ownCloudSDK
import ownCloudApp
import ownCloudAppShared
-import CoreServices
-import UniformTypeIdentifiers
extension NSErrorDomain {
- static let ShareViewErrorDomain = "ShareViewErrorDomain"
+ static let ShareErrorDomain = "ShareErrorDomain"
}
-class ShareViewController: MoreStaticTableViewController {
+@objc(ShareExtensionViewController)
+class ShareExtensionViewController: EmbeddingViewController, Themeable {
+ // MARK: - Initialization
+ override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
+ super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
+
+ ThemeStyle.registerDefaultStyles()
+ ShareExtensionViewController.shared = self
- var willAppearInitial = false
- var didAppearInitial = false
+ CollectionViewCellProvider.registerStandardImplementations()
+ CollectionViewSupplementaryCellProvider.registerStandardImplementations()
+ }
+
+ @available(*, unavailable)
+ required public init?(coder aDecoder: NSCoder) {
+ super.init(coder: aDecoder)
+ }
+ // MARK: - Entry point
override func viewDidLoad() {
super.viewDidLoad()
+ // Setup
+ setupServices()
+
+ // Register for theme
+ Theme.shared.register(client: self, applyImmediately: true)
+ }
+
+ func setupServices() {
OCCoreManager.shared.memoryConfiguration = .minimum // Limit memory usage
OCHTTPPipelineManager.setupPersistentPipelines() // Set up HTTP pipelines
if AppLockManager.supportedOnDevice {
AppLockManager.shared.passwordViewHostViewController = self
AppLockManager.shared.cancelAction = { [weak self] in
- self?.returnCores(completion: {
- self?.extensionContext?.cancelRequest(withError: NSError(domain: NSErrorDomain.ShareViewErrorDomain, code: 0, userInfo: [NSLocalizedDescriptionKey: "Canceled by user"]))
- })
+ self?.cancel()
}
}
OCExtensionManager.shared.addExtension(CreateFolderAction.actionExtension)
OCItem.registerIcons()
- setupNavigationBar()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
-
- if Branding.shared.isImportMethodAllowed(.shareExtension) {
- // Share extension allowed
- if !willAppearInitial {
- willAppearInitial = true
-
- if AppLockManager.supportedOnDevice {
- AppLockManager.shared.showLockscreenIfNeeded()
- }
-
- if let appexNavigationController = self.navigationController as? AppExtensionNavigationController {
- appexNavigationController.dismissalAction = { [weak self] (_) in
- self?.returnCores(completion: {
- Log.debug("Returned all cores (share sheet was closed / dismissed)")
- })
- }
- }
- setupAccountSelection()
- }
- }
}
- override func viewDidAppear(_ animated: Bool) {
- super.viewDidAppear(animated)
-
- if !Branding.shared.isImportMethodAllowed(.shareExtension) {
- // Share extension disabled, alert user
- let alertController = ThemedAlertController(title: "Share Extension disabled".localized, message: "Importing files through the Share Extension is not allowed on this device.".localized, preferredStyle: .alert)
- alertController.addAction(UIAlertAction(title: "OK".localized, style: .default, handler: { [weak self] _ in
- self?.extensionContext?.cancelRequest(withError: NSError(domain: NSErrorDomain.ShareViewErrorDomain, code: 0, userInfo: [NSLocalizedDescriptionKey: "Canceled by user"]))
- }))
- self.navigationController?.present(alertController, animated: true, completion: nil)
- } else {
- // Share extension allowed
- if didAppearInitial {
- self.returnCores(completion: {
- Log.debug("Returned all cores (back to server list)")
- })
+ func showLocationPicker() {
+ let locationPicker = ClientLocationPicker(location: .accounts, selectButtonTitle: "Save here".localized, avoidConflictsWith: nil, choiceHandler: { [weak self] folderItem, folderLocation, _, cancelled in
+ if cancelled {
+ self?.cancel()
+ return
}
- didAppearInitial = true
- }
- }
-
- private var requestedCoreBookmarks : [OCBookmark] = []
-
- func requestCore(for bookmark: OCBookmark, completionHandler: @escaping (OCCore?, Error?) -> Void) {
- requestedCoreBookmarks.append(bookmark)
-
- OCCoreManager.shared.requestCore(for: bookmark, setup: nil, completionHandler: { (core, error) in
- if error != nil {
- // Remove only one entry, not all for that bookmark
- if let index = self.requestedCoreBookmarks.firstIndex(of: bookmark) {
- self.requestedCoreBookmarks.remove(at: index)
- }
- }
-
- if let core = core {
- core.vault.resourceManager?.add(ResourceSourceItemIcons(core: core))
- }
-
- completionHandler(core, error)
+ self?.importTo(selectedFolder: folderItem, location: folderLocation)
})
- }
-
- func returnCore(for bookmark: OCBookmark, completionHandler: @escaping () -> Void) {
- OCCoreManager.shared.returnCore(for: bookmark, completionHandler: {
- // Remove only one entry, not all for that bookmark
- if let index = self.requestedCoreBookmarks.firstIndex(of: bookmark) {
- self.requestedCoreBookmarks.remove(at: index)
- }
- completionHandler()
- })
+ contentViewController = locationPicker.pickerViewControllerForPresentation()
}
- func returnCores(completion: (() -> Void)?) {
- let waitGroup = DispatchGroup()
- let returnBookmarks = requestedCoreBookmarks
-
- requestedCoreBookmarks = []
-
- for bookmark in returnBookmarks {
- waitGroup.enter()
-
- OCCoreManager.shared.returnCore(for: bookmark, completionHandler: {
- waitGroup.leave()
- })
- }
-
- waitGroup.notify(queue: .main, execute: {
- OnMainThread {
- completion?()
- }
- })
- }
-
- @objc private func cancelAction () {
- self.returnCores(completion: {
- let error = NSError(domain: NSErrorDomain.ShareViewErrorDomain, code: 0, userInfo: [NSLocalizedDescriptionKey: "Canceled by user"])
- self.extensionContext?.cancelRequest(withError: error)
- })
- }
-
- private func setupNavigationBar() {
- self.navigationItem.title = VendorServices.shared.appName
-
- let itemCancel = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelAction))
- self.navigationItem.setRightBarButton(itemCancel, animated: false)
- }
-
- func setupAccountSelection() {
- let title = NSAttributedString(string: "Save File".localized, attributes: [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 20, weight: .heavy)])
-
- var actionsRows: [StaticTableViewRow] = []
- OCBookmarkManager.shared.loadBookmarks()
- let bookmarks : [OCBookmark] = OCBookmarkManager.shared.bookmarks as [OCBookmark]
- if bookmarks.count > 0 {
- if bookmarks.count > 1 {
- let rowDescription = StaticTableViewRow(label: "Choose an account and folder to import into.".localized, alignment: .center)
- actionsRows.append(rowDescription)
-
- for (bookmark) in bookmarks {
- let row = StaticTableViewRow(buttonWithAction: { (_ row, _ sender) in
- self.openDirectoryPicker(for: bookmark, withBackButton: true)
- }, title: bookmark.shortName, style: .plain, image: UIImage(named: "bookmark-icon")?.scaledImageFitting(in: CGSize(width: 25.0, height: 25.0)), imageWidth: 25, alignment: .left)
- actionsRows.append(row)
- }
- } else if let bookmark = bookmarks.first {
- self.openDirectoryPicker(for: bookmark, withBackButton: false)
- }
- } else {
- let rowDescription = StaticTableViewRow(label: "No account configured.\nSetup an new account in the app to save to.".localized, alignment: .center)
- actionsRows.append(rowDescription)
- }
+ // MARK: - Import
+ var fpServiceSession : OCFileProviderServiceSession?
+ var asyncQueue : OCAsyncSequentialQueue = OCAsyncSequentialQueue()
- self.addSection(MoreStaticTableViewSection(headerAttributedTitle: title, identifier: "actions-section", rows: actionsRows))
- }
+ func importTo(selectedFolder: OCItem?, location: OCLocation?) {
+ if let targetFolder = selectedFolder, let bookmarkUUID = targetFolder.bookmarkUUID {
+ if let bookmark = OCBookmarkManager.shared.bookmark(forUUIDString: bookmarkUUID) {
+ let vault = OCVault(bookmark: bookmark)
+ self.fpServiceSession = OCFileProviderServiceSession(vault: vault)
- func openDirectoryPicker(for bookmark: OCBookmark, withBackButton: Bool) {
- self.requestCore(for: bookmark, completionHandler: { (core, error) in
- if let core = core, error == nil {
OnMainThread {
- let directoryPickerViewController = ClientDirectoryPickerViewController(core: core, location: .legacyRoot, selectButtonTitle: "Save here".localized, avoidConflictsWith: [], choiceHandler: { [weak core] (selectedDirectory, _) in
- if let targetDirectory = selectedDirectory {
- if let vault = core?.vault {
- self.fpServiceSession = OCFileProviderServiceSession(vault: vault)
+ let progressViewController = ProgressIndicatorViewController(initialProgressLabel: "Preparing…".localized, progress: nil, cancelHandler: {})
- self.returnCores(completion: {
- OnMainThread {
- self.navigationController?.popToViewController(self, animated: false)
-
- let progressViewController = ProgressIndicatorViewController(initialProgressLabel: "Preparing…".localized, progress: nil, cancelHandler: {})
-
- self.present(progressViewController, animated: false)
+ self.contentViewController = progressViewController
- if let fpServiceSession = self.fpServiceSession {
- self.importFiles(to: targetDirectory, serviceSession: fpServiceSession, progressViewController: progressViewController, completion: { [weak self] (error) in
- OnMainThread {
- if let error = error {
- self?.extensionContext?.cancelRequest(withError: error)
- progressViewController.dismiss(animated: false)
- } else {
- self?.extensionContext?.completeRequest(returningItems: [], completionHandler: { (_) in
- OnMainThread {
- progressViewController.dismiss(animated: false)
- }
- })
- }
- }
- })
+ AccountConnectionPool.shared.disconnectAll {
+ OnMainThread {
+ if let fpServiceSession = self.fpServiceSession {
+ self.importFiles(to: targetFolder, serviceSession: fpServiceSession, progressViewController: progressViewController, completion: { [weak self] (error) in
+ OnMainThread {
+ if let error = error {
+ self?.extensionContext?.cancelRequest(withError: error)
+ } else {
+ self?.extensionContext?.completeRequest(returningItems: [])
}
}
})
}
}
- })
-
- directoryPickerViewController.cancelAction = { [weak self] in
- self?.returnCores(completion: {
- OnMainThread {
- self?.extensionContext?.cancelRequest(withError: NSError(domain: NSErrorDomain.ShareViewErrorDomain, code: 0, userInfo: [NSLocalizedDescriptionKey: "Canceled by user"]))
- }
- })
}
- if !withBackButton {
- directoryPickerViewController.navigationItem.setHidesBackButton(true, animated: false)
- directoryPickerViewController.navigationItem.title = VendorServices.shared.appName
- }
- self.navigationController?.pushViewController(directoryPickerViewController, animated: withBackButton)
}
}
- })
- }
-
- var fpServiceSession : OCFileProviderServiceSession?
- var asyncQueue : OCAsyncSequentialQueue = OCAsyncSequentialQueue()
-
- func showAlert(title: String?, message: String? = nil, error: Error? = nil, decisionHandler: @escaping ((_ continue: Bool) -> Void)) {
- OnMainThread {
- let message = message ?? ((error != nil) ? error?.localizedDescription : nil)
- let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
-
- alert.addAction(UIAlertAction(title: "Cancel".localized, style: .cancel, handler: { (_) in
- decisionHandler(false)
- }))
-
- if let nsError = error as NSError?, nsError.domain == NSCocoaErrorDomain, nsError.code == NSXPCConnectionInvalid || nsError.code == NSXPCConnectionInterrupted {
- Log.error("XPC connection error: \(String(describing: error))")
- } else {
- alert.addAction(UIAlertAction(title: "Continue".localized, style: .default, handler: { (_) in
- decisionHandler(true)
- }))
- }
-
- (self.presentedViewController ?? self).present(alert, animated: true, completion: nil)
}
}
@@ -319,7 +164,6 @@ class ShareViewController: MoreStaticTableViewController {
}
attachment.loadItem(forTypeIdentifier: type, options: nil, completionHandler: { (item, error) -> Void in
-
if error == nil {
var data : Data?
var tempFilePath : String?
@@ -449,4 +293,158 @@ class ShareViewController: MoreStaticTableViewController {
})
}
}
+
+ // MARK: - Events
+ var willAppearDidInitialRun: Bool = false
+ override func viewWillAppear(_ animated: Bool) {
+ super.viewWillAppear(animated)
+
+ if Branding.shared.isImportMethodAllowed(.shareExtension) {
+ // Share extension allowed
+ if !willAppearDidInitialRun {
+ willAppearDidInitialRun = true
+
+ if AppLockManager.supportedOnDevice {
+ AppLockManager.shared.showLockscreenIfNeeded()
+ }
+
+ // Check for show stoppers
+ if !Branding.shared.isImportMethodAllowed(.shareExtension) {
+ // Share extension disabled, alert user
+ showErrorMessage(title: "Share Extension disabled".localized, message: "Importing files through the Share Extension is not allowed on this device.".localized)
+ return
+ }
+
+ if !OCVault.hostHasFileProvider {
+ // No file provider -> share extension unavailable
+ showErrorMessage(title: "Share Extension unavailable".localized, message: "The {{app.name}} share extension is not available on this system.".localized)
+ return
+ }
+
+ if OCBookmarkManager.shared.bookmarks.count == 0 {
+ // No account configured
+ showErrorMessage(title: "No account configured".localized, message: "Setup a new account in the app to save to.".localized)
+ return
+ }
+
+ // Show location picker
+ showLocationPicker()
+ }
+ }
+ }
+
+ override func viewWillDisappear(_ animated: Bool) {
+ super.viewWillDisappear(animated)
+ AppLockManager.shared.appDidEnterBackground()
+ }
+
+ // MARK: - Error message view
+ var messageView: UIView? {
+ didSet {
+ if let messageView {
+ let viewController = UIViewController()
+
+ messageView.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
+ messageView.setContentCompressionResistancePriority(.defaultHigh, for: .vertical)
+ messageView.widthAnchor.constraint(greaterThanOrEqualToConstant: 320).isActive = true
+
+ viewController.view.embed(centered: messageView)
+
+ contentViewController = viewController
+ }
+ }
+ }
+
+ func showErrorMessage(title: String, message: String) {
+ let errorMessageView = ComposedMessageView(elements: [
+ .text(title, style: .system(textStyle: .title3, weight: .semibold), alignment: .centered),
+ .spacing(5),
+ .text(message, style: .systemSecondary(textStyle: .body), alignment: .centered),
+ .spacing(15),
+ .button("OK".localized, action: UIAction(handler: { [weak self] action in
+ self?.cancel()
+ }))
+ ])
+
+ messageView = errorMessageView
+ }
+
+ // MARK: - Alert view
+ func showAlert(title: String?, message: String? = nil, error: Error? = nil, decisionHandler: @escaping ((_ continue: Bool) -> Void)) {
+ OnMainThread {
+ let message = message ?? ((error != nil) ? error?.localizedDescription : nil)
+ let alert = ThemedAlertController(title: title, message: message, preferredStyle: .alert)
+
+ alert.addAction(UIAlertAction(title: "Cancel".localized, style: .cancel, handler: { (_) in
+ decisionHandler(false)
+ }))
+
+ if let nsError = error as NSError?, nsError.domain == NSCocoaErrorDomain, nsError.code == NSXPCConnectionInvalid || nsError.code == NSXPCConnectionInterrupted {
+ Log.error("XPC connection error: \(String(describing: error))")
+ } else {
+ alert.addAction(UIAlertAction(title: "Continue".localized, style: .default, handler: { (_) in
+ decisionHandler(true)
+ }))
+ }
+
+ (self.presentedViewController ?? self).present(alert, animated: true, completion: nil)
+ }
+ }
+
+ // MARK: - Actions
+ func completed() {
+ AppLockManager.shared.appDidEnterBackground()
+
+ AccountConnectionPool.shared.disconnectAll {
+ self.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
+ }
+ }
+
+ func cancel() {
+ AppLockManager.shared.appDidEnterBackground()
+
+ AccountConnectionPool.shared.disconnectAll {
+ self.extensionContext?.cancelRequest(withError: NSError(domain: NSErrorDomain.ShareErrorDomain, code: 0, userInfo: [NSLocalizedDescriptionKey: "Canceled by user"]))
+ }
+ }
+
+ // MARK: - Themeable
+ func applyThemeCollection(theme: Theme, collection: ThemeCollection, event: ThemeEvent) {
+ view.backgroundColor = Theme.shared.activeCollection.tableBackgroundColor
+ }
+
+ // MARK: - UserInterfaceContext glue
+ public static weak var shared: ShareExtensionViewController? {
+ didSet {
+ ThemeStyle.considerAppearanceUpdate()
+ }
+ }
+
+ // MARK: - Theme change detection
+ public override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
+ super.traitCollectionDidChange(previousTraitCollection)
+
+ if self.traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
+ ThemeStyle.considerAppearanceUpdate()
+ }
+ }
+
+ // MARK: - Host App Bundle ID
+ override func willMove(toParent parent: UIViewController?) {
+ super.willMove(toParent: parent)
+
+ OCAppIdentity.shared.hostAppBundleIdentifier = parent?.oc_hostAppBundleIdentifier
+
+ Log.debug("Extension Host App Bundle ID: \(OCAppIdentity.shared.hostAppBundleIdentifier ?? "nil")")
+ }
+}
+
+extension UserInterfaceContext : UserInterfaceContextProvider {
+ public func provideRootView() -> UIView? {
+ return ShareExtensionViewController.shared?.view
+ }
+
+ public func provideCurrentWindow() -> UIWindow? {
+ return ShareExtensionViewController.shared?.view.window
+ }
}
diff --git a/ownCloud Share Extension/ShareNavigationController.swift b/ownCloud Share Extension/ShareNavigationController.swift
deleted file mode 100644
index 84d5e9fd2..000000000
--- a/ownCloud Share Extension/ShareNavigationController.swift
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// ShareNavigationController.swift
-// ownCloud Share Extension
-//
-// Created by Matthias Hühne on 10.03.20.
-// Copyright © 2020 ownCloud GmbH. All rights reserved.
-//
-
-/*
- * Copyright (C) 2020, ownCloud GmbH.
- *
- * This code is covered by the GNU Public License Version 3.
- *
- * For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
- * You should have received a copy of this license along with this program. If not, see .
- *
- */
-
-import UIKit
-import ownCloudSDK
-import ownCloudAppShared
-
-@objc(ShareNavigationController)
-class ShareNavigationController: AppExtensionNavigationController {
- override func setupViewControllers() {
- if OCVault.hostHasFileProvider {
- self.setViewControllers([ShareViewController(style: .grouped)], animated: false)
- } else {
- let viewController = StaticTableViewController(style: .grouped)
- viewController.addSection(StaticTableViewSection(headerTitle: nil, rows: [
- StaticTableViewRow(message: "The share extension is not available on this system.".localized, title: "Share Extension unavailable".localized, icon: nil, tintIcon: false, style: .warning, titleMessageSpacing: 10, imageSpacing: 0, padding: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10), identifier: "error-message")
- ]))
- viewController.navigationItem.title = OCAppIdentity.shared.appDisplayName
-
- self.setViewControllers([viewController], animated: false)
- }
- }
-}
-
-extension UserInterfaceContext : UserInterfaceContextProvider {
- public func provideRootView() -> UIView? {
- return AppExtensionNavigationController.mainNavigationController?.view
- }
-
- public func provideCurrentWindow() -> UIWindow? {
- return AppExtensionNavigationController.mainNavigationController?.view.window
- }
-}
diff --git a/ownCloud.xcodeproj/project.pbxproj b/ownCloud.xcodeproj/project.pbxproj
index c21538e2a..6b5e65b58 100644
--- a/ownCloud.xcodeproj/project.pbxproj
+++ b/ownCloud.xcodeproj/project.pbxproj
@@ -3,11 +3,10 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 52;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
- 02072E6023E46022006548A7 /* UIWindow+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02072E5F23E46022006548A7 /* UIWindow+Extension.swift */; };
0233F45E246E9D960095A799 /* UploadCameraMediaAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0233F45D246E9D960095A799 /* UploadCameraMediaAction.swift */; };
0234EF0E2515138B00AE921A /* PasscodeSetupCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0234EF072515138A00AE921A /* PasscodeSetupCoordinator.swift */; };
024F3A2124A3AB410083E11E /* CrashReporter in Frameworks */ = {isa = PBXBuildFile; productRef = 024F3A2024A3AB410083E11E /* CrashReporter */; };
@@ -20,18 +19,13 @@
025FC742247D5004009307A7 /* MediaUploadOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025FC741247D5004009307A7 /* MediaUploadOperation.swift */; };
025FC745247EF0F1009307A7 /* BackgroundUploadsSettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025FC744247EF0F1009307A7 /* BackgroundUploadsSettingsSection.swift */; };
02633EFF2483D2EB00B5F58F /* UNUserNotificationCenter+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02633EFE2483D2EB00B5F58F /* UNUserNotificationCenter+Extensions.swift */; };
- 0269F589244DED02002E9D99 /* UIAlertController+UniversalLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0269F588244DED02002E9D99 /* UIAlertController+UniversalLinks.swift */; };
0287DD7D249131E000C912CA /* AppStatistics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0287DD7C249131E000C912CA /* AppStatistics.swift */; };
02AE32E424D2FA8B00A19476 /* CrashReporter in Frameworks */ = {isa = PBXBuildFile; productRef = 02AE32E324D2FA8B00A19476 /* CrashReporter */; };
02D4C82A255208E60000E299 /* PDFSearchResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02D4C829255208E60000E299 /* PDFSearchResultsView.swift */; };
02DC7C9024CB354800DCB2C6 /* ProPhotoUploadSettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DC7C8F24CB354800DCB2C6 /* ProPhotoUploadSettingsSection.swift */; };
- 02F2891424BFAF0100E3D35C /* MigrationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F2891024BFAF0100E3D35C /* MigrationViewController.swift */; };
- 02F2891524BFAF0100E3D35C /* Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F2891124BFAF0100E3D35C /* Migration.swift */; };
- 02F2891624BFAF0100E3D35C /* MigrationActivityCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F2891224BFAF0100E3D35C /* MigrationActivityCell.swift */; };
232F7CAF2097260400EE22E4 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 232F7CAE2097260400EE22E4 /* SettingsViewController.swift */; };
233BDEA0204FEFE500C06732 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233BDE9F204FEFE500C06732 /* AppDelegate.swift */; };
233BDEA7204FEFE500C06732 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 233BDEA6204FEFE500C06732 /* Assets.xcassets */; };
- 233BDEB5204FEFE500C06732 /* OwnCloudTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233BDEB4204FEFE500C06732 /* OwnCloudTests.swift */; };
233E0FD82099F11D00C3D8D5 /* SecuritySettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E0FD72099F11D00C3D8D5 /* SecuritySettingsSection.swift */; };
23957A6D209AFFE8003C8537 /* MoreSettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23957A6C209AFFE8003C8537 /* MoreSettingsSection.swift */; };
23D5241521491C670002C566 /* DisplayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D5241421491C670002C566 /* DisplayViewController.swift */; };
@@ -42,11 +36,8 @@
39057AA3233BA7A60008E6C0 /* Intents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 39057AAA233BA7A60008E6C0 /* Intents.intentdefinition */; settings = {ATTRIBUTES = (no_codegen, ); }; };
39057AA4233BA7A60008E6C0 /* Intents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 39057AAA233BA7A60008E6C0 /* Intents.intentdefinition */; settings = {ATTRIBUTES = (no_codegen, ); }; };
39057AA7233BA7A60008E6C0 /* Intents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 39057AAA233BA7A60008E6C0 /* Intents.intentdefinition */; settings = {ATTRIBUTES = (no_codegen, ); }; };
- 39057AA8233BA7A60008E6C0 /* Intents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 39057AAA233BA7A60008E6C0 /* Intents.intentdefinition */; settings = {ATTRIBUTES = (no_codegen, ); }; };
3912208223436EB80026C290 /* SortMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3912208123436EB80026C290 /* SortMethod.swift */; };
- 3913214D22956D5700EF88F4 /* LibraryTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3913214A22956D5700EF88F4 /* LibraryTableViewController.swift */; };
391C79A824E186DC00CB6333 /* OCBookmark+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC136581208223F000FC0F60 /* OCBookmark+Extension.swift */; };
- 391C79AE24E187C400CB6333 /* LegacyCredentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02F2890F24BFAF0100E3D35C /* LegacyCredentials.swift */; };
392378FF24EBD1A1006E86DE /* branding-splashscreen.png in Resources */ = {isa = PBXBuildFile; fileRef = 39F48A6624D848550000E3F9 /* branding-splashscreen.png */; };
3923790524EBD1A5006E86DE /* branding-splashscreen-background.png in Resources */ = {isa = PBXBuildFile; fileRef = 39F48A6724D848550000E3F9 /* branding-splashscreen-background.png */; };
392CFEB72705831700631D2B /* LAContext+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392CFEB62705831700631D2B /* LAContext+Extension.swift */; };
@@ -68,11 +59,9 @@
3968C881239C54AC00AC28AC /* ReleaseNotesHostViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3968C879239C54AC00AC28AC /* ReleaseNotesHostViewController.swift */; };
3968C882239C54AD00AC28AC /* ReleaseNotesTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3968C87A239C54AC00AC28AC /* ReleaseNotesTableViewController.swift */; };
3968C883239C54AD00AC28AC /* ReleaseNotes.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3968C87B239C54AC00AC28AC /* ReleaseNotes.plist */; };
- 396BE4CA2289500E00B254A9 /* RoundedLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 396BE4C92289500E00B254A9 /* RoundedLabel.swift */; };
396C82FB2319AFDD00938262 /* CollaborateAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 396C82FA2319AFDD00938262 /* CollaborateAction.swift */; };
396D7C6523224A53002380C1 /* DiscardSceneAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 396D7C5F23224A53002380C1 /* DiscardSceneAction.swift */; };
397754F82327A33500119FCB /* OpenSceneAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397754F22327A33500119FCB /* OpenSceneAction.swift */; };
- 397E276A23D04D7100117B07 /* StaticLoginSingleAccountServerListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397E276923D04D7100117B07 /* StaticLoginSingleAccountServerListViewController.swift */; };
397E276C23D05A5400117B07 /* ServerListToolCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397E276B23D05A5400117B07 /* ServerListToolCell.swift */; };
398393BE246D63B0001A212B /* branding-login-background.png in Resources */ = {isa = PBXBuildFile; fileRef = 398393BC246D63B0001A212B /* branding-login-background.png */; };
398393BF246D63B0001A212B /* branding-login-logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 398393BD246D63B0001A212B /* branding-login-logo.png */; };
@@ -86,19 +75,15 @@
3998F5D72241486F00B66713 /* OCCertificate+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3998F5D62241486F00B66713 /* OCCertificate+Extension.swift */; };
399DD7C722A691BC00B45EB2 /* UnshareAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399DD7C122A691BC00B45EB2 /* UnshareAction.swift */; };
399EA6F525E6544100B6FF11 /* GroupSharingTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA6EE25E6544000B6FF11 /* GroupSharingTableViewController.swift */; };
- 399EA6F625E6544100B6FF11 /* ShareClientItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA6EF25E6544000B6FF11 /* ShareClientItemCell.swift */; };
399EA6F725E6544100B6FF11 /* PublicLinkEditTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA6F025E6544000B6FF11 /* PublicLinkEditTableViewController.swift */; };
399EA6F825E6544100B6FF11 /* PublicLinkTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA6F125E6544000B6FF11 /* PublicLinkTableViewController.swift */; };
399EA6F925E6544100B6FF11 /* SharingTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA6F225E6544000B6FF11 /* SharingTableViewController.swift */; };
399EA6FA25E6544100B6FF11 /* GroupSharingEditTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA6F325E6544000B6FF11 /* GroupSharingEditTableViewController.swift */; };
- 399EA70725E654B400B6FF11 /* PendingSharesTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA70625E654B400B6FF11 /* PendingSharesTableViewController.swift */; };
399EA71B25E6561E00B6FF11 /* OCShare+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA71A25E6561D00B6FF11 /* OCShare+Extension.swift */; };
399EA72625E6565900B6FF11 /* OCCore+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA72525E6565900B6FF11 /* OCCore+Extension.swift */; };
399EA73A25E656A900B6FF11 /* UITableView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA73925E656A900B6FF11 /* UITableView+Extension.swift */; };
399EA74625E6575B00B6FF11 /* NotificationHUDViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA74525E6575A00B6FF11 /* NotificationHUDViewController.swift */; };
- 399EA75A25E66DB000B6FF11 /* ClientItemResolvingCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399EA75925E66DB000B6FF11 /* ClientItemResolvingCell.swift */; };
- 39A243C424BDD9E100F4441F /* StaticLoginBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39A243C324BDD9E100F4441F /* StaticLoginBundle.swift */; };
- 39A7138722E79C6700089423 /* ownCloud Intents.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 39A7138022E79C6700089423 /* ownCloud Intents.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ 39A7138722E79C6700089423 /* ownCloud Intents.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 39A7138022E79C6700089423 /* ownCloud Intents.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
39BC9C3023DB831F0097C52D /* DocumentEditingAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39CD755123D787E400193950 /* DocumentEditingAction.swift */; };
39BE385D23435AFE0062A2FE /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39BE385C23435AFE0062A2FE /* String+Extension.swift */; };
39BF674C25E7FE020039663F /* CancelLabelViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39BF674B25E7FE020039663F /* CancelLabelViewController.swift */; };
@@ -109,23 +94,19 @@
39D06BEC229BE8D8000D7FC9 /* SettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39D06BEB229BE8D8000D7FC9 /* SettingsSection.swift */; };
39DC7CD025C2E1570001E08C /* DocumentActionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39DC7CCF25C2E1570001E08C /* DocumentActionViewController.swift */; };
39DC7CD325C2E1570001E08C /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 39DC7CD125C2E1570001E08C /* MainInterface.storyboard */; };
- 39DC7CD725C2E1570001E08C /* ownCloud File Provider UI.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 39DC7CCD25C2E1570001E08C /* ownCloud File Provider UI.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ 39DC7CD725C2E1570001E08C /* ownCloud File Provider UI.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 39DC7CCD25C2E1570001E08C /* ownCloud File Provider UI.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
39DC7CE725C305E40001E08C /* ownCloudApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCC0855C2293F1FD008CC05C /* ownCloudApp.framework */; };
39DC7CF425C305E80001E08C /* ownCloudAppShared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 394A0AF922EEFC2C00603813 /* ownCloudAppShared.framework */; };
39DF77AB24EA7BBC0066E8F0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DCE0FC4923E42ACB0037B4AD /* Localizable.strings */; };
39DF77D524EA854C0066E8F0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 39DF77BF24EA842C0066E8F0 /* LaunchScreen.storyboard */; };
39E104CA24C585C30085FDDD /* (null) in Resources */ = {isa = PBXBuildFile; };
- 39E2FDED21FDEC7500F0117F /* ServerListTableHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39E2FDEC21FDEC7500F0117F /* ServerListTableHeaderView.swift */; };
- 39E42D1C2315288B00B82AC3 /* KeyCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39E42D1B2315288B00B82AC3 /* KeyCommands.swift */; };
39E6DE86233CDF1E008DAE04 /* OCItemTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39E6DE85233CDF1E008DAE04 /* OCItemTracker.swift */; };
39EF06B325D6C3FC001E1E19 /* PresentationModeAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39EF06AF25D6C3FC001E1E19 /* PresentationModeAction.swift */; };
39F48A6A24D89D7E0000E3F9 /* branding-bookmark-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 39F48A6524D847D70000E3F9 /* branding-bookmark-icon.png */; };
- 46B9D336BF7FE50321823888 /* Pods_ownCloudScreenshotsTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54199937F74A129BC74DEB0A /* Pods_ownCloudScreenshotsTests.framework */; };
4C05D8A5238708D40073EF50 /* MediaUploadStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C05D8A4238708D40073EF50 /* MediaUploadStorage.swift */; };
4C11EE5B22E88D4200B84869 /* InstantMediaUploadTaskExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C11EE5A22E88D4200B84869 /* InstantMediaUploadTaskExtension.swift */; };
4C1561E8222321E0009C4EF3 /* PhotoSelectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C1561E7222321E0009C4EF3 /* PhotoSelectionViewController.swift */; };
4C1561EF22232357009C4EF3 /* PhotoSelectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C1561EE22232357009C4EF3 /* PhotoSelectionViewCell.swift */; };
- 4C16CBA7226F0F1A00D67BB6 /* FileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C16CBA6226F0F1900D67BB6 /* FileTests.swift */; };
4C3E17DB234DBF9A000D7BA8 /* PendingMediaUploadTaskExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C3E17DA234DBF9A000D7BA8 /* PendingMediaUploadTaskExtension.swift */; };
4C464BEF2187AF1500D30602 /* PDFThumbnailCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C464BE12187AF1400D30602 /* PDFThumbnailCollectionViewCell.swift */; };
4C464BF02187AF1500D30602 /* PDFTocTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C464BE82187AF1400D30602 /* PDFTocTableViewController.swift */; };
@@ -153,36 +134,8 @@
4CC46D212284C677009E938F /* BookmarkInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC46D202284C677009E938F /* BookmarkInfoViewController.swift */; };
4CC4A21222FA20AD00AE7E2C /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC4A21122FA20AD00AE7E2C /* URL+Extensions.swift */; };
4CC4A21922FB4F4C00AE7E2C /* MediaUploadQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CC4A21822FB4F4C00AE7E2C /* MediaUploadQueue.swift */; };
- 59056CAD22414F3C00A18A22 /* ownCloudScreenshotsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59056CAC22414F3C00A18A22 /* ownCloudScreenshotsTests.swift */; };
- 59056CB422414F8000A18A22 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59371D7B224103D300C6BC5B /* SnapshotHelper.swift */; };
- 5917244E20D3DC2100809B38 /* BiometricalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5917244D20D3DC2100809B38 /* BiometricalTests.swift */; };
- 59296652224CD1DB0078F13D /* OCBookmarkManager+Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCAEB05E21F9FB370067E147 /* OCBookmarkManager+Tools.swift */; };
593A821120C7D4C5000E2A90 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 593A821320C7D4C5000E2A90 /* Localizable.strings */; };
- 59538A0321E4A9C2005E543B /* CreateFolderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59538A0221E4A9C2005E543B /* CreateFolderTests.swift */; };
- 59538A0B21E4C301005E543B /* MockOCQuery.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59538A0A21E4C300005E543B /* MockOCQuery.swift */; };
- 59538A1C21E77FB7005E543B /* MockOCCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59538A1B21E77FB6005E543B /* MockOCCore.swift */; };
- 5958C9BE20C000A700E0E567 /* PasscodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5958C9BD20C000A700E0E567 /* PasscodeTests.swift */; };
- 595E2C9F21EE4BF300F0E95D /* PropfindResponseNewFolder.xml in Resources */ = {isa = PBXBuildFile; fileRef = 595E2C9E21EE4BF300F0E95D /* PropfindResponseNewFolder.xml */; };
- 595E2CA721EE4FC400F0E95D /* PropfindResponse.xml in Resources */ = {isa = PBXBuildFile; fileRef = 59B09E5C21AD61DD007827B8 /* PropfindResponse.xml */; };
- 595E2CA821EE501400F0E95D /* PropfindResponseNewFolder.xml in Resources */ = {isa = PBXBuildFile; fileRef = 595E2C9E21EE4BF300F0E95D /* PropfindResponseNewFolder.xml */; };
- 5971CF3A22046F530052FE9A /* MockClientRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5971CF3922046F530052FE9A /* MockClientRootViewController.swift */; };
- 59799F7222415758007E8008 /* ownCloudMocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC0196A620F754CA00C41B78 /* ownCloudMocking.framework */; };
- 59799F7322415758007E8008 /* ownCloudSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 239369782076110900BCE21A /* ownCloudSDK.framework */; };
- 59799F7422415758007E8008 /* ownCloudUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2393697C2076110900BCE21A /* ownCloudUI.framework */; };
- 59799F7D22415804007E8008 /* EarlGrey.framework in EarlGrey Copy Files */ = {isa = PBXBuildFile; fileRef = D0D9C062DD1E85A838608B0F /* EarlGrey.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
- 59799F7E22415819007E8008 /* ownCloudMocking.framework in EarlGrey Copy Files */ = {isa = PBXBuildFile; fileRef = DC0196A620F754CA00C41B78 /* ownCloudMocking.framework */; };
- 59799F7F22415878007E8008 /* EarlGrey.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D9C062DD1E85A838608B0F /* EarlGrey.framework */; };
- 59799F80224158FD007E8008 /* EarlGrey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7F3B3E74D4B04F9CAF95C09 /* EarlGrey.swift */; };
- 59799F8122415956007E8008 /* EarlGrey+Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCAEB06021F9FC510067E147 /* EarlGrey+Tools.swift */; };
- 59B09E6421AD61DD007827B8 /* PropfindResponse.xml in Resources */ = {isa = PBXBuildFile; fileRef = 59B09E5C21AD61DD007827B8 /* PropfindResponse.xml */; };
- 59B09E6521AD61DD007827B8 /* test_certificate.cer in Resources */ = {isa = PBXBuildFile; fileRef = 59B09E5D21AD61DD007827B8 /* test_certificate.cer */; };
- 59B09E6621AD61DD007827B8 /* test_certificate.cer in Resources */ = {isa = PBXBuildFile; fileRef = 59B09E5D21AD61DD007827B8 /* test_certificate.cer */; };
- 59B09E6D21AD61F4007827B8 /* FileListTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B09E6821AD61F4007827B8 /* FileListTests.swift */; };
- 59B09E6E21AD61F4007827B8 /* EditBookmarkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B09E6A21AD61F4007827B8 /* EditBookmarkTests.swift */; };
- 59B09E6F21AD61F4007827B8 /* CreateBookmarkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B09E6B21AD61F4007827B8 /* CreateBookmarkTests.swift */; };
- 59B09E7021AD61F4007827B8 /* UtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B09E6C21AD61F4007827B8 /* UtilsTests.swift */; };
59D4895220C83F2E00369C2E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 59D4895420C83F2E00369C2E /* InfoPlist.strings */; };
- 6D107AA0B21417432C72755A /* EarlGrey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7F3B3E74D4B04F9CAF95C09 /* EarlGrey.swift */; };
6E3A103E219D5BBA00F90C96 /* RenameAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3A103D219D5BBA00F90C96 /* RenameAction.swift */; };
6E3A104D219D6F0100F90C96 /* DuplicateAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3A104C219D6F0100F90C96 /* DuplicateAction.swift */; };
6E4F1734217749910049A71B /* ImageDisplayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4F1733217749910049A71B /* ImageDisplayViewController.swift */; };
@@ -192,8 +145,6 @@
6E5FC172221590B000F60846 /* DisplayHostViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E5FC171221590B000F60846 /* DisplayHostViewController.swift */; };
6E91F37E21ECA6FD009436D2 /* CopyAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E91F37D21ECA6FD009436D2 /* CopyAction.swift */; };
6EA78B8F2179B55400A5216A /* ImageScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA78B8E2179B55400A5216A /* ImageScrollView.swift */; };
- 75AC0B4AD332C8CC785FE349 /* Pods_ownCloudTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A56EA84D8AD331FFA604138B /* Pods_ownCloudTests.framework */; };
- A45A8D98137C902524B84E6D /* EarlGrey.framework in EarlGrey Copy Files */ = {isa = PBXBuildFile; fileRef = D0D9C062DD1E85A838608B0F /* EarlGrey.framework */; };
DC0030C12350B1CE00BB8570 /* NSData+Encoding.m in Sources */ = {isa = PBXBuildFile; fileRef = DC0030BF2350B1CE00BB8570 /* NSData+Encoding.m */; };
DC0030C22350B1CE00BB8570 /* NSData+Encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = DC0030C02350B1CE00BB8570 /* NSData+Encoding.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC0030CB2350B75000BB8570 /* ScanViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC1AC7CF2319ADAE002B7892 /* ScanViewController.swift */; };
@@ -210,7 +161,8 @@
DC080CF1238C8D850044C5D2 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC080CF0238C8D850044C5D2 /* StoreKit.framework */; };
DC080CF2238C8DF70044C5D2 /* OCLicenseAppStoreItem.h in Headers */ = {isa = PBXBuildFile; fileRef = DC080CE7238BD71F0044C5D2 /* OCLicenseAppStoreItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC080CF3238C92480044C5D2 /* OCLicenseAppStoreItem.m in Sources */ = {isa = PBXBuildFile; fileRef = DC080CE8238BD71F0044C5D2 /* OCLicenseAppStoreItem.m */; };
- DC0A355324C0E2C200FB58FC /* ClientItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFED971208095E200A2D984 /* ClientItemCell.swift */; };
+ DC081C89299B8E5800BFF393 /* AppStateActionRevealItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC081C88299B8E5800BFF393 /* AppStateActionRevealItem.swift */; };
+ DC081C8B299B9B9000BFF393 /* AppStateActionGoToPersonalFolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC081C8A299B9B9000BFF393 /* AppStateActionGoToPersonalFolder.swift */; };
DC0A355424C0E2C200FB58FC /* SortBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23FA23E520BFD3D8009A6D73 /* SortBar.swift */; };
DC0A355624C0E33A00FB58FC /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF4F18A2052BA4C00189B9A /* Log.swift */; };
DC0A355724C0E35B00FB58FC /* UIDevice+UIUserInterfaceIdiom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23E22BB220C6A5C40024D11E /* UIDevice+UIUserInterfaceIdiom.swift */; };
@@ -233,9 +185,6 @@
DC0A356F24C0E42700FB58FC /* StaticTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF4F17820519F8C00189B9A /* StaticTableViewController.swift */; };
DC0A357024C0E42700FB58FC /* StaticTableViewSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF4F17A20519F9D00189B9A /* StaticTableViewSection.swift */; };
DC0A357124C0E42700FB58FC /* StaticTableViewRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF4F17E2051A0D000189B9A /* StaticTableViewRow.swift */; };
- DC0A357224C0E42D00FB58FC /* PushPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC297966226E4D3100E01BC7 /* PushPresentationController.swift */; };
- DC0A357324C0E42D00FB58FC /* PushTransitionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC297964226E4D1100E01BC7 /* PushTransitionDelegate.swift */; };
- DC0A357424C0E42D00FB58FC /* PushTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC297968226E52E600E01BC7 /* PushTransition.swift */; };
DC0A357524C0E43200FB58FC /* ProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC63208621FCEE5D007EC0A8 /* ProgressView.swift */; };
DC0A357624C0E43200FB58FC /* ProgressHUDViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC018F8B20A1060A00135198 /* ProgressHUDViewController.swift */; };
DC0A357724C0E43200FB58FC /* ProgressSummarizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89C45C20860B5D0044BCAE /* ProgressSummarizer.swift */; };
@@ -273,12 +222,9 @@
DC0A359F24C0EBE500FB58FC /* ownCloudSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 239369782076110900BCE21A /* ownCloudSDK.framework */; };
DC0A35A124C1091400FB58FC /* UserInterfaceContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC0A35A024C1091400FB58FC /* UserInterfaceContext.swift */; };
DC0A5C432550C70800E6674B /* class-settings-sdk in Resources */ = {isa = PBXBuildFile; fileRef = DC0A5C422550C70800E6674B /* class-settings-sdk */; };
- DC0B379420514E4700189B9A /* ServerListBookmarkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC0B379320514E4700189B9A /* ServerListBookmarkCell.swift */; };
- DC0CE19228C7DBE3009ABDFB /* OpenInWebAppAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC0CE19128C7DBE3009ABDFB /* OpenInWebAppAction.swift */; };
DC0CE19D28C89CD9009ABDFB /* CreateDocumentAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC0CE19C28C89CD9009ABDFB /* CreateDocumentAction.swift */; };
DC18898E218A773700CFB3F9 /* ownCloudMocking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC0196A620F754CA00C41B78 /* ownCloudMocking.framework */; };
DC1B270C209CF34B004715E1 /* BookmarkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC1B270B209CF34B004715E1 /* BookmarkViewController.swift */; };
- DC20DE5C21C01A3D0096000B /* ownCloudMocking.framework in EarlGrey Copy Files */ = {isa = PBXBuildFile; fileRef = DC0196A620F754CA00C41B78 /* ownCloudMocking.framework */; };
DC20DE6A21C01B210096000B /* ownCloudSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 239369782076110900BCE21A /* ownCloudSDK.framework */; };
DC20DE6B21C01B210096000B /* ownCloudUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2393697C2076110900BCE21A /* ownCloudUI.framework */; };
DC2218C62822C5B900808BCE /* OCVFSNode+FileProviderItem.m in Sources */ = {isa = PBXBuildFile; fileRef = DC2218C52822C5B900808BCE /* OCVFSNode+FileProviderItem.m */; };
@@ -288,7 +234,6 @@
DC24B28725BA2A2E005783E2 /* Branding.h in Headers */ = {isa = PBXBuildFile; fileRef = DC24B27125B9DF31005783E2 /* Branding.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC24B29825BA2A34005783E2 /* Branding.m in Sources */ = {isa = PBXBuildFile; fileRef = DC24B27225B9DF31005783E2 /* Branding.m */; };
DC24B2AB25BA316D005783E2 /* Branding+App.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC24B2AA25BA316D005783E2 /* Branding+App.swift */; };
- DC24B31D25BB6FC4005783E2 /* IssuesCardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC24B31C25BB6FC4005783E2 /* IssuesCardViewController.swift */; };
DC24E0EA28B36A81002E4F5B /* OCSearchSegment.h in Headers */ = {isa = PBXBuildFile; fileRef = DC24E0E828B36A81002E4F5B /* OCSearchSegment.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC24E0EB28B36A81002E4F5B /* OCSearchSegment.m in Sources */ = {isa = PBXBuildFile; fileRef = DC24E0E928B36A81002E4F5B /* OCSearchSegment.m */; };
DC24E0F828B41694002E4F5B /* OCQueryCondition+SearchToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC24E0F728B41693002E4F5B /* OCQueryCondition+SearchToken.swift */; };
@@ -305,7 +250,23 @@
DC27A1A520CBEF85008ACB6C /* OCBookmark+FileProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = DC27A1A420CBEF85008ACB6C /* OCBookmark+FileProvider.m */; };
DC27A1A820CC095C008ACB6C /* OCCore+FileProviderTools.m in Sources */ = {isa = PBXBuildFile; fileRef = DC27A1A720CC095C008ACB6C /* OCCore+FileProviderTools.m */; };
DC27A1E920CC56B0008ACB6C /* FileProviderExtensionThumbnailRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = DC27A1E820CC56B0008ACB6C /* FileProviderExtensionThumbnailRequest.m */; };
- DC29F09522976B9300F77349 /* LibrarySharesTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC29F09222976B9200F77349 /* LibrarySharesTableViewController.swift */; };
+ DC28F826294B733700AC4013 /* OCItemPolicy+Interactions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC28F825294B733700AC4013 /* OCItemPolicy+Interactions.swift */; };
+ DC28F828294BB5ED00AC4013 /* SortedItemDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC28F827294BB5ED00AC4013 /* SortedItemDataSource.swift */; };
+ DC298C872934A405009FA87F /* ClientDefaultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298C862934A405009FA87F /* ClientDefaultViewController.swift */; };
+ DC298C922934CF56009FA87F /* AccountConnectionErrorHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298C8C2934B3E7009FA87F /* AccountConnectionErrorHandler.swift */; };
+ DC298C972934D354009FA87F /* IssuesCardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC24B31C25BB6FC4005783E2 /* IssuesCardViewController.swift */; };
+ DC298C982934D381009FA87F /* OCIssue+DisplayIssues.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4FEAE6209E3A7700D4476B /* OCIssue+DisplayIssues.swift */; };
+ DC298C992934D3F8009FA87F /* AlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC83303242CF3AC00153F8C /* AlertViewController.swift */; };
+ DC298C9A2934D3F8009FA87F /* AlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC832F7242CC94D00153F8C /* AlertView.swift */; };
+ DC298C9C2934D47D009FA87F /* ThemeCertificateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC680579212EAB5E006C3B1F /* ThemeCertificateViewController.swift */; };
+ DC298C9E2934D6D9009FA87F /* AccountAuthenticationUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298C902934BDAD009FA87F /* AccountAuthenticationUpdater.swift */; };
+ DC298C9F2934D6D9009FA87F /* AccountAuthenticationUpdaterPasswordPromptViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6C4DD24559B1600C1EAE1 /* AccountAuthenticationUpdaterPasswordPromptViewController.swift */; };
+ DC298CA129357809009FA87F /* AccountConnectionAuthErrorConsumer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298CA029357809009FA87F /* AccountConnectionAuthErrorConsumer.swift */; };
+ DC298CA72936250D009FA87F /* ClientSidebarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1E8292B6E6B00D27573 /* ClientSidebarViewController.swift */; };
+ DC298CA929362523009FA87F /* ClientLocationPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298CA829362523009FA87F /* ClientLocationPicker.swift */; };
+ DC298CAC29362710009FA87F /* ClientLocationPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298CAB29362710009FA87F /* ClientLocationPickerViewController.swift */; };
+ DC298CAE2936598B009FA87F /* DriveGridCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298CAD2936598B009FA87F /* DriveGridCell.swift */; };
+ DC298CB029366B96009FA87F /* AccountControllerSpacesGridViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC298CAF29366B96009FA87F /* AccountControllerSpacesGridViewController.swift */; };
DC2A128428D0722F0088A2B7 /* OCSavedSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = DC2A127C28D06F060088A2B7 /* OCSavedSearch.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC2A128528D072350088A2B7 /* OCVault+SavedSearches.h in Headers */ = {isa = PBXBuildFile; fileRef = DC2A128028D0718B0088A2B7 /* OCVault+SavedSearches.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC2A128628D0725D0088A2B7 /* OCVault+SavedSearches.m in Sources */ = {isa = PBXBuildFile; fileRef = DC2A128128D0718B0088A2B7 /* OCVault+SavedSearches.m */; };
@@ -313,15 +274,12 @@
DC2FE2DA24C30586002AFDB3 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 593A821320C7D4C5000E2A90 /* Localizable.strings */; };
DC33939622E0747400DD3DA4 /* MakeAvailableOfflineAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC33939522E0747400DD3DA4 /* MakeAvailableOfflineAction.swift */; };
DC33939D22E076E300DD3DA4 /* MakeUnavailableOfflineAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC33939C22E076E300DD3DA4 /* MakeUnavailableOfflineAction.swift */; };
- DC3393A022E0A1C000DD3DA4 /* ItemPolicyTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC33939F22E0A1C000DD3DA4 /* ItemPolicyTableViewController.swift */; };
- DC3393A222E0A71100DD3DA4 /* ItemPolicyCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3393A122E0A71100DD3DA4 /* ItemPolicyCell.swift */; };
DC36885824DC98BF00333600 /* OCFileProviderServiceSession.h in Headers */ = {isa = PBXBuildFile; fileRef = DC36885624DC98BF00333600 /* OCFileProviderServiceSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC36885924DC98BF00333600 /* OCFileProviderServiceSession.m in Sources */ = {isa = PBXBuildFile; fileRef = DC36885724DC98BF00333600 /* OCFileProviderServiceSession.m */; };
DC36885D24DD916800333600 /* ownCloudApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCC0855C2293F1FD008CC05C /* ownCloudApp.framework */; };
DC36885F24DD917900333600 /* ownCloudUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2393697C2076110900BCE21A /* ownCloudUI.framework */; };
DC36886224DDA9AB00333600 /* ProgressIndicatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC36886024DDA3C300333600 /* ProgressIndicatorViewController.swift */; };
DC3AB1982808C35300789435 /* ClientItemViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB1972808C35300789435 /* ClientItemViewController.swift */; };
- DC3AB23E280FFE3400789435 /* ItemListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB23D280FFE3400789435 /* ItemListCell.swift */; };
DC3AB240280FFF2700789435 /* NSMutableAttributedString+AppendStyled.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB23F280FFF2700789435 /* NSMutableAttributedString+AppendStyled.swift */; };
DC3AB2422810404000789435 /* DriveHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB2412810404000789435 /* DriveHeaderCell.swift */; };
DC3AB24428104AA500789435 /* UIFont+Weight.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB24328104AA500789435 /* UIFont+Weight.swift */; };
@@ -329,12 +287,13 @@
DC3AB2482810A10300789435 /* ExpandableResourceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB2472810A10300789435 /* ExpandableResourceCell.swift */; };
DC3BE0D82077BC5D002A0AC0 /* ownCloudSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 239369782076110900BCE21A /* ownCloudSDK.framework */; };
DC3BE0DA2077BC6B002A0AC0 /* ownCloudSDK.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 239369782076110900BCE21A /* ownCloudSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- DC3BE0DF2077CC14002A0AC0 /* ClientRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3BE0DD2077CC13002A0AC0 /* ClientRootViewController.swift */; };
+ DC3DDF06287E1C0800E5586D /* UIViewController+HostBundleID.m in Sources */ = {isa = PBXBuildFile; fileRef = DC3DDF03287E1AC200E5586D /* UIViewController+HostBundleID.m */; };
+ DC3DDF07287E1C0E00E5586D /* UIViewController+HostBundleID.h in Headers */ = {isa = PBXBuildFile; fileRef = DC3DDF02287E1AC200E5586D /* UIViewController+HostBundleID.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC3DEC7B22AFA1F000F3352D /* DownloadItemsHUDViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3DEC7A22AFA1F000F3352D /* DownloadItemsHUDViewController.swift */; };
+ DC3F0C2529828AE300C832DB /* OCLocation+Breadcrumbs.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3F0C2429828AE300C832DB /* OCLocation+Breadcrumbs.swift */; };
DC3F4522271A23A000ED2383 /* AcknowledgementsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3F4521271A23A000ED2383 /* AcknowledgementsTableViewController.swift */; };
DC4332002472E1B4002DC0E5 /* OCLicenseEMMProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = DC4331FE2472E1B4002DC0E5 /* OCLicenseEMMProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC4332012472E1B4002DC0E5 /* OCLicenseEMMProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = DC4331FF2472E1B4002DC0E5 /* OCLicenseEMMProvider.m */; };
- DC44343E21ABFA5200376B16 /* StaticLoginProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC44343D21ABFA5200376B16 /* StaticLoginProfile.swift */; };
DC46F3C72844A75200038880 /* OCDataItem+InteractionProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC46F3C62844A75200038880 /* OCDataItem+InteractionProtocols.swift */; };
DC46F3CC2844A8EA00038880 /* ViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC46F3CB2844A8EA00038880 /* ViewCell.swift */; };
DC46F3CE2844A92A00038880 /* ActionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC46F3CD2844A92A00038880 /* ActionCell.swift */; };
@@ -349,14 +308,24 @@
DC49B55A28365C5F00DAF13B /* OCVault+VFSManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DC49B55828365C5F00DAF13B /* OCVault+VFSManager.m */; };
DC49C22128524D6C00BAA910 /* ThemeableCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC49C22028524D6C00BAA910 /* ThemeableCollectionViewCell.swift */; };
DC4C575D233958B70098BAE9 /* FixedHeightImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4C575C233958B70098BAE9 /* FixedHeightImageView.swift */; };
- DC4D5A0A247C1398008ADDB6 /* MessageGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4D5A09247C1398008ADDB6 /* MessageGroup.swift */; };
- DC4FEAE7209E3A7700D4476B /* OCIssue+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4FEAE6209E3A7700D4476B /* OCIssue+Extension.swift */; };
DC51FD922475715F0069AB79 /* CellularSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC51FD912475715F0069AB79 /* CellularSettingsViewController.swift */; };
DC576EC022647A070087316D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DC576EC222647A070087316D /* Localizable.strings */; };
+ DC5C48A32918FB7400EBC053 /* CollectionSidebarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC5C48A22918FB7400EBC053 /* CollectionSidebarViewController.swift */; };
+ DC60F2A629802ABE00905EC8 /* UINavigationItem+NavigationContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC60F2A529802ABE00905EC8 /* UINavigationItem+NavigationContent.swift */; };
+ DC60F2A829802B0900905EC8 /* NavigationContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC60F2A729802B0900905EC8 /* NavigationContent.swift */; };
+ DC60F2AA29802D5800905EC8 /* NavigationContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC60F2A929802D5800905EC8 /* NavigationContentItem.swift */; };
+ DC6179E728E0578400C7C4E0 /* OCFileProviderSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = DC6179E528E0578400C7C4E0 /* OCFileProviderSettings.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DC6179E828E0578400C7C4E0 /* OCFileProviderSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = DC6179E628E0578400C7C4E0 /* OCFileProviderSettings.m */; };
DC625141225C904700736874 /* NSError+MessageResolution.m in Sources */ = {isa = PBXBuildFile; fileRef = DC625140225C904700736874 /* NSError+MessageResolution.m */; };
DC625148225CEB2C00736874 /* UploadFileAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC625147225CEB2C00736874 /* UploadFileAction.swift */; };
DC62514A225CEB4300736874 /* UploadMediaAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC625149225CEB4300736874 /* UploadMediaAction.swift */; };
DC62514C225D254500736874 /* UploadBaseAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC62514B225D254500736874 /* UploadBaseAction.swift */; };
+ DC62F567292504060095BB5D /* AccountConnection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC62F566292504060095BB5D /* AccountConnection.swift */; };
+ DC62F569292504510095BB5D /* AccountConnectionPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC62F568292504510095BB5D /* AccountConnectionPool.swift */; };
+ DC62F56C29250DC80095BB5D /* AccountConnectionConsumer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC62F56B29250DC80095BB5D /* AccountConnectionConsumer.swift */; };
+ DC62F57429268D710095BB5D /* ClientWebAppViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFE682628D869A400091D2A /* ClientWebAppViewController.swift */; };
+ DC62F57529268D710095BB5D /* OpenInWebAppAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC0CE19128C7DBE3009ABDFB /* OpenInWebAppAction.swift */; };
+ DC62F6F5292819C80095BB5D /* AccountConnectionRichStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC62F6F4292819C80095BB5D /* AccountConnectionRichStatus.swift */; };
DC63207E21FCA731007EC0A8 /* libzip.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = DCE93FF321FCA434000E14F2 /* libzip.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
DC63208321FCAC1E007EC0A8 /* ClientActivityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC63208221FCAC1E007EC0A8 /* ClientActivityViewController.swift */; };
DC63208521FCEBE9007EC0A8 /* ClientActivityCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC63208421FCEBE9007EC0A8 /* ClientActivityCell.swift */; };
@@ -375,12 +344,14 @@
DC66F3AC23965C9C00CF4812 /* OCLicenseAppStoreReceiptInAppPurchase.m in Sources */ = {isa = PBXBuildFile; fileRef = DC66F3AA23965C9C00CF4812 /* OCLicenseAppStoreReceiptInAppPurchase.m */; };
DC66F3AD2396630100CF4812 /* AppleIncRootCertificate.cer in Resources */ = {isa = PBXBuildFile; fileRef = DC66F3A823965BF400CF4812 /* AppleIncRootCertificate.cer */; };
DC680576212DF548006C3B1F /* CertificateManagementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC680575212DF548006C3B1F /* CertificateManagementViewController.swift */; };
- DC68057A212EAB5E006C3B1F /* ThemeCertificateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC680579212EAB5E006C3B1F /* ThemeCertificateViewController.swift */; };
DC6A0E5426EA9E740076B533 /* AppLockSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = DC6A0E5226EA9E740076B533 /* AppLockSettings.h */; settings = {ATTRIBUTES = (Public, ); }; };
DC6A0E5526EA9E740076B533 /* AppLockSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = DC6A0E5326EA9E740076B533 /* AppLockSettings.m */; };
+ DC6C0A4929239E560045FF2A /* AppRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC6C0A4829239E560045FF2A /* AppRootViewController.swift */; };
+ DC6C0A542923FFF30045FF2A /* AccountControllerSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC6C0A532923FFF30045FF2A /* AccountControllerSection.swift */; };
DC6C68362574FD0400E46BD4 /* PLCrashReporter.LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = DC6C68352574FD0400E46BD4 /* PLCrashReporter.LICENSE */; };
DC6CC3152642C3560040ECAC /* ExternalBrowserBusyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC6CC3142642C3560040ECAC /* ExternalBrowserBusyHandler.swift */; };
DC6CF7FB219446050013B9F9 /* LogSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC6CF7FA219446050013B9F9 /* LogSettingsViewController.swift */; };
+ DC6FDAF72953AD50004F0C7F /* ClientSharedWithMeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC6FDAF62953AD50004F0C7F /* ClientSharedWithMeViewController.swift */; };
DC70398526128B89009F2DC1 /* NSString+ByteCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = DC70398326128B89009F2DC1 /* NSString+ByteCountParser.h */; };
DC70398626128B89009F2DC1 /* NSString+ByteCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = DC70398426128B89009F2DC1 /* NSString+ByteCountParser.m */; };
DC774E5F22F44E57000B11A1 /* ZIPArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = DC774E5D22F44E4A000B11A1 /* ZIPArchive.m */; };
@@ -392,17 +363,38 @@
DC7C101224B5FD6500227085 /* OCBookmark+AppExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = DC7C100F24B5F81E00227085 /* OCBookmark+AppExtensions.m */; };
DC7DBA37207F84BF00E7337D /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC7DBA36207F84BF00E7337D /* main.swift */; };
DC82663C28168D2800F91F7D /* ClientContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC82663B28168D2800F91F7D /* ClientContext.swift */; };
- DC82665028183CFD00F91F7D /* OCResourceText+ViewProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB24A2810A69600789435 /* OCResourceText+ViewProvider.swift */; };
DC82D6FA23171339001551C5 /* ScanAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC82D6F923171339001551C5 /* ScanAction.swift */; };
DC854936218331CF00782BA8 /* UserInterfaceSettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC854935218331CF00782BA8 /* UserInterfaceSettingsSection.swift */; };
- DC85572C20513B8C00189B9A /* ServerListTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC85572A20513B8C00189B9A /* ServerListTableViewController.swift */; };
- DC85572D20513B8C00189B9A /* ServerListTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DC85572B20513B8C00189B9A /* ServerListTableViewController.xib */; };
- DC869A592153B1F60088977E /* OCMockingManager+SwiftTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC869A582153B1F60088977E /* OCMockingManager+SwiftTools.swift */; };
+ DC89EA572992FDCD00BFF393 /* AppStateAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89EA562992FDCD00BFF393 /* AppStateAction.swift */; };
+ DC89EA5C2993A0E000BFF393 /* AppStateActionConnect.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89EA5B2993A0E000BFF393 /* AppStateActionConnect.swift */; };
+ DC89EA602993AC4F00BFF393 /* NSUserActivity+SaveRestore.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89EA5F2993AC4F00BFF393 /* NSUserActivity+SaveRestore.swift */; };
+ DC89EA672995456A00BFF393 /* BrowserNavigationBookmark+AccountController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89EA662995456A00BFF393 /* BrowserNavigationBookmark+AccountController.swift */; };
+ DC89EA6929958DF500BFF393 /* UIViewController+BrowserNavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89EA6829958DF500BFF393 /* UIViewController+BrowserNavigation.swift */; };
+ DC89EA6B29959BD200BFF393 /* AppStateActionRestoreNavigationBookmark.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC89EA6A29959BD200BFF393 /* AppStateActionRestoreNavigationBookmark.swift */; };
+ DC8E99DC297E79E900594697 /* BrowserNavigationHistory.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8E99DB297E79E900594697 /* BrowserNavigationHistory.swift */; };
+ DC8E99E2297E906200594697 /* OCLicenseQAProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = DC8E99DE297E8D3800594697 /* OCLicenseQAProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DC8E99E3297E906700594697 /* OCLicenseQAProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = DC8E99DF297E8D3800594697 /* OCLicenseQAProvider.m */; };
+ DC8E99E5297EEB2800594697 /* ClientLocationBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8E99E4297EEB2800594697 /* ClientLocationBarController.swift */; };
+ DC8E99E8297F3BA700594697 /* ActionTapGestureRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8E99E7297F3BA700594697 /* ActionTapGestureRecognizer.swift */; };
+ DC8E99E9297FF5C300594697 /* UIViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C235CED21F88C0300A989A8 /* UIViewController+Extension.swift */; };
DC8EB271239308E5009148F9 /* LicenseOffersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8EB270239308E5009148F9 /* LicenseOffersViewController.swift */; };
+ DC9219FC2966179600F538EE /* OCShare+Interactions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9219FB2966179600F538EE /* OCShare+Interactions.swift */; };
+ DC9219FD2966229100F538EE /* UniversalItemListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9219F9296615B400F538EE /* UniversalItemListCell.swift */; };
+ DC921A022966D5F800F538EE /* OCShare+UniversalItemListCellContentProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC921A012966D5F800F538EE /* OCShare+UniversalItemListCellContentProvider.swift */; };
+ DC921A042966DFDC00F538EE /* OCItem+UniversalItemListCellContentProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC921A032966DFDC00F538EE /* OCItem+UniversalItemListCellContentProvider.swift */; };
+ DC921A0B2968BA4D00F538EE /* ClientSharedByMeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC921A0A2968BA4D00F538EE /* ClientSharedByMeViewController.swift */; };
DC973BBE24A28ED0001DEEC4 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCEC3DE3242F665D0076B43C /* CoreServices.framework */; };
DC98BBCB20FF815C00F4ED3E /* NSNumber+OCSyncAnchorData.m in Sources */ = {isa = PBXBuildFile; fileRef = DC98BBCA20FF815C00F4ED3E /* NSNumber+OCSyncAnchorData.m */; };
DC98BBD420FF824600F4ED3E /* FileProviderEnumeratorObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = DC98BBD320FF824600F4ED3E /* FileProviderEnumeratorObserver.m */; };
- DC9A116B27D0338400D90BA4 /* ClientSpacesTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9A116A27D0338400D90BA4 /* ClientSpacesTableViewController.swift */; };
+ DC99154C28E636A500DA0AB8 /* SegmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC99154B28E636A500DA0AB8 /* SegmentView.swift */; };
+ DC99154E28E6371500DA0AB8 /* SegmentViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC99154D28E6371500DA0AB8 /* SegmentViewItem.swift */; };
+ DC99155028E63D8300DA0AB8 /* SegmentViewItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC99154F28E63D8300DA0AB8 /* SegmentViewItemView.swift */; };
+ DC99155228E63ECD00DA0AB8 /* UIView+EmbedAndLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC99155128E63ECD00DA0AB8 /* UIView+EmbedAndLayout.swift */; };
+ DC9B4FC3293F453C0037F8F8 /* EmbeddingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9B4FC2293F453C0037F8F8 /* EmbeddingViewController.swift */; };
+ DC9B4FC52940F8D60037F8F8 /* ShareExtensionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9B4FC42940F8D60037F8F8 /* ShareExtensionViewController.swift */; };
+ DC9B4FC629413AE20037F8F8 /* OCResourceText+ViewProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3AB24A2810A69600789435 /* OCResourceText+ViewProvider.swift */; };
+ DC9B4FCA29413B480037F8F8 /* Down in Frameworks */ = {isa = PBXBuildFile; productRef = DC9B4FC929413B480037F8F8 /* Down */; };
+ DC9B4FCE2941DA6E0037F8F8 /* UINavigationItem+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9B4FCD2941DA6E0037F8F8 /* UINavigationItem+Extension.swift */; };
DC9BFBB320A19AF4007064B5 /* doc in Resources */ = {isa = PBXBuildFile; fileRef = DC9BFBB220A19AF3007064B5 /* doc */; };
DC9BFBBD20A1C37B007064B5 /* PasswordManagerAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9BFBBC20A1C37B007064B5 /* PasswordManagerAccess.swift */; };
DC9C1AEC247C76470067895A /* MessageGroupCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9C1AEB247C76470067895A /* MessageGroupCell.swift */; };
@@ -411,8 +403,6 @@
DCA35D3F24CEDA5200DBE2B0 /* DiagnosticViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCA35D3E24CEDA5200DBE2B0 /* DiagnosticViewController.swift */; };
DCA35D8124D1707100DBE2B0 /* OCSyncRecordActivity+DiagnosticGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCA35D8024D1707100DBE2B0 /* OCSyncRecordActivity+DiagnosticGenerator.swift */; };
DCA35DA724D309B600DBE2B0 /* OCFileProviderServiceSession+UploadByFileProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCA35DA624D309B600DBE2B0 /* OCFileProviderServiceSession+UploadByFileProvider.swift */; };
- DCAEB05F21F9FB370067E147 /* OCBookmarkManager+Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCAEB05E21F9FB370067E147 /* OCBookmarkManager+Tools.swift */; };
- DCAEB06121F9FC510067E147 /* EarlGrey+Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCAEB06021F9FC510067E147 /* EarlGrey+Tools.swift */; };
DCB2C05F250C1F9E001083CA /* BrandingClassSettingsSource.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB2C05D250C1F9E001083CA /* BrandingClassSettingsSource.h */; };
DCB2C061250C253C001083CA /* BrandingClassSettingsSource.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB2C05E250C1F9E001083CA /* BrandingClassSettingsSource.m */; };
DCB458ED2604A7D4006A02AB /* OCQueryCondition+SearchSegmenter.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB458EB2604A7D4006A02AB /* OCQueryCondition+SearchSegmenter.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -421,8 +411,31 @@
DCB5D56B2861BEBE004AF425 /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB5D56A2861BEBE004AF425 /* SearchViewController.swift */; };
DCB5D5A728632C17004AF425 /* SearchScope.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB5D5A628632C17004AF425 /* SearchScope.swift */; };
DCB5D60B25FC14B6004C52D9 /* OCIssue+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB5D60A25FC14B6004C52D9 /* OCIssue+Extension.swift */; };
- DCB6C4D72453A6CA00C1EAE1 /* ClientAuthenticationUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6C4D62453A6CA00C1EAE1 /* ClientAuthenticationUpdater.swift */; };
- DCB6C4DE24559B1600C1EAE1 /* ClientAuthenticationUpdaterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6C4DD24559B1600C1EAE1 /* ClientAuthenticationUpdaterViewController.swift */; };
+ DCB6B1E6292B6BE500D27573 /* OCLocation+Interactions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1E5292B6BE500D27573 /* OCLocation+Interactions.swift */; };
+ DCB6B1EB292B7C2400D27573 /* AppRootViewController+ItemActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1EA292B7C2400D27573 /* AppRootViewController+ItemActions.swift */; };
+ DCB6B1ED292B963300D27573 /* AccountConnection+ItemActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1EC292B963300D27573 /* AccountConnection+ItemActions.swift */; };
+ DCB6B1EF292B979600D27573 /* MessageGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4D5A09247C1398008ADDB6 /* MessageGroup.swift */; };
+ DCB6B1F0292B979A00D27573 /* MessageSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC832E1242C0EAC00153F8C /* MessageSelector.swift */; };
+ DCB6B1F2292B9A7A00D27573 /* OCMessage+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE20271249AB50E0015A22A /* OCMessage+Extension.swift */; };
+ DCB6B1F5292CC46B00D27573 /* AccountController+ItemActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1F4292CC46B00D27573 /* AccountController+ItemActions.swift */; };
+ DCB6B1F7292CC8E200D27573 /* OCBookmarkManager+Locking.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1F6292CC8E200D27573 /* OCBookmarkManager+Locking.swift */; };
+ DCB6B1F9292CCAF200D27573 /* OCBookmarkManager+Management.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1F8292CCAF200D27573 /* OCBookmarkManager+Management.swift */; };
+ DCB6B1FB292CD76200D27573 /* OCBookmarkManager+Management.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1FA292CD76200D27573 /* OCBookmarkManager+Management.swift */; };
+ DCB6B1FD292CF2DB00D27573 /* NavigationRevocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1FC292CF2DB00D27573 /* NavigationRevocationManager.swift */; };
+ DCB6B200292CF2FE00D27573 /* NavigationRevocationAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B1FF292CF2FE00D27573 /* NavigationRevocationAction.swift */; };
+ DCB6B203292D45AD00D27573 /* NavigationRevocationTrigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B202292D45AD00D27573 /* NavigationRevocationTrigger.swift */; };
+ DCB6B205292D859B00D27573 /* UIViewController+NavigationRevocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B204292D859B00D27573 /* UIViewController+NavigationRevocation.swift */; };
+ DCB6B206292E1D8400D27573 /* RoundedLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 396BE4C92289500E00B254A9 /* RoundedLabel.swift */; };
+ DCB6B20A292E296800D27573 /* CollectionSidebarAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B209292E296800D27573 /* CollectionSidebarAction.swift */; };
+ DCB6B20C292E428000D27573 /* AccountController+ExtraItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B20B292E428000D27573 /* AccountController+ExtraItems.swift */; };
+ DCB6B20F292F843800D27573 /* CollectionViewAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB6B20E292F843800D27573 /* CollectionViewAction.swift */; };
+ DCBAEADB29A3674700BFF393 /* OCItemPolicy+UniversalItemListCellContentProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBAEAD429A361C100BFF393 /* OCItemPolicy+UniversalItemListCellContentProvider.swift */; };
+ DCBAEADE29A5536F00BFF393 /* CollectionViewSupplementaryCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBAEADD29A5536F00BFF393 /* CollectionViewSupplementaryCellProvider.swift */; };
+ DCBAEAE029A554CC00BFF393 /* CollectionViewSupplementaryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBAEADF29A554CC00BFF393 /* CollectionViewSupplementaryItem.swift */; };
+ DCBAEAE229A55D5A00BFF393 /* ViewSupplementaryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBAEAE129A55D5A00BFF393 /* ViewSupplementaryCell.swift */; };
+ DCBAEAE429A5603600BFF393 /* CollectionViewSupplementaryCellProvider+StandardImplementations.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBAEAE329A5603600BFF393 /* CollectionViewSupplementaryCellProvider+StandardImplementations.swift */; };
+ DCBAEAE829A568D500BFF393 /* TitleSupplementaryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBAEAE729A568D500BFF393 /* TitleSupplementaryCell.swift */; };
+ DCBAEAED29A627D900BFF393 /* DataSourceCondition.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCBAEAEC29A627D900BFF393 /* DataSourceCondition.swift */; };
DCBD8EA824B3751900D92E1F /* OCItem+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397754E123279EED00119FCB /* OCItem+Extension.swift */; };
DCC085512293ED52008CC05C /* DisplaySettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC085502293ED52008CC05C /* DisplaySettingsSection.swift */; };
DCC085652293F1FD008CC05C /* ownCloudApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCC0855C2293F1FD008CC05C /* ownCloudApp.framework */; };
@@ -438,16 +451,13 @@
DCC5E446232654DE002E5B84 /* NSObject+AnnotatedProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC5E445232654DE002E5B84 /* NSObject+AnnotatedProperties.m */; };
DCC5E4472326564F002E5B84 /* NSObject+AnnotatedProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = DCC5E444232654DE002E5B84 /* NSObject+AnnotatedProperties.h */; settings = {ATTRIBUTES = (Public, ); }; };
DCC6564A20C9B7E400110A97 /* FileProviderExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC6564920C9B7E400110A97 /* FileProviderExtension.m */; };
- DCC6566520C9B7E400110A97 /* ownCloud File Provider.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = DCC6564620C9B7E300110A97 /* ownCloud File Provider.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ DCC6566520C9B7E400110A97 /* ownCloud File Provider.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = DCC6564620C9B7E300110A97 /* ownCloud File Provider.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
DCC832DE242C0C3700153F8C /* DisplaySleepPreventer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC832DD242C0C3700153F8C /* DisplaySleepPreventer.swift */; };
- DCC832E2242C0EAC00153F8C /* MessageSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC832E1242C0EAC00153F8C /* MessageSelector.swift */; };
DCC832F1242CC27B00153F8C /* NotificationMessagePresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = DCC832E6242CB18700153F8C /* NotificationMessagePresenter.h */; settings = {ATTRIBUTES = (Public, ); }; };
DCC832F2242CC28400153F8C /* NotificationMessagePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC832E7242CB18700153F8C /* NotificationMessagePresenter.m */; };
DCC832F3242CC28900153F8C /* NotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DCC832E9242CB4D600153F8C /* NotificationManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
DCC832F4242CC28F00153F8C /* NotificationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC832EA242CB4D600153F8C /* NotificationManager.m */; };
DCC832F6242CC5F700153F8C /* CardIssueMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC832F5242CC5F700153F8C /* CardIssueMessagePresenter.swift */; };
- DCC832F8242CC94D00153F8C /* AlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC832F7242CC94D00153F8C /* AlertView.swift */; };
- DCC83304242CF3AD00153F8C /* AlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC83303242CF3AC00153F8C /* AlertViewController.swift */; };
DCC8535823CE1236007BA3EB /* LicenseInAppProductListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC8535723CE1236007BA3EB /* LicenseInAppProductListViewController.swift */; };
DCC8536023CE1AF8007BA3EB /* PurchasesSettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC8535F23CE1AF8007BA3EB /* PurchasesSettingsSection.swift */; };
DCCD77792604C91600098573 /* NSDate+ComputedTimes.h in Headers */ = {isa = PBXBuildFile; fileRef = DCCD776A2604C81B00098573 /* NSDate+ComputedTimes.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -456,13 +466,14 @@
DCD1300A23A191C000255779 /* LicenseOfferButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD1300923A191C000255779 /* LicenseOfferButton.swift */; };
DCD1301123A23F4E00255779 /* OCLicenseManager+AppStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD1301023A23F4E00255779 /* OCLicenseManager+AppStore.swift */; };
DCD2D40622F06ECA0071FB8F /* DataSettingsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD2D40522F06ECA0071FB8F /* DataSettingsSection.swift */; };
+ DCD68A2D291D979400993FF5 /* AccountController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD68A2C291D979400993FF5 /* AccountController.swift */; };
+ DCD68A2F291D9BE400993FF5 /* AccountControllerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD68A2E291D9BE400993FF5 /* AccountControllerCell.swift */; };
DCD71E7F27427463001592C6 /* BuildOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD71E7C2742745D001592C6 /* BuildOptions.h */; };
DCD71E8027427463001592C6 /* BuildOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DCD71E7D2742745D001592C6 /* BuildOptions.m */; };
DCD8109A23984AF2003B0053 /* OCLicenseDuration.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD810922398492C003B0053 /* OCLicenseDuration.h */; settings = {ATTRIBUTES = (Public, ); }; };
DCD8109B23984AF6003B0053 /* OCLicenseDuration.m in Sources */ = {isa = PBXBuildFile; fileRef = DCD810932398492C003B0053 /* OCLicenseDuration.m */; };
DCD863FB28115C8700CA6631 /* Down.LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = DCD863FA28115C8700CA6631 /* Down.LICENSE */; };
DCD8640628115FD600CA6631 /* OpenSSL in Frameworks */ = {isa = PBXBuildFile; productRef = DCD8640528115FD600CA6631 /* OpenSSL */; };
- DCD864102811821200CA6631 /* ClientRootViewController+ItemActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD8640F2811821200CA6631 /* ClientRootViewController+ItemActions.swift */; };
DCD864122811FC5700CA6631 /* GradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD864112811FC5700CA6631 /* GradientView.swift */; };
DCD954DF247D62FA00E184E6 /* MessageTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCD954DE247D62FA00E184E6 /* MessageTableViewController.swift */; };
DCD9B87B2379612B00691929 /* OCLicenseManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD9B873237960E600691929 /* OCLicenseManager+Internal.h */; };
@@ -479,11 +490,9 @@
DCDC20AC2399A8CF003CFF5B /* OCLicenseEnterpriseProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = DCDC20AA2399A8CF003CFF5B /* OCLicenseEnterpriseProvider.m */; };
DCDF58B323CE82E100080BEB /* LicenseInAppPurchaseFeatureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCDF58B223CE82E100080BEB /* LicenseInAppPurchaseFeatureView.swift */; };
DCE0275E21F1DF7E00F2544E /* ownCloudUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2393697C2076110900BCE21A /* ownCloudUI.framework */; settings = {ATTRIBUTES = (Required, ); }; };
- DCE20272249AB50E0015A22A /* OCMessage+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE20271249AB50E0015A22A /* OCMessage+Extension.swift */; };
DCE28F602433683700879DEC /* ClientSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE28F5F2433683700879DEC /* ClientSessionManager.swift */; };
DCE2F03E27FADF2600E9E136 /* UICollectionViewDiffableDataSource+Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE2F03D27FADF2600E9E136 /* UICollectionViewDiffableDataSource+Tools.swift */; };
DCE442CE2387452000940A6D /* LicensingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC0856B2293F1FD008CC05C /* LicensingTests.m */; };
- DCE4E43124C197450051722F /* OpenItemUserActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 394E200B233E477F009D2897 /* OpenItemUserActivity.swift */; };
DCE4E43524C1999A0051722F /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E37F48A2188B27D00CF16CA /* Action.swift */; };
DCE4E43724C19A910051722F /* LicenseRequirements.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCDC209B2399A4CF003CFF5B /* LicenseRequirements.swift */; };
DCE4E43924C19AB20051722F /* MoreStaticTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 232B01F52126B10900366FA0 /* MoreStaticTableViewController.swift */; };
@@ -493,23 +502,11 @@
DCE4E43E24C19C3E0051722F /* Action+UserInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE4E43D24C19C3E0051722F /* Action+UserInterface.swift */; };
DCE4E43F24C19D370051722F /* UIAlertController+OCIssue.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC434D1220D7A8F100740056 /* UIAlertController+OCIssue.swift */; };
DCE4E44124C1A07E0051722F /* UITableViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39607CBB2225D480007B386D /* UITableViewController+Extension.swift */; };
- DCE4E44424C1A3E30051722F /* FileListTableViewController+OpenItemTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE4E44324C1A3E30051722F /* FileListTableViewController+OpenItemTableViewController.swift */; };
- DCE4E44524C1A4260051722F /* FileListTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3913213722946E5E00EF88F4 /* FileListTableViewController.swift */; };
DCE4E44724C1AC4F0051722F /* MessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39B289A7226F1EE000BE0E11 /* MessageView.swift */; };
- DCE4E44B24C1D3780051722F /* QueryFileListTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC29F08F22974AEA00F77349 /* QueryFileListTableViewController.swift */; };
- DCE4E44D24C1D48B0051722F /* QueryFileListTableViewController+Multiselect.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE4E44C24C1D48B0051722F /* QueryFileListTableViewController+Multiselect.swift */; };
- DCE4E44F24C1DF130051722F /* UIViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C235CED21F88C0300A989A8 /* UIViewController+Extension.swift */; };
DCE4E45024C1E0400051722F /* UIButton+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39104E0A223991C8002FC02F /* UIButton+Extension.swift */; };
- DCE4E45124C1E4430051722F /* UIBarButtonItem+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CF8CAB021F9B70500B8CA67 /* UIBarButtonItem+Extension.swift */; };
- DCE4E45424C1EC040051722F /* BreadCrumbTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 394804D9225CBDBA00AA8183 /* BreadCrumbTableViewController.swift */; };
- DCE4E45624C1ED8D0051722F /* ClientQueryViewController+InlineMessageSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE4E45524C1ED8D0051722F /* ClientQueryViewController+InlineMessageSupport.swift */; };
- DCE4E45824C1F0F40051722F /* ClientDirectoryPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2308F93C21467F6200CF0B91 /* ClientDirectoryPickerViewController.swift */; };
- DCE4E45924C1F0F70051722F /* ClientQueryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3BE0DC2077CC13002A0AC0 /* ClientQueryViewController.swift */; };
- DCE4E46B24C1F5610051722F /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE4E46A24C1F5610051722F /* ShareViewController.swift */; };
- DCE4E47224C1F5610051722F /* ownCloud Share Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = DCE4E46824C1F5610051722F /* ownCloud Share Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ DCE4E47224C1F5610051722F /* ownCloud Share Extension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = DCE4E46824C1F5610051722F /* ownCloud Share Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
DCE4E47B24C1F5870051722F /* ownCloudAppShared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 394A0AF922EEFC2C00603813 /* ownCloudAppShared.framework */; };
DCE4E48024C1F58D0051722F /* ownCloudSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 239369782076110900BCE21A /* ownCloudSDK.framework */; };
- DCE4E48624C1F6B50051722F /* ShareNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCE4E48524C1F6B50051722F /* ShareNavigationController.swift */; };
DCE4E48724C1F9F50051722F /* CreateFolderAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ED1B80A21A4004900E16C95 /* CreateFolderAction.swift */; };
DCE4E48824C1FA430051722F /* NamingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D77FC6212BFBD100DE76F1 /* NamingViewController.swift */; };
DCE4E48924C1FB750051722F /* application-pdf.tvg in Resources */ = {isa = PBXBuildFile; fileRef = DCE5E89A2080D780005F60CE /* application-pdf.tvg */; };
@@ -567,16 +564,14 @@
DCF575EC2796CBDF003BEBBA /* OCImage+ViewProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF575EA2796CBDF003BEBBA /* OCImage+ViewProvider.m */; };
DCF575EF2796CE38003BEBBA /* OCViewHost.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF575ED2796CE38003BEBBA /* OCViewHost.h */; settings = {ATTRIBUTES = (Public, ); }; };
DCF575F02796CE38003BEBBA /* OCViewHost.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF575EE2796CE38003BEBBA /* OCViewHost.m */; };
- DCFB74BB21AD5C46005796AF /* StaticLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC44344321AC031600376B16 /* StaticLoginViewController.swift */; };
- DCFB74C121AD5C88005796AF /* StaticLoginStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4434C321AC894700376B16 /* StaticLoginStepViewController.swift */; };
- DCFB74C221AD5D10005796AF /* StaticLoginSetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4434C521AC898700376B16 /* StaticLoginSetupViewController.swift */; };
- DCFB74C421AD7E18005796AF /* StaticLoginServerListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFB74C321AD7E18005796AF /* StaticLoginServerListViewController.swift */; };
+ DCFA56432975734A0092C89F /* BrowserNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFA56422975734A0092C89F /* BrowserNavigationViewController.swift */; };
+ DCFA5645297574A60092C89F /* BrowserNavigationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFA5644297574A60092C89F /* BrowserNavigationItem.swift */; };
+ DCFA9CAF2987E14B00004F24 /* BrowserNavigationBookmark.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFA9CAB2987E14B00004F24 /* BrowserNavigationBookmark.swift */; };
DCFBAD0C21BE67A100943F76 /* ownCloudUI.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 2393697C2076110900BCE21A /* ownCloudUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
DCFC9ECC28002303005D9144 /* CollectionViewSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFC9ECB28002303005D9144 /* CollectionViewSection.swift */; };
DCFC9ED128002335005D9144 /* CollectionViewCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFC9ED028002335005D9144 /* CollectionViewCellProvider.swift */; };
DCFC9ED3280023BB005D9144 /* CollectionViewCellProvider+StandardImplementations.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFC9ED2280023BB005D9144 /* CollectionViewCellProvider+StandardImplementations.swift */; };
DCFC9ED528002F33005D9144 /* CollectionViewCellConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFC9ED428002F33005D9144 /* CollectionViewCellConfiguration.swift */; };
- DCFE682728D869A400091D2A /* ClientWebAppViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFE682628D869A400091D2A /* ClientWebAppViewController.swift */; };
DCFE682E28D9CEDD00091D2A /* ComposedMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFE682D28D9CEDD00091D2A /* ComposedMessageView.swift */; };
DCFEF90926EFA45A001DC7A4 /* VendorServices+App.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFEF90526EFA45A001DC7A4 /* VendorServices+App.swift */; };
DCFEFE2A236876BD009A142F /* OCLicenseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DCFEFE28236876BD009A142F /* OCLicenseManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -596,9 +591,6 @@
DCFEFE982368D099009A142F /* OCLicenseEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFEFE962368D099009A142F /* OCLicenseEnvironment.m */; };
DCFEFE9C2368D7FA009A142F /* OCLicenseObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = DCFEFE9A2368D7FA009A142F /* OCLicenseObserver.h */; settings = {ATTRIBUTES = (Public, ); }; };
DCFEFE9D2368D7FA009A142F /* OCLicenseObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFEFE9B2368D7FA009A142F /* OCLicenseObserver.m */; };
- EA1D571C6B1E95925C459228 /* EarlGrey.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D9C062DD1E85A838608B0F /* EarlGrey.framework */; };
- EA88A55521BFD5BF0055A58F /* DeleteBookmarkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA88A55421BFD5BF0055A58F /* DeleteBookmarkTests.swift */; };
- EA9337E32226DB070054971F /* SettingsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA9337E22226DB070054971F /* SettingsTests.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -693,13 +685,6 @@
remoteGlobalIDString = 394A0AF822EEFC2C00603813;
remoteInfo = ownCloudAppShared;
};
- 59056CAF22414F3C00A18A22 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 233BDE94204FEFE500C06732 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 233BDE9B204FEFE500C06732;
- remoteInfo = ownCloud;
- };
DC0196A520F754CA00C41B78 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 233BDEBF204FEFF300C06732 /* ownCloudSDK.xcodeproj */;
@@ -881,30 +866,6 @@
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
- 59799F7C224157E0007E8008 /* EarlGrey Copy Files */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "$(TEST_HOST)/..";
- dstSubfolderSpec = 0;
- files = (
- 59799F7E22415819007E8008 /* ownCloudMocking.framework in EarlGrey Copy Files */,
- 59799F7D22415804007E8008 /* EarlGrey.framework in EarlGrey Copy Files */,
- );
- name = "EarlGrey Copy Files";
- runOnlyForDeploymentPostprocessing = 0;
- };
- D9876310DCEA650662AA6AF7 /* EarlGrey Copy Files */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "$(TEST_HOST)/..";
- dstSubfolderSpec = 0;
- files = (
- DC20DE5C21C01A3D0096000B /* ownCloudMocking.framework in EarlGrey Copy Files */,
- A45A8D98137C902524B84E6D /* EarlGrey.framework in EarlGrey Copy Files */,
- );
- name = "EarlGrey Copy Files";
- runOnlyForDeploymentPostprocessing = 0;
- };
DC7DBA32207F84BF00E7337D /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@@ -929,24 +890,23 @@
name = "Copy Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
- DCC6567020C9B7E400110A97 /* Embed App Extensions */ = {
+ DCC6567020C9B7E400110A97 /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
- 39A7138722E79C6700089423 /* ownCloud Intents.appex in Embed App Extensions */,
- DCE4E47224C1F5610051722F /* ownCloud Share Extension.appex in Embed App Extensions */,
- DCC6566520C9B7E400110A97 /* ownCloud File Provider.appex in Embed App Extensions */,
- 39DC7CD725C2E1570001E08C /* ownCloud File Provider UI.appex in Embed App Extensions */,
+ 39A7138722E79C6700089423 /* ownCloud Intents.appex in Embed Foundation Extensions */,
+ DCE4E47224C1F5610051722F /* ownCloud Share Extension.appex in Embed Foundation Extensions */,
+ DCC6566520C9B7E400110A97 /* ownCloud File Provider.appex in Embed Foundation Extensions */,
+ 39DC7CD725C2E1570001E08C /* ownCloud File Provider UI.appex in Embed Foundation Extensions */,
);
- name = "Embed App Extensions";
+ name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
- 02072E5F23E46022006548A7 /* UIWindow+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIWindow+Extension.swift"; sourceTree = ""; };
0233F45D246E9D960095A799 /* UploadCameraMediaAction.swift */ = {isa = PBXFileReference; indentWidth = 5; lastKnownFileType = sourcecode.swift; path = UploadCameraMediaAction.swift; sourceTree = ""; };
0234EF072515138A00AE921A /* PasscodeSetupCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasscodeSetupCoordinator.swift; sourceTree = ""; };
025F063224AA163C009D8FC5 /* DisplayExifMetadataAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplayExifMetadataAction.swift; sourceTree = ""; };
@@ -958,16 +918,9 @@
025FC741247D5004009307A7 /* MediaUploadOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadOperation.swift; sourceTree = ""; };
025FC744247EF0F1009307A7 /* BackgroundUploadsSettingsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundUploadsSettingsSection.swift; sourceTree = ""; };
02633EFE2483D2EB00B5F58F /* UNUserNotificationCenter+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNUserNotificationCenter+Extensions.swift"; sourceTree = ""; };
- 0269F588244DED02002E9D99 /* UIAlertController+UniversalLinks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+UniversalLinks.swift"; sourceTree = ""; };
0287DD7C249131E000C912CA /* AppStatistics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStatistics.swift; sourceTree = ""; };
02D4C829255208E60000E299 /* PDFSearchResultsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFSearchResultsView.swift; sourceTree = ""; };
02DC7C8F24CB354800DCB2C6 /* ProPhotoUploadSettingsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProPhotoUploadSettingsSection.swift; sourceTree = ""; };
- 02F2890F24BFAF0100E3D35C /* LegacyCredentials.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyCredentials.swift; sourceTree = ""; };
- 02F2891024BFAF0100E3D35C /* MigrationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationViewController.swift; sourceTree = ""; };
- 02F2891124BFAF0100E3D35C /* Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Migration.swift; sourceTree = ""; };
- 02F2891224BFAF0100E3D35C /* MigrationActivityCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationActivityCell.swift; sourceTree = ""; };
- 03AE98EEF23B4F4F2C0FDD0F /* Pods-ownCloudTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ownCloudTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ownCloudTests/Pods-ownCloudTests.debug.xcconfig"; sourceTree = ""; };
- 2308F93C21467F6200CF0B91 /* ClientDirectoryPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClientDirectoryPickerViewController.swift; sourceTree = ""; };
232B01F32126B0CE00366FA0 /* MoreViewHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreViewHeader.swift; sourceTree = ""; };
232B01F52126B10900366FA0 /* MoreStaticTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreStaticTableViewController.swift; sourceTree = ""; };
232F7CAE2097260400EE22E4 /* SettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = ""; };
@@ -976,7 +929,6 @@
233BDEA6204FEFE500C06732 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
233BDEAB204FEFE500C06732 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
233BDEB0204FEFE500C06732 /* ownCloudTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ownCloudTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- 233BDEB4204FEFE500C06732 /* OwnCloudTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OwnCloudTests.swift; sourceTree = ""; };
233BDEB6204FEFE500C06732 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
233BDEBF204FEFF300C06732 /* ownCloudSDK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ownCloudSDK.xcodeproj; path = "ios-sdk/ownCloudSDK.xcodeproj"; sourceTree = ""; };
233E0FD72099F11D00C3D8D5 /* SecuritySettingsSection.swift */ = {isa = PBXFileReference; indentWidth = 8; lastKnownFileType = sourcecode.swift; path = SecuritySettingsSection.swift; sourceTree = ""; tabWidth = 8; usesTabs = 1; };
@@ -1000,20 +952,16 @@
3912208123436EB80026C290 /* SortMethod.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SortMethod.swift; sourceTree = ""; };
391220922344C30F0026C290 /* ImportPasteboardAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportPasteboardAction.swift; sourceTree = ""; };
391220932344C30F0026C290 /* CutAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CutAction.swift; sourceTree = ""; };
- 3913213722946E5E00EF88F4 /* FileListTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileListTableViewController.swift; sourceTree = ""; };
- 3913214A22956D5700EF88F4 /* LibraryTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LibraryTableViewController.swift; sourceTree = ""; };
392CFEB62705831700631D2B /* LAContext+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "LAContext+Extension.swift"; sourceTree = ""; };
392DDB1324CF024C009E5406 /* ImportFilesController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportFilesController.swift; sourceTree = ""; };
3931206A2326451900E8DFBA /* Branding.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Branding.plist; path = ownCloud/Resources/Theming/Branding.plist; sourceTree = SOURCE_ROOT; };
3940C4EF2326985B008227AE /* GetAccountIntentHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GetAccountIntentHandler.swift; sourceTree = ""; };
- 394804D9225CBDBA00AA8183 /* BreadCrumbTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BreadCrumbTableViewController.swift; sourceTree = ""; };
394A0AF922EEFC2C00603813 /* ownCloudAppShared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ownCloudAppShared.framework; sourceTree = BUILT_PRODUCTS_DIR; };
394A0AFB22EEFC2C00603813 /* ownCloudAppShared.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ownCloudAppShared.h; sourceTree = ""; };
394A0AFC22EEFC2C00603813 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
394E1FD9233E2D64009D2897 /* FavoriteAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FavoriteAction.swift; sourceTree = ""; };
394E1FDB233E3750009D2897 /* UnfavoriteAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnfavoriteAction.swift; sourceTree = ""; };
394E1FFE233E43F5009D2897 /* LinksAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinksAction.swift; sourceTree = ""; };
- 394E200B233E477F009D2897 /* OpenItemUserActivity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenItemUserActivity.swift; sourceTree = ""; };
39534BC824EA903200AD7907 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
39534BCA24EA903800AD7907 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
39534BCB24EA903B00AD7907 /* sq */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sq; path = sq.lproj/InfoPlist.strings; sourceTree = ""; };
@@ -1072,17 +1020,14 @@
399A4C0F23190ADF0027DDD6 /* PathExistsIntentHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PathExistsIntentHandler.swift; sourceTree = ""; };
399DD7C122A691BC00B45EB2 /* UnshareAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnshareAction.swift; sourceTree = ""; };
399EA6EE25E6544000B6FF11 /* GroupSharingTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupSharingTableViewController.swift; sourceTree = ""; };
- 399EA6EF25E6544000B6FF11 /* ShareClientItemCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareClientItemCell.swift; sourceTree = ""; };
399EA6F025E6544000B6FF11 /* PublicLinkEditTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublicLinkEditTableViewController.swift; sourceTree = ""; };
399EA6F125E6544000B6FF11 /* PublicLinkTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublicLinkTableViewController.swift; sourceTree = ""; };
399EA6F225E6544000B6FF11 /* SharingTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharingTableViewController.swift; sourceTree = ""; };
399EA6F325E6544000B6FF11 /* GroupSharingEditTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupSharingEditTableViewController.swift; sourceTree = ""; };
- 399EA70625E654B400B6FF11 /* PendingSharesTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingSharesTableViewController.swift; sourceTree = ""; };
399EA71A25E6561D00B6FF11 /* OCShare+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OCShare+Extension.swift"; sourceTree = ""; };
399EA72525E6565900B6FF11 /* OCCore+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OCCore+Extension.swift"; sourceTree = ""; };
399EA73925E656A900B6FF11 /* UITableView+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UITableView+Extension.swift"; sourceTree = ""; };
399EA74525E6575A00B6FF11 /* NotificationHUDViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationHUDViewController.swift; sourceTree = ""; };
- 399EA75925E66DB000B6FF11 /* ClientItemResolvingCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClientItemResolvingCell.swift; sourceTree = ""; };
39A243C324BDD9E100F4441F /* StaticLoginBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StaticLoginBundle.swift; sourceTree = ""; };
39A5C3A0231566D9009D9EE3 /* GetFileInfoIntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetFileInfoIntentHandler.swift; sourceTree = ""; };
39A7138022E79C6700089423 /* ownCloud Intents.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "ownCloud Intents.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1136,7 +1081,6 @@
39DF77BA24EA7F1D0066E8F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; };
39DF77BB24EA7F1E0066E8F0 /* th-TH */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "th-TH"; path = "th-TH.lproj/Localizable.strings"; sourceTree = ""; };
39DF77BF24EA842C0066E8F0 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; };
- 39E2FDEC21FDEC7500F0117F /* ServerListTableHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerListTableHeaderView.swift; sourceTree = ""; };
39E2FDFF21FF814A00F0117F /* ThemeRoundedButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeRoundedButton.swift; sourceTree = ""; };
39E42D1B2315288B00B82AC3 /* KeyCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyCommands.swift; sourceTree = ""; };
39E6DE85233CDF1E008DAE04 /* OCItemTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OCItemTracker.swift; sourceTree = ""; };
@@ -1146,13 +1090,11 @@
39F48A6724D848550000E3F9 /* branding-splashscreen-background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "branding-splashscreen-background.png"; path = "ownCloud/Resources/Theming/branding-splashscreen-background.png"; sourceTree = SOURCE_ROOT; };
39F689A922EF5EDC00E63429 /* ownCloud Intents.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "ownCloud Intents.entitlements"; sourceTree = ""; };
39F689AA22F018C100E63429 /* GetDirectoryListingIntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetDirectoryListingIntentHandler.swift; sourceTree = ""; };
- 3D753147564B1E4F47826109 /* Pods-ownCloud Screenshots Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ownCloud Screenshots Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ownCloud Screenshots Tests/Pods-ownCloud Screenshots Tests.debug.xcconfig"; sourceTree = ""; };
42866B2892DC9EDC65D844E7 /* Pods_ownCloud_Screenshots_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ownCloud_Screenshots_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
4C05D8A4238708D40073EF50 /* MediaUploadStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadStorage.swift; sourceTree = ""; };
4C11EE5A22E88D4200B84869 /* InstantMediaUploadTaskExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantMediaUploadTaskExtension.swift; sourceTree = ""; };
4C1561E7222321E0009C4EF3 /* PhotoSelectionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoSelectionViewController.swift; sourceTree = ""; };
4C1561EE22232357009C4EF3 /* PhotoSelectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoSelectionViewCell.swift; sourceTree = ""; };
- 4C16CBA6226F0F1900D67BB6 /* FileTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileTests.swift; sourceTree = ""; };
4C235CED21F88C0300A989A8 /* UIViewController+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Extension.swift"; sourceTree = ""; };
4C3E17DA234DBF9A000D7BA8 /* PendingMediaUploadTaskExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingMediaUploadTaskExtension.swift; sourceTree = ""; };
4C464BE12187AF1400D30602 /* PDFThumbnailCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDFThumbnailCollectionViewCell.swift; sourceTree = ""; };
@@ -1166,7 +1108,6 @@
4C51727522DE04BD001BC97F /* ScheduledTaskExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledTaskExtension.swift; sourceTree = ""; };
4C51727622DE04BD001BC97F /* BackgroundFetchUpdateTaskAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BackgroundFetchUpdateTaskAction.swift; sourceTree = ""; };
4C51727722DE04BD001BC97F /* ScheduledTaskManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledTaskManager.swift; sourceTree = ""; };
- 4C63F0E4231A91230088E8CA /* UIImageView+Thumbnails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImageView+Thumbnails.swift"; sourceTree = ""; };
4C6B780F2226B83300C5F3DB /* PhotoAlbumTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoAlbumTableViewController.swift; sourceTree = ""; };
4C6B78112226B86300C5F3DB /* PhotoAlbumTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoAlbumTableViewCell.swift; sourceTree = ""; };
4C7295D7228C384E00FA4E68 /* LogFilesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogFilesViewController.swift; sourceTree = ""; };
@@ -1182,24 +1123,12 @@
4CC46D202284C677009E938F /* BookmarkInfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkInfoViewController.swift; sourceTree = ""; };
4CC4A21122FA20AD00AE7E2C /* URL+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+Extensions.swift"; sourceTree = ""; };
4CC4A21822FB4F4C00AE7E2C /* MediaUploadQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadQueue.swift; sourceTree = ""; };
- 4CF8CAB021F9B70500B8CA67 /* UIBarButtonItem+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIBarButtonItem+Extension.swift"; sourceTree = ""; };
54199937F74A129BC74DEB0A /* Pods_ownCloudScreenshotsTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ownCloudScreenshotsTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 59056CAA22414F3C00A18A22 /* ownCloudScreenshotsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ownCloudScreenshotsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- 59056CAC22414F3C00A18A22 /* ownCloudScreenshotsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ownCloudScreenshotsTests.swift; sourceTree = ""; };
- 59056CAE22414F3C00A18A22 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 5917244D20D3DC2100809B38 /* BiometricalTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BiometricalTests.swift; sourceTree = ""; };
- 59371D7B224103D300C6BC5B /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotHelper.swift; path = ownCloudScreenshotsTests/SnapshotHelper.swift; sourceTree = SOURCE_ROOT; };
593A821220C7D4C5000E2A90 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
593A821820C7D4DC000E2A90 /* es */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; };
593BAB44209AE1BC00023634 /* PasscodeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeViewController.swift; sourceTree = ""; };
593BAB45209AE1BC00023634 /* PasscodeViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PasscodeViewController.xib; sourceTree = ""; };
593BAB96209F8A0500023634 /* AppLockManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockManager.swift; sourceTree = ""; };
- 59538A0221E4A9C2005E543B /* CreateFolderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateFolderTests.swift; sourceTree = ""; };
- 59538A0A21E4C300005E543B /* MockOCQuery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockOCQuery.swift; sourceTree = ""; };
- 59538A1B21E77FB6005E543B /* MockOCCore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockOCCore.swift; sourceTree = ""; };
- 5958C9BD20C000A700E0E567 /* PasscodeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasscodeTests.swift; sourceTree = ""; };
- 595E2C9E21EE4BF300F0E95D /* PropfindResponseNewFolder.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PropfindResponseNewFolder.xml; sourceTree = ""; };
- 5971CF3922046F530052FE9A /* MockClientRootViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockClientRootViewController.swift; sourceTree = ""; };
597A404820AD59EF00B028B2 /* AppLockWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockWindow.swift; sourceTree = ""; };
59AAD95921F76B6800D15F07 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/InfoPlist.strings; sourceTree = ""; };
59AAD95A21F76B6800D15F07 /* cs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; };
@@ -1227,15 +1156,8 @@
59AAD98D21F786CC00D15F07 /* pt-PT */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; };
59AAD98E21F7870B00D15F07 /* th-TH */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "th-TH"; path = "th-TH.lproj/InfoPlist.strings"; sourceTree = ""; };
59AAD98F21F7870B00D15F07 /* th-TH */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = "th-TH"; path = "th-TH.lproj/Localizable.strings"; sourceTree = ""; };
- 59B09E5C21AD61DD007827B8 /* PropfindResponse.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PropfindResponse.xml; sourceTree = ""; };
- 59B09E5D21AD61DD007827B8 /* test_certificate.cer */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_certificate.cer; sourceTree = ""; };
- 59B09E6821AD61F4007827B8 /* FileListTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileListTests.swift; sourceTree = ""; };
- 59B09E6A21AD61F4007827B8 /* EditBookmarkTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditBookmarkTests.swift; sourceTree = ""; };
- 59B09E6B21AD61F4007827B8 /* CreateBookmarkTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateBookmarkTests.swift; sourceTree = ""; usesTabs = 1; };
- 59B09E6C21AD61F4007827B8 /* UtilsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UtilsTests.swift; sourceTree = ""; };
59D4895320C83F2E00369C2E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
59EACA8020CAA37F00F082EE /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; };
- 5AA495E19A4CA58CF2678112 /* Pods-ownCloudScreenshotsTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ownCloudScreenshotsTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ownCloudScreenshotsTests/Pods-ownCloudScreenshotsTests.release.xcconfig"; sourceTree = ""; };
6E37F48A2188B27D00CF16CA /* Action.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Action.swift; sourceTree = ""; };
6E3A103D219D5BBA00F90C96 /* RenameAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameAction.swift; sourceTree = ""; };
6E3A104C219D6F0100F90C96 /* DuplicateAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuplicateAction.swift; sourceTree = ""; };
@@ -1249,10 +1171,7 @@
6EB8EDBE2114358300C2BF44 /* folder-create.tvg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "folder-create.tvg"; path = "img/filetypes-tvg/folder-create.tvg"; sourceTree = SOURCE_ROOT; };
6ED1B80A21A4004900E16C95 /* CreateFolderAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateFolderAction.swift; sourceTree = ""; };
A56EA84D8AD331FFA604138B /* Pods_ownCloudTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ownCloudTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- A80C5F83C59F9D52F8F64890 /* Pods-ownCloudScreenshotsTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ownCloudScreenshotsTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ownCloudScreenshotsTests/Pods-ownCloudScreenshotsTests.debug.xcconfig"; sourceTree = ""; };
D0D9C062DD1E85A838608B0F /* EarlGrey.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = EarlGrey.framework; path = Pods/EarlGrey/EarlGrey/EarlGrey.framework; sourceTree = SOURCE_ROOT; };
- D6033BC23D1129172E6D6383 /* Pods-ownCloudTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ownCloudTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ownCloudTests/Pods-ownCloudTests.release.xcconfig"; sourceTree = ""; };
- D7F3B3E74D4B04F9CAF95C09 /* EarlGrey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EarlGrey.swift; sourceTree = ""; };
DC0030BF2350B1CE00BB8570 /* NSData+Encoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Encoding.m"; sourceTree = ""; };
DC0030C02350B1CE00BB8570 /* NSData+Encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Encoding.h"; sourceTree = ""; };
DC018F8B20A1060A00135198 /* ProgressHUDViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressHUDViewController.swift; sourceTree = ""; };
@@ -1267,6 +1186,8 @@
DC080CE7238BD71F0044C5D2 /* OCLicenseAppStoreItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OCLicenseAppStoreItem.h; sourceTree = ""; };
DC080CE8238BD71F0044C5D2 /* OCLicenseAppStoreItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OCLicenseAppStoreItem.m; sourceTree = ""; };
DC080CF0238C8D850044C5D2 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
+ DC081C88299B8E5800BFF393 /* AppStateActionRevealItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateActionRevealItem.swift; sourceTree = ""; };
+ DC081C8A299B9B9000BFF393 /* AppStateActionGoToPersonalFolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateActionGoToPersonalFolder.swift; sourceTree = ""; };
DC0A35A024C1091400FB58FC /* UserInterfaceContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInterfaceContext.swift; sourceTree = ""; };
DC0A5C422550C70800E6674B /* class-settings-sdk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "class-settings-sdk"; path = "ios-sdk/doc/class-settings-sdk"; sourceTree = SOURCE_ROOT; };
DC0B379320514E4700189B9A /* ServerListBookmarkCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerListBookmarkCell.swift; sourceTree = ""; };
@@ -1309,11 +1230,16 @@
DC27A1A720CC095C008ACB6C /* OCCore+FileProviderTools.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "OCCore+FileProviderTools.m"; sourceTree = ""; };
DC27A1E720CC56B0008ACB6C /* FileProviderExtensionThumbnailRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileProviderExtensionThumbnailRequest.h; sourceTree = ""; };
DC27A1E820CC56B0008ACB6C /* FileProviderExtensionThumbnailRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FileProviderExtensionThumbnailRequest.m; sourceTree = ""; };
- DC297964226E4D1100E01BC7 /* PushTransitionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTransitionDelegate.swift; sourceTree = ""; };
- DC297966226E4D3100E01BC7 /* PushPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushPresentationController.swift; sourceTree = ""; };
- DC297968226E52E600E01BC7 /* PushTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTransition.swift; sourceTree = ""; };
- DC29F08F22974AEA00F77349 /* QueryFileListTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueryFileListTableViewController.swift; sourceTree = ""; };
- DC29F09222976B9200F77349 /* LibrarySharesTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LibrarySharesTableViewController.swift; path = ownCloud/Client/Library/LibrarySharesTableViewController.swift; sourceTree = SOURCE_ROOT; };
+ DC28F825294B733700AC4013 /* OCItemPolicy+Interactions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCItemPolicy+Interactions.swift"; sourceTree = ""; };
+ DC28F827294BB5ED00AC4013 /* SortedItemDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SortedItemDataSource.swift; sourceTree = ""; };
+ DC298C862934A405009FA87F /* ClientDefaultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientDefaultViewController.swift; sourceTree = ""; };
+ DC298C8C2934B3E7009FA87F /* AccountConnectionErrorHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountConnectionErrorHandler.swift; sourceTree = ""; };
+ DC298C902934BDAD009FA87F /* AccountAuthenticationUpdater.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountAuthenticationUpdater.swift; sourceTree = ""; };
+ DC298CA029357809009FA87F /* AccountConnectionAuthErrorConsumer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountConnectionAuthErrorConsumer.swift; sourceTree = ""; };
+ DC298CA829362523009FA87F /* ClientLocationPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientLocationPicker.swift; sourceTree = ""; };
+ DC298CAB29362710009FA87F /* ClientLocationPickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientLocationPickerViewController.swift; sourceTree = ""; };
+ DC298CAD2936598B009FA87F /* DriveGridCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DriveGridCell.swift; sourceTree = ""; };
+ DC298CAF29366B96009FA87F /* AccountControllerSpacesGridViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountControllerSpacesGridViewController.swift; sourceTree = ""; };
DC2A127C28D06F060088A2B7 /* OCSavedSearch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OCSavedSearch.h; sourceTree = ""; };
DC2A127D28D06F060088A2B7 /* OCSavedSearch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OCSavedSearch.m; sourceTree = ""; };
DC2A128028D0718B0088A2B7 /* OCVault+SavedSearches.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OCVault+SavedSearches.h"; sourceTree = ""; };
@@ -1321,14 +1247,11 @@
DC321260207EB01B00DB171D /* ThemeImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeImage.swift; sourceTree = ""; };
DC33939522E0747400DD3DA4 /* MakeAvailableOfflineAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MakeAvailableOfflineAction.swift; sourceTree = ""; };
DC33939C22E076E300DD3DA4 /* MakeUnavailableOfflineAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MakeUnavailableOfflineAction.swift; sourceTree = ""; };
- DC33939F22E0A1C000DD3DA4 /* ItemPolicyTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemPolicyTableViewController.swift; sourceTree = ""; };
- DC3393A122E0A71100DD3DA4 /* ItemPolicyCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemPolicyCell.swift; sourceTree = ""; };
DC3393A722E0C4ED00DD3DA4 /* icon-available-offline.tvg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "icon-available-offline.tvg"; path = "../img/filetypes-tvg/icon-available-offline.tvg"; sourceTree = ""; };
DC36885624DC98BF00333600 /* OCFileProviderServiceSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OCFileProviderServiceSession.h; sourceTree = ""; };
DC36885724DC98BF00333600 /* OCFileProviderServiceSession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OCFileProviderServiceSession.m; sourceTree = ""; };
DC36886024DDA3C300333600 /* ProgressIndicatorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressIndicatorViewController.swift; sourceTree = ""; };
DC3AB1972808C35300789435 /* ClientItemViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientItemViewController.swift; sourceTree = ""; };
- DC3AB23D280FFE3400789435 /* ItemListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListCell.swift; sourceTree = ""; };
DC3AB23F280FFF2700789435 /* NSMutableAttributedString+AppendStyled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSMutableAttributedString+AppendStyled.swift"; sourceTree = ""; };
DC3AB2412810404000789435 /* DriveHeaderCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DriveHeaderCell.swift; sourceTree = ""; };
DC3AB24328104AA500789435 /* UIFont+Weight.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIFont+Weight.swift"; sourceTree = ""; };
@@ -1336,12 +1259,13 @@
DC3AB2472810A10300789435 /* ExpandableResourceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpandableResourceCell.swift; sourceTree = ""; };
DC3AB24A2810A69600789435 /* OCResourceText+ViewProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCResourceText+ViewProvider.swift"; sourceTree = ""; };
DC3BAC63282472A80057FCD4 /* KNOWN_ISSUES.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = KNOWN_ISSUES.md; sourceTree = ""; };
- DC3BE0DC2077CC13002A0AC0 /* ClientQueryViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClientQueryViewController.swift; sourceTree = ""; };
- DC3BE0DD2077CC13002A0AC0 /* ClientRootViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClientRootViewController.swift; sourceTree = ""; };
DC3BE0E02077CD4B002A0AC0 /* Synchronized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Synchronized.swift; sourceTree = ""; };
+ DC3DDF02287E1AC200E5586D /* UIViewController+HostBundleID.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIViewController+HostBundleID.h"; sourceTree = ""; };
+ DC3DDF03287E1AC200E5586D /* UIViewController+HostBundleID.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+HostBundleID.m"; sourceTree = ""; };
DC3DEC7A22AFA1F000F3352D /* DownloadItemsHUDViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadItemsHUDViewController.swift; sourceTree = ""; };
DC3DEC7C22AFFE8E00F3352D /* KVOWaiter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KVOWaiter.swift; sourceTree = ""; };
DC3DEC7F22B03AE700F3352D /* CardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardViewController.swift; sourceTree = ""; };
+ DC3F0C2429828AE300C832DB /* OCLocation+Breadcrumbs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCLocation+Breadcrumbs.swift"; sourceTree = ""; };
DC3F4521271A23A000ED2383 /* AcknowledgementsTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AcknowledgementsTableViewController.swift; sourceTree = ""; };
DC422449207CAFAA0006A2A6 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; };
DC42244B207CAFBB0006A2A6 /* ThemeCollection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeCollection.swift; sourceTree = ""; };
@@ -1368,16 +1292,28 @@
DC49C22028524D6C00BAA910 /* ThemeableCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableCollectionViewCell.swift; sourceTree = ""; };
DC4C575C233958B70098BAE9 /* FixedHeightImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FixedHeightImageView.swift; sourceTree = ""; };
DC4D5A09247C1398008ADDB6 /* MessageGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageGroup.swift; sourceTree = ""; };
- DC4FEAE6209E3A7700D4476B /* OCIssue+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCIssue+Extension.swift"; sourceTree = ""; };
+ DC4FEAE6209E3A7700D4476B /* OCIssue+DisplayIssues.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCIssue+DisplayIssues.swift"; sourceTree = ""; };
DC4FEAE9209E48E800D4476B /* DispatchQueueTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DispatchQueueTools.swift; sourceTree = ""; };
DC51FD912475715F0069AB79 /* CellularSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CellularSettingsViewController.swift; sourceTree = ""; };
DC576EC122647A070087316D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
+ DC5C48A22918FB7400EBC053 /* CollectionSidebarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionSidebarViewController.swift; sourceTree = ""; };
DC5D9E742496512400BFFE8E /* MessageQueueExample.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageQueueExample.swift; sourceTree = ""; };
+ DC60F2A529802ABE00905EC8 /* UINavigationItem+NavigationContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UINavigationItem+NavigationContent.swift"; sourceTree = ""; };
+ DC60F2A729802B0900905EC8 /* NavigationContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationContent.swift; sourceTree = ""; };
+ DC60F2A929802D5800905EC8 /* NavigationContentItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationContentItem.swift; sourceTree = ""; };
+ DC60F2AB29812A9B00905EC8 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
+ DC6179E528E0578400C7C4E0 /* OCFileProviderSettings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OCFileProviderSettings.h; sourceTree = ""; };
+ DC6179E628E0578400C7C4E0 /* OCFileProviderSettings.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OCFileProviderSettings.m; sourceTree = ""; };
DC62513F225C904700736874 /* NSError+MessageResolution.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSError+MessageResolution.h"; sourceTree = ""; };
DC625140225C904700736874 /* NSError+MessageResolution.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSError+MessageResolution.m"; sourceTree = ""; };
DC625147225CEB2C00736874 /* UploadFileAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadFileAction.swift; sourceTree = ""; };
DC625149225CEB4300736874 /* UploadMediaAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMediaAction.swift; sourceTree = ""; };
DC62514B225D254500736874 /* UploadBaseAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadBaseAction.swift; sourceTree = ""; };
+ DC62F566292504060095BB5D /* AccountConnection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountConnection.swift; sourceTree = ""; };
+ DC62F568292504510095BB5D /* AccountConnectionPool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountConnectionPool.swift; sourceTree = ""; };
+ DC62F56B29250DC80095BB5D /* AccountConnectionConsumer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountConnectionConsumer.swift; sourceTree = ""; };
+ DC62F56D2925112D0095BB5D /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
+ DC62F6F4292819C80095BB5D /* AccountConnectionRichStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountConnectionRichStatus.swift; sourceTree = ""; };
DC63208221FCAC1E007EC0A8 /* ClientActivityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientActivityViewController.swift; sourceTree = ""; };
DC63208421FCEBE9007EC0A8 /* ClientActivityCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientActivityCell.swift; sourceTree = ""; };
DC63208621FCEE5D007EC0A8 /* ProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressView.swift; sourceTree = ""; };
@@ -1398,9 +1334,12 @@
DC680579212EAB5E006C3B1F /* ThemeCertificateViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeCertificateViewController.swift; sourceTree = ""; };
DC6A0E5226EA9E740076B533 /* AppLockSettings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppLockSettings.h; sourceTree = ""; };
DC6A0E5326EA9E740076B533 /* AppLockSettings.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppLockSettings.m; sourceTree = ""; };
+ DC6C0A4829239E560045FF2A /* AppRootViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppRootViewController.swift; sourceTree = ""; };
+ DC6C0A532923FFF30045FF2A /* AccountControllerSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountControllerSection.swift; sourceTree = ""; };
DC6C68352574FD0400E46BD4 /* PLCrashReporter.LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = PLCrashReporter.LICENSE; sourceTree = ""; };
DC6CC3142642C3560040ECAC /* ExternalBrowserBusyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalBrowserBusyHandler.swift; sourceTree = ""; };
DC6CF7FA219446050013B9F9 /* LogSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogSettingsViewController.swift; sourceTree = ""; };
+ DC6FDAF62953AD50004F0C7F /* ClientSharedWithMeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientSharedWithMeViewController.swift; sourceTree = ""; };
DC70398326128B89009F2DC1 /* NSString+ByteCountParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+ByteCountParser.h"; sourceTree = ""; };
DC70398426128B89009F2DC1 /* NSString+ByteCountParser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+ByteCountParser.m"; sourceTree = ""; };
DC774E5C22F44E4A000B11A1 /* ZIPArchive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZIPArchive.h; sourceTree = ""; };
@@ -1421,16 +1360,36 @@
DC85493321831B0B00782BA8 /* GitCommit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GitCommit.swift; sourceTree = ""; };
DC854935218331CF00782BA8 /* UserInterfaceSettingsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInterfaceSettingsSection.swift; sourceTree = ""; };
DC8549372183B4CD00782BA8 /* ThemeStyle+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ThemeStyle+Extensions.swift"; sourceTree = ""; };
- DC85572A20513B8C00189B9A /* ServerListTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerListTableViewController.swift; sourceTree = ""; };
- DC85572B20513B8C00189B9A /* ServerListTableViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ServerListTableViewController.xib; sourceTree = ""; };
- DC869A582153B1F60088977E /* OCMockingManager+SwiftTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCMockingManager+SwiftTools.swift"; sourceTree = ""; };
DC89C45C20860B5D0044BCAE /* ProgressSummarizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressSummarizer.swift; sourceTree = ""; };
+ DC89EA562992FDCD00BFF393 /* AppStateAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateAction.swift; sourceTree = ""; };
+ DC89EA5B2993A0E000BFF393 /* AppStateActionConnect.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateActionConnect.swift; sourceTree = ""; };
+ DC89EA5E2993A0FE00BFF393 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
+ DC89EA5F2993AC4F00BFF393 /* NSUserActivity+SaveRestore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSUserActivity+SaveRestore.swift"; sourceTree = ""; };
+ DC89EA662995456A00BFF393 /* BrowserNavigationBookmark+AccountController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BrowserNavigationBookmark+AccountController.swift"; sourceTree = ""; };
+ DC89EA6829958DF500BFF393 /* UIViewController+BrowserNavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+BrowserNavigation.swift"; sourceTree = ""; };
+ DC89EA6A29959BD200BFF393 /* AppStateActionRestoreNavigationBookmark.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateActionRestoreNavigationBookmark.swift; sourceTree = ""; };
+ DC8E99DB297E79E900594697 /* BrowserNavigationHistory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowserNavigationHistory.swift; sourceTree = ""; };
+ DC8E99DE297E8D3800594697 /* OCLicenseQAProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OCLicenseQAProvider.h; sourceTree = ""; };
+ DC8E99DF297E8D3800594697 /* OCLicenseQAProvider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OCLicenseQAProvider.m; sourceTree = ""; };
+ DC8E99E4297EEB2800594697 /* ClientLocationBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientLocationBarController.swift; sourceTree = ""; };
+ DC8E99E7297F3BA700594697 /* ActionTapGestureRecognizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionTapGestureRecognizer.swift; sourceTree = ""; };
DC8EB270239308E5009148F9 /* LicenseOffersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseOffersViewController.swift; sourceTree = ""; };
+ DC9219F9296615B400F538EE /* UniversalItemListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UniversalItemListCell.swift; sourceTree = ""; };
+ DC9219FB2966179600F538EE /* OCShare+Interactions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCShare+Interactions.swift"; sourceTree = ""; };
+ DC921A012966D5F800F538EE /* OCShare+UniversalItemListCellContentProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCShare+UniversalItemListCellContentProvider.swift"; sourceTree = ""; };
+ DC921A032966DFDC00F538EE /* OCItem+UniversalItemListCellContentProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OCItem+UniversalItemListCellContentProvider.swift"; sourceTree = ""; };
+ DC921A0A2968BA4D00F538EE /* ClientSharedByMeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientSharedByMeViewController.swift; sourceTree = "