From 88137f01b27150b306327a01e67ec8a35a60e82e Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 28 May 2023 22:06:52 +0600 Subject: [PATCH] feat: locale category/genre title --- lib/services/queries/category.dart | 17 ++++++++++++++--- lib/services/queries/views.dart | 11 ++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/lib/services/queries/category.dart b/lib/services/queries/category.dart index ddf66a10..16830790 100644 --- a/lib/services/queries/category.dart +++ b/lib/services/queries/category.dart @@ -1,20 +1,27 @@ import 'package:fl_query/fl_query.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:spotify/spotify.dart'; +import 'package:spotube/extensions/context.dart'; import 'package:spotube/hooks/use_spotify_infinite_query.dart'; +import 'package:spotube/provider/user_preferences_provider.dart'; class CategoryQueries { const CategoryQueries(); InfiniteQuery, dynamic, int> list( - WidgetRef ref, String recommendationMarket) { + WidgetRef ref, + String recommendationMarket, + ) { + ref.watch(userPreferencesProvider.select((s) => s.locale)); + final locale = useContext().l10n.localeName; return useSpotifyInfiniteQuery, dynamic, int>( "category-playlists", (pageParam, spotify) async { final categories = await spotify.categories .list( country: recommendationMarket, - locale: 'en_US', + locale: locale, ) .getPage(8, pageParam); @@ -35,12 +42,16 @@ class CategoryQueries { WidgetRef ref, String category, ) { + ref.watch(userPreferencesProvider.select((s) => s.locale)); + final market = ref + .watch(userPreferencesProvider.select((s) => s.recommendationMarket)); + final locale = useContext().l10n.localeName; return useSpotifyInfiniteQuery, dynamic, int>( "category-playlists/$category", (pageParam, spotify) async { final playlists = await Pages( spotify, - "v1/browse/categories/$category/playlists?country=US&locale=en_US", + "v1/browse/categories/$category/playlists?country=$market&locale=$locale", (json) => json == null ? null : PlaylistSimple.fromJson(json), 'playlists', (json) => PlaylistsFeatured.fromJson(json), diff --git a/lib/services/queries/views.dart b/lib/services/queries/views.dart index ad9c850e..87e06c4e 100644 --- a/lib/services/queries/views.dart +++ b/lib/services/queries/views.dart @@ -1,6 +1,8 @@ import 'package:fl_query/fl_query.dart'; import 'package:fl_query_hooks/fl_query_hooks.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:spotube/extensions/context.dart'; import 'package:spotube/provider/authentication_provider.dart'; import 'package:spotube/provider/custom_spotify_endpoint_provider.dart'; import 'package:spotube/provider/user_preferences_provider.dart'; @@ -17,9 +19,16 @@ class ViewsQueries { final market = ref .watch(userPreferencesProvider.select((s) => s.recommendationMarket)); + final locale = useContext().l10n.localeName; + return useQuery?, dynamic>("views/$view", () { if (auth == null) return null; - return customSpotify.getView(view, market: market, country: market); + return customSpotify.getView( + view, + market: market, + country: market, + locale: locale, + ); }); } }