austinried 081251061d
Library store refactor (#76)
* 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
2022-03-28 13:30:57 +09:00
2021-12-13 09:34:22 +09:00
2022-03-28 13:30:57 +09:00
2022-03-28 13:30:57 +09:00
2022-03-28 13:30:57 +09:00
2021-08-26 16:10:49 +09:00
2021-12-15 14:08:37 +09:00
2021-08-22 17:44:42 +09:00
2021-09-08 09:32:35 +09:00
2021-06-08 13:38:16 +09:00
2021-06-08 13:38:16 +09:00
2022-01-23 13:36:02 +09:00
2021-09-07 12:20:52 +09:00
2021-12-15 14:38:15 +09:00
2021-07-08 15:37:05 +09:00
2022-01-23 13:36:02 +09:00
2022-03-28 13:30:57 +09:00
2021-08-23 14:48:24 +09:00
2021-07-05 10:27:30 +09:00
2022-03-28 13:30:57 +09:00
2021-08-22 17:56:56 +09:00
2022-02-02 16:03:05 +09:00
2022-03-28 13:30:57 +09:00
2022-03-28 13:30:57 +09:00

subtracks logo

Subtracks is an Android open source music streaming app for Subsonic-API-compatible servers (Subsonic, Navidrome, Airsonic, and more). It's designed to give you clean and convenient access to your music in the style of modern media players.

Screenshots

home now playing library albums album view

Download

⚠️ Note: each download source above is signed with a different key, so you cannot switch between them without first uninstalling and then re-installing the app.

Features

  • Album and artist art display by default (full-res in detail/now playing views)
  • Gapless playback
  • Mulitple server support
  • Filterable/sortable album and artist library views
  • Search artists, albums, and songs
  • Scrobble support
  • Max bitrate and buffer size settings
  • Loop and shuffle playback options
  • Long-press for context menu shortcuts

Coming Soon™

  • Offline support
  • Customizable home screen categories
  • Browse by folder support (currently only browses by tags)
  • Multiple music folder awareness
  • By year/by genre albums filter
  • Playlist mangement (add/remove/sort/edit)
  • Queue management (add/remove/sort)
  • Multi-select actions
  • Performance & animation improvements
  • More shuffle play modes

Building

See Building from source.

Description
A music streaming app for Subsonic-compatible servers
Readme GPL-3.0 16 MiB
Languages
Dart 99.6%
JavaScript 0.3%
Java 0.1%