feat: tabbed station libraries, SomaFM integration, and settings panel

Add tabbed playlist UI with SomaFM as a built-in library including live
listener counts, station hiding, and stream quality selection. Implement
settings panel with quality preferences, listening history, and playlist
import/export improvements. Includes DB migrations 1-4, SomaFM seed
data, stream resolver, and now-playing history logging.

Made-with: Cursor
This commit is contained in:
cottongin
2026-03-10 20:16:09 -04:00
parent 5dd7a411ed
commit 6481d74d95
23 changed files with 2411 additions and 300 deletions

View File

@@ -14,6 +14,7 @@ junit = "4.13.2"
mockk = "1.13.16"
turbine = "1.2.0"
coil = "3.1.0"
cloudy = "0.2.7"
[libraries]
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
@@ -46,6 +47,8 @@ turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine
coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" }
coil-network = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" }
json = { group = "org.json", name = "json", version = "20240303" }
cloudy = { group = "com.github.skydoves", name = "cloudy", version.ref = "cloudy" }
palette = { group = "androidx.palette", name = "palette-ktx", version = "1.0.0" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }