diff --git a/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerFragment.kt b/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerFragment.kt
index ac21c3f..27166dd 100644
--- a/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerFragment.kt
+++ b/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerFragment.kt
@@ -306,6 +306,10 @@ open class ArkFilePickerFragment :
FilePickerSideEffect.CannotPinFile -> {
activity?.toast(R.string.ark_file_picker_pin_folder_only)
}
+
+ FilePickerSideEffect.NestedRootProhibited -> {
+ activity?.toast(R.string.ark_file_nested_root_inside)
+ }
}
diff --git a/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerViewModel.kt b/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerViewModel.kt
index 19d4b1b..cd01b1a 100644
--- a/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerViewModel.kt
+++ b/filepicker/src/main/java/dev/arkbuilders/components/filepicker/ArkFilePickerViewModel.kt
@@ -44,6 +44,7 @@ internal sealed class FilePickerSideEffect {
data object AlreadyFavorite : FilePickerSideEffect()
data object PinAsFirstRoot : FilePickerSideEffect()
data object CannotPinFile : FilePickerSideEffect()
+ data object NestedRootProhibited : FilePickerSideEffect()
}
@@ -190,6 +191,17 @@ internal class ArkFilePickerViewModel(
val roots = rootsWithFavorites.keys
val root = roots.find { root -> file.startsWith(root) }
val favorites = rootsWithFavorites[root]?.flatten()
+
+ val hasNestedRoot = roots.contains(file)
+ || (roots.indexOfFirst { path ->
+ val index = path.toString().indexOf(file.toString())
+ (index >= 0) && (path.toString()[index] == '/') } >= 0)
+
+ if (hasNestedRoot) {
+ postSideEffect(FilePickerSideEffect.NestedRootProhibited)
+ return@intent
+ }
+
val haveRoot = haveRoot()
root?.let {
diff --git a/filepicker/src/main/res/values/strings.xml b/filepicker/src/main/res/values/strings.xml
index e7f016e..20116db 100644
--- a/filepicker/src/main/res/values/strings.xml
+++ b/filepicker/src/main/res/values/strings.xml
@@ -16,6 +16,7 @@
Already be a Favorite folder!
Already be a Root folder!
Only folder can be pinned.
+ There\'s already nested root(s) inside.
Pin
- %d item