Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature/fp-series-2] File Provider improvements #167

Merged
merged 49 commits into from
Jan 23, 2019
Merged

Conversation

felix-schwarz
Copy link
Contributor

Description

Further improvements to the file provider.

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

@CLAassistant
Copy link

CLAassistant commented Nov 26, 2018

CLA assistant check
Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@codecov
Copy link

codecov bot commented Nov 26, 2018

Codecov Report

Merging #167 into master will increase coverage by 0.54%.
The diff coverage is 46.37%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #167      +/-   ##
==========================================
+ Coverage   48.43%   48.98%   +0.54%     
==========================================
  Files          99       98       -1     
  Lines        8178     8207      +29     
==========================================
+ Hits         3961     4020      +59     
+ Misses       4217     4187      -30
Impacted Files Coverage Δ
...Client/Actions/Actions+Extensions/MoveAction.swift 11.42% <0%> (-2.37%) ⬇️
ownCloud/Theming/Resources/ThemeResource.swift 33.33% <0%> (ø) ⬆️
ownCloud/AppDelegate.swift 87.03% <0%> (ø) ⬆️
...ient/Actions/Actions+Extensions/RenameAction.swift 8.88% <0%> (+0.37%) ⬆️
...ient/Actions/Actions+Extensions/OpenInAction.swift 10% <0%> (-0.26%) ⬇️
...nagement/CertificateManagementViewController.swift 0% <0%> (ø) ⬆️
ownCloud/Viewer/DisplayHostViewController.swift 0% <0%> (ø) ⬆️
...t/Actions/Actions+Extensions/DuplicateAction.swift 11.42% <0%> (+0.9%) ⬆️
...d/UIKit Extensions/UIAlertController+OCIssue.swift 0% <0%> (ø) ⬆️
ownCloud/Client/Actions/MoreViewHeader.swift 0% <0%> (ø) ⬆️
... and 23 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 19ceb9f...6e6f563. Read the comment docs.

@jesmrec
Copy link
Contributor

jesmrec commented Nov 26, 2018

After first Files App iteration, some pending stuff (improvements) and new features to be posted here:

@jesmrec jesmrec mentioned this pull request Nov 26, 2018
3 tasks
@kopischke
Copy link

Is this the right place to report issues with the file provider / Files app integration in the current TestFlight build, or is there a preferred channel?

@jesmrec
Copy link
Contributor

jesmrec commented Dec 4, 2018

@kopischke here is the right place. Post your comment or issue, and we will track the progress and status here: #167 (comment)

@kopischke
Copy link

kopischke commented Dec 5, 2018

I have the following issues to report with the current TestFlight version of ownCloud (build 85):

  1. The system directory picker is unusable due to something I would call collapsing tremors: whenever you expand a directory hierarchy, the expanded hierarchy almost immediately collapses again. Difficult to describe properly, but this video shows it quite well. Try saving a file from an app supporting the iOS document management model to an ownCloud server, you’ll see what I mean.
  2. Files app occasionally refuses to display the contents at the root of the ownCloud server. Bit of a Heisenbug, I am afraid to say, but very much real:
    ownCloud root issues.
  3. Downloads triggered in Files app stall: the download progress circle appears, and the ownCloud app shows a download has been requested in the UI, but the file is not downloaded in any reasonable amount of time (speaking of 15 minutes and more for 70 Kb PDFs over a high bandwidth non-mobile connection).
  4. ownCloud folders marked as Favourites disappear from the Files app sidebar after Files is purged from memory. They are still marked as Favourites (the long press context menu offers a non-functional Unfavourite option), but are not shown in the sidebar. This is a common issue in several file providers I have used; the only ones I am aware of that do not suffer from this issue are iCloud, Dropbox and Working Copy (since the most recent release, according to the release notes; Anders Borum may be open to sharing his secret sauce 😉).

@felix-schwarz
Copy link
Contributor Author

felix-schwarz commented Dec 6, 2018

@kopischke Thanks for reporting these issues! To get a better idea on where to look, if you have some time, answers to these questions would help me a great deal:

