Browse Source

UnifiedSearch: Fix opening non-file results with relative URLs

Most notable in Apps results (Deck, Music...)

Signed-off-by: Álvaro Brey Vilas <alvaro.brey@nextcloud.com>
Álvaro Brey Vilas 3 years ago
parent
commit
94e73ba716

+ 14 - 2
src/main/java/com/owncloud/android/ui/unifiedsearch/UnifiedSearchViewModel.kt

@@ -143,12 +143,24 @@ class UnifiedSearchViewModel(application: Application) : AndroidViewModel(applic
         }
     }
 
+    // TODO test this
     override fun openResult(result: SearchResultEntry) {
         if (result.isFile) {
             openFile(result.remotePath())
         } else {
-            val uri = Uri.parse(result.resourceUrl)
-            this.browserUri.value = uri
+            this.browserUri.value = getResultUri(result)
+        }
+    }
+
+    private fun getResultUri(result: SearchResultEntry): Uri {
+        val uri = Uri.parse(result.resourceUrl)
+        return when (uri.host) {
+            null -> {
+                val serverUrl = currentAccountProvider.user.server.uri.toString()
+                val fullUrl = serverUrl + result.resourceUrl
+                Uri.parse(fullUrl)
+            }
+            else -> uri
         }
     }