89 Commits

Author SHA1 Message Date
skalthoff
238dd0340a Fixing Le Bugers: UI Polish & Performance Tuning (#724)
* fix: update sort icon name and label in ArtistTabBar

* fix: optimize image URL generation and improve performance in Playlists and Tracks components

* homescreen improvements

* deduplicate tracks in FrequentlyPlayedTracks and RecentlyPlayed components

* enhance storage management with versioning and slimmed track persistence

* refactor HorizontalCardList to allow customizable estimatedItemSize

* update sort button label in ArtistTabBar for clarity

* refactor media info fetching and improve search debounce logic

* refactor navigation parameters in artist and track components for simplicity

* refactor PlayPauseButton to manage optimistic UI state and improve playback handling

* Cut queue remap churn, speed lyric lookup, clean cast listener cleanup, and avoid redundant HEADs on downloads

* Revert "Cut queue remap churn, speed lyric lookup, clean cast listener cleanup, and avoid redundant HEADs on downloads"

This reverts commit 1c63b748b6.

* Cut queue remap churn, speed lyric lookup, clean cast listener cleanup, and avoid redundant HEADs on downloads

* Revert "Cut queue remap churn, speed lyric lookup, clean cast listener cleanup, and avoid redundant HEADs on downloads"

This reverts commit f9e0e82e57.

* Reapply "Cut queue remap churn, speed lyric lookup, clean cast listener cleanup, and avoid redundant HEADs on downloads"

This reverts commit 6710d3404c.

* Update project configuration: refine build phases, adjust code signing identity, and format flags

* Fix TypeScript errors in Search component and improve playback state handler in Player queries

* Refactor ItemRow component to accept queueName prop and update queue handling

* lot's o fixes to item cards and item rows

* memoize tracks component

* fix jest

* simplify navigation in FrequentArtists, FrequentlyPlayedTracks, RecentArtists, and RecentlyPlayed components

* Update axios version and enhance image handling options in components

* Enhance ItemImage component with imageOptions for better image handling in PlayerHeader and Miniplayer

* moves buffers to player config

---------

Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Co-authored-by: Violet Caulfield <violet@cosmonautical.cloud>
2025-12-03 20:07:30 -06:00
skalthoff
86788ba919 add appKilledPlaybackBehavior to stop playback and remove notification on app kill (#720)
* add appKilledPlaybackBehavior to stop playback and remove notification on app kill

* add additional RNTP mocks

---------

Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2025-11-24 20:26:05 -06:00
Ritesh Shukla
ca46bc2054 Make violet suck less (#708)
making the queue list items more easily dragged
2025-11-23 08:40:07 -06:00
skalthoff
b378799d55 add OLED theme support and update theme settings (#611) 2025-10-28 22:42:36 -07:00
Violet Caulfield
b5104ef76f Dep Updates, Smol Bug Fixes (#550)
* 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
2025-10-05 13:25:39 -05:00
Violet Caulfield
74efea0ebc Settings refactor to zustand + MMKV (#495)
*Mostly* backend work in the settings tab

Migrate settings context over to MMKV backed Zustand store. Update hooks as needed

Update info tab styling - making the patreon patrons list it's own section. A perfect time to remind everyone you can sponsor Jellify on GitHub or Patreon :)

Joining the patreon as a paid member will get your name displayed in the info area of the settings tab
2025-08-28 22:24:53 -05: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
1d0641f2ae lots of context prefetching and favorites prefetching improvements 2025-08-20 21:33:04 -05:00
Violet Caulfield
8a191b91ab context sheet prefetching
unit tests

update rn screens
2025-08-20 15:02:52 -05:00
Violet Caulfield
0d66f59798 restore progress update event interval 2025-08-18 02:57:02 -05:00
Violet Caulfield
05966f2d60 gctime fix 2025-08-17 12:31:40 -05:00
Violet Caulfield
5a723bcefe getting context sheet navigation to work 2025-08-15 11:32:13 -05:00
Violet Caulfield
b6eda3ee8a player fixes, test fixes 2025-08-14 09:39:49 -05:00
Violet Caulfield
aefcef4aed navigation stack refactor 2025-08-14 06:29:01 -05:00
Violet Caulfield
8ee7c93f22 player context selector 2025-08-12 20:24:17 -05:00
Violet Caulfield
a9d103b3b3 Fix TextTickers, MP3 Playback Fixes, Fix Blurred Background in Player (Android), Audio Normalization (#471)
Deps updates, fixes text tickers not ticking

Fix blurred background on android

fix library selector being disabled when multiple libraries do exist

Fix issue where mp3 containers ('mpeg') would crash the app

* update readme, fix maestro
2025-08-09 12:32:09 -05:00
Violet Caulfield
9df5b0aa7f add library flow, organize login files (#456) 2025-07-24 03:45:25 -05:00
Violet Caulfield
2f3f290850 Style Enhancements, Dependency Upgrades (#437)
update deps

small styling changes for text

make password a secure text entry always

fix signOut, update maestro tests
2025-07-13 14:04:18 -05:00
Violet Caulfield
3a7fe51e8f 0.13.0 (#428)
* Gapless playback (#372)

* Add gapless playback prefetch logic for next track

* Enhance player context to support multiple track downloads and prevent redundant prefetching

* Add download quality settings and integrate into track mapping and network contexts (#386)

* Add Shuffle

* Add Library Selection screen and navigation to account tab

* player redesign featuring blurred background artwork

* add repeat modes to player
2025-07-07 16:47:55 -05:00
Ritesh Shukla
506a4606c9 Add Strict Mode (#411) 2025-06-10 14:42:22 -05:00
Ritesh Shukla
20937ff359 Implement OTA Updates (#364)
Implements OTA updates, fetched via GitHub from our `App-Bundles` repository

All Typescript changes can be delivered this way

All native changes will need to go through the traditional `publish-beta` workflow, which is now run manually
2025-05-15 11:04:50 -05:00
Violet Caulfield
b5ea805c32 Update success color for light mode (#351)
Update success color on light mode - it's a bit too bright

Headway on custom theme support

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 05:09:00 -05:00
Violet Caulfield
b455208588 Update React Native to 0.79.2, Bump Dependencies, Updates to Settings Tab, Add opt in Logging and telemetry (#338)
Welcome to Jellify 0.12.2!

This update comes with a much anticipated developer feature - and that is opt-in logging and telemetry. This is purely an opt-in feature, and can be toggled at anytime either when logging in for the first time, or in the settings tab. Under no circumstances will this ever be required to use Jellify, and all data that is collected is anonymized

The Settings tab has had a facelift, stealing design queues from the library page. This is where adjustable settings will make their home in updates to come, as well as how beta testing larger features will occur with “Labs”

This update also fixes issues with playback reporting, where the Jellyfin server wasn’t marking songs as played. This was not intended and has been fixed for those using the Last.FM plugin for scrobbling

There is also a slew of upgrades to underlying dependencies to make sure we are up to date on that front 

Thanks for reading! ~Violet
2025-05-10 03:01:06 -05:00
Violet Caulfield
8a69960a97 Add Revamped Library, bugfixes (#333)
Adds a revamped library page - where items aren't limited to just a user's favorites.

Fixes scrubber lag in player screen

Reorganizes component folder into separate components - providers - screens for better visibility and separation of concerns

Addresses some styling issues with text and font legibility
2025-05-09 08:06:35 -05:00
Violet Caulfield
ae7aef5df3 Instant Mix Buildout, Fix Android Playback Controls, Update Toast Styling (#316)
Adds an Instant Mix Button and Screen - users can view an instant mix from the album page by tapping on the Compass icon (which is styled for Dark and Light mode, respectfully)

Fixes Android playback controls not showing up - this is a regression introduced by React Native's New Architecture and is being rolled back. A future update will fix this and get Android builds back on the New Architecture

Adds Tamagui styling to toasts so that they are more homogenous with the rest of the UI
2025-05-01 10:46:03 -05:00
Ritesh Shukla
100acd7641 Remove Expo + Code Cleanup +. Test Cases Fix (#312) 2025-05-01 03:22:45 -05:00
Violet Caulfield
34382d45a9 UI Overflow Fixes, Move Source to src Folder (#311)
Fix issue where player elements would be falling off of the screen

Move source files into `src` folder for project organization
2025-04-30 10:40:31 -05:00
Ritesh Shukla
6b0706d730 Error Boundary Addition (#297)
Error Boundary addition - if _Jellify_ encounters a fatal error - users will be given the ability to reload the app

---------

Co-authored-by: Ritesh Shukla <ritesh.shukla2@M-LD4JMWLW26.local>
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2025-04-28 08:22:49 -05:00
Violet Caulfield
a08e66546c Offline Mode MVP (#272)
* OfflineMode

* Template addition and Fixes

* More Changes

* More Changes

* smol updates to provider

run yarn format

* update internet connection watcher colors and verbiage

remove react native file access dependency

* Offline changes

* UI tweaks for offline indicator

* get jest to pass

---------

Co-authored-by: Ritesh Shukla <ritesh.shukla2@129net231.unica.it>
Co-authored-by: Ritesh Shukla <ritesh.shukla2@M-LD4JMWLW26.local>
Co-authored-by: Ritesh Shukla <75062358+riteshshukla04@users.noreply.github.com>
2025-04-22 12:07:55 -05:00
Violet Caulfield
d8d2336806 we'll need to bust the cache for this upgrade 2025-04-16 14:43:39 -05:00
Violet Caulfield
f7f8f7fda7 remove unused import 2025-04-11 08:19:33 -05:00
Violet Caulfield
b1153e4dc4 fix ios 2025-03-29 09:29:44 -05:00
Violet Caulfield
4abb2ca33f caching changes 2025-03-27 06:08:36 -05:00
Violet Caulfield
46a1f8737d busted 2025-03-26 06:39:56 -05:00
Violet Caulfield
7096a72a69 cache performance tuning 2025-03-26 06:23:55 -05:00
Violet Caulfield
bca262d66b tanstack query optimizations 2025-03-25 20:55:00 -05:00
Violet Caulfield
57062ff9d0 set max age on persistence 2025-03-24 23:00:32 -05:00
Violet Caulfield
cddcd59ddb fix issue where playlists were created publicly by default 2025-03-22 10:23:32 -05:00
Violet Caulfield
1ec875faa7 add background runtime to jellify 2025-02-16 11:36:35 -06:00
Violet Caulfield
5af2099f03 player init stuff 2025-02-15 12:58:44 -06:00
Violet Caulfield
287c75cc4c fix build 2025-02-15 07:49:20 -06:00
Violet Caulfield
faf1d1fe3f move player init 2025-02-15 07:47:56 -06:00
Violet Caulfield
5ec3253fc1 fix build? 2025-02-10 07:33:11 -06:00
Violet Caulfield
06867da3f3 move some stuff to the background threadc 2025-02-09 17:22:26 -06:00
Violet Caulfield
0d387bdcb2 Fix gesture handler 2025-02-03 23:00:41 -06:00
Violet Caulfield
3ad4c4c3dc fix build 2025-02-01 10:13:08 -06:00
Violet Caulfield
24d14be81b remove cached image 2025-01-25 12:34:25 -06:00
Violet Caulfield
348145c5d7 remove toast, that's gonna depend on expo and we can't use that 2025-01-20 10:13:42 -06:00
Violet Caulfield
cd58ff7a79 fix build 2025-01-20 09:58:22 -06:00