Regarding issue 1: are the folders shown in the video frequently updated by multiple users - f.ex. while someone else modifying a file while you're trying to select a folder?

Regarding issue 2: is this to a local or a remote server?

Regarding issue 3: does this happen for all files, right away? Or only after some other operation seemingly didn't succeed? Does re-creating the bookmark solve the issue?

Regarding issue 4: Thanks for reporting! This is likely a side effect of the File Provider not yet providing a Working Set to the Files app (which expects to find all favorited items in that).

Thanks!

	- maintenance mode support
	- replacing uses of reachability monitor with OCCore.connectionStatus
- App now logs current log settings at launch
…reloading when its view controller is not "visible":

	- no longer uses items from table view cells to initiate actions
	- detects if UITableView.reloadData is set to do nothing and repeats the call in viewWillAppear
- The fixed issue was causing #178 and possibly others
… make sure it's only built, linked to and copied in the ownCloudTests target
@kopischke
Copy link

kopischke commented Dec 11, 2018

@kopischke Thanks for reporting these issues! To get a better idea on where to look, if you have some time, answers to these questions would help me a great deal:

Yeah, sure, and sorry for the delay.

Regarding issue 1: are the folders shown in the video frequently updated by multiple users - f.ex. while someone else modifying a file while you're trying to select a folder?

Shared with and occasionally updated by other users, yes. Not at the time I encountered the issue, no (to my best knowledge). However, we also access the same instance via Webdrive on our desktop machines; these may be polling (but should not be updating anything) rather aggressively…

Regarding issue 2: is this to a local or a remote server?

Remote (large ownCloud instance managed on behalf of several German universities).

Regarding issue 3: does this happen for all files, right away? Or only after some other operation seemingly didn't succeed? Does re-creating the bookmark solve the issue?

All files, right away, independently of if I start the download in Files or in the ownCloud app (the status feedback is consistent across both apps, but the net effect is stalling). Not sure what you mean by “re-creating the bookmark”.

Regarding issue 4: Thanks for reporting! This is likely a side effect of the File Provider not yet providing a Working Set to the Files app (which expects to find all favorited items in that).

Can’t comment on that, but I would be glad to see the issue solved: the ownCloud instance I use is my main work cloud, so Favourites are a much needed feature.

@jesmrec jesmrec assigned jesmrec and felix-schwarz and unassigned jesmrec Jan 18, 2019
@jesmrec jesmrec requested review from mneuwert and hosy January 18, 2019 10:26
@jesmrec
Copy link
Contributor

jesmrec commented Jan 21, 2019

About the sanity check performed to Files App (208733c):

@felix-schwarz
Copy link
Contributor Author

