* stop buffering if a skip has been requested
* clean up eventing in player provider
fixes#833
* please refresh homescreen more often
* clean up context provider a bit
* smol optimizations
deduplicate player logic for previous and skip
* update CONTRIBUTING documentation
* add react-freeze to prevent unfocused screens from rerendering
* freeze similar until the albums have loaded
* remove unneeded hooks in a variety of played
* display a spinner when loading albums by an artist
* make add to playlist a bit faster and lazier
* move player hooks from provider folder since they aren't dependent on a context provider
* add ability to refresh an artist's page
* add ability to refresh albums too
* make adding a track to a playlist faster
* set query client data when a track is added to a playlist
* do the same trick for removing and reordering tracks from a playlist
* hide miniplayer if the big player is focused for reduced overhead
* fix some styling in the miniplayer
* Flatten Multiple Recently Played Tracks into Albums
Flattens multiple recent tracks from the same album into an album navigation card
This one is for you Quen <3
When 3 songs or more from an album are in the recently played section, their album will be rendered instead
* fix navigation in the "play it again" list
* fix playing back stuff
* fix playback indexes for recently played
* fixes to the recently played flashlist
* calm it down on animations lol
* make the item context fire less often
* dememoize and stylize
* make this warm context fire less
* animation changes
* smol animation fixes
* adjusting query staletimes
* make the suggestions query fire once a day
* fix jest
* remove useCallback hooks
* fix key usage here
* I don't think these are necessary since we have a separate query for handling user data
* just to compare
* de memoize some more stuff
* fix this button finally
* put this nitro adapter back in
* git blame pikachu
* bruh
* fix up, clean up
* dehookify
* dehookify more
* add track press
* remove some more imports
* styling consitency
* search page improvements
* smol fixes
* Slimify JellifyTrack type
Reduces the overall size of a JellifyTrack object in memory with the goal of lowing the overhead on serialization both to native and to zustand
* simplify addToQueue
fix issue where using the swipeable row would cause a crash
* Add swipe-to-queue functionality and related tests for track management
* Refactor imports to use runOnJS from react-native-worklets for consistency across components
* Implement SwipeableRow component for track management with swipe actions
* Add haptic feedback and improve swipe action handling in SwipeableRow component
* Enhance SwipeableRow component with quick action support for right swipe and refactor left swipe actions in ItemRow and Track components
* Update publish-beta.yml
* Add SwipeToSkip component for track navigation gestures in PlayerScreen
* Implement swipe gesture handling in SongInfo and PlayerScreen for track navigation
* Add swipe action settings and enhance SwipeableRow functionality
- Introduced left and right swipe action settings in the swipe settings store.
- Updated SwipeableRow to support quick action menus for left and right swipes.
- Enhanced ItemRow and Track components to utilize new swipe settings.
- Added GesturesTab for configuring swipe actions in settings.
- Improved PreferencesTab to allow users to select swipe actions.
* Enhance SwipeableRow and Track components with improved action handling and UI updates
* Refactor SwipeableRow integration and enhance swipe action configuration
* Refactor Track component to include prependElement prop for drag icon display in editing mode
* fix build
git blame violet
* Implement swipeable row management with close handlers and integrate into various components
* goddammit violet
* Add tests for SwipeableRow and swipeable row registry behavior
* fix maestro settings tab tests
---------
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Implements proper server negotation for performing transcoding
Depending on the user's platform (i.e. iOS, Android) and the desired quality specified in the settings, Jellify will playback a transcoded audio file from Jellyfin
This is helpful when the source audio file is not compatible with the user's device (i.e. playing back an ALAC encoded .M4A on Android) or if the user want to stream at a lower quality to save bandwidth
This also drives downloads in different qualities, meaning the download quality selector in the Settings is now working properly. When a track is downloaded, it will download at the quality selected by the user, and in a format compatible with the device
There is also a toggle in the "Player" Settings for displaying a badge in the player that shows the quality and container of the audio being played
* fix issue where items added to queue weren't always queued
* On Repeat and Recently Played Sections in CarPlay now load tracks into the queue and start playback
Clean up Jest and Maestro Folders
Reduction of the number of calls being made by components
Fix issue where a different track would display than the one that is currently playing
Update OTA dependency to fix an issue on iOS