async-storage 1.17.3: required updating sdk to 31, kotlin to 1.6.10
react-native-track-player 2.1.3: added new "android:exported" prop required by API 31
react-native-fs: 2.19.0
* initial react-query experiments
* use queries for item screens
send the data we do have over routing to prepopulate (album/playlist)
use number for starred because sending Date freaks out react-navigation
* add in equiv. song cover art fix
* reorg, switch artistview over
start mapping song cover art when any are available
* refactor useStar to queries
fix caching for starred items and album cover art
* add hook to reset queries on server change
* refactor search to use query
* fix song cover art setting
* use query for artistInfo
* remove last bits of library state
* cleanup
* use query key factory
already fixed one wrong key...
* require coverart size
* let's try no promise queues on these for now
* image cache uses query
* perf fix for playlist parsing
also use placeholder data so we don't have to deal with staleness
* drill that disabled
also list controls doesn't need its own songs hook/copy
* switch to react-native-blob-util for downloads
slightly slower but allows us to use DownloadManager, which backgrounds downloads so they are no longer corrupted when the app suspends
* add a fake "top songs" based on artist search
then sorted by play count/ratings
artistview should load now even if topSongs fails
* try not to swap between topSongs/search on refetch
set queueContext by song list so the index isn't off if the list changes
* add content type validation for file fetching
also try to speed up existing file return by limiting fs ops
* if the HEAD fails, don't queue the download
* clean up params
* reimpl clear image cache
* precompute contextId
prevents wrong "is playing" when any mismatch between queue and list
* clear images from all servers
use external files dir instead of cache
* fix pressable disabled flicker
don't retry topsongs on failure
try to optimize setqueue and fixcoverart a bit
* wait for queries during clear
* break out fetchExistingFile from fetchFile
allows to tell if file is coming from disk or not
only show placeholder/loading spinner if actually fetching image
* forgot these wouldn't do anything with objects
* remove query cache when switching servers
* add content-disposition extension gathering
add support for progress hook (needs native support still)
* added custom RNBU pkg with progress changes
* fully unmount tabs when server changes
prevents unwanted requests, gives fresh start on switch
fix fixCoverArt not re-rendering in certain cases on search
* use serverId from fetch deps
* fix lint
* update licenses
* just use the whole lodash package
* make using cache buster optional
* start of music store refactor
moving stuff into a state cache
better separate it from view logic
* added paginated list/album list
* reworked fetchAlbumList to remove ui state
refactored home screen to use new method
i broke playing songs somehow, JS thread goes into a loop
* don't reset parts manually, do it all at once
* fixed perf issue related to too many rerenders
rerenders were caused by strict equality check on object/array picks
switched artistInfo to new store
updated zustand and fixed deprecation warnings
* update typescript
and use workspace tsc version for vscode
* remove old artistInfo
* switched to new playlist w/songs
removed more unused stuff
* remove unused + (slightly) rework search
* refactor star
* use only original/large imges for covers/artist
fix view artist from context menu
add loading indicators to song list and artist views (show info we have right away)
* set starred/unstar assuming it works
and correct state on error
* reorg, remove old music slice files
* added back fix for song cover art
* sort artists by localCompare name
* update licenses
* fix now playing background grey bar
* update react-native-gesture-handler
for node-fetch security alert
* fix another gradient height grey bar issue
* update licenses again
* remove thumbnail cache
* rename to remove "Library" from methods
* Revert "remove thumbnail cache"
This reverts commit e0db4931f11bbf4cd8e73102d06505c6ae85f4a6.
* use ids for lists, pull state later
* Revert "use only original/large imges for covers/artist"
This reverts commit c9aea9065ce6ebe3c8b09c10dd74d4de153d76fd.
* deep equal ListItem props for now
this needs a bigger refactor
* use immer as middleware
* refactor api client to use string method
hoping to use this for requestKey/deduping next
* use thumbnails in list items
* Revert "refactor api client to use string method"
This reverts commit 234326135b7af96cb91b941e7ca515f45c632556.
* rename/cleanup
* store servers by id
* get rid of settings selectors
* renames for clarity
remove unused estimateContentLength setting
* remove trackplayer selectors
* fix migration for library filter settings
* fixed shuffle order reporting wrong track/queue
* removed the other selectors
* don't actually need es6/react for our state
* fix slow artist sort on star
localeCompare is too slow for large lists
* upgrade RN to 0.67-rc.6
upgrade react-native-reanimated to 2.3.1
debug and release building/working
* update to RN stable 0.67
* yarn upgrade
also use xmldom builtin types
* ignore ndk dir for linting
* upgrade types (RN 0.67 not out yet)
* remove deprecated rule
* actually i like that one, keep for now
* update licenses
* upgrade RN types and use builtin dep
* upgrade RN 0.67.1
queue ended now goes back to first track, stopped
artist view now has a min height
cover art fallback for track mapping
use dark colors before light ones for gradient