createFile writes to the cache dir before the copy/compress attempt, so
the bail-out paths left a temp file behind. Delete the file on each
failure path (no input stream, copy/write throws, getVideoInfo returns
null). Also wraps the image write in a use {} block so the stream is
closed if compress throws. The success path still keeps the file, since
its path is passed to the compose intent downstream.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit 9d62588a2739d7eb1f12164d0f2c4ae7d5be4e38)
The three catch blocks discarded exceptions entirely, making future
diagnosis hard. Add Log.w with the exception at each catch site so
unexpected failure modes (OOM on large bitmaps, truncated streams, etc.)
surface in Logcat during user-reported issues, while keeping the
crash-isolation behavior intact.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit 4b53931468feab72da1bbb8c9af5de6bf5a97038)
* 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