From f8550ae3d680253b5c7f490a54215ae3c8095ead Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Fri, 15 Mar 2024 22:14:18 +0600 Subject: [PATCH] feat: add view and spotify friends provider --- lib/provider/spotify/spotify.dart | 6 ++++++ lib/provider/spotify/tracks/track.dart | 7 +++++++ lib/provider/spotify/user/friends.dart | 7 +++++++ lib/provider/spotify/views/view.dart | 19 +++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 lib/provider/spotify/tracks/track.dart create mode 100644 lib/provider/spotify/user/friends.dart create mode 100644 lib/provider/spotify/views/view.dart diff --git a/lib/provider/spotify/spotify.dart b/lib/provider/spotify/spotify.dart index 40f7a940..551a3c60 100644 --- a/lib/provider/spotify/spotify.dart +++ b/lib/provider/spotify/spotify.dart @@ -13,6 +13,7 @@ import 'package:riverpod/src/async_notifier.dart'; import 'package:spotube/extensions/map.dart'; import 'package:spotube/models/lyrics.dart'; import 'package:spotube/models/spotify/recommendation_seeds.dart'; +import 'package:spotube/models/spotify_friends.dart'; import 'package:spotube/provider/custom_spotify_endpoint_provider.dart'; import 'package:spotube/provider/spotify_provider.dart'; import 'package:spotube/provider/user_preferences/user_preferences_provider.dart'; @@ -46,6 +47,11 @@ part 'playlist/generate.dart'; part 'search/search.dart'; part 'user/me.dart'; +part 'user/friends.dart'; + +part 'tracks/track.dart'; + +part 'views/view.dart'; part 'utils/mixin.dart'; part 'utils/state.dart'; diff --git a/lib/provider/spotify/tracks/track.dart b/lib/provider/spotify/tracks/track.dart new file mode 100644 index 00000000..dd0e1184 --- /dev/null +++ b/lib/provider/spotify/tracks/track.dart @@ -0,0 +1,7 @@ +part of '../spotify.dart'; + +final trackProvider = FutureProvider.family((ref, id) async { + final spotify = ref.watch(spotifyProvider); + + return spotify.tracks.get(id); +}); diff --git a/lib/provider/spotify/user/friends.dart b/lib/provider/spotify/user/friends.dart new file mode 100644 index 00000000..b9cc0f46 --- /dev/null +++ b/lib/provider/spotify/user/friends.dart @@ -0,0 +1,7 @@ +part of '../spotify.dart'; + +final friendsProvider = FutureProvider((ref) async { + final customSpotify = ref.watch(customSpotifyEndpointProvider); + + return customSpotify.getFriendActivity(); +}); diff --git a/lib/provider/spotify/views/view.dart b/lib/provider/spotify/views/view.dart new file mode 100644 index 00000000..f1af998b --- /dev/null +++ b/lib/provider/spotify/views/view.dart @@ -0,0 +1,19 @@ +part of '../spotify.dart'; + +final viewProvider = FutureProvider.family, String>( + (ref, viewName) async { + final customSpotify = ref.watch(customSpotifyEndpointProvider); + final market = ref.watch( + userPreferencesProvider.select((s) => s.recommendationMarket), + ); + final locale = ref.watch( + userPreferencesProvider.select((s) => s.locale), + ); + + return customSpotify.getView( + viewName, + market: market, + locale: Intl.canonicalizedLocale(locale.toString()), + ); + }, +);