Skip to content

[BUG] Deep links over shared files (oCIS) #4250

@jesmrec

Description

@jesmrec

Comes from #4212 (comment)

Deep links over shared files are not implemented. It's causing a crash:

                                                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.owncloud.android/com.owncloud.android.ui.activity.FileDisplayActivity}: java.net.URISyntaxException: Illegal character in path at index 227: owncloud://ocis.ocis-wopi.latest.owncloud.works/f/a0ca6a90-a365-4782-871e-d44447bbc668$a0ca6a90-a365-4782-871e-d44447bbc668%2142117dc5-c175-49a3-a683-4827bd3fe444:4374bf79-85db-4821-948e-4ca06a32726b:db2f83b4-0c8f-4c2e-8539-7b2
                                                                                                    11458f7d6
                                                                                                    	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
                                                                                                    	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
                                                                                                    	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loop(Looper.java:223)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:7656)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
                                                                                                    Caused by: java.net.URISyntaxException: Illegal character in path at index 227: owncloud://ocis.ocis-wopi.latest.owncloud.works/f/a0ca6a90-a365-4782-871e-d44447bbc668$a0ca6a90-a365-4782-871e-d44447bbc668%2142117dc5-c175-49a3-a683-4827bd3fe444:4374bf79-85db-4821-948e-4ca06a32726b:db2f83b4-0c8f-4c2e-8539-7b2
                                                                                                    11458f7d6
                                                                                                    	at java.net.URI$Parser.fail(URI.java:2893)
                                                                                                    	at java.net.URI$Parser.checkChars(URI.java:3066)
                                                                                                    	at java.net.URI$Parser.parseHierarchical(URI.java:3150)
                                                                                                    	at java.net.URI$Parser.parse(URI.java:3098)
                                                                                                    	at java.net.URI.<init>(URI.java:584)
                                                                                                    	at com.owncloud.android.presentation.files.operations.FileOperationsViewModel.handleDeepLink(FileOperationsViewModel.kt:145)
                                                                                                    	at com.owncloud.android.ui.activity.FileDisplayActivity.handleDeepLink(FileDisplayActivity.kt:1777)
                                                                                                    	at com.owncloud.android.ui.activity.FileDisplayActivity.onCreate(FileDisplayActivity.kt:193)
                                                                                                    	at android.app.Activity.performCreate(Activity.java:8000)
                                                                                                    	at android.app.Activity.performCreate(Activity.java:7984)
                                                                                                    	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
                                                                                                    	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)

apart of avoiding the crash, app should resolve the link using the meta endpoint (guessing that item is reachable) and show it as any other item in the Shares tab.

TASKS

  • Research (if needed)
  • Create branch fix/deep_links_for_shares
  • Development tasks
    • Discover root folder of the shares space in first account discovery
    • Check if deep link refers to a file in shares space
    • Move to "Shares" tab, navigate to the corresponding folder and open preview/details of the file
    • Add necessary tests
  • Code review and apply changes requested
  • Design test plan
  • QA
  • Merge branch fix/deep_links_for_shares into master

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions