refactor: make compatible with spotify lib 0.12

This commit is contained in:
Kingkor Roy Tirtho 2023-09-26 19:49:59 +06:00
parent 52768a7ec9
commit afbb8ba5a7
17 changed files with 219 additions and 229 deletions

View File

@ -36,10 +36,10 @@ abstract class LanguageLocals {
// name: "Amharic",
// nativeName: "አማርኛ",
// ),
// "ar": const ISOLanguageName(
// name: "Arabic",
// nativeName: "العربية",
// ),
"ar": const ISOLanguageName(
name: "Arabic",
nativeName: "العربية",
),
// "an": const ISOLanguageName(
// name: "Aragonese",
// nativeName: "Aragonés",

View File

@ -1,187 +1,189 @@
// Country Codes contributed by momobobe <https://github.com/momobobe>
import 'package:spotify/spotify.dart';
final spotifyMarkets = [
("AL", "Albania (AL)"),
("DZ", "Algeria (DZ)"),
("AD", "Andorra (AD)"),
("AO", "Angola (AO)"),
("AG", "Antigua and Barbuda (AG)"),
("AR", "Argentina (AR)"),
("AM", "Armenia (AM)"),
("AU", "Australia (AU)"),
("AT", "Austria (AT)"),
("AZ", "Azerbaijan (AZ)"),
("BH", "Bahrain (BH)"),
("BD", "Bangladesh (BD)"),
("BB", "Barbados (BB)"),
("BY", "Belarus (BY)"),
("BE", "Belgium (BE)"),
("BZ", "Belize (BZ)"),
("BJ", "Benin (BJ)"),
("BT", "Bhutan (BT)"),
("BO", "Bolivia (BO)"),
("BA", "Bosnia and Herzegovina (BA)"),
("BW", "Botswana (BW)"),
("BR", "Brazil (BR)"),
("BN", "Brunei Darussalam (BN)"),
("BG", "Bulgaria (BG)"),
("BF", "Burkina Faso (BF)"),
("BI", "Burundi (BI)"),
("CV", "Cabo Verde / Cape Verde (CV)"),
("KH", "Cambodia (KH)"),
("CM", "Cameroon (CM)"),
("CA", "Canada (CA)"),
("TD", "Chad (TD)"),
("CL", "Chile (CL)"),
("CO", "Colombia (CO)"),
("KM", "Comoros (KM)"),
("CR", "Costa Rica (CR)"),
("HR", "Croatia (HR)"),
("CW", "Curaçao (CW)"),
("CY", "Cyprus (CY)"),
("CZ", "Czech Republic (CZ)"),
("CI", "Ivory Coast (CI)"),
("CD", "Congo (CD)"),
("DK", "Denmark (DK)"),
("DJ", "Djibouti (DJ)"),
("DM", "Dominica (DM)"),
("DO", "Dominican Republic (DO)"),
("EC", "Ecuador (EC)"),
("EG", "Egypt (EG)"),
("SV", "El Salvador (SV)"),
("GQ", "Equatorial Guinea (GQ)"),
("EE", "Estonia (EE)"),
("SZ", "Eswatini (SZ)"),
("FJ", "Fiji (FJ)"),
("FI", "Finland (FI)"),
("FR", "France (FR)"),
("GA", "Gabon (GA)"),
("GE", "Georgia (GE)"),
("DE", "Germany (DE)"),
("GH", "Ghana (GH)"),
("GR", "Greece (GR)"),
("GD", "Grenada (GD)"),
("GT", "Guatemala (GT)"),
("GN", "Guinea (GN)"),
("GW", "Guinea-Bissau (GW)"),
("GY", "Guyana (GY)"),
("HT", "Haiti (HT)"),
("HN", "Honduras (HN)"),
("HK", "Hong Kong (HK)"),
("HU", "Hungary (HU)"),
("IS", "Iceland (IS)"),
("IN", "India (IN)"),
("ID", "Indonesia (ID)"),
("IQ", "Iraq (IQ)"),
("IE", "Ireland (IE)"),
("IL", "Israel (IL)"),
("IT", "Italy (IT)"),
("JM", "Jamaica (JM)"),
("JP", "Japan (JP)"),
("JO", "Jordan (JO)"),
("KZ", "Kazakhstan (KZ)"),
("KE", "Kenya (KE)"),
("KI", "Kiribati (KI)"),
("XK", "Kosovo (XK)"),
("KW", "Kuwait (KW)"),
("KG", "Kyrgyzstan (KG)"),
("LA", "Laos (LA)"),
("LV", "Latvia (LV)"),
("LB", "Lebanon (LB)"),
("LS", "Lesotho (LS)"),
("LR", "Liberia (LR)"),
("LY", "Libya (LY)"),
("LI", "Liechtenstein (LI)"),
("LT", "Lithuania (LT)"),
("LU", "Luxembourg (LU)"),
("MO", "Macao / Macau (MO)"),
("MG", "Madagascar (MG)"),
("MW", "Malawi (MW)"),
("MY", "Malaysia (MY)"),
("MV", "Maldives (MV)"),
("ML", "Mali (ML)"),
("MT", "Malta (MT)"),
("MH", "Marshall Islands (MH)"),
("MR", "Mauritania (MR)"),
("MU", "Mauritius (MU)"),
("MX", "Mexico (MX)"),
("FM", "Micronesia (FM)"),
("MD", "Moldova (MD)"),
("MC", "Monaco (MC)"),
("MN", "Mongolia (MN)"),
("ME", "Montenegro (ME)"),
("MA", "Morocco (MA)"),
("MZ", "Mozambique (MZ)"),
("NA", "Namibia (NA)"),
("NR", "Nauru (NR)"),
("NP", "Nepal (NP)"),
("NL", "Netherlands (NL)"),
("NZ", "New Zealand (NZ)"),
("NI", "Nicaragua (NI)"),
("NE", "Niger (NE)"),
("NG", "Nigeria (NG)"),
("MK", "North Macedonia (MK)"),
("NO", "Norway (NO)"),
("OM", "Oman (OM)"),
("PK", "Pakistan (PK)"),
("PW", "Palau (PW)"),
("PS", "Palestine (PS)"),
("PA", "Panama (PA)"),
("PG", "Papua New Guinea (PG)"),
("PY", "Paraguay (PY)"),
("PE", "Peru (PE)"),
("PH", "Philippines (PH)"),
("PL", "Poland (PL)"),
("PT", "Portugal (PT)"),
("QA", "Qatar (QA)"),
("CG", "Congo (CG)"),
("RO", "Romania (RO)"),
("RU", "Russia (RU)"),
("RW", "Rwanda (RW)"),
("WS", "Samoa (WS)"),
("SM", "San Marino (SM)"),
("SA", "Saudi Arabia (SA)"),
("SN", "Senegal (SN)"),
("RS", "Serbia (RS)"),
("SC", "Seychelles (SC)"),
("SL", "Sierra Leone (SL)"),
("SG", "Singapore (SG)"),
("SK", "Slovakia (SK)"),
("SI", "Slovenia (SI)"),
("SB", "Solomon Islands (SB)"),
("ZA", "South Africa (ZA)"),
("KR", "South Korea (KR)"),
("ES", "Spain (ES)"),
("LK", "Sri Lanka (LK)"),
("KN", "St. Kitts and Nevis (KN)"),
("LC", "St. Lucia (LC)"),
("SR", "Suriname (SR)"),
("SE", "Sweden (SE)"),
("CH", "Switzerland (CH)"),
("ST", "São Tomé and Príncipe (ST)"),
("TW", "Taiwan (TW)"),
("TJ", "Tajikistan (TJ)"),
("TZ", "Tanzania (TZ)"),
("TH", "Thailand (TH)"),
("BS", "The Bahamas (BS)"),
("GM", "The Gambia (GM)"),
("TL", "East Timor (TL)"),
("TG", "Togo (TG)"),
("TO", "Tonga (TO)"),
("TT", "Trinidad and Tobago (TT)"),
("TN", "Tunisia (TN)"),
("TR", "Turkey (TR)"),
("TV", "Tuvalu (TV)"),
("UG", "Uganda (UG)"),
("UA", "Ukraine (UA)"),
("AE", "United Arab Emirates (AE)"),
("GB", "United Kingdom (GB)"),
("US", "United States (US)"),
("UY", "Uruguay (UY)"),
("UZ", "Uzbekistan (UZ)"),
("VU", "Vanuatu (VU)"),
("VE", "Venezuela (VE)"),
("VN", "Vietnam (VN)"),
("ZM", "Zambia (ZM)"),
("ZW", "Zimbabwe (ZW)"),
(Market.AL, "Albania (AL)"),
(Market.DZ, "Algeria (DZ)"),
(Market.AD, "Andorra (AD)"),
(Market.AO, "Angola (AO)"),
(Market.AG, "Antigua and Barbuda (AG)"),
(Market.AR, "Argentina (AR)"),
(Market.AM, "Armenia (AM)"),
(Market.AU, "Australia (AU)"),
(Market.AT, "Austria (AT)"),
(Market.AZ, "Azerbaijan (AZ)"),
(Market.BH, "Bahrain (BH)"),
(Market.BD, "Bangladesh (BD)"),
(Market.BB, "Barbados (BB)"),
(Market.BY, "Belarus (BY)"),
(Market.BE, "Belgium (BE)"),
(Market.BZ, "Belize (BZ)"),
(Market.BJ, "Benin (BJ)"),
(Market.BT, "Bhutan (BT)"),
(Market.BO, "Bolivia (BO)"),
(Market.BA, "Bosnia and Herzegovina (BA)"),
(Market.BW, "Botswana (BW)"),
(Market.BR, "Brazil (BR)"),
(Market.BN, "Brunei Darussalam (BN)"),
(Market.BG, "Bulgaria (BG)"),
(Market.BF, "Burkina Faso (BF)"),
(Market.BI, "Burundi (BI)"),
(Market.CV, "Cabo Verde / Cape Verde (CV)"),
(Market.KH, "Cambodia (KH)"),
(Market.CM, "Cameroon (CM)"),
(Market.CA, "Canada (CA)"),
(Market.TD, "Chad (TD)"),
(Market.CL, "Chile (CL)"),
(Market.CO, "Colombia (CO)"),
(Market.KM, "Comoros (KM)"),
(Market.CR, "Costa Rica (CR)"),
(Market.HR, "Croatia (HR)"),
(Market.CW, "Curaçao (CW)"),
(Market.CY, "Cyprus (CY)"),
(Market.CZ, "Czech Republic (CZ)"),
(Market.CI, "Ivory Coast (CI)"),
(Market.CD, "Congo (CD)"),
(Market.DK, "Denmark (DK)"),
(Market.DJ, "Djibouti (DJ)"),
(Market.DM, "Dominica (DM)"),
(Market.DO, "Dominican Republic (DO)"),
(Market.EC, "Ecuador (EC)"),
(Market.EG, "Egypt (EG)"),
(Market.SV, "El Salvador (SV)"),
(Market.GQ, "Equatorial Guinea (GQ)"),
(Market.EE, "Estonia (EE)"),
(Market.SZ, "Eswatini (SZ)"),
(Market.FJ, "Fiji (FJ)"),
(Market.FI, "Finland (FI)"),
(Market.FR, "France (FR)"),
(Market.GA, "Gabon (GA)"),
(Market.GE, "Georgia (GE)"),
(Market.DE, "Germany (DE)"),
(Market.GH, "Ghana (GH)"),
(Market.GR, "Greece (GR)"),
(Market.GD, "Grenada (GD)"),
(Market.GT, "Guatemala (GT)"),
(Market.GN, "Guinea (GN)"),
(Market.GW, "Guinea-Bissau (GW)"),
(Market.GY, "Guyana (GY)"),
(Market.HT, "Haiti (HT)"),
(Market.HN, "Honduras (HN)"),
(Market.HK, "Hong Kong (HK)"),
(Market.HU, "Hungary (HU)"),
(Market.IS, "Iceland (IS)"),
(Market.IN, "India (IN)"),
(Market.ID, "Indonesia (ID)"),
(Market.IQ, "Iraq (IQ)"),
(Market.IE, "Ireland (IE)"),
(Market.IL, "Israel (IL)"),
(Market.IT, "Italy (IT)"),
(Market.JM, "Jamaica (JM)"),
(Market.JP, "Japan (JP)"),
(Market.JO, "Jordan (JO)"),
(Market.KZ, "Kazakhstan (KZ)"),
(Market.KE, "Kenya (KE)"),
(Market.KI, "Kiribati (KI)"),
(Market.XK, "Kosovo (XK)"),
(Market.KW, "Kuwait (KW)"),
(Market.KG, "Kyrgyzstan (KG)"),
(Market.LA, "Laos (LA)"),
(Market.LV, "Latvia (LV)"),
(Market.LB, "Lebanon (LB)"),
(Market.LS, "Lesotho (LS)"),
(Market.LR, "Liberia (LR)"),
(Market.LY, "Libya (LY)"),
(Market.LI, "Liechtenstein (LI)"),
(Market.LT, "Lithuania (LT)"),
(Market.LU, "Luxembourg (LU)"),
(Market.MO, "Macao / Macau (MO)"),
(Market.MG, "Madagascar (MG)"),
(Market.MW, "Malawi (MW)"),
(Market.MY, "Malaysia (MY)"),
(Market.MV, "Maldives (MV)"),
(Market.ML, "Mali (ML)"),
(Market.MT, "Malta (MT)"),
(Market.MH, "Marshall Islands (MH)"),
(Market.MR, "Mauritania (MR)"),
(Market.MU, "Mauritius (MU)"),
(Market.MX, "Mexico (MX)"),
(Market.FM, "Micronesia (FM)"),
(Market.MD, "Moldova (MD)"),
(Market.MC, "Monaco (MC)"),
(Market.MN, "Mongolia (MN)"),
(Market.ME, "Montenegro (ME)"),
(Market.MA, "Morocco (MA)"),
(Market.MZ, "Mozambique (MZ)"),
(Market.NA, "Namibia (NA)"),
(Market.NR, "Nauru (NR)"),
(Market.NP, "Nepal (NP)"),
(Market.NL, "Netherlands (NL)"),
(Market.NZ, "New Zealand (NZ)"),
(Market.NI, "Nicaragua (NI)"),
(Market.NE, "Niger (NE)"),
(Market.NG, "Nigeria (NG)"),
(Market.MK, "North Macedonia (MK)"),
(Market.NO, "Norway (NO)"),
(Market.OM, "Oman (OM)"),
(Market.PK, "Pakistan (PK)"),
(Market.PW, "Palau (PW)"),
(Market.PS, "Palestine (PS)"),
(Market.PA, "Panama (PA)"),
(Market.PG, "Papua New Guinea (PG)"),
(Market.PY, "Paraguay (PY)"),
(Market.PE, "Peru (PE)"),
(Market.PH, "Philippines (PH)"),
(Market.PL, "Poland (PL)"),
(Market.PT, "Portugal (PT)"),
(Market.QA, "Qatar (QA)"),
(Market.CG, "Congo (CG)"),
(Market.RO, "Romania (RO)"),
(Market.RU, "Russia (RU)"),
(Market.RW, "Rwanda (RW)"),
(Market.WS, "Samoa (WS)"),
(Market.SM, "San Marino (SM)"),
(Market.SA, "Saudi Arabia (SA)"),
(Market.SN, "Senegal (SN)"),
(Market.RS, "Serbia (RS)"),
(Market.SC, "Seychelles (SC)"),
(Market.SL, "Sierra Leone (SL)"),
(Market.SG, "Singapore (SG)"),
(Market.SK, "Slovakia (SK)"),
(Market.SI, "Slovenia (SI)"),
(Market.SB, "Solomon Islands (SB)"),
(Market.ZA, "South Africa (ZA)"),
(Market.KR, "South Korea (KR)"),
(Market.ES, "Spain (ES)"),
(Market.LK, "Sri Lanka (LK)"),
(Market.KN, "St. Kitts and Nevis (KN)"),
(Market.LC, "St. Lucia (LC)"),
(Market.SR, "Suriname (SR)"),
(Market.SE, "Sweden (SE)"),
(Market.CH, "Switzerland (CH)"),
(Market.ST, "São Tomé and Príncipe (ST)"),
(Market.TW, "Taiwan (TW)"),
(Market.TJ, "Tajikistan (TJ)"),
(Market.TZ, "Tanzania (TZ)"),
(Market.TH, "Thailand (TH)"),
(Market.BS, "The Bahamas (BS)"),
(Market.GM, "The Gambia (GM)"),
(Market.TL, "East Timor (TL)"),
(Market.TG, "Togo (TG)"),
(Market.TO, "Tonga (TO)"),
(Market.TT, "Trinidad and Tobago (TT)"),
(Market.TN, "Tunisia (TN)"),
(Market.TR, "Turkey (TR)"),
(Market.TV, "Tuvalu (TV)"),
(Market.UG, "Uganda (UG)"),
(Market.UA, "Ukraine (UA)"),
(Market.AE, "United Arab Emirates (AE)"),
(Market.GB, "United Kingdom (GB)"),
(Market.US, "United States (US)"),
(Market.UY, "Uruguay (UY)"),
(Market.UZ, "Uzbekistan (UZ)"),
(Market.VU, "Vanuatu (VU)"),
(Market.VE, "Venezuela (VE)"),
(Market.VN, "Vietnam (VN)"),
(Market.ZM, "Zambia (ZM)"),
(Market.ZW, "Zimbabwe (ZW)"),
];

View File

@ -11,24 +11,7 @@ import 'package:spotube/services/audio_player/audio_player.dart';
import 'package:spotube/utils/service_utils.dart';
import 'package:spotube/utils/type_conversion_utils.dart';
enum AlbumType {
album,
single,
compilation;
factory AlbumType.from(String? type) {
switch (type) {
case "album":
return AlbumType.album;
case "single":
return AlbumType.single;
case "compilation":
return AlbumType.compilation;
default:
return AlbumType.album;
}
}
extension FormattedAlbumType on AlbumType {
String get formatted => name.replaceFirst(name[0], name[0].toUpperCase());
}
@ -71,7 +54,7 @@ class AlbumCard extends HookConsumerWidget {
isLoading: isPlaylistPlaying && playlist.isFetching == true,
title: album.name!,
description:
"${AlbumType.from(album.albumType!).formatted}${TypeConversionUtils.artists_X_String<ArtistSimple>(album.artists ?? [])}",
"${album.albumType?.formatted}${TypeConversionUtils.artists_X_String<ArtistSimple>(album.artists ?? [])}",
onTap: () {
ServiceUtils.push(context, "/album/${album.id}", extra: album);
},

View File

@ -42,6 +42,7 @@ class AdaptiveSelectTile<T> extends HookWidget {
items: options,
value: value,
onChanged: onChanged,
menuMaxHeight: mediaQuery.size.height * 0.6,
);
final controlPlaceholder = useMemoized(
() => options

View File

@ -121,7 +121,7 @@ class TrackCollectionHeading<T> extends HookConsumerWidget {
),
if (album != null)
Text(
"${AlbumType.from(album?.albumType).formatted}${context.l10n.released}${DateTime.tryParse(
"${album?.albumType?.formatted}${context.l10n.released}${DateTime.tryParse(
album?.releaseDate ?? "",
)?.year}",
style: theme.textTheme.titleMedium!.copyWith(

View File

@ -227,7 +227,7 @@
"selected_count_tracks": "مقطوعات {count} مختارة",
"download_warning": "إذا قمت بتنزيل جميع المقاطع الصوتية بكميات كبيرة، فمن الواضح أنك تقوم بقرصنة الموسيقى وتسبب الضرر للمجتمع الإبداعي للموسيقى. أتمنى أن تكون على علم بهذا. حاول دائمًا احترام ودعم العمل الجاد للفنان",
"download_ip_ban_warning": "بالمناسبة، يمكن أن يتم حظر عنوان IP الخاص بك على YouTube بسبب طلبات التنزيل الزائدة عن المعتاد. يعني حظر IP أنه لا يمكنك استخدام YouTube (حتى إذا قمت بتسجيل الدخول) لمدة تتراوح بين شهرين إلى ثلاثة أشهر على الأقل من جهاز IP هذا. ولا يتحمل Spotube أي مسؤولية إذا حدث هذا على الإطلاق",
"by_clicking_accept_terms": "بالنقر على "قبول"، فإنك توافق على الشروط التالية:",
"by_clicking_accept_terms": "بالنقر على \"قبول\"، فإنك توافق على الشروط التالية:",
"download_agreement_1": "أعلم أنني أقوم بقرصنة الموسيقى. انا سيئ",
"download_agreement_2": "سأدعم الفنان أينما أستطيع، وأنا أفعل هذا فقط لأنني لا أملك المال لشراء أعمالهم الفنية",
"download_agreement_3": "أدرك تمامًا أنه يمكن حظر عنوان IP الخاص بي على YouTube ولا أحمل Spotube أو مالكيه/مساهميه المسؤولية عن أي حوادث ناجمة عن الإجراء الحالي الخاص بي",
@ -264,4 +264,4 @@
"use_system_title_bar": "استخدم شريط عنوان النظام",
"crunching_results": "تدمير النتائج",
"search_to_get_results": "إبحث للحصول على النتائج"
}
}

View File

@ -23,5 +23,6 @@ class L10n {
const Locale('ru', 'RU'),
const Locale('pt', 'PT'),
const Locale('uk', 'UA'),
const Locale('ar', 'SA'),
];
}

View File

@ -37,7 +37,7 @@ class PlaylistGeneratorPage extends HookConsumerWidget {
final genresCollection = useQueries.category.genreSeeds(ref);
final limit = useValueNotifier<int>(10);
final market = useValueNotifier<String>(preferences.recommendationMarket);
final market = useValueNotifier<Market>(preferences.recommendationMarket);
final genres = useState<List<String>>([]);
final artists = useState<List<Artist>>([]);
@ -220,7 +220,7 @@ class PlaylistGeneratorPage extends HookConsumerWidget {
final countrySelector = ValueListenableBuilder(
valueListenable: market,
builder: (context, value, _) {
return DropdownButtonFormField<String>(
return DropdownButtonFormField<Market>(
decoration: InputDecoration(
labelText: context.l10n.country,
labelStyle: textTheme.titleMedium,

View File

@ -18,7 +18,7 @@ typedef PlaylistGenerateResultRouteState = ({
({List<String> tracks, List<String> artists, List<String> genres})? seeds,
RecommendationParameters? parameters,
int limit,
String? market,
Market? market,
});
class PlaylistGenerateResultPage extends HookConsumerWidget {

View File

@ -9,6 +9,7 @@ import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:piped_client/piped_client.dart';
import 'package:spotify/spotify.dart';
import 'package:spotube/collections/env.dart';
import 'package:spotube/collections/language_codes.dart';
import 'package:spotube/collections/spotube_icons.dart';
@ -180,7 +181,7 @@ class SettingsPage extends HookConsumerWidget {
),
],
),
AdaptiveSelectTile<String>(
AdaptiveSelectTile<Market>(
breakLayout: mediaQuery.lgAndUp,
secondary: const Icon(SpotubeIcons.shoppingBag),
title: Text(context.l10n.market_place_region),

View File

@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_desktop_tools/flutter_desktop_tools.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:path_provider/path_provider.dart';
import 'package:spotify/spotify.dart';
import 'package:spotube/components/settings/color_scheme_picker_dialog.dart';
import 'package:spotube/models/matched_track.dart';
import 'package:spotube/provider/palette_provider.dart';
@ -41,7 +42,7 @@ enum YoutubeApiType {
class UserPreferences extends PersistedChangeNotifier {
ThemeMode themeMode;
String recommendationMarket;
Market recommendationMarket;
bool saveTrackLyrics;
bool checkUpdate;
AudioQuality audioQuality;
@ -118,7 +119,7 @@ class UserPreferences extends PersistedChangeNotifier {
updatePersistence();
}
void setRecommendationMarket(String country) {
void setRecommendationMarket(Market country) {
recommendationMarket = country;
notifyListeners();
updatePersistence();
@ -342,7 +343,7 @@ class UserPreferences extends PersistedChangeNotifier {
SearchMode? searchMode,
bool? skipNonMusic,
YoutubeApiType? youtubeApiType,
String? recommendationMarket,
Market? recommendationMarket,
bool? saveTrackLyrics,
}) {
return UserPreferences(
@ -371,7 +372,7 @@ final userPreferencesProvider = ChangeNotifierProvider(
(ref) => UserPreferences(
ref,
accentColorScheme: SpotubeColor(Colors.blue.value, name: "Blue"),
recommendationMarket: 'US',
recommendationMarket: Market.US,
themeMode: ThemeMode.system,
layoutMode: LayoutMode.adaptive,
),

View File

@ -43,8 +43,8 @@ class CustomSpotifyEndpoints {
String imageStyle = "gradient_overlay",
String includeExternal = "audio",
String? locale,
String? market,
String? country,
Market? market,
Market? country,
}) async {
if (accessToken.isEmpty) {
throw Exception('[CustomSpotifyEndpoints.getView]: accessToken is empty');
@ -124,7 +124,7 @@ class CustomSpotifyEndpoints {
Iterable<String>? seedGenres,
Iterable<String>? seedTracks,
int limit = 20,
String? market,
Market? market,
Map<String, num>? max,
Map<String, num>? min,
Map<String, num>? target,
@ -143,7 +143,7 @@ class CustomSpotifyEndpoints {
'seed_genres': seedGenres,
'seed_tracks': seedTracks
}.forEach((key, list) => _addList(parameters, key, list!));
if (market != null) parameters['market'] = market;
if (market != null) parameters['market'] = market.name;
for (var map in [min, max, target]) {
_addTunableTrackMap(parameters, map);
}

View File

@ -66,7 +66,7 @@ class AlbumQueries {
(pageParam, spotify) async {
try {
final albums = await spotify.browse
.getNewReleases(country: market)
.newReleases(country: market)
.getPage(50, pageParam);
return albums;

View File

@ -13,7 +13,7 @@ class CategoryQueries {
InfiniteQuery<Page<Category>, dynamic, int> list(
WidgetRef ref,
String recommendationMarket,
Market recommendationMarket,
) {
ref.watch(userPreferencesProvider.select((s) => s.locale));
final locale = useContext().l10n.localeName;

View File

@ -1,6 +1,3 @@
import 'dart:io';
import 'dart:math';
import 'package:catcher/catcher.dart';
import 'package:fl_query/fl_query.dart';
import 'package:fl_query_hooks/fl_query_hooks.dart';
@ -13,7 +10,6 @@ import 'package:spotube/extensions/track.dart';
import 'package:spotube/hooks/use_spotify_infinite_query.dart';
import 'package:spotube/hooks/use_spotify_query.dart';
import 'package:spotube/pages/library/playlist_generate/playlist_generate.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';
@ -244,7 +240,7 @@ class PlaylistQueries {
({List<String> tracks, List<String> artists, List<String> genres})? seeds,
RecommendationParameters? parameters,
int limit = 20,
String? market,
Market? market,
}) {
final marketOfPreference = ref.watch(
userPreferencesProvider.select((s) => s.recommendationMarket),

View File

@ -11,7 +11,7 @@ class SearchQueries {
SearchType searchType,
) {
return useSpotifyInfiniteQuery<List<Page>, dynamic, int>(
"search-query/${searchType.key}",
"search-query/${searchType.name}",
(page, spotify) {
if (query.trim().isEmpty) return [];
final queryString = query;

View File

@ -1,4 +1,9 @@
{
"ar": [
"use_amoled_dark_theme",
"normalize_audio"
],
"bn": [
"use_amoled_dark_theme",
"normalize_audio"