Commit Graph

19 Commits

Author SHA1 Message Date
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
8bd20a8e9e update release note generation script 2025-08-25 21:45:53 -05:00
Violet Caulfield
a6e47a16c6 Update Tamagui (#486)
Update Tamagui dependency
2025-08-25 21:29:05 -05:00
Violet Caulfield
8e573f5490 Player Element Spacing, Update Deps, Add PostedPlaybackInfo Query (#469)
* Fixing an issue where some mp3 files were using .mpeg as the extension for a downloaded file

Updates to track mapper to use AudioApi endpoint as default, with UniversalAudioApi endpoint as fallback

fix recent artists on the home screen not updating

* fix error on sign out

* make now playing change faster when loading a new queue

* Improvements to the alphabetical selector handling in the artists page

* Fix issue where most played artists werent properly sorted

* adding suggested artists to discover page

* adjust spacing on player, especially for smaller screens

update deps

* add image tags to refresh images when they are updated server side
2025-08-07 11:48:02 -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
Ritesh Shukla
31e6ad965f Maestro Folder Structure improvements (#452) 2025-07-20 16:03:01 -05:00
Ritesh Shukla
5c1e7da145 Make Android Build Times 2x faster (#449)
* Cache Speed

---------

Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2025-07-20 08:41:20 -05:00
Violet Caulfield
0de2a9a97e Seek to Beginning of Track if Playback has Finished (#448) 2025-07-20 07:25:22 -05:00
Ritesh Shukla
eaf3cb519f CLI + Maestro + Discord Fixes (#446) 2025-07-19 14:59:56 -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
ecbbabcf4d Maestro Setup for app (#407)
Implementing Maestro tests against onboarding process
2025-06-04 15:44:52 -05:00
Violet Caulfield
ee78b90af8 pipeline updates 2025-06-02 23:11:23 -05:00
Violet Caulfield
6752816074 update release notes generation script 2025-06-01 21:36:39 -05:00
Ritesh Shukla
9a0582f622 OTA Version Check (#374)
Update Version Check on startup to dictate OTA functionality

Co-authored-by: Ritesh Shukla <ritesh.shukla2@M-LD4JMWLW26.local>
2025-05-18 11:19:45 -05:00
Violet Caulfield
67fb799c5b update ota scripts 2025-05-15 11:42:30 -05:00
Violet Caulfield
35359c2538 update workflow 2025-05-15 11:26:32 -05:00
Violet Caulfield
58e43c9ab3 update ota scripts 2025-05-15 11:24:44 -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