* fixes to query gctime
ios project updates
dependency updates
fix issue where long pressing on an item row wouldn't show the correct item
* 1 -> 2 column patreon member list
* make player buttons and scrubber bar snappier by removing unnecessary state subscriptions caused by the useMutation hook
* fix similar artists from being cutoff on the artist page
detect when we are running in the background to pause UI updates, dramatically reducing CPU load and therefore conserving battery life
update dependency packages, Pods
Migrate from `react-native-fast-image` to `react-native-nitro-image`
Images will now display a blurry placeholder while loading, and then animate into the full image when loaded
Introduces a redesign to the artist page that is easier to navigate, especially when there are many albums belonging to a given artist
---------
Co-authored-by: riteshshukla04 <riteshshukla2381@gmail.com>
* update Tanstack
fix issue where tracks didn't restore properly, meaning that playback on a cold start wasn't possible
styling changes to bottom tab bar icons, settings tab pages
network context optimization
removes hooks from player provider in lieu of nonreactive functions and data fetching. In testing this fixed the issue where the player provider was rerendering when the queue or the currently active track changed
Use a UUID to distinguish between DeviceProfiles, not the name. This means that media info from Jellyfin will be properly refetched if the user selects a different audio quality
mini player rendering optimization fixes, since we don't need that rerendering 4 times a second when updates are only distinguishable every whole second. Also brings some style fixes that reduces vertical height usage
update sentry sdk while we're in there doing debugging
Remove Home and Library Context Providers, move their data fetching functionality to reusable Tanstack Query hooks
Fix an issue playlists not showing up after creating
fix issue where the home screen didn't fully load on sign in
will use and store data retrieved from the server first, else will rely on a fetch
this addresses battery life issues, as these queries were firing network requests far more frequently and for each item, causing unnecessary network usage and overhead
update tanstack query to the latest while we're in there
Refactors haptic feedback usage to use a hook that will determine based on the user input if a haptic feedback event should be triggered. This fixes the issue where users would get haptic feedback even if the toggle for reducing it was enabled
Refactors login flow to use external hooks to clean up components and split display vs functional logic
Fixes DNS lookups in login flow. Now when a hostname connection fails, Jellify will properly perform a DNS lookup to determine the proper IP address of the Jellyfin server
This should address issues with users connecting over Tailscale or relying on a custom DNS entry configured locally
* update react navigation
Get alphabetical selector working for albums. Now an A-Z will appear to the right of the albums list and users can use that to get to a certain letter of albums in the list
Under the hood - also updates the dependencies for React Native and Tanstack Query
Make gesture in the alphabetical selector better, especially when tapping on a letter. When users tap on a letter now, they will be brought to that section of the artists list
Fix issue where Artists in the Library would show "0 Albums". This will now instead display the artist's genres instead
Adds Google Cast Speaker Support!
A new button is now present in the bottom left of the player screen. Pressing this button will prompt the user to pick a Cast enabled speaker. Once a speaker is selected, the player controls in Jellify will control the playback of the Cast speaker.