-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[android][media-library] With media management permission, addAssetsToAlbumAsync fails on albums containing folders #30869
Labels
needs review
Issue is ready to be reviewed by a maintainer
Comments
expo-bot
added
needs review
Issue is ready to be reviewed by a maintainer
and removed
needs validation
Issue needs to be validated
labels
Aug 7, 2024
3 tasks
Nafeij
changed the title
[expo-media-library] With media management permission, addAssetsToAlbumAsync fails on albums containing folders
[android][media-library] With media management permission, addAssetsToAlbumAsync fails on albums containing folders
Aug 16, 2024
behenate
pushed a commit
that referenced
this issue
Aug 30, 2024
# Why We can't assume an album is corrupted because it contains non-files. In an app with file manager perms, it's possible for expo to access external albums which may be nested or otherwise contain directories. Closes #30869 ~~Also feel free to suggest alternative checks.~~ We should also check if the non-file is a non-directory (#31027 (comment)) # How <!-- How did you build this feature or fix this bug and why? --> Add an additional check to prevent the exception being thrown for nested but otherwise valid albums. # Test Plan <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> See the `Minimal reproducible example` in #30869 to reproduce original behavior. Before: https://github.com/user-attachments/assets/f6edbc3f-2850-4ae6-97fd-12caa8ce4ae9 After: https://github.com/user-attachments/assets/8527535f-5926-488f-82fd-bd6ee82956aa # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
behenate
pushed a commit
that referenced
this issue
Sep 30, 2024
# Why We can't assume an album is corrupted because it contains non-files. In an app with file manager perms, it's possible for expo to access external albums which may be nested or otherwise contain directories. Closes #30869 ~~Also feel free to suggest alternative checks.~~ We should also check if the non-file is a non-directory (#31027 (comment)) # How <!-- How did you build this feature or fix this bug and why? --> Add an additional check to prevent the exception being thrown for nested but otherwise valid albums. # Test Plan <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> See the `Minimal reproducible example` in #30869 to reproduce original behavior. Before: https://github.com/user-attachments/assets/f6edbc3f-2850-4ae6-97fd-12caa8ce4ae9 After: https://github.com/user-attachments/assets/8527535f-5926-488f-82fd-bd6ee82956aa # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Minimal reproducible example
https://github.com/Nafeij/my-app
What platform(s) does this occur on?
Android
Where did you reproduce the issue?
in a development build
Summary
expo/packages/expo-media-library/android/src/main/java/expo/modules/medialibrary/albums/AddAssetsToAlbum.kt
Line 48 in 138283b
When adding assets to an album, the above check is performed with the assumption that this is a migrated or app-created album. However, it is still possible for apps to obtain
MANAGE_MEDIA
permissions and operate on external albums, which may themselves contain nested albums or folders. In this case, an unexpected error is thrown stating that the Media Library is corrupted.To reproduce:
Prepare an album containing an image and a folder and run the reproducible example to add another image to said album.
Environment
Expo Doctor Diagnostics
The text was updated successfully, but these errors were encountered: