docs: add chat summaries and plan documents
Made-with: Cursor
This commit is contained in:
26
chat-summaries/2026-03-09_tabbed-station-libraries.md
Normal file
26
chat-summaries/2026-03-09_tabbed-station-libraries.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Tabbed Station Libraries
|
||||
|
||||
## Task
|
||||
Replace the single station list with a tabbed interface where every playlist gets its own tab, SomaFM is a built-in tab with listener-count sorting, and imported playlists become their own tabs automatically.
|
||||
|
||||
## Changes Made
|
||||
|
||||
### Data Model
|
||||
- **Station.kt** -- Added `listenerCount: Int = 0` field for sort-by-listeners feature
|
||||
- **Playlist.kt** -- Added `isBuiltIn: Boolean = false` to protect built-in playlists (SomaFM) from deletion
|
||||
|
||||
### Database
|
||||
- **RadioDatabase.kt** -- Bumped to version 2, added `MIGRATION_1_2` that adds the new columns and seeds SomaFM data for existing installs
|
||||
- **SomaFmSeedData.kt** -- Added listener counts to all 44 stations, set `isBuiltIn = true` on SomaFM playlist, extracted shared `seedStations()` function used by both `onCreate` and the migration
|
||||
- **RadioApplication.kt** -- Registered `MIGRATION_1_2`
|
||||
|
||||
### UI
|
||||
- **StationListScreen.kt** -- Complete restructure: `ScrollableTabRow` for tabs, `SortChipRow` with FilterChips (Default, A-Z, Z-A, Listeners), per-tab station list. Built-in tabs hide add/import/delete actions. Listener count shown inline on SomaFM stations. Long-press edit/delete disabled on built-in tab stations.
|
||||
- **StationListViewModel.kt** -- New state model with `TabInfo`, `SortMode`, tab selection, and in-memory sorting. Import now creates a new playlist (tab) from the file name and assigns all parsed stations to it, then switches to the new tab.
|
||||
- **AddStationDialog.kt** -- Simplified: removed playlist picker (stations go to current tab's playlist automatically)
|
||||
- **EditStationDialog.kt** -- Simplified: removed playlist picker
|
||||
|
||||
## Follow-up Items
|
||||
- Drag-and-drop reordering within tabs
|
||||
- Tab reordering
|
||||
- Renaming tabs/playlists
|
||||
Reference in New Issue
Block a user