mirror of
https://github.com/austinried/subtracks.git
synced 2025-12-27 00:59:28 +01:00
add artist radio
This commit is contained in:
parent
979a4b7c73
commit
8fbc5e6ce4
2
TODO.md
2
TODO.md
@ -14,8 +14,6 @@
|
||||
- [ ] Library list display modes
|
||||
- [ ] Search
|
||||
- [ ] Individual "more" results pages
|
||||
- [ ] Radio modes
|
||||
- [ ] Artist
|
||||
- [ ] Now playing gestures
|
||||
- [ ] Swipe bar/album to skip
|
||||
- [ ] Double-tap to seek forward/back (bar only)
|
||||
|
||||
@ -1,13 +1,19 @@
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
|
||||
import '../../database/database.dart';
|
||||
import '../../models/query.dart';
|
||||
import '../../models/support.dart';
|
||||
import '../../services/audio_service.dart';
|
||||
import '../../state/music.dart';
|
||||
import '../../state/settings.dart';
|
||||
import '../app_router.dart';
|
||||
import '../buttons.dart';
|
||||
import '../images.dart';
|
||||
import '../items.dart';
|
||||
|
||||
@ -27,6 +33,26 @@ class ArtistPage extends HookConsumerWidget {
|
||||
final albums = ref.watch(albumsByArtistIdProvider(id));
|
||||
|
||||
return Scaffold(
|
||||
floatingActionButton: RadioPlayFab(
|
||||
onPressed: () => artist.hasValue
|
||||
? ref.read(audioControlProvider).playRadio(
|
||||
context: QueueContextType.artist,
|
||||
contextId: artist.valueOrNull!.id,
|
||||
query: ListQuery(
|
||||
filters: IList([
|
||||
FilterWith.equals(
|
||||
column: 'artist_id',
|
||||
value: artist.valueOrNull!.id,
|
||||
)
|
||||
]),
|
||||
),
|
||||
getSongs: (query) => ref
|
||||
.read(databaseProvider)
|
||||
.songsList(ref.read(sourceIdProvider), query)
|
||||
.get(),
|
||||
)
|
||||
: null,
|
||||
),
|
||||
body: CustomScrollView(
|
||||
slivers: [
|
||||
SliverToBoxAdapter(
|
||||
|
||||
@ -68,7 +68,8 @@ enum QueueContextType {
|
||||
album('album'),
|
||||
playlist('playlist'),
|
||||
library('library'),
|
||||
genre('genre');
|
||||
genre('genre'),
|
||||
artist('artist');
|
||||
|
||||
const QueueContextType(this.value);
|
||||
final String value;
|
||||
|
||||
@ -28,6 +28,7 @@ const _$QueueContextTypeEnumMap = {
|
||||
QueueContextType.playlist: 'playlist',
|
||||
QueueContextType.library: 'library',
|
||||
QueueContextType.genre: 'genre',
|
||||
QueueContextType.artist: 'artist',
|
||||
};
|
||||
|
||||
_$_MediaItemData _$$_MediaItemDataFromJson(Map<String, dynamic> json) =>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user