ARK-Builders / ARK-Navigator

Android app for navigation through your data
MIT License
15 stars 15 forks source link

#232: [Add favorite] button must bring user inside of selected root folder #244

Closed pgpathan22 closed 2 years ago

mdrlzy commented 2 years ago

The app crashes if the device has a sd card. For example: paths = [/storage/emulated/0, /storage/09F8-0B09] findLongestCommonPrefix(paths) will return /storage

Crash log
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: space.taran.arknavigator, PID: 3677
    java.nio.file.AccessDeniedException: /storage
        at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:434)
        at java.nio.file.Files.newDirectoryStream(Files.java:457)
        at java.nio.file.Files.newDirectoryStream(Files.java:514)
        at kotlin.io.path.PathsKt__PathUtilsKt.listDirectoryEntries(PathUtils.kt:398)
        at kotlin.io.path.PathsKt__PathUtilsKt.listDirectoryEntries$default(PathUtils.kt:397)
        at space.taran.arknavigator.utils.FileUtilsKt.listChildren(FileUtils.kt:41)
        at space.taran.arknavigator.mvp.presenter.adapter.FoldersGridPresenter.init(FoldersGridPresenter.kt:40)
        at space.taran.arknavigator.mvp.presenter.dialog.FolderPickerDialogPresenter$onFirstViewAttach$1.invokeSuspend(FolderPickerDialogPresenter.kt:37)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        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)
    

It is necessary to refactor the dialog so that it can work with device storages itself and does not accept them from outside as starting paths.

kirillt commented 2 years ago

Looks good to me. Can be merged if @mdrlzy approves.

mdrlzy commented 2 years ago

Closes #232