Commit Graph

357 Commits

Author SHA1 Message Date
skalthoff
cc0befeb52 defer non-critical startup operations
- delay StorageProvider queries until 2s after initial render
- defer player queue restoration with InteractionManager
- add enabled option to download query hooks
2026-02-03 19:58:47 -08:00
skalthoff
c3be61c8e6 switch react query persister to sync MMKV
- replace AsyncStorage persister with sync MMKV persister for instant cache restoration
- add refetchOnMount: false to recents queries to use cached data on startup
2026-02-03 19:58:12 -08:00
Violet Caulfield
6ed93d9063 fix dark mode background in player 2026-02-02 08:30:14 -06:00
Stephen Arg
bd63fc51de Add color presets with light/dark/OLED per preset (#956)
* These changes include adding an Unplayed filter and also fixing shuffle all to shuffle based on the filtered selection

* Added genre filter and selection page

* Forgot to hit save on this file

* Fixed bug affecting genre filtering

* Shuffle all query now includes the genres

* Fixed trigger to triggerHaptic

* Fixed trigger to triggerHaptic

* Added optional color themes

* Slight adjustment to some dark color presets

---------

Co-authored-by: StephenArg <stephen@vody.com>
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2026-02-01 12:15:49 -06:00
Ritesh Shukla
1c0069e1df feat: migrate to superconfig (#966)
* feat: migrate to superconfig

* feat: mock-test
2026-02-01 08:49:36 -06:00
Violet Caulfield
7271dc0b54 remove usecallback (#965) 2026-02-01 01:29:21 +05:30
Stephen Arg
e8cf80d9f9 Fixed other add to playlist icon (#964) 2026-01-30 15:43:01 -06:00
Stephen Arg
89b8da5098 Adjusted queue scroll so current song is the top row and changed icon for add to playlists (#963)
Co-authored-by: StephenArg <stephen@vody.com>
Co-authored-by: Ritesh Shukla <riteshshukla2381@gmail.com>
2026-01-30 21:29:08 +01:00
Stephen Arg
5fb4eea5f8 Added Genre filtering to the Tracks library view with a multi-select genre picker. (#944)
* These changes include adding an Unplayed filter and also fixing shuffle all to shuffle based on the filtered selection

* Added genre filter and selection page

* Forgot to hit save on this file

* Fixed bug affecting genre filtering

* Shuffle all query now includes the genres

* Fixed trigger to triggerHaptic

* Fixed trigger to triggerHaptic

---------

Co-authored-by: StephenArg <stephen@vody.com>
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2026-01-30 07:40:04 -06:00
Violet Caulfield
aa09ffd5a3 Fix Image 404s (#961)
Fixing an issue where images for "Most Played" wouldn't be fetched properly

Make the queue screen scroll to the currently playing track when it opens
2026-01-30 07:17:54 -06:00
Stephen Arg
56995f41bb Slightly lowered the quality and size of row images (#960)
Co-authored-by: StephenArg <stephen@vody.com>
2026-01-29 07:15:32 -06:00
Stephen Arg
e5b32f21ed Added explicit tags to song details rows and player and also slightly adjusted the scrubber implementation (#959) 2026-01-28 17:01:57 -06:00
Stephen Arg
4358ba7df3 Add 'Unplayed' Filter and Fix 'Shuffle All' Functionality (#943)
* These changes include adding an Unplayed filter and also fixing shuffle all to shuffle based on the filtered selection

* Fixed trigger to triggerHaptic

---------

Co-authored-by: StephenArg <stephen@vody.com>
2026-01-27 16:56:51 -06:00
skalthoff
3752f40d47 Fix/tamagui switch refactor down stream (#955)
* Refactor haptic feedback handling in SwitchWithLabel component
2026-01-26 23:21:39 -06:00
skalthoff
4850187a7e Refactor haptic feedback handling in SwitchWithLabel component (#954) 2026-01-26 22:06:15 -06:00
Stephen Arg
5fda20a621 Library Filters: Per-Tab Filter System with Modal UI (#942) 2026-01-23 15:34:55 -06:00
Violet Caulfield
075c21c73f verbiage and capitalization 2026-01-21 18:45:02 -06:00
Violet Caulfield
c0f7c97bb3 on skip the track should start playing 2026-01-21 18:38:39 -06:00
Violet Caulfield
68a8dd316e Home Screen Refresh Time Reduction, Add Random Albums to Discover Screen (#932)
* reduce home screen refresh time

eliminate unnecessary network calls

* adds a suggested albums row to the discover screen
2026-01-21 15:04:29 -06:00
Stephen Arg
dc26c3a909 Addressed issue where tracks don't randomize (#931)
* Added changes to randomize tracks instead of just the ones with the same first letters

* Removed eslint config changes
2026-01-21 22:01:56 +05:30
Violet Caulfield
2effdd4c02 fix issue where skipping to the next track would start playback 2026-01-19 20:13:42 -06:00
Violet Caulfield
ef1039c29c fix issue where skipping previous would always start the track 2026-01-19 20:07:58 -06:00
Violet Caulfield
955f534b36 UI Suggestions, Scrubber Rewrite (#910)
Removes item separators between items

Reduce some unnecessary hook usage

Introduces a completely rewritten player scrubber - with better gesture handling for Android, smoother animations, and generally more responsive control. Adds some animations for when the track skips or the user skips to the beginning
2026-01-19 19:19:45 -06:00
Violet Caulfield
a677ffc602 Display spinner if playlist is being added to (#909) 2026-01-11 04:03:22 -06:00
Violet Caulfield
18136cd8d8 stop buffering if a skip has been requested (#894)
* 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
2026-01-07 15:13:38 -06:00
skalthoff
05cf340e8f feat: Add new Maestro tests for album, playlist, artist, and favorites, and enhance existing tests with additional screenshots and refined playback flows. (#887)
* feat: Add new Maestro tests for album, playlist, artist, and favorites, and enhance existing tests with additional screenshots and refined playback flows.

* feat: Enhance Maestro CI/CD with improved caching, updated Maestro version, and refined emulator configurations for better performance and artifact collection.

* feat: Run Maestro Android tests using a single orchestrated flow file and collect project screenshots.

* fix: Add extended wait conditions to login test to improve stability and prevent flakiness.

* feat: Add test IDs to login, authentication, and library selection screens and update Maestro tests to use them.

* test: make sign out confirmation assertion optional

* feat: Improve login flow robustness by delegating app launch to the login test, increasing wait times, and adding more optional dialog dismissals.

* feat: Add APK caching to Maestro test workflow and conditionally run build steps.

* feat: make sign-out and cancellation steps in test more robust with optional taps and back key presses, and update login page assertion.

* test: remove optional flag from `pressKey: back` action in settings test.

---------

Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Co-authored-by: Ritesh Shukla <riteshshukla2381@gmail.com>
2026-01-05 04:46:38 -06:00
Violet Caulfield
a8dde09a5e Remove throttle time in query client (#893) 2026-01-02 15:24:03 -06:00
Ritesh Shukla
72b7183854 Persist player progress to mmkv and restore on app opening (#890)
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2026-01-02 10:21:50 -06:00
Violet Caulfield
7e897aab75 Bugfix/support albums in carplay (#888)
* lots of carplay stuff

* dehookify, carplayify

* player rerender and hook optimization

* make query fetching a lot lazier

* flex miniplayer better

* persistence settings, player screen optimizations

* rollback tamagui upgrade

* fix tests

* fixing add to playlist sheet when there are a lot of playlists

* make the add to playlist mutation less dependent on hooks

* carplay enhancements

* add autoscroll to queue screen

* fix queue autoscroll

* fix unnecessary rerenders

* organize utils folder better

make artist name joining consistent

* fix entire list rerendering on reorder in queue
2026-01-02 10:21:01 -06:00
Violet Caulfield
d06e6f36fc Feature/flatten recently played tracks into albums (#878)
* 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
2025-12-30 16:27:09 -06:00
Ritesh Shukla
8ee9d6253d fix: rerender (#886)
fix unnecessary rerenders caused by hooks
2025-12-30 09:25:21 -06:00
skalthoff
114c1ddef1 fix: Reset player state and hide miniplayer when queue becomes empty after track removal or refresh. (#880)
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2025-12-29 15:38:42 -06:00
skalthoff
6f5549c654 fix: update component keys to use song ID for accurate re-rendering or player and miniplayer. (#881)
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
2025-12-29 15:38:08 -06:00
skalthoff
949d6b44f7 feat: add SortName to playlist item fields (#879) 2025-12-29 13:06:10 -08:00
Violet Caulfield
e9b516911e remove memoization on swipeable row, track padding with artwork 2025-12-29 09:49:11 -06:00
Violet Caulfield
f19b6ebfb4 move to a faster image component and reduce image flicker 2025-12-29 07:43:04 -06:00
Violet Caulfield
a84986ae6e RN Upgrade, Tidying Up Configs (#875)
* react native upgrade

tidying up configs and moving to the config folder

* remove unneeded patch file and dns dependencies
2025-12-28 18:12:19 -06:00
Violet Caulfield
27b3107610 hide artist name on albums when on artist page 2025-12-26 11:00:55 -06:00
Violet Caulfield
c01a750ed0 show year and runtime for albums on artist page 2025-12-26 10:51:32 -06:00
Violet Caulfield
b76468c29e fix crash when artist is not set for an album 2025-12-26 09:00:34 -06:00
Violet Caulfield
8536ca67bf Add some TS Docs around axios configuration
update README
2025-12-24 07:22:58 -06:00
Violet Caulfield
170d483da7 fix to playlist mutation calls 2025-12-23 17:18:25 -06:00
Violet Caulfield
328007e6ce Nitro Fetch Axios Adapter, Artist Page Additions (#866)
* artist page tweaks, incorporate nitro fetch axios adapter for networking requests

* fix pr otas

* queue and playlist fixes

* media info query staletime adjustments
2025-12-23 10:24:56 -06:00
Violet Caulfield
b71708afaf Bump some Deps, Fix some Shit (#864)
update some dependencies (pager view, nitro ota)

adjustments to carplay setup
2025-12-21 22:05:23 -06:00
Violet Caulfield
e4a331e900 set device info to use "device name" 2025-12-21 11:50:12 -06:00
Violet Caulfield
27926cda6e Playlist, Artist Screen Enhancements; Smol Refactors (#861)
UI element layout changes for the album screen

Playlist screen refresh

React Navigation upgrades

Rafactor Instant Mix navigation prop structure so it can be more easily used elsewhere
2025-12-17 23:33:52 -06:00
Violet Caulfield
5f30cfc2b6 cascade item image test IDs 2025-12-17 22:45:10 -06:00
Violet Caulfield
99cf034b22 remove unused imports, multi-playlist downloads, album screen animations 2025-12-17 09:38:14 -06:00
Violet Caulfield
3d6b891a30 adjust bottom player screen margin on iOS 2025-12-17 09:10:30 -06:00
Violet Caulfield
c40aaef55b make player bottom margin correct token group 2025-12-17 07:25:25 -06:00