About the sanity check performed to Files App (208733c):

  • Issues from the first PR of Files App support, mentioned above (#167 (comment)):

    • (1) : still reproducible

I tried with Pages and could (partially) reproduce it: the template I chose was uploaded to the ownCloud server, but when I made changes and tried to save them, I got an error "file does not exist".

The underlying issue seems to be that iOS / Pages expects that it can keep writing to the location that was returned from the File Provider's importDocumentAtURL: method.

Right now, the OC FileProvider returns a placeholder item here, so the location of the file is ../files/_placeholder_RANDOM_UUID/Example.pages. Paths follow the ../files/FILE_ID/ pattern.

Once the upload is finished, the placeholder item is replaced by the actual item on the server, but this also changes the location of the file to ../files/FILE_ID_FROM_OWNLOUD/Example.pages on the device.

If the upload finishes before the app writes changes, ../files/_placeholder_RANDOM_UUID/Example.pages is gone and iOS / Pages brings up the "File does not exist" alert.

Possible solutions:

  1. Only return from the importDocumentAtURL: once the upload has actually finished. Being just a two-liner, I tried this and it works, but it effectively prevents creating new documents when offline, because Pages / iOS waits for the FileProvider to return before actually open a new document for editing.

  2. Preserve the placeholder location and track it along the finished item. This would add a lot of complexity to the Sync Engine going forward, though. A possibility, but not my favorite.

  3. Allow the app to create its own FileID and have the server use it. This way, the placeholder location would also be the location of the uploaded item, because the FileID doesn't change. Unless this is already supported by the server, this would require adding support for such a feature to the server.

  • (2): file is uploaded, but no progress is shown to the user, so it is not easy to know what is going on till the upload finished. Not sure is something could be done here because the action is done completely inside Files App.

I'm not sure what's causing this as the FileProvider provides the necessary information to iOS. From what I have been able to observe, progress information is most likely available when doing uploads inside the Files app itself.

I have not been able to reproduce this with 208733c . Please send me a log so I can have a look.

  • Batched uploads are not too stable when the number of files is high (Batch Uploads #224). Also i tried to upload a huge file together with the bunch of small files, and the app becomes stucked.

Likewise, please also send me a log for this.

  • If the server is down (not the network), app gets stucked

And another log for this, too :)

…ith the placeholder, but only when upload has completed - and then return the final item
@felix-schwarz
Copy link
Contributor Author

@jesmrec I just pushed 6a5581d that implements possible solution 1.

@jesmrec
Copy link
Contributor

jesmrec commented Jan 22, 2019

Let's go for some tests with 6a5581d

  • Batched uploads: with a small amount of files works properly. I repeated the process with the 330 files and the log is the following (from XCode, if you need something else, tell me). Here, i noticed that te process do not start (my first report was about not finishing). seems to be any problem reated with the file thumbnails fetching.

batchuploads.txt

  • Server down: i opened a separate issue (Server down #230). In any case, here it is the log. With the server down, i tried to delete a file:

serverdown.txt

@felix-schwarz
Copy link
Contributor Author

@jesmrec After discussing the issue with @DeepDiver1975, we came to the conclusion that option 3 is not possible. So we have option 1 implemented in
6a5581d for now, but will eventually have to find an efficient way to do option 2.

@jesmrec
Copy link
Contributor

jesmrec commented Jan 22, 2019

option 1 is working fine in 6a5581d.

@@ -45,20 +45,57 @@ - (instancetype)init
OCAppIdentity.sharedAppIdentity.appGroupIdentifier = bundleInfoDict[@"OCAppGroupIdentifier"];

if (self = [super init]) {
_fileManager = [[NSFileManager alloc] init];
_fileManager = [NSFileManager new];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@felix-schwarz I find alloc / init more explicit but it's a matter of personal preference I guess

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Until recently, I used to be in the alloc / init camp, too. But since I started writing more and more Swift code, alloc / init reminded me of allocWithZone: and felt outdated. FWIW new has also been around since macOS 10.0. It really boils down to personal preference as you say. :)

@@ -100,19 +100,13 @@ class MoreViewHeader: UIView {
labelContainerView.bottomAnchor.constraint(lessThanOrEqualTo: self.safeAreaLayoutGuide.bottomAnchor, constant: -20)
])

titleLabel.attributedText = NSAttributedString(string: item.name, attributes: [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 17, weight: .semibold)])
titleLabel.attributedText = NSAttributedString(string: item.name ?? "", attributes: [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 17, weight: .semibold)])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@felix-schwarz minor complain.. magic number 17 could be replaced with constant. Would make sense if this font size is used in other places..

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I totally agree. The Theme-system in the app should also provide styles like this, but this is outside the scope of the file provider. I see an opportunity to standardize these styles alongside making other Theme changes in feature/branded-login (#168).

@jesmrec jesmrec merged commit 0b19d6d into master Jan 23, 2019
@delete-merged-branch delete-merged-branch bot deleted the feature/fp-series-2 branch January 23, 2019 15:31
mneuwert pushed a commit that referenced this pull request Jan 31, 2019
* - Minor memory optimizations - Updated to latest SDK

* - Save changes prior to merge with master

* - Convert to Swift 4.2

* - Further Swift 4.2 changes

* - Update to latest SDK develop commit

* - Adapting APP to latest SDK changes
	- maintenance mode support
	- replacing uses of reachability monitor with OCCore.connectionStatus

* - Added back ownCloudUI.framework to copy phase of ownCloud target
- Updated to latest SDK

* - Add support for OCLogToggle in Settings
- App now logs current log settings at launch

* - Fix issues in ClientQueryViewController related to UITableView not reloading when its view controller is not "visible":
	- no longer uses items from table view cells to initiate actions
	- detects if UITableView.reloadData is set to do nothing and repeats the call in viewWillAppear
- The fixed issue was causing #178 and possibly others

* - Remove last traces of OCMocking.framework from ownCloud app target, make sure it's only built, linked to and copied in the ownCloudTests target

* - Fix EarlGrey/CocoaPods workspace / build errors

* - Adopt new OCLogger tags APIs in Log.swift and FileProviderExtension

* - Update SDK

* - Remove superfluous [FP] from log message

* - Make sure DisplayViewController uses the updated version of an item after downloading it instead of the (now) outdated original version

* - Update to latest SDK

* - Fixing thumbnail aspect ratio and removing duplicate code in NamingViewController (#141)

* - Update SDK

* - Exit editing mode in the server list when the user selects an existing or adds a new bookmark (as reported by @mneuwert)

* - Adapt app code base to change in OCError Swift conversion (following OCErrorAuthorizationCancelled typo correction)

* - Fix #152: if the user cancels OAuth2, an error is no longer shown (and errors are better to read with recent SDK updates)

* - Update to latest SDK

* - Make ProgressSummarizer only consider Progress objects with descriptions, resolving "ghost" progress bars without any information in them

* - Adapt to change of name of OCConnectionIssue to OCIssue

* - Update to latest SDK
- ConnectionIssueViewController
        - added option to provide a block to be called when dismissal has finished
        - normalize code formatting
- UIAlertController+OCIssue
        - added option to provide a completionHandler that's called when the user made a choice
- ClientRootViewController
        - switched issue and alert presentation to use a AsyncSequentialQueue to present them in order and not on top of each other
        - fixed a bug where a UIViewController that's in the process of being dismissed led to a failure to present alerts and issues

* - Make DisplayViewController use OCCoreOptionReturnImmediatelyIfOfflineOrUnavailable and fix a typo (#179)

* - Added priority summaries to ProgressSummarizer
- Fixed a crash bug in ImageDisplayViewController
- Removed core connection status interpretation from ClientQueryViewController
- Added core connection status tracking to ClientRootViewController and utilize priority summaries to display offline or server in maintenance mode status messages

* - Fix an issue where "Offline." was shortly shown when logging in
- Switch to utilizing short connection status descriptions coming straight from the SDK's connection signal providers
- Adapt Localizable.strings accordingly

* - Add *.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist to .gitignore

* - Updated ios-sdk

* - Made FileProviderEnumerator use an OCQuery that includes the root item (fixes #203)
- Made FileProviderExtension observe the domain property and trigger an initial query of the root directory when none has even been done before (fixes #205)

* - Adapted to latest round of nullability additions in the SDK
- Fixing potential crash bugs in DisplayHostViewController, ConnectionIssueViewController, SortMethod and others
- Update actions
	- make use of .completed() instead of calling the completionHandler directly
	- fixing multi-item support for several actions (completionHandler would previously get executed once for every item instead of once)
- ClientDirectoryPickerViewController now calls the completinHandler even on cancelation
- Cleaned up OCIssue+Extension and OCItem+Extension
- Replacing AsyncSequentialQueue with OCAsyncSequentialQueue

* - Update SDK

* - Updated ios-sdk

* - Update ios-sdk with IPC fixes

* - Adapt tests to SDK changes (all tests pass)
- Stop CocoaPods from sending statistics by adding a line to the Podfile turning this off

* - Present cache contents while waiting for a reply from the server
- Updated SDK fixing a lot of issues

* - Replacing DispatchQueue.main.async* with OnMainThread and a newly added OnMainThread(after: timeInterval)

* - Add verbose logging to FileProviderExtension to track the commands received by iOS and the results that were returned

* - Temporary workaround: make importFileFromURL: not return directly with the placeholder, but only when upload has completed - and then return the final item

* - Switching ios-sdk to updated master branch
mneuwert pushed a commit that referenced this pull request Feb 1, 2019
* - Minor memory optimizations - Updated to latest SDK

* - Save changes prior to merge with master

* - Convert to Swift 4.2

* - Further Swift 4.2 changes

* - Update to latest SDK develop commit

* - Adapting APP to latest SDK changes
	- maintenance mode support
	- replacing uses of reachability monitor with OCCore.connectionStatus

* - Added back ownCloudUI.framework to copy phase of ownCloud target
- Updated to latest SDK

* - Add support for OCLogToggle in Settings
- App now logs current log settings at launch

* - Fix issues in ClientQueryViewController related to UITableView not reloading when its view controller is not "visible":
	- no longer uses items from table view cells to initiate actions
	- detects if UITableView.reloadData is set to do nothing and repeats the call in viewWillAppear
- The fixed issue was causing #178 and possibly others

* - Remove last traces of OCMocking.framework from ownCloud app target, make sure it's only built, linked to and copied in the ownCloudTests target

* - Fix EarlGrey/CocoaPods workspace / build errors

* - Adopt new OCLogger tags APIs in Log.swift and FileProviderExtension

* - Update SDK

* - Remove superfluous [FP] from log message

* - Make sure DisplayViewController uses the updated version of an item after downloading it instead of the (now) outdated original version

* - Update to latest SDK

* - Fixing thumbnail aspect ratio and removing duplicate code in NamingViewController (#141)

* - Update SDK

* - Exit editing mode in the server list when the user selects an existing or adds a new bookmark (as reported by @mneuwert)

* - Adapt app code base to change in OCError Swift conversion (following OCErrorAuthorizationCancelled typo correction)

* - Fix #152: if the user cancels OAuth2, an error is no longer shown (and errors are better to read with recent SDK updates)

* - Update to latest SDK

* - Make ProgressSummarizer only consider Progress objects with descriptions, resolving "ghost" progress bars without any information in them

* - Adapt to change of name of OCConnectionIssue to OCIssue

* - Update to latest SDK
- ConnectionIssueViewController
        - added option to provide a block to be called when dismissal has finished
        - normalize code formatting
- UIAlertController+OCIssue
        - added option to provide a completionHandler that's called when the user made a choice
- ClientRootViewController
        - switched issue and alert presentation to use a AsyncSequentialQueue to present them in order and not on top of each other
        - fixed a bug where a UIViewController that's in the process of being dismissed led to a failure to present alerts and issues

* - Make DisplayViewController use OCCoreOptionReturnImmediatelyIfOfflineOrUnavailable and fix a typo (#179)

* - Added priority summaries to ProgressSummarizer
- Fixed a crash bug in ImageDisplayViewController
- Removed core connection status interpretation from ClientQueryViewController
- Added core connection status tracking to ClientRootViewController and utilize priority summaries to display offline or server in maintenance mode status messages

* - Fix an issue where "Offline." was shortly shown when logging in
- Switch to utilizing short connection status descriptions coming straight from the SDK's connection signal providers
- Adapt Localizable.strings accordingly

* - Add *.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist to .gitignore

* - Updated ios-sdk

* - Made FileProviderEnumerator use an OCQuery that includes the root item (fixes #203)
- Made FileProviderExtension observe the domain property and trigger an initial query of the root directory when none has even been done before (fixes #205)

* - Adapted to latest round of nullability additions in the SDK
- Fixing potential crash bugs in DisplayHostViewController, ConnectionIssueViewController, SortMethod and others
- Update actions
	- make use of .completed() instead of calling the completionHandler directly
	- fixing multi-item support for several actions (completionHandler would previously get executed once for every item instead of once)
- ClientDirectoryPickerViewController now calls the completinHandler even on cancelation
- Cleaned up OCIssue+Extension and OCItem+Extension
- Replacing AsyncSequentialQueue with OCAsyncSequentialQueue

* - Update SDK

* - Updated ios-sdk

* - Update ios-sdk with IPC fixes

* - Adapt tests to SDK changes (all tests pass)
- Stop CocoaPods from sending statistics by adding a line to the Podfile turning this off

* - Present cache contents while waiting for a reply from the server
- Updated SDK fixing a lot of issues

* - Replacing DispatchQueue.main.async* with OnMainThread and a newly added OnMainThread(after: timeInterval)

* - Add verbose logging to FileProviderExtension to track the commands received by iOS and the results that were returned

* - Temporary workaround: make importFileFromURL: not return directly with the placeholder, but only when upload has completed - and then return the final item

* - Switching ios-sdk to updated master branch
jesmrec pushed a commit that referenced this pull request Feb 1, 2019
* Added UIViewController extension allowing to swap tabBar for toolbar

* Hiding ‘more’ button when cell is configured for edit mode

* Laid down the foundation for multi-selection and related actions

* Multi-selection works with “Move” and “Delete” actions

* Re-added upload button

* Exchanging tab-bar with toolbar not animated

* Fixed margins for devices with safe area guides (iPhoneX etc.)

* Avoiding visual glitches by adding a toolbar in a proper position in the view hierarchy

* Showing upload button only when appropriate

* exclude app ownCloudTests from lint rules (#186)

* Add notification to update version numbers on oc.org/download (#201)

* [feature/fp-series-2] File Provider improvements (#167)

* - Minor memory optimizations - Updated to latest SDK

* - Save changes prior to merge with master

* - Convert to Swift 4.2

* - Further Swift 4.2 changes

* - Update to latest SDK develop commit

* - Adapting APP to latest SDK changes
	- maintenance mode support
	- replacing uses of reachability monitor with OCCore.connectionStatus

* - Added back ownCloudUI.framework to copy phase of ownCloud target
- Updated to latest SDK

* - Add support for OCLogToggle in Settings
- App now logs current log settings at launch

* - Fix issues in ClientQueryViewController related to UITableView not reloading when its view controller is not "visible":
	- no longer uses items from table view cells to initiate actions
	- detects if UITableView.reloadData is set to do nothing and repeats the call in viewWillAppear
- The fixed issue was causing #178 and possibly others

* - Remove last traces of OCMocking.framework from ownCloud app target, make sure it's only built, linked to and copied in the ownCloudTests target

* - Fix EarlGrey/CocoaPods workspace / build errors

* - Adopt new OCLogger tags APIs in Log.swift and FileProviderExtension

* - Update SDK

* - Remove superfluous [FP] from log message

* - Make sure DisplayViewController uses the updated version of an item after downloading it instead of the (now) outdated original version

* - Update to latest SDK

* - Fixing thumbnail aspect ratio and removing duplicate code in NamingViewController (#141)

* - Update SDK

* - Exit editing mode in the server list when the user selects an existing or adds a new bookmark (as reported by @mneuwert)

* - Adapt app code base to change in OCError Swift conversion (following OCErrorAuthorizationCancelled typo correction)

* - Fix #152: if the user cancels OAuth2, an error is no longer shown (and errors are better to read with recent SDK updates)

* - Update to latest SDK

* - Make ProgressSummarizer only consider Progress objects with descriptions, resolving "ghost" progress bars without any information in them

* - Adapt to change of name of OCConnectionIssue to OCIssue

* - Update to latest SDK
- ConnectionIssueViewController
        - added option to provide a block to be called when dismissal has finished
        - normalize code formatting
- UIAlertController+OCIssue
        - added option to provide a completionHandler that's called when the user made a choice
- ClientRootViewController
        - switched issue and alert presentation to use a AsyncSequentialQueue to present them in order and not on top of each other
        - fixed a bug where a UIViewController that's in the process of being dismissed led to a failure to present alerts and issues

* - Make DisplayViewController use OCCoreOptionReturnImmediatelyIfOfflineOrUnavailable and fix a typo (#179)

* - Added priority summaries to ProgressSummarizer
- Fixed a crash bug in ImageDisplayViewController
- Removed core connection status interpretation from ClientQueryViewController
- Added core connection status tracking to ClientRootViewController and utilize priority summaries to display offline or server in maintenance mode status messages

* - Fix an issue where "Offline." was shortly shown when logging in
- Switch to utilizing short connection status descriptions coming straight from the SDK's connection signal providers
- Adapt Localizable.strings accordingly

* - Add *.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist to .gitignore

* - Updated ios-sdk

* - Made FileProviderEnumerator use an OCQuery that includes the root item (fixes #203)
- Made FileProviderExtension observe the domain property and trigger an initial query of the root directory when none has even been done before (fixes #205)

* - Adapted to latest round of nullability additions in the SDK
- Fixing potential crash bugs in DisplayHostViewController, ConnectionIssueViewController, SortMethod and others
- Update actions
	- make use of .completed() instead of calling the completionHandler directly
	- fixing multi-item support for several actions (completionHandler would previously get executed once for every item instead of once)
- ClientDirectoryPickerViewController now calls the completinHandler even on cancelation
- Cleaned up OCIssue+Extension and OCItem+Extension
- Replacing AsyncSequentialQueue with OCAsyncSequentialQueue

* - Update SDK

* - Updated ios-sdk

* - Update ios-sdk with IPC fixes

* - Adapt tests to SDK changes (all tests pass)
- Stop CocoaPods from sending statistics by adding a line to the Podfile turning this off

* - Present cache contents while waiting for a reply from the server
- Updated SDK fixing a lot of issues

* - Replacing DispatchQueue.main.async* with OnMainThread and a newly added OnMainThread(after: timeInterval)

* - Add verbose logging to FileProviderExtension to track the commands received by iOS and the results that were returned

* - Temporary workaround: make importFileFromURL: not return directly with the placeholder, but only when upload has completed - and then return the final item

* - Switching ios-sdk to updated master branch

* Version Bump to 99

* [tx] updated from transifex

* Added several languages (#231)

* Added the languages cs_CZ de de_DE en_GB ko mk nb_NO nn_NO pt_BR pt_PT ru sq th_TH zh_CN

* Fixed a compilation issue because CZ file

* Updated the commit of the SDK

* [tx] updated from transifex

* Version Bump to 100

* Copy action (#207)

* - Made the Copy action.
- Fix some UI Color scheme inconsistencies.

* - Made the 'Copy here'  button respect the original title

* - SDK Update

* - Fix for a lint warning

* Offline behaviour in Open In Action (#227)

* -Add proper message when no connection and user tries to make the open in action

* - Localize the error message.

* - Made the name of the app to be the app's name in the bundle

* - Changed the three dots bar button in the file list to a '+'. (#206)

- Made UISegmentedControll to be Themeable.

* Version Bump to 101

* [tx] updated from transifex

* [tx] updated from transifex

* Laid down the foundation for multi-selection and related actions

* Multi-selection works with “Move” and “Delete” actions

* [feature/fp-series-2] File Provider improvements (#167)

* - Minor memory optimizations - Updated to latest SDK

* - Save changes prior to merge with master

* - Convert to Swift 4.2

* - Further Swift 4.2 changes

* - Update to latest SDK develop commit

* - Adapting APP to latest SDK changes
	- maintenance mode support
	- replacing uses of reachability monitor with OCCore.connectionStatus

* - Added back ownCloudUI.framework to copy phase of ownCloud target
- Updated to latest SDK

* - Add support for OCLogToggle in Settings
- App now logs current log settings at launch

* - Fix issues in ClientQueryViewController related to UITableView not reloading when its view controller is not "visible":
	- no longer uses items from table view cells to initiate actions
	- detects if UITableView.reloadData is set to do nothing and repeats the call in viewWillAppear
- The fixed issue was causing #178 and possibly others

* - Remove last traces of OCMocking.framework from ownCloud app target, make sure it's only built, linked to and copied in the ownCloudTests target

* - Fix EarlGrey/CocoaPods workspace / build errors

* - Adopt new OCLogger tags APIs in Log.swift and FileProviderExtension

* - Update SDK

* - Remove superfluous [FP] from log message

* - Make sure DisplayViewController uses the updated version of an item after downloading it instead of the (now) outdated original version

* - Update to latest SDK

* - Fixing thumbnail aspect ratio and removing duplicate code in NamingViewController (#141)

* - Update SDK

* - Exit editing mode in the server list when the user selects an existing or adds a new bookmark (as reported by @mneuwert)

* - Adapt app code base to change in OCError Swift conversion (following OCErrorAuthorizationCancelled typo correction)

* - Fix #152: if the user cancels OAuth2, an error is no longer shown (and errors are better to read with recent SDK updates)

* - Update to latest SDK

* - Make ProgressSummarizer only consider Progress objects with descriptions, resolving "ghost" progress bars without any information in them

* - Adapt to change of name of OCConnectionIssue to OCIssue

* - Update to latest SDK
- ConnectionIssueViewController
        - added option to provide a block to be called when dismissal has finished
        - normalize code formatting
- UIAlertController+OCIssue
        - added option to provide a completionHandler that's called when the user made a choice
- ClientRootViewController
        - switched issue and alert presentation to use a AsyncSequentialQueue to present them in order and not on top of each other
        - fixed a bug where a UIViewController that's in the process of being dismissed led to a failure to present alerts and issues

* - Make DisplayViewController use OCCoreOptionReturnImmediatelyIfOfflineOrUnavailable and fix a typo (#179)

* - Added priority summaries to ProgressSummarizer
- Fixed a crash bug in ImageDisplayViewController
- Removed core connection status interpretation from ClientQueryViewController
- Added core connection status tracking to ClientRootViewController and utilize priority summaries to display offline or server in maintenance mode status messages

* - Fix an issue where "Offline." was shortly shown when logging in
- Switch to utilizing short connection status descriptions coming straight from the SDK's connection signal providers
- Adapt Localizable.strings accordingly

* - Add *.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist to .gitignore

* - Updated ios-sdk

* - Made FileProviderEnumerator use an OCQuery that includes the root item (fixes #203)
- Made FileProviderExtension observe the domain property and trigger an initial query of the root directory when none has even been done before (fixes #205)

* - Adapted to latest round of nullability additions in the SDK
- Fixing potential crash bugs in DisplayHostViewController, ConnectionIssueViewController, SortMethod and others
- Update actions
	- make use of .completed() instead of calling the completionHandler directly
	- fixing multi-item support for several actions (completionHandler would previously get executed once for every item instead of once)
- ClientDirectoryPickerViewController now calls the completinHandler even on cancelation
- Cleaned up OCIssue+Extension and OCItem+Extension
- Replacing AsyncSequentialQueue with OCAsyncSequentialQueue

* - Update SDK

* - Updated ios-sdk

* - Update ios-sdk with IPC fixes

* - Adapt tests to SDK changes (all tests pass)
- Stop CocoaPods from sending statistics by adding a line to the Podfile turning this off

* - Present cache contents while waiting for a reply from the server
- Updated SDK fixing a lot of issues

* - Replacing DispatchQueue.main.async* with OnMainThread and a newly added OnMainThread(after: timeInterval)

* - Add verbose logging to FileProviderExtension to track the commands received by iOS and the results that were returned

* - Temporary workaround: make importFileFromURL: not return directly with the placeholder, but only when upload has completed - and then return the final item

* - Switching ios-sdk to updated master branch

* - Added th-TH to the .tx config (#241)

- Updated the th translations pushed recently to the right folder
- Updated the commit of the library

* Added the tx link to contribute on trnslations (#245)

* Version Bump to 102

* Laid down the foundation for multi-selection and related actions

* Multi-selection works with “Move” and “Delete” actions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature:filesApp p2-high Escalation, on top of current planning, release blocker sdk-involved Requires SDK development or discussion work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants