* Don't require TS extensions in imports
* Resolve all import extension errors
* Remove file extension from import paths used in mocks
* Remove .d of type definition file paths
* Remove .d of type definition file and import as type
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* Open more options on long press
* Add tests for long press
* Rearranging Settings screen with new layout
* Add toggle for advanced settings in layout slice; fix default mode toggle
* Update settings with navigation flows
* Fix tests
* Change power mode switch for e2e test
* Fix settings test for green button toggle
* Fix advanced user toggle in e2e test (which hides pivot cards)
* Changes based on design convo; test fixes
* Fix e2e tests
* Follow user flow chart and update nav accordingly
* Rename function
* Fix test
* Can be null so check for false only
* Little less spacing between radio button rows
* Minor UI updates
* Remove check for previous setting in UI
* This is no longer used anywhere
* Update AICamera.test.js
* Update AICamera.test.js
* Update AICamera.test.js
* Update Suggestions.test.js
* Update Settings.test.js
* Update LanguageSettings.test.js
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* Update user-facing terminology from gallery to photo library
* Update terminology for devs to make the user-facing change easier to remember
* Update snapshots
We added the spacer in #2133 to make all of ObsEdit scrollable, but that just
creates whitespace no one can get rid of. This adjusts the button bar so it
is regularly positioned at the bottom.
* Change black text to dark gray text
* Start simplifying to a single color scheme
* Remove custom paper theme colors
* More theme cleanup
* Styling specifically for RNPaper components
* Update snapshots to use hex colors, not rbga
* Use custom FlashList with auto layout disabled in GroupPhotos
* Fixes for grid view in RTL mode
* Fix styling for PhotoCount in RTL
* Standardize ExploreSearchHeader; use BackButton for RTL support
* Styling fixes for filters search header
* Separate navigator into two main stacks: tab and no tab
* Organize screen options
* Preserve separate navigator for Login
* Restore login navigation
* Fix navigation/test for advanced users
The problem seemed to be reverse geocoding the coordinates for each
observation before moving on to ObsEdit, i.e. when that threw an exception it
kind of silently cause Promise.all not to resolve... which is not supposed to
happen for a few reasons, foremost among them that we were catching the error
and returning null instead. So I'm still confused about why exactly this was
happening.
Regardless, geocoding is potentially slow and buggy, so IMO it's better to do
it on ObsEdit than in the provider, and only do it when we need it, i.e. when
the user is actually looking at the obs.
Some other minor changes
* Show loading indicator on GroupPhotos button while creating obs
* fetchPlaceName performs a null check on coords before making a network
request to test connectivity
* More precise error handling
* Removed some redundant await statements
* Mocked react-native-geocoder-reborn in tests
Closes#857
* 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
* Move onboarding into list header
* Use FlashList for group photos list
* Use INatIconButton in GroupPhotos
* Add opacity to disabled INatIconButton
* Calculate number of columns and item width based on screen width
* Refactor of icon button
* Add some padding border to cope with buttons
* Add a plus button to add photos
* Minor style fixes; allow some header options to work with ContextHeader
* Refactor nested ternary
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Make sure GroupPhotos resets state of what is displayed; closes#636
* Allow user to return to GroupPhotos from ObsEdit; save grouped state in ObsEditProvider for easy cleanup
This uses an npm package to convert SVGs into an icon font, allowing us to
not step on each others' toes when adding new icons in branches and
simplifying the icon addition process. It also allows us to track changes to
the icons, and embed them directly as SVGs if we need to.
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* Create tab navigator
* Add add obs button
* lint
* Wire up routes
* Fix login
* Add keys
* Fix delayed state bug
* Lint
* space parens
* Add details to tab nav
* Lint
* re-add back btn
* Rebase off main
* Fix format
* Fix back button
* Remove unused change
* Replace lowercase folder
* I don't know why that is needed
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* #144 - when creating new observation, import first photo EXIF data for location + date
* #144 - usePhotoExif - read partial file data; added testing for usePhotoExif hook
* #144 - import photo exif - use our own react-native-exif-reader library + other fixes (not to automatically fetch location, save original uri)
* Do not save original photo URI in DB, only pass it along to obs edit screen for EXIF parsing
* Upgraded testing library version to support renderHook
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Use react navigation header for photo gallery / album picker
* Use react navigation for group photos header
* Use react nav header for Add ID
* Use react navigation header for ObsEdit
* Fix tests by mocking navigation setOptions
* Show all buttons in camera options modal; remove header from StandardCamera
* Only show obs edit header when observations have loaded
Closes#226
* Fix for chosen photos persisting after cancelling new obs, closes#204
* Clear observations when a user backs out of ObsEdit screen
* Add android back handler condition to make sure a user can't back out of ObsEdit & see old observations
* Make sure local observations are properly updated in ObsEdit
* Create subcomponents for ObsEditHeader and AddEvidenceModal
* Fix add evidence functionality; separate ObsEdit into smaller components; rename UploadProvider
* Add disabled check for gallery photos previously selected; fix number of imports in add evidence
* Move fetch location into relevant component; ideally this makes ObsEdit stop rerendering every second
* Fix for android build in build.gradle
* Styling fix for photo gallery grid of images
* Renaming obs to observation, bulk uploader to photo importer, upload provider back to obs edit provider
* Update pods and rename test directory to PhotoImporter
Also closes#218