* Save TaxonPhoto to realm; display taxon on match screen
* Code tweaks
* Add match screen to navigation after AI camera in debug/default mode
* Fix test and refactor
* Fix issue with infinite renders in useLayoutPrefs
* Update vision-plugin
* useOfflineSuggestion TS
* Use location for prediction from file
* Remove log
* Use plugin function to lookup location and elevation based on h3 cells
* taxonomyRollupCutoff is now done in the plugin on basis of the tops score for a frame
* Fix wrong commit reference. Now references main branch
* Fix has location check to account for 0.0 locations
* Only prop in lat and long
* Add explanation
* Fix: Import vision-plugin function from wrapper file
* Add jest mock for new plugin function
* stop resetting map zoom level on every pinch in Android; state for the region needed to be introduced and updated after each gesture (closes#2529)
* zoom to current location when current location button and current location is not currently in the viewable map area; a callback needed to be called explicitly after animateToRegion() (closes#2555)
* zoom and pan the map when a place search result is chosen in Android; a state for the region needed to be introduced and a callback needed to be called explicitly after animateToRegion() (closes#2593)
* Add functionality for advanced iNaturalist mode
* Fix language settings test by toggling advanced mode on
* Fix e2e tests by adding advanced user toggle
* Fix more tests in Settings with advanced toggle
* feat: add interface mode preference to Settings
* Refactor existing layout preferences so they are all persisted
* Made a new namespace within the layout slice so that all values there will
get persisted without having to add stuff to the persistence code AND we
avoid namespace collisions
* Wrapped layout slice getters and setters in a hook to provide descriptive
names without modifying the underlying values
* Remove duplicate testID that was causing e2e to fail
---------
Co-authored-by: Amanda Bullington <albullington@gmail.com>
* Create ObsDetailsDefaultMode and rearrange items on top of screen
* Move activity, details, and more into three different sections instead of tabs
* Styling cleanup; change Activity name to Community
* Fix scroll to activity item from Notifications
* Add ObsDetailsDefaultMode unit tests
* Show kebab menu on other users' observations
* fixes issues where side by side button text is cut off in different languages and large font sizes.
Refactor to use ButtonBar in all places with side by side buttons. Truncates header in ObsEdit when language text exeeds space to not push kebab menu off screen. Closes#2500.
* update snapshots
* clean up BottomButtons.tsx
* Add sentinel file creation, logging, and deletion logic to AICamera
* Log to server and delete sentinel files after logged; fix location fetch logging
* Use logger.error, not logger.debug, to log to grafana
* Fix#2212 - use physical volume buttons to capture photo
* Fixed tests (mocking VolumeManager)
* Fixed tests (mocking VolumeManager)
* #2212 - physical volume buttons for camera capture - also in AI camera
* #2212 - additional fixes for AI camera
* Update pods
* Update pods
---------
Co-authored-by: Amanda Bullington <albullington@gmail.com>
* Support Sign in with Apple on iOS, w/o design
* Typescript conversions
* Add authenticateUserByAssertion that should be usable w/ Google OAuth-based auth
Closes#583