Closes#323
Also,
* Move upload status under the useUploadObservations hook for a single source
of truth
* Move useUploadObservations hook to ObsListBottomSheet component so children
can be simpler components
* Create a start upload function rather than relying on component mounting to
trigger uploads
* Add necessary cleanup: cleanup state in useUploadObservations and pull
ObsListBottomSheet from the DOM to release and saved state/references
This tries to make sure that it requests the basic set of fields, and tests to
make sure AddID returns an object that can be saved to Realm.
Also fixed a bug in which the user seemed to be required in DisplayTaxonName.
The problem has something to do with the unicode capitalization code that got
ported from the web. It seems like the JS engine in Android has a problem
with calling toUpperCase() on some unicode characters, and this gets around
that particular bug, plus one problem with a null check on a Realm
collection.
* Add different env files to gitignore; update react-native-config
* Set different staging and production .env files in Android
* Add different envfiles to podfile
* Use podfile to check for .env.production and .env.staging files
* Update README
* Update fastfile to automate distribution/rollout for iOS and Android
* v0.1.1+34
* Tweaks to try to get Android to use production API via Fastlane
* v0.1.1+35
* Point production to .env instead of .env.production
* v0.1.1+36
* Add different env files to gitignore; update react-native-config
* Set different staging and production .env files in Android
* Add different envfiles to podfile
* Use podfile to check for .env.production and .env.staging files
* Update README
* Point production to .env instead of .env.production
Primary bug was that requests to POST /v2/observation_photos were using the
obs serial ID instead of the obs UUID.
Another major problem was that uploads always quit before the last observation
when there were multiple observations to upload, which I address by changing
the way we set `allObsToUpload` in `useLocalObservations`.
* Use eslint rules to clean up useQuery code
* Code cleanup for useAuthenticatedMutation
* Add realm deletion and clear mock before each test in DeleteObservationDialog
* Check synced status before deleting observation remotely; closes#315
* Add tests for deleting observation from dialog
* Add jest settings for vscode; fix failing test from App.js
* Ignore vscode settings files
* Remove cached version of vscode settings file from git
* Update gitignore
* Add a test for canceling deletion
* Format exif date as string for upload; remove unused code for handling evidence upload errors; closes#311
* Fix tests; add a new test to check for string formatting