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

Version 1.0.0 #237

Closed
49 of 75 tasks
jesmrec opened this issue Jan 28, 2019 · 172 comments
Closed
49 of 75 tasks

Version 1.0.0 #237

jesmrec opened this issue Jan 28, 2019 · 172 comments
Assignees
Labels
Estimation - 8 (XL) 8 points p2-high Escalation, on top of current planning, release blocker
Milestone

Comments

@jesmrec
Copy link
Contributor

jesmrec commented Jan 28, 2019

Release a new version

TASKS:

Git & Code

App Store

  • [DIS] App Store Connect: Create a new version following the [major].[minor].[patch]
  • [DIS] App Store Connect: Update screenshots if needed
  • [DIS] Upload the binary to the App Store
  • [DIS] App Store Connect: When release (manually, automatically, automatically not early than date)
  • [DIS] App Store Connect: How to release (immediately to all the users o 7-day period phased release)
  • [DIS] App Store Connect: Reset iOS Summary Rating (Keep existing or reset the rating)
  • [DIS] App Store Connect: Update changelogs
  • [DIS] App Store Connect: Submit for review

Git

  • [GIT] Merge branch release/1.0.0 in master
  • [GIT] Create tag and sign it version_1.0.0
  • [GIT] Add the new release on GitHub ios-app

If it is required to update third party:

  • [DIS] Update THIRD_PARTY.txt

If it is required to update the iOS-SDK version:

  • [GIT] Create branch library release/[major].[minor].[patch](freeze the code)
  • [mail] inform john@owncloud.com and emil@owncloud.com about the new release.
  • [DIS] Update README.md (version number, third party, supported versions of iOS, Xcode)
  • [DIS] Update changelog
  • [GIT] Merge branch release/1.0.0 in master
  • [GIT] Create tag and sign it 1.0.0
  • [GIT] Add the new release on GitHub ios-sdk

Version PR: #352

Regression test

https://github.com/owncloud/QA/blob/master/Mobile/iOS-app/Version_1.0.0.md

Bugfixing:

@jesmrec jesmrec added this to the 1.0.0 milestone Jan 28, 2019
@michaelstingl michaelstingl added the p2-high Escalation, on top of current planning, release blocker label Mar 11, 2019
@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 4, 2019

(1)

  1. Install the app from scratch
  2. Add an account with user-accepted certificate and basic auth, and browse inside.
  3. Go to Settings > Certificates , and revoke the approval
  4. Open the account

Current:

ugly error is displayed:

Screenshot 2019-04-04 at 10 54 00

Expected:

User is asked for approval

NOTE: this only happens the first time. to reproduce, important to install from scratch

Devices: iPhoneX and iPadPro v12
Server: 10.0.9

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 4, 2019

(2)

To reproduce this, replicate the steps in (1) but adding two accounts in the same server

  1. After the ugly error in (1), open the other account previously attached
  2. Dialog to accept the certificate is shown, accept it

Current: Offline. Contents from cache. By disconnecting and connecting, connection is recovered
Expected: after certificate approval, everything is OK

Devices: iPhoneX and iPadPro v12
Server: 10.0.9

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 4, 2019

(3) [FIXED]

Thumbnails overplace the cell size (regression):

Screenshot 2019-04-04 at 11 59 59

Screenshot 2019-04-04 at 12 00 14

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 4, 2019

(4) [FIXED]

  1. Set a quota for an account which contains an amount of contents pretty close (f.ex, if the account contains 95MB, set an account of 100MB)
  2. Upload content that exceeds the quota

Current: non-readable error:

Screenshot 2019-04-04 at 13 27 03

Expected: readable error

Devices: iPhoneX and iPadPro v12
Server: 10.1

@felix-schwarz
Copy link
Contributor

felix-schwarz commented Apr 4, 2019

Fixed (3) as of 361b152

Bildschirmfoto 2019-04-04 um 16 29 39

@felix-schwarz
Copy link
Contributor

Fixed (4) as of owncloud/ios-sdk@5ca643b and 133a2f8:

Bildschirmfoto 2019-04-04 um 16 20 46

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 5, 2019

(3) and (4) fixed

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 5, 2019

(5) [FIXED]

  1. Download a big file (it will take some time to download, so you will have time to perform next steps)
  2. Once it started to download, switch to other account
  3. After enough time, go back to the account in 1., file should be downloaded

Current: file os downloaded, but download spinner remains. By tapping on it, it stops and the file is downloaded
Expected: spinner is not displayed

Devices: iPhoneX v12
Server: 10.0.9

NOTE: this should not be a release blocker. in case the fix is tricky, we can delay or open in a separate issue to be scheduled in the near future.

@michaelstingl michaelstingl pinned this issue Apr 5, 2019
@jesmrec jesmrec mentioned this issue Apr 5, 2019
9 tasks
@felix-schwarz
Copy link
Contributor

Fixed issue (1) and (2) via owncloud/ios-sdk@88ae30b and 3998925 @jesmrec

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 5, 2019

(6) [FIXED]

  1. Upload a bunch of files (so, you can perform the following actions meanwhile)
  2. Switch to another ownCloud account (files keep uploading)
  3. Return back to the account in 1.

Current: The following error is displayed:

Screenshot 2019-04-05 at 14 53 20

even when the file is correctly uploaded. Finally, everything is uploaded but there are many files with spinner. By tapping, the spinner is gone:

Apr-05-2019 14-58-42

Expected: no error, files keep uploading till they finish. At the end, all spinners are gone.

Devices: iPhoneX and iPadPro v12
Server: 10.1

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 5, 2019

(7) [FIXED]

  1. I have a folder with 100 files
  2. Tap on "Select" > "Select All" > "Duplicate" (bottom bar)

Current: Final number of files in the folder is less than 200 (quota is enough)
Expected: 200 files

Devices: iPhoneX v12
Server: 10.1

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 5, 2019

(1) and (2) fixed

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 8, 2019

(8) [FIXED]

  1. In Files app, try to move/copy/rename a file with a colliding name

Current: Error displayed is not accurate. is it posible to make it more user-readable or is it a Files app issue?:

Screenshot 2019-04-08 at 10 53 35

iPhoneX v12 basic auth account

@hosy
Copy link
Collaborator

hosy commented Apr 8, 2019

(9) [FIXED]

  • Tap on a file to download > Select "Status" tab bar item
  1. If file path or message text is very long, you will only see the beginning of the status message
  2. You can select a table view cell, but this has no action

IMG_8066-2

@hosy
Copy link
Collaborator

hosy commented Apr 8, 2019

Fixed issue (9) via 57b655e @jesmrec

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 8, 2019

(9) fixed

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 8, 2019

(10) [WONT FIX -> Apple issue]

Duplicate a folder in Files App

Current: it tries to create the new folder with the same name as the source, so it returns an error
Expected: Duplicated with another name, likely as files duplication.

iPhoneX v12, iPadAir v12

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 8, 2019

(11)

Improvement:

In Files App, if you delete a folder, you are asked for confirmation. This is the regular behaviour for destructive actions. If you delete a file, the file is deleted with no confirmation. Is this a Files App issue, or can be addressed as improvement for the app itself?

@felix-schwarz
Copy link
Contributor

Fixed (5) as of 72774d0.

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 25, 2019

(46)

When a file is downloaded, the intermediate download view is displayed, and then the file. Such view is only used when offline mode is set. It can be avoided if the download progress is tracked with the spinner in the files view.

Apr-25-2019 09-57-15

iPhone 6Plus v12.2

@felix-schwarz
Copy link
Contributor

@jesmrec Re (45): I think the app uses the actual file name provided by iOS. @mneuwert will be able to give a definitive answer there.

@mneuwert
Copy link
Contributor

mneuwert commented Apr 25, 2019

@jesmrec @felix-schwarz (45): file name is PHAssetRessource.originalFileName and that's a single property returning the file name.

@mneuwert
Copy link
Contributor

@jesmrec Regarding (46) I think logical would be to immediately open the file viewer and show download progress there and not to wait in the list view until the file is downloaded.

@felix-schwarz
Copy link
Contributor

@hosy Re (44): This is another iOS bug. Here's what I found:

When I save the file the first time, it works as expected:

2019-04-25 10:26:10.421000+0200 ownCloud File Provider[42021:1081472] [dbug] | [FP, Import, …] Start of importDocumentAtURL=file:///Users/felix/Library/Developer/CoreSimulator/Devices/E695BC29-57FB-4362-A8A1-A6F4B0C1CAB0/data/Containers/Data/PluginKitPlugin/F41B10C6-CA7C-4A41-98FE-2A049505DAD4/tmp/9605CE8B-850C-4504-A5BF-3FFF6D378210/Safari%20-%20Apr%2025,%202019%20at%2010:25%20AM.pdf/, toParentItemIdentifier=546A482063DA42DF817E5981EB0E43E5 [… FPAction, CmdUUID:943D87C4-B23B-4A59-8FE3-9DB52CD5C0C2] [FileProviderExtension.m:610|FULL]
2019-04-25 10:26:10.427000+0200 ownCloud File Provider[42021:1081472] [dbug] | [FP, Import, …] Importing Safari - Apr 25, 2019 at 10:25 AM.pdf at <OCItem: 0x7fc753d19c10, type: 1, name: Documents, path: /Documents/, size: 1100796 bytes, MIME-Type: (null), Last modified: 2019-04-25 08:23:40 +0000, Last used: 2019-04-25 08:23:40 +0000 fileID: 00000014ocj5sppxygdu, eTag: "5cc16e8c549f4", parentID: 00000012ocj5sppxygdu, localID: 546A482063DA42DF817E5981EB0E43E5, parentLocalID: E7747D3E846640D68F7F6DC2405118AA, shareable, owner: <OCUser: 0x7fc753f3b240, userName: demo, displayName: demo>> fromURL file:///Users/felix/Library/Developer/CoreSimulator/Devices/E695BC29-57FB-4362-A8A1-A6F4B0C1CAB0/data/Containers/Data/PluginKitPlugin/F41B10C6-CA7C-4A41-98FE-2A049505DAD4/tmp/9605CE8B-850C-4504-A5BF-3FFF6D378210/Safari%20-%20Apr%2025,%202019%20at%2010:25%20AM.pdf/ [… FPAction, CmdUUID:943D87C4-B23B-4A59-8FE3-9DB52CD5C0C2] [FileProviderExtension.m:642|FULL]
2019-04-25 10:26:10.427000+0200 ownCloud File Provider[42021:1081472] [dbug] | [FP, Import, …] Importing resourceType=NSURLFileResourceTypeRegular [… FPAction, CmdUUID:943D87C4-B23B-4A59-8FE3-9DB52CD5C0C2] [FileProviderExtension.m:647|FULL]
2019-04-25 10:26:10.429000+0200 ownCloud File Provider[42021:1081472] [dbug] | [FP, Import, …] Completed with placeholderItem=<OCItem: 0x7fc755b0cba0, type: 0, name: Safari - Apr 25, 2019 at 10:25 AM.pdf, path: /Documents/Safari - Apr 25, 2019 at 10:25 AM.pdf, size: 839666 bytes, MIME-Type: application/pdf, Last modified: 2019-04-25 08:25:58 +0000, Last used: (null) fileID: _placeholder_D8A85863-FBA7-4F87-B882-261AA1F3C01D, eTag: _placeholder_, parentID: 00000014ocj5sppxygdu, localID: 8AFD3C51CD2F48EB889F5D982314EE38, parentLocalID: 546A482063DA42DF817E5981EB0E43E5>, error=(null) [… FPAction, CmdUUID:943D87C4-B23B-4A59-8FE3-9DB52CD5C0C2] [FileProviderExtension.m:701|FULL]

