9 Commits

Author SHA1 Message Date
Violet Caulfield
783a5144a0 Slimify JellifyTrack type (#644)
* 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
2025-11-05 18:50:47 -06:00
skalthoff
657e07d835 song quick action menu (#589)
* 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>
2025-11-05 12:39:21 -06:00
Violet Caulfield
2961ca39bb Introduction of Transcoding Support (#490)
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
2025-08-28 13:04:38 -05:00
Violet Caulfield
ec07b47b6f Player Rewrite (#484)
Rewrite player backend to be more efficient on CPU usage and memory usage
2025-08-25 14:32:34 -05:00
Violet Caulfield
8a191b91ab context sheet prefetching
unit tests

update rn screens
2025-08-20 15:02:52 -05:00
Violet Caulfield
1f3f7b78e3 rn 81 - audio normalization stuff 2025-08-12 15:29:22 -05:00
Violet Caulfield
0e6f1d2bae Bugfix/moving track in queue doesnt work (#458)
Fixing an issue where moving tracks in the queue didn't work or would truncate the queue
2025-07-24 18:43:38 -05:00
Violet Caulfield
fd50111344 Fix Add to Queue Issues (#457)
* 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
2025-07-24 09:23:16 -05:00
Violet Caulfield
b958cfe37b clean up jest folder between setup, contextual, and functional files (#451)
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
2025-07-22 09:17:42 -05:00