First of all, I want to thank the author, because the View is convenient.
Issue as follows:
If I find file I need after looking for multi-level directory, I need to return to my application immediately rather than pressing the back button once every level,when I use the FileBrowser.
It will waste a lot of time.
I think you can add a new button which can return to the application or destory the FileBrowserActivity immediately.
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=109; index=-1
at java.util.ArrayList.get(ArrayList.java:413) at com.aditya.filebrowser.adapters.CustomAdapter.getItemAt(CustomAdapter.java:197)
at com.aditya.filebrowser.FileChooser$1.onItemClick(FileChooser.java:175) at com.aditya.filebrowser.adapters.CustomAdapterItemClickListener.onInterceptTouchEvent(CustomAdapterItemClickListener.java:46)
at android.support.v7.widget.RecyclerView.dispatchOnItemTouch(RecyclerView.java:2658)
at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2786)
at android.view.View.dispatchTouchEvent(View.java:10024)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2626)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2307)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:416)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
at android.app.Activity.dispatchTouchEvent(Activity.java:3065)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:378)
at android.view.View.dispatchPointerEvent(View.java:10244)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4450)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4318)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3865)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3918)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3884)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4011)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3892)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4068)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3865)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3918)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3884)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3892)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3865)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6259)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6233)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6194)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6362)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:323)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:6236)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
Hello, I am currently experiencing an issue where the application crashes when a file is selected, The device is a Samsung S7 edge with Android version 8.0. I attached the crash logs below. Basically, the errors I receive are all "Failed to find configured root that contains {file that was opened}".
Any solution would be greatly appreciated. Thanks! 2020_06_11_10_37_36.txt
Wanted to use it on my app, but library crashes when I press on "Ext" button. Log file is attached below.
Phone is Nexus 5X.
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.io.File.getAbsolutePath()' on a null object reference
at com.aditya.filebrowser.FileChooser.updateUI(FileChooser.java:243)
at com.aditya.filebrowser.NavigationHelper.updateObservers(NavigationHelper.java:136)
at com.aditya.filebrowser.NavigationHelper.navigateToExternalStorage(NavigationHelper.java:58)
at com.aditya.filebrowser.listeners.TabChangeListener.handleTabChange(TabChangeListener.java:69)
at com.aditya.filebrowser.listeners.TabChangeListener.onTabSelected(TabChangeListener.java:52)
at com.roughike.bottombar.BottomBar.updateSelectedTab(BottomBar.java:949)
at com.roughike.bottombar.BottomBar.handleClick(BottomBar.java:926)
at com.roughike.bottombar.BottomBar.onClick(BottomBar.java:893)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
What am I trying to do?
I want to display only excel files
What is displaying right now?
No matters which filter you set, it always shows files that don't have any extentions
I have applied filters as per documentation in readme file
Intenti = newIntent(this, FileBrowser.class); //works for all 3 main classes (i.e FileBrowser, FileChooser, FileBrowserWithCustomHandler)i.putExtra(Constants.ALLOWED_FILE_EXTENSIONS, "xls;xlsx");
hello and thank you for good lib.
i want to open audio file when FileBrowser lunched but when click on audio file close FileBrowser and no things !
what do i do ?
Fatal Exception: android.content.ActivityNotFoundException: Unable to find explicit activity class {in.transmr.daxfer/com.aditya.filebrowser.FileBrowser}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
at android.app.Activity.startActivityForResult(Activity.java:3745)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:3706)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at android.app.Activity.startActivity(Activity.java:4016)
at android.app.Activity.startActivity(Activity.java:3984)
at in.transmr.daxfer.activity.MainActivity.onNavigationItemSelected(MainActivity.java:1119)
at android.support.design.widget.NavigationView$1.onMenuItemSelected(NavigationView.java:170)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:840)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:991)
at android.support.design.internal.NavigationMenuPresenter$1.onClick(NavigationMenuPresenter.java:352)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
"Show folder size" should be changed to "Hide folder size" after choosing this menu option and vice versa.
Please, provide a project with a sample usage of your library for all possible cases, because it seems only "Browse" use case is working as intended :(
I suppose a "Single Choice" use case should be arranged with radio buttons.
Hi,
It seems for android api >= 24, app crashes when trying to share files.
Here is my stacktrace: Fatal Exception: android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.company.app/files/Log/data_2020-03-09_09%3A31%3A27.csv exposed beyond app through ClipData.Item.getUri() at android.os.StrictMode.onFileUriExposed(StrictMode.java:1978) at android.net.Uri.checkFileUriExposed(Uri.java:2371) at android.content.ClipData.prepareToLeaveProcess(ClipData.java:963) at android.content.Intent.prepareToLeaveProcess(Intent.java:10216) at android.content.Intent.prepareToLeaveProcess(Intent.java:10222) at android.content.Intent.prepareToLeaveProcess(Intent.java:10201) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1667) at android.app.Activity.startActivityForResult(Activity.java:4586) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676) at android.app.Activity.startActivityForResult(Activity.java:4544) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663) at android.app.Activity.startActivity(Activity.java:4905) at android.app.Activity.startActivity(Activity.java:4873) at com.aditya.filebrowser.fileoperations.FileIO.shareMultipleFiles(FileIO.java:253) at com.aditya.filebrowser.ToolbarActionMode.onActionItemClicked(ToolbarActionMode.java:80) at androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9.onActionItemClicked(AppCompatDelegateImpl.java:2452) at androidx.appcompat.view.StandaloneActionMode.onMenuItemSelected(StandaloneActionMode.java:141) at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:840) at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158) at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:991) at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:981) at androidx.appcompat.widget.ActionMenuView.invokeItem(ActionMenuView.java:625) at androidx.appcompat.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:151) at android.view.View.performClick(View.java:6614) at android.view.View.performClickInternal(View.java:6587) at android.view.View.access$3100(View.java:784) at android.view.View$PerformClick.run(View.java:26125) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6715) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
the library working on my application before android 10, but after updating to android 10, the file browser doesn't show any folder or files!
Storage permission is granted but nothing is shown in the chooser!
When we click back button without selecting any file, it displays a toast with null pointer exception.
The message is :
"java.lang.NullPointerException: Attempt to
invoke virtual method 'java.util.ArrayList
android.content.Intent.getParcelableArra
yList Extra(java.lang.String) on a null object
reference"