When I save the file the second time, our FileProvider correctly returns a collision:

2019-04-25 10:28:35.379000+0200 ownCloud File Provider[42021:1082625] [dbug] | [FP, Import, …] Start of importDocumentAtURL=file:///Users/felix/Library/Developer/CoreSimulator/Devices/E695BC29-57FB-4362-A8A1-A6F4B0C1CAB0/data/Containers/Data/PluginKitPlugin/F41B10C6-CA7C-4A41-98FE-2A049505DAD4/tmp/FE4A1A4C-DD12-4D69-BBFA-06342B7F8FAE/Safari%20-%20Apr%2025,%202019%20at%2010:25%20AM.pdf/, toParentItemIdentifier=546A482063DA42DF817E5981EB0E43E5 [… FPAction, CmdUUID:7312D5BD-154C-4A5A-A2F0-0BFD16E4113A] [FileProviderExtension.m:610|FULL]
2019-04-25 10:28:35.381000+0200 ownCloud File Provider[42021:1082625] [dbug] | [FP, Import, …] Completed with collission with existingItem=<OCItem: 0x7fc755a20430, type: 0, name: Safari - Apr 25, 2019 at 10:25 AM.pdf, path: /Documents/Safari - Apr 25, 2019 at 10:25 AM.pdf, size: 839666 bytes, MIME-Type: application/pdf, Last modified: 2019-04-25 08:25:58 +0000, Last used: 2019-04-25 08:26:10 +0000 fileID: 00000044ocj5sppxygdu, eTag: "ead1df98d3003375088bb116aa5bb47d", parentID: 00000014ocj5sppxygdu, localID: 8AFD3C51CD2F48EB889F5D982314EE38, parentLocalID: 546A482063DA42DF817E5981EB0E43E5, shareable, owner: <OCUser: 0x7fc755a21980, userName: demo, displayName: demo>> (local) [… FPAction, CmdUUID:7312D5BD-154C-4A5A-A2F0-0BFD16E4113A] [FileProviderExtension.m:637|FULL]

That prompts iOS to bring up this alert:

Bildschirmfoto 2019-04-25 um 10 26 39

If I pick "Keep both", iOS picks a different name and re-attempts the upload (which succeeds):

2019-04-25 10:28:14.243000+0200 ownCloud File Provider[42021:1081788] [dbug] | [FP, Import, …] Start of importDocumentAtURL=file:///Users/felix/Library/Developer/CoreSimulator/Devices/E695BC29-57FB-4362-A8A1-A6F4B0C1CAB0/data/Containers/Data/PluginKitPlugin/E9C34BFB-DE96-46DE-BD70-70ACEE5BD0C2/tmp/9622BC87-E993-491B-9993-640F52778684/Safari%20-%20Apr%2025,%202019%20at%2010:25%20AM%202.pdf/, toParentItemIdentifier=546A482063DA42DF817E5981EB0E43E5 [… FPAction, CmdUUID:75C8C69E-A1CA-4AD1-8E13-D8312E388000] [FileProviderExtension.m:610|FULL]
2019-04-25 10:28:14.245000+0200 ownCloud File Provider[42021:1081788] [dbug] | [FP, Import, …] Importing Safari - Apr 25, 2019 at 10:25 AM 2.pdf at <OCItem: 0x7fc755835100, type: 1, name: Documents, path: /Documents/, size: 1940462 bytes, MIME-Type: (null), Last modified: 2019-04-25 08:26:12 +0000, Last used: 2019-04-25 08:26:12 +0000 fileID: 00000014ocj5sppxygdu, eTag: "5cc16f2439cec", parentID: 00000012ocj5sppxygdu, localID: 546A482063DA42DF817E5981EB0E43E5, parentLocalID: E7747D3E846640D68F7F6DC2405118AA, shareable, owner: <OCUser: 0x7fc755838940, userName: demo, displayName: demo>> fromURL file:///Users/felix/Library/Developer/CoreSimulator/Devices/E695BC29-57FB-4362-A8A1-A6F4B0C1CAB0/data/Containers/Data/PluginKitPlugin/E9C34BFB-DE96-46DE-BD70-70ACEE5BD0C2/tmp/9622BC87-E993-491B-9993-640F52778684/Safari%20-%20Apr%2025,%202019%20at%2010:25%20AM%202.pdf/ [… FPAction, CmdUUID:75C8C69E-A1CA-4AD1-8E13-D8312E388000] [FileProviderExtension.m:642|FULL]
2019-04-25 10:28:14.249000+0200 ownCloud File Provider[42021:1081788] [dbug] | [FP, Import, …] Importing resourceType=NSURLFileResourceTypeRegular [… FPAction, CmdUUID:75C8C69E-A1CA-4AD1-8E13-D8312E388000] [FileProviderExtension.m:647|FULL]
2019-04-25 10:28:14.254000+0200 ownCloud File Provider[42021:1081788] [dbug] | [FP, Import, …] Completed with placeholderItem=<OCItem: 0x7fc753d24b70, type: 0, name: Safari - Apr 25, 2019 at 10:25 AM 2.pdf, path: /Documents/Safari - Apr 25, 2019 at 10:25 AM 2.pdf, size: 839666 bytes, MIME-Type: application/pdf, Last modified: 2019-04-25 08:25:58 +0000, Last used: (null) fileID: _placeholder_CAF8F062-389B-4E14-9A17-7B0F8162F409, eTag: _placeholder_, parentID: 00000014ocj5sppxygdu, localID: 97D29E72928F4C49B3A4BE7766C22D9A, parentLocalID: 546A482063DA42DF817E5981EB0E43E5>, error=(null) [… FPAction, CmdUUID:75C8C69E-A1CA-4AD1-8E13-D8312E388000] [FileProviderExtension.m:701|FULL]

If I pick "Replace", iOS does not attempt another import - or updating the file through itemChangedAtURL as one would expect.

Instead, it attempts to trash the existing item, which our File Provider indicates isn't supported for the item. iOS attempts to do it anyway, and our File Provider returns an "unsupported feature" error - which leads to the message you've seen.

Noteworthy in this context is that trashing and deleting are two different concepts in the File Provider. The former means moving the item to a virtual trash, from where it can be recovered. The latter means permanently deleting the item.

The workaround was to add an implementation for the trash command that deletes the item instead. I included a comment to make it clear that soon as iOS uses what we provide in NSFileProviderItem.capabilities - and picks the correct action in that case - this implementation can and should be removed again.

Fortunately the Files app respects NSFileProviderItem.capabilities when it comes to picking the actions it'll present to the user, so that it does not show "Trash" as a user-facing action.

With the workaround in place, replacing now works:

2019-04-25 10:42:20.743000+0200 ownCloud File Provider[42338:1093156] [dbug] | [FP, Trash, …] Start of trashItemWithIdentifier=C38C87781349469EB969FDE59AEF0CD6 [… FPAction, CmdUUID:80EC8FD9-37F7-4406-BC9D-108993706ED5] [FileProviderExtension.m:813|FULL]
2019-04-25 10:42:20.744000+0200 ownCloud File Provider[42338:1093156] [dbug] | [FP, Trash, …] Deleting <OCItem: 0x7fca55c39b50, type: 0, name: Safari - Apr 25, 2019 at 10:41 AM.pdf, path: /Documents/Safari - Apr 25, 2019 at 10:41 AM.pdf, size: 839506 bytes, MIME-Type: application/pdf, Last modified: 2019-04-25 08:41:58 +0000, Last used: 2019-04-25 08:42:11 +0000 fileID: 00000049ocj5sppxygdu, eTag: "1a9fdaf664d475be13ad9022cd17361f", parentID: 00000014ocj5sppxygdu, localID: C38C87781349469EB969FDE59AEF0CD6, parentLocalID: 546A482063DA42DF817E5981EB0E43E5, shareable, owner: <OCUser: 0x7fca55c37f80, userName: demo, displayName: demo>> [… FPAction, CmdUUID:80EC8FD9-37F7-4406-BC9D-108993706ED5] [FileProviderExtension.m:817|FULL]
2019-04-25 10:42:21.282000+0200 ownCloud File Provider[42338:1093148] [dbug] | [FP, Trash, …] Completed with error=(null) [… FPAction, CmdUUID:80EC8FD9-37F7-4406-BC9D-108993706ED5] [FileProviderExtension.m:820|FULL]
2019-04-25 10:42:21.313000+0200 ownCloud File Provider[42338:1093156] [dbug] | [FP, Import, …] Start of importDocumentAtURL=file:///Users/felix/Library/Developer/CoreSimulator/Devices/E695BC29-57FB-4362-A8A1-A6F4B0C1CAB0/data/Containers/Data/PluginKitPlugin/F41B10C6-CA7C-4A41-98FE-2A049505DAD4/tmp/96FD7000-8A64-4566-BAC6-12E1ACEBE3CB/Safari%20-%20Apr%2025,%202019%20at%2010:41%20AM.pdf/, toParentItemIdentifier=546A482063DA42DF817E5981EB0E43E5 [… FPAction, CmdUUID:F3352CD6-20E8-45D0-9D8B-B3329387AF7F] [FileProviderExtension.m:610|FULL]
2019-04-25 10:42:21.315000+0200 ownCloud File Provider[42338:1093156] [dbug] | [FP, Import, …] Importing Safari - Apr 25, 2019 at 10:41 AM.pdf at <OCItem: 0x7fca5802c180, type: 1, name: Documents, path: /Documents/, size: 3619634 bytes, MIME-Type: (null), Last modified: 2019-04-25 08:42:13 +0000, Last used: 2019-04-25 08:42:13 +0000 fileID: 00000014ocj5sppxygdu, eTag: "5cc172e54e178", parentID: 00000012ocj5sppxygdu, localID: 546A482063DA42DF817E5981EB0E43E5, parentLocalID: E7747D3E846640D68F7F6DC2405118AA, shareable, owner: <OCUser: 0x7fca5802c8d0, userName: demo, displayName: demo>> fromURL file:///Users/felix/Library/Developer/CoreSimulator/Devices/E695BC29-57FB-4362-A8A1-A6F4B0C1CAB0/data/Containers/Data/PluginKitPlugin/F41B10C6-CA7C-4A41-98FE-2A049505DAD4/tmp/96FD7000-8A64-4566-BAC6-12E1ACEBE3CB/Safari%20-%20Apr%2025,%202019%20at%2010:41%20AM.pdf/ [… FPAction, CmdUUID:F3352CD6-20E8-45D0-9D8B-B3329387AF7F] [FileProviderExtension.m:642|FULL]
2019-04-25 10:42:21.315000+0200 ownCloud File Provider[42338:1093156] [dbug] | [FP, Import, …] Importing resourceType=NSURLFileResourceTypeRegular [… FPAction, CmdUUID:F3352CD6-20E8-45D0-9D8B-B3329387AF7F] [FileProviderExtension.m:647|FULL]
2019-04-25 10:42:21.317000+0200 ownCloud File Provider[42338:1093156] [dbug] | [FP, Import, …] Completed with placeholderItem=<OCItem: 0x7fca5810a9e0, type: 0, name: Safari - Apr 25, 2019 at 10:41 AM.pdf, path: /Documents/Safari - Apr 25, 2019 at 10:41 AM.pdf, size: 839506 bytes, MIME-Type: application/pdf, Last modified: 2019-04-25 08:41:58 +0000, Last used: (null) fileID: _placeholder_1A78F7F7-F8A3-4E48-9324-187ACF1ADBE7, eTag: _placeholder_, parentID: 00000014ocj5sppxygdu, localID: 7C9919CDD3314A3C9A0FA0ABF4A5C42D, parentLocalID: 546A482063DA42DF817E5981EB0E43E5>, error=(null) [… FPAction, CmdUUID:F3352CD6-20E8-45D0-9D8B-B3329387AF7F] [FileProviderExtension.m:701|FULL]

