10 Commits

Author SHA1 Message Date
Ritesh Shukla 1b497fea71 feat: reload App (#575)
* feat: reload App

* feat: reload App
2025-10-24 21:53:32 +05:30
skalthoff cb068da8bf enhance player queue management with Zustand store integration. (#574)
What is the change

    Implement persistent player queue state with a dedicated Zustand store (MMKV-backed): queue, currentTrack, currentIndex, shuffled, unShuffledQueue, and queueRef.
    Restore the queue on app start: new initialization reads persisted state and rebuilds the TrackPlayer queue and active index.
    Unify queue mutations to keep React Native Track Player and the persisted store in sync:
        Loading a new queue sets queueRef, honors shuffle, computes start index, and writes to both RNTP and store.
        "Play Next" and "Add to Queue" update RNTP, the live queue, and unShuffledQueue consistently.
        Active track/index changes now propagate to the store and query cache.
    Tighten/refine player query/invalidations so UI reflects the latest RNTP state.
    Minor housekeeping in config/scripts to support the above (ESLint flat config, metro/jest/script updates).

What does this address

    Fixes queue not restoring after relaunch or crash; playback position and the current track persist correctly.
    Preserves shuffle state and the original unshuffled ordering for reliable shuffle toggle behavior.
    Ensures "Play Next"/"Add to Queue" behave consistently with what the user sees, avoiding duplication or desyncs.
    Reduces UI state drift by syncing RNTP events to both React Query and persistent store.


Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2025-10-24 05:41:22 -05:00
Ritesh Shukla 4d560be350 Nitro OTA Package (#560)
Adds internal over-the-air update support

Powered by `react-native-nitro-modules`, this OTA functionality is faster than the previous implementation, and won't slow down the UI when updates are being applied since updates occur off the main thread
2025-10-21 14:28:53 -05:00
Violet Caulfield d6aa1d5534 Nitro Images + Blurhashes (#503)
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>
2025-09-15 08:00:54 -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 db9301f583 fix jest 2025-08-14 07:05:02 -05:00
riteshshukla04 dc470c408d Fixing Types 2025-08-13 02:37:08 +05:30
riteshshukla04 cca72a23ed Fixing Types 2025-08-13 02:30:05 +05:30
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 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