Technically this means we could now support geomodel on iOS. We need additional work though to add the model to the app and connect to the frame processor.
* 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>
Note that offsetting the onboarding images ended up being a bit hard. We're
mostly doing so with a cropped version of one of the images.
Closes#1906
Also tried to de-flake some tests:
* Use fake timers when possible
* Ensure time travel helper doesn't un-fake our timers
* Wait for time travel helper to finish so changes don't happen outside of
act
* Stop mocking useCurrentUser in integration tests; that's app code and should
not be mocked when integrating all parts of the app; instead use signIn /
signOut helpers
* Remove unnecessary direct uses of act()
* Mocked some inatjs calls to prevent React Query complaints about undefined
query return values
* Close onboarding before all e2e tests
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Use a wrapper around Text for all typography components that sets
app-specific defaults, allowing default RTL to work
* feat: make iOS permission prompt text translatable
* fix: allow RTL layout of char limit on text input bottom sheet
* fix: allow RTL photo carousel on ObsDetails and TaxonDetails
Removes react-native-reanimated-carousel, which needs to be patched to support
RTL and maybe wasn't providing anything beyond FlatList for us anyway.
InfoPlist.xcstrings will not be automatically updated on Crowdin sync pending
a Crowdin bug.
Work toward #2099
* Add a cameraZoomRange default
* Small detox version bump
* Add a mocked camera with a take photo button
* An e2e mock for the computer vision plugin predicting a frame
* Mock taking a photo by loading the first photo from the CameraRoll
Closes#1981
* Refactor SliderControl into own file, migrate to TS
* Update vision plugin to customize a taxonomy rollup cutoff threshold
A number of 0.01 means all nodes with a cv score lower than that are excluded from calculating the top predictions. Thereby saving resourced on computing those.
* Enable setting of threshold via debug menu
The threshold defaults to 0.0, i.e. no nodes are filtered out, because score is always positive.
* Update vision plugin
* More appropriate range of values
* Disable animations on tab bar screens
* Fade in pages accessible from the tab bar
* Add fade in view to stack navigator screens
* Use time travel to step through frames of animation for SoundRecorder
* Use time travel to fix all tests with fade in navigation
* Nav fix
* Switch to using a fork of react-native-share-menu since we have multiple
divergences from the main repo and it seems to be abandoned
* Fork supports sharing in iOS 18
* On user profile screen, if routed here with login as param search for user id
* UserText to TS
* Add linkify mention plugin dependency
* Rely on plugin for mention parsing
* Adjust rel
* Add a title attribute to mentions only
* Navigate to profile screen for mentions
* Use props
* Fix some types
* We dont really need this plugin if we check for href includes people link
* Replace user search api call with fetch by login
* Push new profiles on top of the navigation stack every time
* Add error strings
* If there is no user found for this id show error
This can happen I assume when a user changes the login but comments are not updated.
* Use this plugin
* Remove log
* Only react to anchors that have mention as a title
* Update types
* Another inferred type
* Write an integration test for PhotoImport; closes#1430
* Add test for photo importer -> group photos -> obs edit flow
* Remove global image-picker mock
* stop asking for PHOTO LIBRARY permission before import, b/c it's not
necessary for importing
* use a forked version of react-native-cameraroll that allows us to write
location metadata to newly-created photos, which was the really important
thing we were using the PHOTO LIBRARY permission for
Closes#1612