zhanghai / zhanghai/MaterialFiles
[feature request] share folder content (recursive) instead of folder-name
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 9k
- Forks
- 736
- PR merge metrics
- No merged PRs in 30d
Description
In MaterialFiles you can select one or more files and share them to other apps (i.e. send via bluetooth or via email)
When "the share" contains a directory-entry the share-consuming-app only gets the folder alias of the used FileProvider which cannot be processed further because FileProvider does not support browsing folders (see comment in https://stackoverflow.com/questions/48062097/how-to-open-a-directoryfolder-in-android-using-file-provider ).
As a result the share-consuming-app may crash (see MaterialFiles#575 or ToGoZip#28)
Instead of sharing the selected folder name share all files that are inside the folder (recursivly)
Example: (current working)
In MaterialFiles select the folder "sd_sub_test" and press "share"
MaterialFiles shares "sd_sub_test" with mimetype="vnd.android.document/directory"
requested change:
MaterialFiles shares all files inside the folder "sd_sub_test" (i.e. "sd_sub_test/test.txt", "sd_sub_test/Image.png") instead of sharing the folder name
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing MaterialFiles' current share flow for selected directory entries and how Android FileProvider produces the shared URI and MIME type. Verify the behavior with a folder containing nested files, then confirm that sharing the folder exposes all files recursively rather than only the folder alias.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100