* docs: add commit style and translation source guidance
* docs: specify that ppl should work on unassigned issues; separate and update getting started from submitting
* Use system locale on install
* Check for system locale when app comes to foreground (required in Android
b/c app doesn't get restarted when system locale changes)
* Create a constant of SUPPORTED_LOCALES in loadTranslations.js
* Restart app on sign out
* Use existing transaction when writing to Realm if available (might also
consider an approach that waits for the existing transaction to complete)
* Make value returned by useCurrentUser actually reactive
Closes#2243
* Add screen with list of projects an observation belongs to
* Test whether projects are displayed in ObsDetailsProjects; test project count in ProjectSection
* Catch and squelch "Network request failed" errors that happen during logging itself (#1639)
* Log around RNSI access to resolve when/where those errors occur (#1639)
* Log around JWT retrieval to resolve when/where JWT missing errors occur (#2155)
* Failing Jest test: Skip id button unmounted as soon as you try to press it
* fix: memoize SuggestionsFooter to prevent dismounts and stabilize tests
* test: wait for elements to be visible in PhotoDeletion test
Also stabilizes several other dependencies, and uses findBy instead of queryBy
to ensure tests can find the skip ID button even it takes a second to
render.
Closes#2094
---------
Co-authored-by: Amanda Bullington <albullington@gmail.com>
* 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
Closing the add-obs help text, only closes the help text + never shows up again
Close#2039
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
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.
* 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
* 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
* Replaced redundant messages
* Use the word storage instead of memory for accuracy
* Note for translators linking to Fluent docs
* More context comments
* Show alert when device full and user takes photo and when app lauch
* change min device storage limit to 200MB
* add storage full alert to AI camera
* Hook for device storage full
* Changes requested
* Show device stoarge full alert only once on app start
* ActivityHeader was not listing category
* ActivityHeader lacked space before date
* Combined duplicate strings, used more descriptive keys and comments
* Relative dates were showing fractional weeks
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