handleIntent runs synchronously on the module init path (OnCreate ->
getConstants), so any exception while reading a shared content:// URI
crashed the whole app at launch rather than just failing the share.
getBitmap, the video file copy, and MediaMetadataRetriever.setDataSource
can all throw (revoked permission, deleted file, a provider that rejects
the read). Wrap each in try/catch and skip the offending media instead.
Images that fail are dropped from the batch; if none succeed we bail
early. Also release the MediaMetadataRetriever, which was never freed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* add native ios code outside of ios project
* helper script
* going to be a lot of these commits to squash...backing up
* save
* start of an expo plugin
* create info.plist
* copy the view controller
* maybe working
* working
* wait working now
* working plugin
* use current scheme
* update intent path
* use better params
* support text in uri
* build
* use better encoding
* handle images
* cleanup ios plugin
* android
* move bash script to /scripts
* handle cases where loaded data is uiimage rather than uri
* remove unnecessary logic, allow more than 4 images and just take first 4
* android build plugin
* limit images to four on android
* use js for plugins, no need to build
* revert changes to app config
* use correct scheme on android
* android readme
* move ios extension to /modules
* remove unnecessary event
* revert typo
* plugin readme
* scripts readme
* add configurable scheme to .env, default to `bluesky`
* remove debug
* revert .gitignore change
* add comment about updating .env to app.config.js for those modifying scheme
* modify .env
* update android module to use the proper url
* update ios extension
* remove comment
* parse and validate incoming image uris
* fix types
* rm oops
* fix a few typos