While at it, I've also added log messages to the remaining two, unimplemented actions, so that we get log visibility if they're used and the fact they're not implemented has side effects like such an error.

That said, the issue is fixed as of b4676e1.

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 25, 2019

@jesmrec Regarding (46) I think logical would be to immediately open the file viewer and show download progress there and not to wait in the list view until the file is downloaded.

i guess it was before, but the behaviour was changed. Actually, you can download several files at the time by staying in the files view, and finally, the latest selected was the opened. We should agree something here.

about (45), anything to do, or we have to accept the behaviour as the expected. Thanks.

@mneuwert
Copy link
Contributor

mneuwert commented Apr 25, 2019

@jesmrec Regarding (46) I think logical would be to immediately open the file viewer and show download progress there and not to wait in the list view until the file is downloaded.

i guess it was before, but the behaviour was changed. Actually, you can download several files at the time by staying in the files view, and finally, the latest selected was the opened. We should agree something here.

I think if user taps an item, he would expect the detail view to open immediately.. this is what my UX gut feeling says.. Also what you have mentioned regarding downloading files and then the last one being displayed is somewhat confusing.

@felix-schwarz @hosy @michaelstingl opinions?

@mneuwert
Copy link
Contributor

@jesmrec Re (45): strange that iOS returns same name for multiple photo files but I have no idea about photo library layout on the file system.. I mean we probably could do something about it like change the file name on the fly when uploading similarly to duplicate logic or sth. like that.

@felix-schwarz
Copy link
Contributor

felix-schwarz commented Apr 25, 2019

@mneuwert Re (46), I agree, the download view should only be shown in case the download is started from the viewer (f.ex. when opening a file that has no local copy while offline, then coming online).

Regarding tapping multiple items, I added that intentionally to avoid confusion:

Image a user who wants to download a couple of large files, tapping them in quick succession - while the download of the items tapped earlier hasn't yet finished.

I don't think it'd be good to then push a viewer for each item as they finish downloading. The user would view file A, then file B finishes downloading and file B's viewer gets pushed over it. Repeat for file C, D, E… Since the user has no control over the time the downloads finish for each file, the user would be interrupted by new viewers opening on top of the file the user currently views / interacts with.

IIRC Apple's Files app takes this approach of viewing only the last tapped item, too.

Browsers also do it that way: if a user clicks a link on a website, but realizes he/she clicked the wrong link before the next page finishes loading, clicking another link will take the user to that (last clicked) link's page instead.

@mneuwert
Copy link
Contributor

mneuwert commented Apr 25, 2019

@felix-schwarz Re (46) I didn't intend to push multiple viewers when user taps multiple items.. Just open viewer immediately for the selected file and show download view. For the downloading multiple files in quick succession, we could make cloud icon tappable, but I am fine with the current implementation when the download view won't be shown for the already downloaded item

@felix-schwarz
Copy link
Contributor

@mneuwert Re (46): I'd be ok with tappable cloud icon, too, but that'd require a design change as the cloud icon isn't sufficiently big to be a reliable tap target.

but I am fine with the current implementation when the download view won't be shown for the already downloaded item

Me too. Taking care of that.

felix-schwarz added a commit that referenced this issue Apr 25, 2019
…re already downloaded (issue (46) in #237)

- Fix bug in PDFViewerViewController where CoreGraphics would throw an error when using pdfView with zero size (before properly laying it out)
@felix-schwarz
Copy link
Contributor

Addressed (46) as of 14dbecb.

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 25, 2019

(46) -> fixed

(47)

After (46) fix , the non-openable files prompt the download progress bar in the "details" view:

Apr-25-2019 13-02-17

Progress bar and cancel button must be hidden.

felix-schwarz added a commit that referenced this issue Apr 25, 2019
- Fix (47) "the non-openable files prompt the download progress bar in the "details" view" in #237
@felix-schwarz
Copy link
Contributor

@jesmrec Thanks for catching (47)! Fixed as of 0dfdac6.

@hosy
Copy link
Collaborator

hosy commented Apr 26, 2019

(48) Retrieving items blocks other file actions

If a server has a complex folder structure, the Retrieving Items action takes some time. If a user performs a file action (like duplicate files in the Files.app), the action is not immediately performed. If you switch back into the ownCloud.app you can see in the Status tab, that the Retrieving Items action blocks the duplicate operation. I think this will regarding the concurrency support.
@felix-schwarz Is there a workaround for this? Can we interrupt the action or only retrieve the current folder item?

@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 26, 2019

(47) -> fixed

michaelstingl pushed a commit that referenced this issue Apr 29, 2019
* hide beta warning

* [Bugfix 1.0.0] Fixed an issue with drag to action not working for some actions

* - Fix issue (3) "Oversized thumbnails"
- Fix separator insets in item list

* - Produce an appropriate error when an upload fails due to insufficient space left on the server (fix (4))

* - Fixing issue (1) and (2) via SDK update

* Version Bump to 114

* - disable table cell selection
- fixed long status messages, while setting dynamically numbers of lines

* Version Bump to 115

* - Fixed (5) where the progress of a file that completed download in the background was shown incorrectly

* - Improve progress updates and representation in ClientItemCell

* - Fix: indicate activity during last phase of setting up a new bookmark and whenever editing a bookmark and saving it (previously UI seemed stuck for a couple of seconds)

* - Added NSError+MessageResolution that resolves the localized description for OCErrors so they are included when serialized, so they become visible in the Files app, too
- Fixing issue (8) in #237

* Implemented improvement (13)

* - Fix newly introduced potential crash bug in renameItem FP method
- Remove trash method and permission flag for items in FP, so "Delete Now" is the only option and Files app shows a warning
- Fixing (11) in #237

* - Rename uploadsBarButton to plusBarButton in ClientQueryViewController
- Add new action extension location .plusButton
- Add Action extensions support to provide UIAlertAction objects
- Add .plusButton location to CreateFolder action
- Extend the ClientQueryViewController plusBarButton to include action extensions in the alert that's being shown
- Implementing improvement (15) from #237

* Fixed (13): restore multiple selection after reloading file list

* - Move File Upload and Photo Upload from ClientQueryViewController to distinct Action Extensions
- Extend ActionProgressHandler to cater for both publishing and unpublishing progress objects
- Replace repeated code with a method to provide a ActionProgressHandler in ClientItemQueryViewController
- Make CreateFolderAction require a folder as parent item
- Make MoveAction present on the provided ViewController, not its navigationController
- Extend error handling in several places

* Fixed (21): folder picker not canceleable when navigating into folder and back

* - SortBar overhaul / cleanup
	- remove create folder button from left
	- left-align the sort option and rename it "Sort by" (from "Sorted by")
	- turn the sort option button from a ThemeButton to a UIButton and replace the unicode arrow with an elegant chevron
	- remove sortBar location for action extensions
	- clean up SortBar code
- NSObject+ThemeApplication
	- replace use of isKindOfClass and force-casts with if let constructs
	- add support for UIButton themeing
- fix "flashing" reording right after opening a connection by setting the OCQuery sort method before starting the query
- fix bug where an alert was shown for invalid credentials, but the Edit button did not work
	- fix ClientRootViewController.closeClient(), so it calls the completionHandler
	- adjust the editing method to the changed view and navigation controller structure
- minor code formatting and style fixes in several places

* Fixed (22): no ‘more’ button in directory picker and now swipe to delete

* Another small fix for (22)

* Fix for multi-selection regression (items automatically selected) when re-entering multi-selection

* - Fix UI main thread violation in BookmarkViewController
- Fix spelling of CreateFolderAction.identifier value
- Simplify implementation of DuplicateAction by refactoring it to use new SDK APIs, addressing issue (7) in #237
- Fix potential future crash in ClientDirectoryPickerViewController by avoiding force-casting
- Make OCItem.parentItem in OCItem+Extension more robust using new SDK API
- Adapt FileProviderExtension to use new, supported SDK APIs instead of the island implementation that was -findKnownExistingItemInParent:withName:
- Add (and comment out) code that lets FileProviderExtension.createDirectoryWithName return as soon as the placeholder item is available
- Add empty implementations for trashItemWithIdentifier/untrashItemWithIdentifier/setLastUsedDate/supportedServiceSourcesForItemIdentifier to comply with requirement of overriding all methods raised in the documentation

* Fix for (24) refresh animation glitch

* Fixed (26) crash when trying to downsample corrupt image file

* Version Bump to 116

* Fixed (27): not downloading files which are present offline

* Using OCCore.localCopy() to test if the file is already downloaded

* Another fix for (27)

Not dismissing DisplayViewController when OpenIn action is triggered.

* - Update SDK

* - Address issue (17) from #237 by bringing up a custom error message when a user likely attempted a cross-server move operation through the Files app

* fixed earl grey ui test failures, because UI or logic changed in release_1.0.0 fixes

* - Address issue (30) in #237 via SDK update

* fixed memory leak, which causes that the viewcontroller was not released (this was recognized, because audio or video keeps playing in the background)

* - Updating SDK, fixing issues described for the initial release issue (30) fix

* - Fix issue (19) in #237
- Fix issue (30) in #237 with fixes described in owncloud/ios-sdk#46 (comment)

* - Addressing (30) in #237

* Fixed (35) handling taps in the PDFThumbnailsView

* Some fixes regarding thumbnail size calculation

* - Update to latest SDK (to solve (30))

* Fixed (31) plus couple of PDF thumbnail view fixes

* Fixed (37) disable horizontal scrolling in the gallery if there is a single item

* - Update ios-sdk which now includes important fixes from the ios-sdk feature/sharing branch

* - Fix another formatting warning

* - Certificate Manager now shows the acceptance reason for user-accepted certificates
- Certificate View now shows the acceptance reason description for user-accepted certificates

* Few cosmetic changes

* Removed unused instance variable

* Fixed (38) tap to hide bars -> recalculate image size

* Fixed an issue with swipe in the image gallery causing navigation bar to reappear

* Fixed (39) Going back to root folder when selected “Browse” tab is tapped

* - Fixing two issues from #237:
	- (25) Double deletion in maintenance mode
        - (41) Files re-appear in the files list after batch-deleting them

* - Fix (42) in #237: considerable CPU use and slow-down in busy/frequently updated directories

* - Fixing (33) in #237 via SDK update: give users option to keep file or retry when upload fails

* - Fix issue (32) and (40) in #237 by presenting ClientRootViewController
	- only when the core has been returned by OCCoreManager, showing an activity indicator in the selected cell until then
	- modally, using a custom push transition to avoid UINavigationController hell
- Fix issue where ClientRootViewController would dismiss the lat ClientQueryViewController while also being dismissed, leading to an inconsistent animation when looking closely

* - Cleanup

* - Cleanup

* Version Bump to 117

* Fixed UI tests which broke due to changes made to fix (32) and (40)

* Fixed remaining UI tests

* - Fix issue where logging in and out of a bookmark in quick succession could lead to hangs opening the bookmark (likely is (32) in #237)

* - Fix failing UI tests

* - Make certificate detail view more resilient

* - Update SDK to add logging around OCCoreManager core requests/returns

* - SDK update:
        - Make OCCoreManager use an administrative queue for every bookmark, so that one connection closing down or opening up can't hold up another
- Takes advantage of OCCoreManager managing every bookmark independently
	- allowing to select another bookmark if the previous one takes longer to open
	- not show the UI for a bookmark if Settings, Help or Add/Edit Bookmark UI is triggered meanwhile
	- fix crash caused by force-unwrapping self.core in ClientRootViewController.coreReady()

* - Address "(44) Re-save file to the same folder will lead to an error" in #237

* - Avoid showing download progress indicator when viewing files that are already downloaded (issue (46) in #237)
- Fix bug in PDFViewerViewController where CoreGraphics would throw an error when using pdfView with zero size (before properly laying it out)

* - Clean up DisplayViewController and remove force-casts
- Fix (47) "the non-openable files prompt the download progress bar in the "details" view" in #237

* removed localization for "Feedback" button

* Feature/heic to jpeg (#363)

* Added HEIC to JPEG conversion

* Localized strings for photo upload settings

* Fixed indentation

* Fixed license header

* Version Bump to 118

* Made sure that photo metadata is exported
@jesmrec
Copy link
Contributor Author

jesmrec commented Apr 29, 2019

Pending issues opened separately. Looking forward for more stuff to include in the release

@jesmrec jesmrec closed this as completed Apr 29, 2019
@michaelstingl michaelstingl unpinned this issue May 3, 2019
michaelstingl pushed a commit that referenced this issue May 13, 2019
* hide beta warning

* [Bugfix 1.0.0] Fixed an issue with drag to action not working for some actions

* - Fix issue (3) "Oversized thumbnails"
- Fix separator insets in item list

* - Produce an appropriate error when an upload fails due to insufficient space left on the server (fix (4))

* - Fixing issue (1) and (2) via SDK update

* Version Bump to 114

* - disable table cell selection
- fixed long status messages, while setting dynamically numbers of lines

* Version Bump to 115

* - Fixed (5) where the progress of a file that completed download in the background was shown incorrectly

* - Improve progress updates and representation in ClientItemCell

* - Fix: indicate activity during last phase of setting up a new bookmark and whenever editing a bookmark and saving it (previously UI seemed stuck for a couple of seconds)

* - Added NSError+MessageResolution that resolves the localized description for OCErrors so they are included when serialized, so they become visible in the Files app, too
- Fixing issue (8) in #237

* Implemented improvement (13)

* - Fix newly introduced potential crash bug in renameItem FP method
- Remove trash method and permission flag for items in FP, so "Delete Now" is the only option and Files app shows a warning
- Fixing (11) in #237

* - Rename uploadsBarButton to plusBarButton in ClientQueryViewController
- Add new action extension location .plusButton
- Add Action extensions support to provide UIAlertAction objects
- Add .plusButton location to CreateFolder action
- Extend the ClientQueryViewController plusBarButton to include action extensions in the alert that's being shown
- Implementing improvement (15) from #237

* Fixed (13): restore multiple selection after reloading file list

* - Move File Upload and Photo Upload from ClientQueryViewController to distinct Action Extensions
- Extend ActionProgressHandler to cater for both publishing and unpublishing progress objects
- Replace repeated code with a method to provide a ActionProgressHandler in ClientItemQueryViewController
- Make CreateFolderAction require a folder as parent item
- Make MoveAction present on the provided ViewController, not its navigationController
- Extend error handling in several places

* Fixed (21): folder picker not canceleable when navigating into folder and back

* - SortBar overhaul / cleanup
	- remove create folder button from left
	- left-align the sort option and rename it "Sort by" (from "Sorted by")
	- turn the sort option button from a ThemeButton to a UIButton and replace the unicode arrow with an elegant chevron
	- remove sortBar location for action extensions
	- clean up SortBar code
- NSObject+ThemeApplication
	- replace use of isKindOfClass and force-casts with if let constructs
	- add support for UIButton themeing
- fix "flashing" reording right after opening a connection by setting the OCQuery sort method before starting the query
- fix bug where an alert was shown for invalid credentials, but the Edit button did not work
	- fix ClientRootViewController.closeClient(), so it calls the completionHandler
	- adjust the editing method to the changed view and navigation controller structure
- minor code formatting and style fixes in several places

* Fixed (22): no ‘more’ button in directory picker and now swipe to delete

* Another small fix for (22)

* Fix for multi-selection regression (items automatically selected) when re-entering multi-selection

* - Fix UI main thread violation in BookmarkViewController
- Fix spelling of CreateFolderAction.identifier value
- Simplify implementation of DuplicateAction by refactoring it to use new SDK APIs, addressing issue (7) in #237
- Fix potential future crash in ClientDirectoryPickerViewController by avoiding force-casting
- Make OCItem.parentItem in OCItem+Extension more robust using new SDK API
- Adapt FileProviderExtension to use new, supported SDK APIs instead of the island implementation that was -findKnownExistingItemInParent:withName:
- Add (and comment out) code that lets FileProviderExtension.createDirectoryWithName return as soon as the placeholder item is available
- Add empty implementations for trashItemWithIdentifier/untrashItemWithIdentifier/setLastUsedDate/supportedServiceSourcesForItemIdentifier to comply with requirement of overriding all methods raised in the documentation

* Fix for (24) refresh animation glitch

* Fixed (26) crash when trying to downsample corrupt image file

* Version Bump to 116

* Fixed (27): not downloading files which are present offline

* Using OCCore.localCopy() to test if the file is already downloaded

* Another fix for (27)

Not dismissing DisplayViewController when OpenIn action is triggered.

* - Update SDK

* - Address issue (17) from #237 by bringing up a custom error message when a user likely attempted a cross-server move operation through the Files app

* fixed earl grey ui test failures, because UI or logic changed in release_1.0.0 fixes

* - Address issue (30) in #237 via SDK update

* fixed memory leak, which causes that the viewcontroller was not released (this was recognized, because audio or video keeps playing in the background)

* - Updating SDK, fixing issues described for the initial release issue (30) fix

* - Fix issue (19) in #237
- Fix issue (30) in #237 with fixes described in owncloud/ios-sdk#46 (comment)

* - Addressing (30) in #237

* Fixed (35) handling taps in the PDFThumbnailsView

* Some fixes regarding thumbnail size calculation

* - Update to latest SDK (to solve (30))

* Fixed (31) plus couple of PDF thumbnail view fixes

* Fixed (37) disable horizontal scrolling in the gallery if there is a single item

* - Update ios-sdk which now includes important fixes from the ios-sdk feature/sharing branch

* - Fix another formatting warning

* - Certificate Manager now shows the acceptance reason for user-accepted certificates
- Certificate View now shows the acceptance reason description for user-accepted certificates

* Few cosmetic changes

* Removed unused instance variable

* Fixed (38) tap to hide bars -> recalculate image size

* Fixed an issue with swipe in the image gallery causing navigation bar to reappear

* Fixed (39) Going back to root folder when selected “Browse” tab is tapped

* - Fixing two issues from #237:
	- (25) Double deletion in maintenance mode
        - (41) Files re-appear in the files list after batch-deleting them

* - Fix (42) in #237: considerable CPU use and slow-down in busy/frequently updated directories

* - Fixing (33) in #237 via SDK update: give users option to keep file or retry when upload fails

* - Fix issue (32) and (40) in #237 by presenting ClientRootViewController
	- only when the core has been returned by OCCoreManager, showing an activity indicator in the selected cell until then
	- modally, using a custom push transition to avoid UINavigationController hell
- Fix issue where ClientRootViewController would dismiss the lat ClientQueryViewController while also being dismissed, leading to an inconsistent animation when looking closely

* - Cleanup

* - Cleanup

* Version Bump to 117

* Fixed UI tests which broke due to changes made to fix (32) and (40)

* Fixed remaining UI tests

* - Fix issue where logging in and out of a bookmark in quick succession could lead to hangs opening the bookmark (likely is (32) in #237)

* - Fix failing UI tests

* - Make certificate detail view more resilient

* - Update SDK to add logging around OCCoreManager core requests/returns

* - SDK update:
        - Make OCCoreManager use an administrative queue for every bookmark, so that one connection closing down or opening up can't hold up another
- Takes advantage of OCCoreManager managing every bookmark independently
	- allowing to select another bookmark if the previous one takes longer to open
	- not show the UI for a bookmark if Settings, Help or Add/Edit Bookmark UI is triggered meanwhile
	- fix crash caused by force-unwrapping self.core in ClientRootViewController.coreReady()

* - Address "(44) Re-save file to the same folder will lead to an error" in #237

* - Avoid showing download progress indicator when viewing files that are already downloaded (issue (46) in #237)
- Fix bug in PDFViewerViewController where CoreGraphics would throw an error when using pdfView with zero size (before properly laying it out)

* - Clean up DisplayViewController and remove force-casts
- Fix (47) "the non-openable files prompt the download progress bar in the "details" view" in #237

* removed localization for "Feedback" button

* Feature/heic to jpeg (#363)

* Added HEIC to JPEG conversion

* Localized strings for photo upload settings

* Fixed indentation

* Fixed license header

* Version Bump to 118

* Made sure that photo metadata is exported

* - ownCloud iOS SDK and Xcode update

* Fixes for #365

- Offloaded photo import operations off the main thread
- Using fullsize image URL to derive filename

* Memory use improvements

* - Update SDK
- include xcscheme options for new configuration variables

* - Correct settings in scheme

* More memory handling improvements when dealing with image conversion

* - ProgressSummarizer updates
	- now groups progress by type and provides summaries such as "Uploading X of Y files.." that are easier to follow for the user
	- now prioritizes newer progress submissions over old ones, taking into account the possbility these may be executed earlier due to Sync Engine concurrency

* - Clean up Viewer code
	- Remove unused original DisplayHostViewController
	- Rename GalleryHostViewController to DisplayViewController
	- move Viewer code below Client where it logically belongs and split it up into subdirectories
- (Re-)add download progress reporting to ClientQueryViewController and initially add it to Display*ViewController classes

* - ios-sdk update adding Sync Action categories and concurrency budgets
- Clean ups

* - Switch back to NSLog from Log.swift in tests (Log.swift is not incuded in the test target) so tests pass
- Remove XCTestsCase+Extension as it provides no benefit over Xcode's own messages whn tests start and finish
@jesmrec jesmrec mentioned this issue Jun 11, 2019
23 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Estimation - 8 (XL) 8 points p2-high Escalation, on top of current planning, release blocker
Projects
None yet
Development

No branches or pull requests

5 participants