@@ -20,6 +20,7 @@ package com.infomaniak.drive.utils
20
20
import android.content.Context
21
21
import android.net.Uri
22
22
import androidx.fragment.app.Fragment
23
+ import androidx.lifecycle.lifecycleScope
23
24
import androidx.navigation.fragment.findNavController
24
25
import com.dd.plist.NSDictionary
25
26
import com.dd.plist.NSString
@@ -44,6 +45,9 @@ import com.infomaniak.lib.core.utils.SnackbarUtils.showSnackbar
44
45
import com.infomaniak.lib.core.utils.UtilsUi.openUrl
45
46
import com.infomaniak.lib.core.utils.capitalizeFirstChar
46
47
import com.infomaniak.lib.core.utils.safeNavigate
48
+ import kotlinx.coroutines.Dispatchers
49
+ import kotlinx.coroutines.launch
50
+ import kotlinx.coroutines.withContext
47
51
import java.io.BufferedInputStream
48
52
import java.io.BufferedReader
49
53
import java.io.InputStreamReader
@@ -109,7 +113,7 @@ object FilePresenter {
109
113
}
110
114
}
111
115
112
- fun Fragment.openBookmarkIntent (file : File ) {
116
+ fun Fragment.openBookmarkIntent (file : File ) = lifecycleScope.launch {
113
117
runCatching {
114
118
val storedFileUri = file.getCloudAndFileUris(requireContext()).second
115
119
requireActivity().openBookmarkIntent(file.name, storedFileUri)
@@ -121,11 +125,13 @@ object FilePresenter {
121
125
}
122
126
}
123
127
124
- fun Context.openBookmarkIntent (fileName : String , uri : Uri ) {
125
- val url = if (fileName.endsWith(" .url" )) {
126
- getUrlFromUrlFile(context = this , uri)
127
- } else {
128
- getUrlFromWebloc(context = this , uri)
128
+ suspend fun Context.openBookmarkIntent (fileName : String , uri : Uri ) {
129
+ val url = withContext(Dispatchers .IO ) {
130
+ if (fileName.endsWith(" .url" )) {
131
+ getUrlFromUrlFile(context = this @openBookmarkIntent, uri)
132
+ } else {
133
+ getUrlFromWebloc(context = this @openBookmarkIntent, uri)
134
+ }
129
135
}
130
136
131
137
if (url.isValidUrl()) openUrl(url) else throw Exception (" It's not a valid url" )
0 commit comments