* Use same assemble task as detox does (plus arch restriction)
* Add detox mock env var
* Upload test apk as well
* Download test apk and run detox test script
* Adapt test step for detox
* Update e2e_android.yml
* Only run the tests that are passing
* Trigger e2e test on PRs to main
* Restrict to arch emulator uses
* Remove maestro env vars
* Add detox logs and screen recordings
* Re-arrange CLI args
* Remove artifacts config
* First test run without logs and screen records
* Only run signedOut test
* Remove the osx-specific detox lines
---------
Co-authored-by: Johannes Klein <17345891+jtklein@users.noreply.github.com>
* MOB-936 introduce new Android CI and Maestro smoke test
* Potential fix for code scanning alert no. 30: Workflow does not contain permissions
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* remove branch exception to cache write rule
* delete unused new share flow
* add run to reintroduce workflow
* switch to -m runner for build
* redisable run on push
* add comments and update readme for changes
---------
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* Update package.json
* Update AppDelegate.mm
* Update Podfile
* Update .gitignore
* Update link-inat-model-files.sh
* Add plist file to project
* Update project.pbxproj
* Add analytics package
* Update project.pbxproj
* Update PrivacyInfo.xcprivacy
* Basic screen tracking
* Basic button press logging to firebase
* Update package-lock.json
* Update Podfile.lock
* Add Android setup
* Update .gitignore
* Add analytics mock
* Ignore rubocop warning here
* Create GoogleService-Info.example.plist
* Create google-services.example.json
* Add instructions to set up Firebase configs
* Update e2e_ios.yml
* Update e2e_android.yml
* Better plural
* Use specific XCode version in e2e CI
* Update GoogleService-Info.example.plist
* Revert "Update GoogleService-Info.example.plist"
This reverts commit 0bc0ed4862.
* We need an actual real app id or we get a crash during app start
* My bad, we do need both files for building
* Also set API key
* Add comments
* Add comment
* Update Podfile.lock
* Revert "Use specific XCode version in e2e CI"
This reverts commit cbd63d1b5d.
* Remove default mode from debug mode
* Make sure tests with advanced options are fully out of default mode
* Add two simple tests to make sure correct screens show in default mode
* Show logged out empty observation screen before loading either MyObs screen
* Fix tests
* Fix tests
* Update e2e ios node module caching
* Update caching for node modules
* Modify cache node modules setup for CI
* Revert e2e signIn code
Container was needed to prevent permissions errors after Crowdin action adds
files as root, but that interfered with Ruby setup. This just uses chown to
do the same thing.
* fix: set up Ruby before linting in Github Actions
* chore: separate linting from fixing
Before we commit we want to fix as much as possible, but when we're checking a
pull request we're not going to commit anything so we want to know about all
the problems, including the fixable ones.
* Add Fastlate app store metadata files as Crowdin translation sources
* Update i18ncli.js to move and rename translations so Fastlane can use them
* Update `fastlane prod` so it prompts for public release notes and cues a new
release in the App Store that still requires the manual attachment of a
build
* Add `fastlane android upload_metadata` to upload metadata to Play Store
Closes#2248
---------
Co-authored-by: Ken-ichi <kenichi.ueda@gmail.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Github Actions and scripts to
* push strings.ftl to Crowdin when it changes
* pull translations from Crowdin every day and a PR should get made if there are changes
* FTL validation and normalization happens in the action and will prevent a PR from being created
Closes#2103Closes#2104
* Reorder hooks dependencies
* Return uri from take photo hook
* Keep state of photos added in this instance of the camera
* List2 TS
* INatIconButton TS
* Refactor useBackPress to show discard modal only if photos taken during this instance of the camera
* Remove newPhotoCount var
* TS refactors
* fetchUserLocation TS
* Increase timeout
* Fix error
* Hoist deletePhotoByUri
* Delete photos on discard
* Reorder code
* Set saving photo on checkmark press
Closes#1556
* Update snapshots
* Remove delete test
* Create StandardCamera.test.js
* Check if image is there before deletion
* Update react-native-share-menu+6.0.0.patch
* Update e2e_ios.yml
* Update some types
* Upgrade to RN 0.73 with upgrade helper
* Upgrade testing-library
* Comment announcements
* Comment out UserProfle test
* Mock function used to calculate masonry layout
* There should not be a modal here
* There is actually also no modal here
* Use View if SafeAreaView is undefined
* Replace fast image library that was failing tests because of not being maintained
* Clear mocks in useTaxon test
* Remove legacy deps from testing flow
* Snapshot update
* Revert "Snapshot update"
This reverts commit bca8b296df.
* Update package-lock.json
* Clean-start
* Update project.pbxproj
* Reenable test that failed before updating dependency
* Reenable test that failed because of dependencies
* Remove comment