feat: add Favorite Artists collection

- Add CollectionArtistEntry model with toJson/fromJson and artistCollectionKey helper
- Create favorite_artists table in SQLite with DB migration v1→v2
- Implement toggleFavoriteArtist/removeFavoriteArtist in LibraryCollectionsNotifier
- Add FavoriteArtistsScreen with list view, empty state, and artist navigation
- Add heart toggle button on ArtistScreen header (reactive via Riverpod selector)
- Integrate favorite artists folder in queue_tab collection grid/list views
- Add 8 new localization strings across all 13 locale files
This commit is contained in:
zarzet
2026-05-02 00:50:02 +07:00
parent 148e5c1231
commit 64dbf4441c
21 changed files with 1112 additions and 2 deletions
+4 -1
View File
@@ -25,7 +25,7 @@ class _QueueItemSliverRow extends ConsumerWidget {
}
}
enum _CollectionEntryType { wishlist, loved, playlist }
enum _CollectionEntryType { wishlist, loved, favoriteArtists, playlist }
class _CollectionEntry {
final _CollectionEntryType type;
@@ -35,6 +35,9 @@ class _CollectionEntry {
static const wishlist = _CollectionEntry._(_CollectionEntryType.wishlist);
static const loved = _CollectionEntry._(_CollectionEntryType.loved);
static const favoriteArtists = _CollectionEntry._(
_CollectionEntryType.favoriteArtists,
);
static _CollectionEntry playlist(int index) =>
_CollectionEntry._(_CollectionEntryType.playlist, index);
}