diff --git a/common/src/main/java/com/itsaky/androidide/fragments/BaseFragment.kt b/common/src/main/java/com/itsaky/androidide/fragments/BaseFragment.kt
index 83aa1fdf4..29573b1e1 100755
--- a/common/src/main/java/com/itsaky/androidide/fragments/BaseFragment.kt
+++ b/common/src/main/java/com/itsaky/androidide/fragments/BaseFragment.kt
@@ -39,6 +39,7 @@ import androidx.core.provider.DocumentsContractCompat.buildDocumentUriUsingTree
import androidx.core.provider.DocumentsContractCompat.getTreeDocumentId
import androidx.documentfile.provider.DocumentFile
import androidx.fragment.app.Fragment
+import com.itsaky.androidide.common.R
import com.itsaky.androidide.resources.R.string
import com.itsaky.androidide.utils.flashError
import java.io.File
@@ -106,7 +107,11 @@ open class BaseFragment @JvmOverloads constructor(contentLayoutId: Int = 0) :
protected fun pickDirectory(dirCallback: OnDirectoryPickedCallback?) {
this.callback = dirCallback
- this.startForResult.launch(Intent(Intent.ACTION_OPEN_DOCUMENT_TREE))
+ try {
+ this.startForResult.launch(Intent(Intent.ACTION_OPEN_DOCUMENT_TREE))
+ } catch (e: Exception) {
+ requireActivity().flashError(getString(R.string.msg_dir_picker_failed, e.message))
+ }
}
fun interface OnDirectoryPickedCallback {
diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml
index e828f5157..7cf619f3a 100644
--- a/resources/src/main/res/values/strings.xml
+++ b/resources/src/main/res/values/strings.xml
@@ -541,4 +541,5 @@
Diagnostics enabled
(EXPERIMENTAL) Whether the Java source files should be analyzed for errors or not.
Reload color schemes
+ Failed to start directory picker : %1$s