* Bump vision-camera
* Refactor patch
* Move patched orientation into patch functions file
* Update react-native-vision-camera+3.4.1.patch
* Switch to MacOS 13 runner
Vision camera requires XCode 15 to compile.
* Add step to specify XCode 15
* Higher level of logging
* Increase test timeout
* Add comment
* Remove navigation to obs without evidence for signed out user
* Patch for location permission not working on iOS
* Increase setup timeout
* Increase some more timeouts
* Revert back to less logging in CI
* Does it have to do with timeouts?
* Trace log level
* Update README.md
* Disable Homebrew’s auto update and install cleanup
* Setup ruby step
* Install pods only if not cached
* Revert "Install pods only if not cached"
This reverts commit 42a2ea02f9.
* Run simulator in headless mode, record all logs
* Increase timeouts again
* Revert "Remove navigation to obs without evidence for signed out user"
This reverts commit 2b4718f5ce.
* Add boolean to run use effect only once
* Did merge wrong code
* There is one more permission gate when entering obs edit now
* Add permission gate dismissal to signed out user test
* Add comment, rename state
* Lower action timeout
* Update react-native-vision-camera to 3.6, update Reanimated to v3 (#838)
* Bump camera and plugin
* Upgrade Reanimated and libs using it
* Update vision-camera mock
* Remove superfluous patch
* Fix type
* Add mocks for e2e tests because bottom sheet does not work on AOSP
* Update package-lock.json
* Update vision camera
* Bump vision camera
* Update vision camera patch version
* Remove superfluous patch
* Update vision camera
* Update vision-camera and plugin
* Use latest vision plugin = rebased v3
* Run npm clean-start
* No longer needed
* Duplicate prop
* Switch back to v3 code
* Upgrading Detox fixes issue with iOS tests failing
Because of previous lack of permissions.
* Update to latest detox version
* Npm i force
* Vision 3 e2e testing, (#1126)
* Remove jest detox config
* Revert e2e timeout increase
* Revert jest config timeout
* Use macos 14 runner which has XCode 15 per default
* Use latest bottom sheet
* Revert "Use latest bottom sheet"
This reverts commit c66cd09838.
* Adding comma back in
* Remove spaces
* Use latest vision-camera and plugin
* Use release version of vision-camera
* Remove force flag
* Update react-native-worklets-core
* Upgrade reanimated
* Update babel.config to allow nested worklets
* Run frame processor async
* Remove enableGpuBuffers flag
* Remove no longer needed comment
* Update comments about version
* Update vision-camera and plugin
* Code format
* Rename param
* Use latest-plugin
* Remove fps param from camera view
* Change confidenceThreshold to number
* API change for results structure
* Refactor fps to be checked inside hook
As of vision-camera 3.9.1 our camera feed is stuttering when calling the runAtTargetFps function inside the useFrameProcessor hook.
So, what I did here is to track the time and skip the frames that are received before the target fps is reached.
* Remove updates of non-camera related
* Update comment
* Code format
* Snapshot updates
* Revert changes to ios e2e
* Add a log for the average time it takes a frame to be processed
* Use release version of plugin
* Add a patch for runAsync to work in release builds
* Update react-native-worklets-core to 0.4.0
* Use latest plugin version
* Add a shift method to worklet arrays
* Use latest vision-plugin
This makes use of .shift() in worklet array and depends on the previous patch.
* Set result timestamp and show age of result in debug mode
* Fix an error with timestamp being undefined
* Remove log
* Use latest vision plugin
* Change result timestamp to pink
* Comment
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Delete local & remote observations on MyObs; show progress
* Update tests & add test for delete hook
* Fix test failures
* Add tests for deletion strings in Toolbar; add test for multiple deletion
* Clear deletion text on toolbar when user navigates away from MyObs
* Add a check in e2e test to make sure observation was deleted
* Switch the order of share manager or linking manager
* Maestro e2e test for sharing into app on iOS
* Update maestro flow
* Maestro e2e test to check if links into the app work
* Maestro e2e test android share into app
* Move upload functionality into MyObservations, out of ObsEditProvider
* Move upload into helper function
* Fixes for ObsEdit -> MyObs flow
* Progress on making uploads faster
* Update performance test
* Fix toolbar progress
* Fix tests for observation upload flow
* Fixes from code review; fix e2e test for signed in user by bypassing permission gate
* Hide sign up test when keyboard visible; fixes Android e2e test
* Comment out permissions code in e2e test to see if it's only needed locally
* Comment out permissions gate for signed out user iOS
* Use focused hook to stop ObsEdit from rerendering while user is on other screens
* Restore reassure in branch
* e2e code cleanup
* 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.
* Update comment
* Scaffold for e2e test
* Upload observation
* Update the observation by adding a comment
* Checking that comment appears
* Delete the observation
* Check that the comment is added succesfully
* Do not invalidate searchObservations query cache after observation deletion
* Update test IDs
* Script to check if e2e test user has observations
* Log out api response
* Increase default test timeout
* Update side menu
* UI for side menu
* Add placeholder components; adjust for small screen sizes
* Code cleanup
* Update snapshots
* Query for second username element in e2e test
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* WIP: very rough start at pulling state up into a container for MyObservations
I made a parallel MyObservations component and container so ObservationViews
can still be used as a working reference, but the ultimate goal here is to
focus MyObservations on presentation, and pull state and other business logic
up into a container component. This should make MyObservations a bit more
testable and clean up a very large and confusing file.
I'm also trying to move away from a generalized representation of observations
on all screens, which is why I want to name it MyObservations and not
ObservationViews. MyObservations has a lot of unique functionality that we
won't need elsewhere, and we can modularize stuff when we need to use it in
multiple places.
* UI updates for header, toolbar, empty component
* Add pressable component and login sheet
* UI improvements; get infinite scroll working
* UI improvements & additions for empty screen & bottom sheet
* Show login sheet when a user presses sync but is not logged in
* Fix backdrop close for AddObsModal
* Move UI elements to MyObservations
* Fix unit tests for MyObservations
* Fix for login sheet
* Set header height to a different height on Android to account for safe area
* Fix failing tests & rerender of user icon in navbar
* Remove scientific name from DisplayTaxonName to match Figma UI
* Set height above toolbar dynamically for sticky toolbar
* Add prop to display or hide second name in DisplayTaxonName
* Use RN styling to style grid view for MyObs flatlist
* Fix failing project obs test
* Create separate ToolbarContainer to separate presentation from logic; fix upload count
* Merge main and show onboarding based on user's total obs count
* Fix display taxon name styling and remove header fade on iOS
* Add header text for 0 observations, logged out state
* Update infinite scroll to 50 obs at a time; make loading wheel show faster
* Add uploaded status to toolbar
* Apply bandaid fix to stop Android from crashing on start
* Start adding new icons to MyObs
* Add circular progress; show upload icons at correct times during upload
* Add disabled props for accessibility state
* Fix tests; update snapshots
* Code cleanup
* Code cleanup & add inaturalist icon
* Fix merge conflict and add icon
* Add inaturalist icon
* Fix navigation to obs list and toolbar status when upload completes
* Move showLoginSheet code to MyObsContainer
* Fix toolbar status text
* Sync toolbar with upload status progress
* Clear toolbar after nav
* Tests passing
* Update e2e test
* Target login button in e2e tests
* Fix failing e2e tests with new testID for login button
* Update button snapshot to include new testID
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Add e2e test to log in a test user
* Add config variables to .env.example
* Add e2e user credentials to .env created for workflow
* Fix newline typo in workflow file
* Change ios e2e to run only on push to main as well
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>