feat(library): add missing-ISRC metadata filter

This commit is contained in:
zarzet
2026-07-27 01:15:51 +07:00
parent 8fe2662c0a
commit 52b1147275
15 changed files with 61 additions and 6 deletions
+8 -2
View File
@@ -3727,7 +3727,7 @@ abstract class AppLocalizations {
/// Tutorial welcome page title
///
/// In en, this message translates to:
/// **'Welcome to SpotiFLAC!'**
/// **'Welcome to SpotiFLAC Mobile!'**
String get tutorialWelcomeTitle;
/// Tutorial welcome page description
@@ -3739,7 +3739,7 @@ abstract class AppLocalizations {
/// Tutorial welcome tip 1
///
/// In en, this message translates to:
/// **'Download music from Spotify, Deezer, or paste any supported URL'**
/// **'Search music or paste a link from any source your installed extensions support'**
String get tutorialWelcomeTip1;
/// Tutorial welcome tip 2
@@ -6760,6 +6760,12 @@ abstract class AppLocalizations {
/// **'Incorrect ISRC format'**
String get libraryFilterMetadataIncorrectIsrcFormat;
/// Filter option - items without any ISRC tag
///
/// In en, this message translates to:
/// **'Missing ISRC'**
String get libraryFilterMetadataMissingIsrc;
/// Filter option - items missing record label
///
/// In en, this message translates to:
+3
View File
@@ -4112,6 +4112,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get libraryFilterMetadataIncorrectIsrcFormat => 'Falsches ISRC-Format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Label fehlt';
+5 -2
View File
@@ -2076,7 +2076,7 @@ class AppLocalizationsEn extends AppLocalizations {
}
@override
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC!';
String get tutorialWelcomeTitle => 'Welcome to SpotiFLAC Mobile!';
@override
String get tutorialWelcomeDesc =>
@@ -2084,7 +2084,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get tutorialWelcomeTip1 =>
'Download music from Spotify, Deezer, or paste any supported URL';
'Search music or paste a link from any source your installed extensions support';
@override
String get tutorialWelcomeTip2 =>
@@ -4067,6 +4067,9 @@ class AppLocalizationsEn extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+3
View File
@@ -4061,6 +4061,9 @@ class AppLocalizationsEs extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+3
View File
@@ -4176,6 +4176,9 @@ class AppLocalizationsFr extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Format ISRC incorrect';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Label manquant';
+3
View File
@@ -4070,6 +4070,9 @@ class AppLocalizationsId extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+3
View File
@@ -4056,6 +4056,9 @@ class AppLocalizationsJa extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+3
View File
@@ -3944,6 +3944,9 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get libraryFilterMetadataIncorrectIsrcFormat => 'ISRC 형식이 잘못됨';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => '레이블 누락';
+3
View File
@@ -4061,6 +4061,9 @@ class AppLocalizationsPt extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+3
View File
@@ -4098,6 +4098,9 @@ class AppLocalizationsRu extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+3
View File
@@ -4097,6 +4097,9 @@ class AppLocalizationsTr extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+3
View File
@@ -4115,6 +4115,9 @@ class AppLocalizationsUk extends AppLocalizations {
String get libraryFilterMetadataIncorrectIsrcFormat =>
'Incorrect ISRC format';
@override
String get libraryFilterMetadataMissingIsrc => 'Missing ISRC';
@override
String get libraryFilterMetadataMissingLabel => 'Missing label';
+6 -2
View File
@@ -2751,7 +2751,7 @@
}
}
},
"tutorialWelcomeTitle": "Welcome to SpotiFLAC!",
"tutorialWelcomeTitle": "Welcome to SpotiFLAC Mobile!",
"@tutorialWelcomeTitle": {
"description": "Tutorial welcome page title"
},
@@ -2759,7 +2759,7 @@
"@tutorialWelcomeDesc": {
"description": "Tutorial welcome page description"
},
"tutorialWelcomeTip1": "Download music from Spotify, Deezer, or paste any supported URL",
"tutorialWelcomeTip1": "Search music or paste a link from any source your installed extensions support",
"@tutorialWelcomeTip1": {
"description": "Tutorial welcome tip 1"
},
@@ -5298,6 +5298,10 @@
"@libraryFilterMetadataIncorrectIsrcFormat": {
"description": "Filter option - items with an invalid ISRC format"
},
"libraryFilterMetadataMissingIsrc": "Missing ISRC",
"@libraryFilterMetadataMissingIsrc": {
"description": "Filter option - items without any ISRC tag"
},
"libraryFilterMetadataMissingLabel": "Missing label",
"@libraryFilterMetadataMissingLabel": {
"description": "Filter option - items missing record label"
+9
View File
@@ -954,6 +954,15 @@ class _QueueTabState extends ConsumerState<QueueTab> {
() => tempMetadata = 'incorrect-isrc-format',
),
),
FilterChip(
label: Text(
context.l10n.libraryFilterMetadataMissingIsrc,
),
selected: tempMetadata == 'missing-isrc',
onSelected: (_) => setSheetState(
() => tempMetadata = 'missing-isrc',
),
),
FilterChip(
label: Text(
context
@@ -462,6 +462,9 @@ extension _LibraryDbQueueSql on LibraryDatabase {
case 'incorrect-isrc-format':
where.add('($hasIncorrectIsrc)');
break;
case 'missing-isrc':
where.add('TRIM(COALESCE($isrcExpr, \'\')) = \'\'');
break;
case 'missing-label':
where.add('NOT ($hasLabel)');
break;