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

Set same behaviour downloading from "Open In" as in regular download when device is offline #179

Closed
jesmrec opened this issue Nov 30, 2018 · 7 comments
Assignees
Labels
feature: file operation p2-high Escalation, on top of current planning, release blocker Type:bug Something isn't working
Milestone

Comments

@jesmrec
Copy link
Contributor

jesmrec commented Nov 30, 2018

With no connection:

Clicking on a file to download

nov-30-2018 12-04-19

"Open In":

nov-30-2018 12-10-56

  • Direct download warn the user he does not have connection
  • Open In tries to download forever

Both should have the same behaviour.

@michaelstingl
Copy link
Contributor

michaelstingl commented Dec 2, 2018

After performing "Open in…" whilst being offline, progress bar stays forever in broken state. (see @jesmrec 's #132 (comment) , same in #182)

@michaelstingl michaelstingl added Type:bug Something isn't working p2-high Escalation, on top of current planning, release blocker labels Dec 2, 2018
@jesmrec jesmrec added sdk-involved Requires SDK development or discussion and removed sdk-involved Requires SDK development or discussion labels Dec 4, 2018
@felix-schwarz felix-schwarz added the sdk-involved Requires SDK development or discussion label Jan 4, 2019
@felix-schwarz
Copy link
Contributor

This issue can be handled by adding an option to the core's download command.

Providing that option to the download command while offline would make it immediately return with either:

  • the file (in case it already exists locally)
  • an error (indicating the file can't be downloaded right now)

That way, both the viewer and Open In can provide consistent status information.

@pablocarmu If you agree, I'll add that option as part of the ongoing sync engine work and update this issue as soon as it is available in the SDK repo.

@pablocarmu
Copy link
Contributor

If I understand correctly this would add a new argument (or another kind of parameter/option) to the OCCore's download method to download from server or retrieve the file from cache depending if there's a connection or not.

Something like:

// Please don't take attention to the argument name, it's a dummy one
//
// With connection
core.download(..., fromServer: true, ...)

// Without connection
core.download(..., fromServer: false, ...)

Is this correct?
if this is correct I totally agree

@felix-schwarz
Copy link
Contributor

@pablocarmu I thought of something like this

core.download(..., options: [ OCDownloadOption.returnImmediatelyIfOfflineOrUnavailable : true ], )

This would behave like this:

  • when online: download the item and then return it via the completionHandler
  • when offline or in maintenance mode and …
    • … a local copy exists: return the local copy via the completionHandler
    • … no local copy exists: return an error to the completionHandler

@pablocarmu
Copy link
Contributor

works for me!

felix-schwarz added a commit that referenced this issue Jan 8, 2019
@felix-schwarz
Copy link
Contributor

The API is available as of ca11f94. Also in there I've changed DisplayViewController to take advantage of the new API to show how it can be used.

@felix-schwarz felix-schwarz added fixed-in-branch and removed fixed-in-branch sdk-involved Requires SDK development or discussion labels Jan 8, 2019
@jesmrec jesmrec modified the milestones: 0.3.0, 0.4.0 Jan 11, 2019
jesmrec pushed a commit that referenced this issue Jan 15, 2019
…ugfixes (#200)

* - 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

* - Switching to fix/sdkUpdates branch

* Version Bump to 91

* Delete unneeded workspace file ownCloud.xcworkspace/xcshareddata/

* Version Bump to 92

* Version Bump to 93

* - Update ios-sdk to latest ios-sdk master
@jesmrec
Copy link
Contributor Author

jesmrec commented Jan 15, 2019

An alert will show the user that he lacks connection, for this first iteration.

jesmrec pushed a commit that referenced this issue Jan 23, 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 issue 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 issue 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 issue 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
jesmrec pushed a commit that referenced this issue Feb 4, 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

* - Updated to latest SDK with OCLocalID support
- Updated FileProvider to use OCItem.localID and OCItem.localParentID instead of the fileID equivalents
- Updated importFile method to take advantage of localID staying the same even across placeholder -> item on the server transition
	- creating new documents is now possible without Internet connection and waiting for the upload to finish
	- progress information can again be made available to iOS

* - UI test update
	- decrease fragility of most tests
	- minor reorganization of source code
	- added new utility methods to EarlGrey to wait until an element appears or disappears before proceeding

* - Update SDK to latest

* - Adding libzip 1.5.1
	- external/libzip/update-libzip.sh allows simple updates
	- external/libzip/libzip.xcodeproj wraps libzip into a standard Xcode framework project that's reusable across extensions and the app
	- added license text to acknowledgments in the app
- Adding ClientActivityViewController
	- new tab in ClientRootViewController
	- POC-level display of activity information
- Fileprovider
	- supports on-the-fly compression of Pages and Keynote documents moved to ownCloud File Provider from iCloud (#235)
	- rejects import of any other bundle documents
	- prevent use of the broken "Duplicate" action in the Files app

* - Added ClientActivityCell
- Updated ClientRootViewController to properly support Themeing
- Added progressColors to ThemeCollection
- Added ProgressView for circular display of indeterminate progress, progress info and cancellation
- Added UIColor.greyscale() method

* - Client Query View improvements
	- inline download and upload progress indicators
	- tapping an item no longer immediately opens the viewer
	- instead, tapping an item now triggers a download
	- when multiple items are tapped in quick succession, only the last one's file is shown when the download finishes
	- added inline cloud status badges for cloud-only and local-only to indicate file status
- Switch from Swift-KVO to legacy-KVO in ProgressView due to https://bugs.swift.org/browse/SR-6795 :'(
	- removed SwiftLint rule
- Latest SDK

* Included the ownCloudTests shared scheme

* Fixed the test testCheckURLBasicAuthWarningIssueCertificateDisplayInfo

* - added design resource
- updated SDK
- various fixes to make progress observation in ProgressView and ProgressSummarizer thread-safe

* Modified the test testCheckURLBasicAuthWarningIssueCertificateDisplayInfo

* Remove the test testCheckURLBasicAuthWarningIssueCertificateDisplayInfo

* - Make general-purpose version of EarlGrey.waitForElement extension that allows waiting not just for elements with accessibilityIdentifiers
- Re-add CreateBookmarkTests.testCheckURLBasicAuthWarningIssueCertificateDisplayInfo()
- Fix CreateBookmarkTests.testCheckURLBasicAuthWarningIssueCertificateDisplayInfo() using EarlGrey.waitForElement to address the timing issues that made it fail

* - Updated SDK
- Improved "double-tap" behaviour: if an item is tapped, it starts downloading. If it is tapped again while still downloading, the viewer is only opened once.

* - If a file is not immediately available and can't be downloaded either, the DisplayViewController is now shown anyway for error feedback

* - cleaned up DisplayHostViewController
- cleaned up DisplayViewController and improved its error handling
- updated DisplayViewController to use a single-item OCQuery to update its contents dynamically
- minor code cleanups and adaptions to DisplayViewController changes in other places

* - Update SDK

* - ProgressView resumes animation after removing and readding the view, and after switching away and back to the app
- Fixed broken German localizations I noticed

* - Clarify name of refreshControl in ClientQueryViewController
- Block drag-to-refresh if the core status is not .online
- Fixed an issue in DisplayViewController that prevented updates after the file was moved remotely

* - Add libzip to THIRD_PARTY.txt
- Switch to updated ios-sdk master

* - Fix visual glitch in progress reporting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature: file operation p2-high Escalation, on top of current planning, release blocker Type:bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants