Releases: inaturalist/SeekReactNative
Releases · inaturalist/SeekReactNative
v2.10.0
Added
- Seek checks for production model/taxonomy files when launching Seek, then checks for sample model/taxonomy files if production files are unavailable, making setup simpler for external developers
- Sinhala language supported
Android
- Plant filter feature allows users to toggle a plant filter on or off, making it easier for users to get the computer vision results they desire (particularly birds and insects, which tend to have plants in the background)
- Upgrade
react-native-inat-camera
to fix the latest Redmi/Xiaomi crash - Remove System Alert Window permission (allows drawing over other apps) in production builds, since this is only used for React Native development
- Fix location permissions hook to ensure that new users will see Species Nearby when they first set location permissions on
Fixed
- Seek generates Wikipedia links for non-English locales in-app, resolving issue 258
- Added accessibility content labels and increased touchable areas on Settings screen and Match screen back button
Updated
- Began performance audit to limit number of unnecessary re-renders (Pickers and FlatLists)
- Use latest API for SafeAreaView everywhere in Seek, making performance more consistent and less jittery
v2.9.1
Added
- Support for Basque language
- New Seek AR Camera photos now save to a Seek camera album (similar to photos taken on Instagram, Twitter, etc.)
- Users who sign up for iNaturalist in Seek now have a
time_zone
assigned to their account
Fixed
- Location picker only uses state from Context and does not update local state; this should fix issue #249
- Added a line break to German translation for September challenge mission that was causing a crash
- Users with location off can use the location picker map in posting to iNat (set San Francisco instead of user location as center point)
Android
- Another fix for crashes on Redmi & Xiaomi devices due to input session null (upgraded
react-native-inat-camera
) - Remove Google high accuracy popup on older devices with GPS on but accuracy off; update Species Nearby error text to reflect that the settings must be changed for this functionality to work
- Bumped
play-services-location
API to 17.0.0
Updates
- Began implementing Jest unit and component testing with React Native Testing Library
v2.9.0
Added
- MyObservations search bar allows users to filter observations by common name and scientific name
- Settings: toggle seasonality chart on SpeciesDetail screen to show either local or global seasonality (only shows if a user has location turned on)
- Users can see a checkbox letting them know which taxa they have already seen on all horizontal scrolls (i.e. Species Nearby, Similar Species, Species Nearby on common ancestor Match Screen)
- iNat card shows on Home Screen when a user has no more challenges and has not logged into iNat
- Support for three new languages (Mexican Spanish, Brazilian Portuguese, Polish)
Fixed
- Updated design for Challenge Details when a mission has sub-bullets
Android
- Fix for crashes on Redmi & Xiaomi devices due to input session null (upgraded
react-native-inat-camera
)
v2.8.3
Added
- Users can see taxonomy tree offline on SpeciesDetails after identifying a new photo
Fixed
- Check that
speciesSeenImage
is not undefined in FlagModal or Match Modals - Update padding around back arrows
- ChallengeScreen does not automatically scroll to top to preserve state
Android
- Fix for crashes on Redmi devices due to input session null (upgraded
react-native-inat-camera
)
v2.8.2
Added
- August challenge
- Romanian language and common names
- Challenge Details screen shows Species Observed section so users can see which species they have seen which count towards the challenge; mission section has new formatting for long bullet point lists
- Signup flow includes checkboxes that users must check to create an account (1. ToS, PP, Community Guidelines and 2. data storage); added recommended text next to license photos to make clear that this is optional
Fixed
- Challenge toasts navigate to Challenge Details screen instead of the generic Challenges Screen
- UI tweaks on Replace Photo modal (seen date) and Species Nearby This Taxon component (empty state)
- OfflineResults fetches user location when there is a common ancestor (in addition to match), since location details are needed for Species Nearby This Taxon on the ancestor match screen
Updated
- Converted all png assets into webp files to reduce app size
- Added Terms of Service and Privacy Policy to About screen (for logged in users), and made them easier to maintain with an HTML formatting library
- Reformatted About section of SpeciesDetail screen to render Wikipedia blurb in the HTML formatter, which makes the scientific name show up in italics
- Replacing a photo also updates the latitude and longitude associated with the observation
Changed
- Login screens are nested under the RootStack instead of in a separate LoginStack, as recommended in the React Navigation 5.x documentation (less nested screens = better performance)
v2.8.1
Updated
- Offline Results screen uses
useReducer
and also shows a black background on the FullLoadingScreen whileimage.uri
is still loading - Flipped the direction of arrows and back arrows when user has a RTL language enabled for better usability
Fixed
- Horizontal scrolling (Onboarding Screens, Species Photos in Species Detail, iNat Stats photos, and Badge Modal in Achievements) only uses an index instead of an offset, making state changes more accurate when users press the arrows or scroll. This should fix a bug where users could sometimes scroll to an index that was outside of the list length
speciesSeenImage
is now null instead of undefined when user navigates from AR camera while offline- Posting to iNaturalist button shows up even if photo has no location metadata
- Level Modal only pops up once, as expected, on Match Screen
Android
- Upgraded
react-native-inat-camera
to fix bug where camera wasn't loading on some Xiaomi devices due to a null sorted list - Fixed a crash on the Species Detail screen where the Species Map would crash if a region didn't have a longitude (before, Seek was only explicitly checking for latitude)
- Updated app icon to work on devices < 8.0 with appropriate background and foreground layers. App icons can now be round or square
iOS
- Fixed issue where iOS wasn't prompting for user location permissions since the switch to
react-native-geolocation-services
library - When gallery images fetch results from the web CV API, common ancestor results are now rolled up to the nearest primary rank (i.e. class, order, family, genus)
v2.8.0
Added
- Users can replace the photo for a species they re-sighted using the Replace Photo Modal on the Match Screen; this includes a new field in the PhotoRealm to track when a user last updated the photo
- Users can toggle the AR camera to automatically take photos when the prediction rank reaches species
- July challenge
Updated
- Match screen uses Hooks for better performance and maintainability; removed
@react-navigation/compat
library since the transition to React Nativation 5.x is now complete
Fixed
- Flag modal shows a single centered photo when user is offline
v2.7.0
Updated
- Species Detail screen uses hooks for faster loading and to ensure that API calls are not triggered while
taxon_id
is null (using custom hooks for fetching truncated user location and Android permissions in Species Detail screen) - Posting to iNaturalist screen uses hooks
- Gallery Screen loads with
useReducer
instead of state, which results in less state changes and will help us identify the issue some iOS users are having with the album picker and camera roll loading properly
Added
- Users can choose language within Seek (in Settings) instead of only having the option to use their device's default language
- AR camera has additional error messages related to the
takePhoto
flow, which will help us resolve the issue some iOS users are having while taking photos - Arabic language support
Fixed
- Switched to
react-native-geolocation-services
library for geolocation requests in order to enable high accuracy on Android in posting to iNaturalist flow. Since this will not work on all Android devices, Seek first requests GPS location and then falls back to a wifi location - UI updates on Settings screen
Android
- App launcher icon is now adaptive
v2.6.1
Updated
- Upgraded RN cameraroll to version 1.7.2, which uses a new save to camera roll method and includes a fix for "can't find external storage" error on some Android devices
- Revamped navigation by bringing AR Camera and screens which don't need to be nested within the drawer navigator into the RootStack for better performance
- Offline and Online results screens were rewritten into Hooks
Fixed
- Added an
onEndReachedThreshold
to Gallery FlatList for less rendering upfront; only fetch album names if albums are not in state
Added
- Quick action for Seek AR Camera to allow users to more quickly access the camera
- Row in Achievements screen to display June, July, and Aug challenge placeholders
Android
- Fixes for a couple null pointer errors mostly affecting Galaxy and Moto devices
- Donation to iNaturalist link for logged in users under Settings screen (not available on iOS due to Apple Pay requirement)
v2.6.0
Updated
- Observation list only fetches new observations when user navigates from Achievements or SideMenu, making it easier for users to keep sections toggled and check out different SpeciesDetail screens
- Notifications have three states, similar to new iNat notifications flow: 1) un-viewed and untapped 2) viewed and untapped and 3) viewed and tapped
- User photo is loaded from a custom hook in both Observations List and Species Detail Photos (which makes loading faster & more uniform)
getAlbums
loads from thereact-native-cameraroll
library; removed thereact-native-gallery-manager
library
Fixed
- Added gallery permissions error back in on iOS
- i18n pluralized strings now contain "plural" in the name of the string
Added
- New type of notification for a new challenge (within the same month)
- June challenge
Android
- Added latest computer vision model and corresponding taxon mapping