* Remove console statements in production build
* Move uploadReducer into separate file
* Create reducer for creating obs; combine reducers
* Fixes with createObsReducer
* Move album, passes test states out of global context
* Bug fixes for ObsEdit flow
* Create photo gallery container
* Set accessibility test todo for PhotoGallery
* Improve FlashList performance MyObs
* Prevent flicker on modal close
* Create less rerenders in MyObservations
* Memoize drawer items for less rerendering
* Memoize custom tab bar
* Remove unused libraries and update snapshot
* Fix and prune dependencies
* Add AddObsModal tests
* Fix e2e test android by making comment confirm button visible
* Bugfix: navigation was broken when choosing a taxon on Suggestions
* Test for Suggestions navigation
The thorny part here was isolating the test Realm db. We should really have a
generalized strategy for this, but this works for this task.
* Add unit tests for Toolbar upload progress
* Tests and improvements to upload progress bars
* Fix tests
* Update type for showsExploreIcon
* Fix tests
* Clear realm before MyObs tests
Primarily adds designed layouts for permission gates (also referred to as permissions priming).
* moved permission gate business logic into a container
* use react-native-permissions exclusively
* Show PermissionGate as a modal
* Basic unit tests for PermissionGate
* Consistent content width on tablet, other minor style changes
* Allow PermissionGate to be used outside of nav hierarchy
* Use user location on Explore after getting permission
* Remove redundant 'always' location perm in ios
* Isolate current location button in the Map component, which uses location fetching functionality from react-native-maps instead of our own
* Updated cocoapods; matched INatIcon.ttf to sha1 hashes
* Update vision camera
* Breaking change: camera device hook
* Breaking change: replace reanimated function calls
* Update vision plugin
* New take photo options
* Use changed props
* Remove undocumented prop
* Update test mocks for vision camera libraries
* Replace vision camera device orientation strings
* Add explanations to a central file for patches needed with the vision camera
* Some more patches
* Use drag and drop to let a user change photo positions
* Fix tests
* Add test for EvidenceList
* Fix tests
* Fix state for no evidence / no observation photos
* Add unit tests for empty list and displaying obs photos
* Obscuration cell and accuracy circle on ObsDetail map
* DetailsMap view
* Copy and share location from DetailsMap
* Patched react-native-maps to address bug with showsUserLocation
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Removed sign in test since the obs creation test already signs in
* Renamed two remaining test files to signedIn and signedOut to reflect the
different conditions that they test
* Add a check to wait for comments count component after uploading an observation
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
The substantive bit here is using a test ID instead of a string to match an
element on My Observations. Rotating INatIconButton isn't necessary but it
seemed reusable to me and could easily be mocked if it becomes a problem due
to infinite animation.
* Refactor prop name
* Use Text component with Whitney Medium for zoom text
* Use multiplication sign in zoom button
* Update snapshots to new prop handling
* Refactor device and other props into a container component
* Use neutral zoom position as starting point
* Show zoom button not for single lens devices
* Cycle through neutralZoom maxZoom and minZoom
* when the device has only one physical lens it should start in the min zoom