diff --git a/CHANGELOG.md b/CHANGELOG.md index 30fd08a8a..5c3f7e575 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file. ### Added - Search: format filters +- Albums: sort by path ### Changed diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index f028d9345..9a4e43bf9 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -758,6 +758,7 @@ "sortByAlbumFileName": "By album & file name", "sortByRating": "By rating", "sortByDuration": "By duration", + "sortByPath": "By path", "sortOrderNewestFirst": "Newest first", "sortOrderOldestFirst": "Oldest first", diff --git a/lib/l10ngen/app_localizations.dart b/lib/l10ngen/app_localizations.dart index 5148e53ea..634117dae 100644 --- a/lib/l10ngen/app_localizations.dart +++ b/lib/l10ngen/app_localizations.dart @@ -2715,6 +2715,12 @@ abstract class AppLocalizations { /// **'By duration'** String get sortByDuration; + /// No description provided for @sortByPath. + /// + /// In en, this message translates to: + /// **'By path'** + String get sortByPath; + /// No description provided for @sortOrderNewestFirst. /// /// In en, this message translates to: diff --git a/lib/l10ngen/app_localizations_ar.dart b/lib/l10ngen/app_localizations_ar.dart index 5f0de8398..03b854022 100644 --- a/lib/l10ngen/app_localizations_ar.dart +++ b/lib/l10ngen/app_localizations_ar.dart @@ -1451,6 +1451,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get sortByDuration => 'حسب المدة'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'الأحدث أولاً'; diff --git a/lib/l10ngen/app_localizations_az.dart b/lib/l10ngen/app_localizations_az.dart index ccde11a78..902b1307d 100644 --- a/lib/l10ngen/app_localizations_az.dart +++ b/lib/l10ngen/app_localizations_az.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsAz extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_be.dart b/lib/l10ngen/app_localizations_be.dart index 2a69a7057..5474d00b4 100644 --- a/lib/l10ngen/app_localizations_be.dart +++ b/lib/l10ngen/app_localizations_be.dart @@ -1469,6 +1469,9 @@ class AppLocalizationsBe extends AppLocalizations { @override String get sortByDuration => 'Па працягласці'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Спачатку самае новае'; diff --git a/lib/l10ngen/app_localizations_bg.dart b/lib/l10ngen/app_localizations_bg.dart index 5e3b60585..7884bb752 100644 --- a/lib/l10ngen/app_localizations_bg.dart +++ b/lib/l10ngen/app_localizations_bg.dart @@ -1503,6 +1503,9 @@ class AppLocalizationsBg extends AppLocalizations { @override String get sortByDuration => 'По продължителност'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Първо най-новите'; diff --git a/lib/l10ngen/app_localizations_bn.dart b/lib/l10ngen/app_localizations_bn.dart index 7bff1c2bd..1714234fb 100644 --- a/lib/l10ngen/app_localizations_bn.dart +++ b/lib/l10ngen/app_localizations_bn.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsBn extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_ca.dart b/lib/l10ngen/app_localizations_ca.dart index 079a30808..7314cde85 100644 --- a/lib/l10ngen/app_localizations_ca.dart +++ b/lib/l10ngen/app_localizations_ca.dart @@ -1451,6 +1451,9 @@ class AppLocalizationsCa extends AppLocalizations { @override String get sortByDuration => 'Per durada'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Primer el més nou'; diff --git a/lib/l10ngen/app_localizations_ckb.dart b/lib/l10ngen/app_localizations_ckb.dart index 34cce1b1f..4336a9dd5 100644 --- a/lib/l10ngen/app_localizations_ckb.dart +++ b/lib/l10ngen/app_localizations_ckb.dart @@ -1488,6 +1488,9 @@ class AppLocalizationsCkb extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_cs.dart b/lib/l10ngen/app_localizations_cs.dart index 4b5784a74..9e1801924 100644 --- a/lib/l10ngen/app_localizations_cs.dart +++ b/lib/l10ngen/app_localizations_cs.dart @@ -1464,6 +1464,9 @@ class AppLocalizationsCs extends AppLocalizations { @override String get sortByDuration => 'Podle trvání'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Od nejnovějšího'; diff --git a/lib/l10ngen/app_localizations_da.dart b/lib/l10ngen/app_localizations_da.dart index 27b5b2a46..91d0f70b7 100644 --- a/lib/l10ngen/app_localizations_da.dart +++ b/lib/l10ngen/app_localizations_da.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsDa extends AppLocalizations { @override String get sortByDuration => 'Efter varighed'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Nyeste først'; diff --git a/lib/l10ngen/app_localizations_de.dart b/lib/l10ngen/app_localizations_de.dart index fc669e014..779fa4d04 100644 --- a/lib/l10ngen/app_localizations_de.dart +++ b/lib/l10ngen/app_localizations_de.dart @@ -1496,6 +1496,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get sortByDuration => 'Nach Dauer'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Neueste zuerst'; diff --git a/lib/l10ngen/app_localizations_el.dart b/lib/l10ngen/app_localizations_el.dart index 14fe8302a..96bd7f14c 100644 --- a/lib/l10ngen/app_localizations_el.dart +++ b/lib/l10ngen/app_localizations_el.dart @@ -1496,6 +1496,9 @@ class AppLocalizationsEl extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Τα πιο πρόσφατα πρώτα'; diff --git a/lib/l10ngen/app_localizations_en.dart b/lib/l10ngen/app_localizations_en.dart index 0ce6e83b3..055e31a71 100644 --- a/lib/l10ngen/app_localizations_en.dart +++ b/lib/l10ngen/app_localizations_en.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_es.dart b/lib/l10ngen/app_localizations_es.dart index 4414ad8f8..241eb3c3c 100644 --- a/lib/l10ngen/app_localizations_es.dart +++ b/lib/l10ngen/app_localizations_es.dart @@ -1496,6 +1496,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get sortByDuration => 'Por duración'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'El más nuevo primero'; diff --git a/lib/l10ngen/app_localizations_et.dart b/lib/l10ngen/app_localizations_et.dart index 965840661..8e2b1dc3e 100644 --- a/lib/l10ngen/app_localizations_et.dart +++ b/lib/l10ngen/app_localizations_et.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsEt extends AppLocalizations { @override String get sortByDuration => 'Kestuse järgi'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Esmalt uuemad'; diff --git a/lib/l10ngen/app_localizations_eu.dart b/lib/l10ngen/app_localizations_eu.dart index 0e14257a0..84f7155e3 100644 --- a/lib/l10ngen/app_localizations_eu.dart +++ b/lib/l10ngen/app_localizations_eu.dart @@ -1451,6 +1451,9 @@ class AppLocalizationsEu extends AppLocalizations { @override String get sortByDuration => 'Iraupenaren arabera'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Berriena lehenengo'; diff --git a/lib/l10ngen/app_localizations_fa.dart b/lib/l10ngen/app_localizations_fa.dart index 817c2bf1d..ee8ba4540 100644 --- a/lib/l10ngen/app_localizations_fa.dart +++ b/lib/l10ngen/app_localizations_fa.dart @@ -1448,6 +1448,9 @@ class AppLocalizationsFa extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'اول جدیدترین'; diff --git a/lib/l10ngen/app_localizations_fi.dart b/lib/l10ngen/app_localizations_fi.dart index 811bac466..759701db8 100644 --- a/lib/l10ngen/app_localizations_fi.dart +++ b/lib/l10ngen/app_localizations_fi.dart @@ -1493,6 +1493,9 @@ class AppLocalizationsFi extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_fr.dart b/lib/l10ngen/app_localizations_fr.dart index 4433e28a5..5768f09d0 100644 --- a/lib/l10ngen/app_localizations_fr.dart +++ b/lib/l10ngen/app_localizations_fr.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get sortByDuration => 'par durée'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Plus récents d’abord'; diff --git a/lib/l10ngen/app_localizations_gl.dart b/lib/l10ngen/app_localizations_gl.dart index 64096161a..4733d2fb5 100644 --- a/lib/l10ngen/app_localizations_gl.dart +++ b/lib/l10ngen/app_localizations_gl.dart @@ -1496,6 +1496,9 @@ class AppLocalizationsGl extends AppLocalizations { @override String get sortByDuration => 'Por duración'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Novos primeiro'; diff --git a/lib/l10ngen/app_localizations_he.dart b/lib/l10ngen/app_localizations_he.dart index cae6a0e08..fc3535e2a 100644 --- a/lib/l10ngen/app_localizations_he.dart +++ b/lib/l10ngen/app_localizations_he.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsHe extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_hi.dart b/lib/l10ngen/app_localizations_hi.dart index 43954521b..bfd9aa858 100644 --- a/lib/l10ngen/app_localizations_hi.dart +++ b/lib/l10ngen/app_localizations_hi.dart @@ -1490,6 +1490,9 @@ class AppLocalizationsHi extends AppLocalizations { @override String get sortByDuration => 'समय के अनुसार'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'नए पहले'; diff --git a/lib/l10ngen/app_localizations_hu.dart b/lib/l10ngen/app_localizations_hu.dart index a1a7e7bfe..395b40ad8 100644 --- a/lib/l10ngen/app_localizations_hu.dart +++ b/lib/l10ngen/app_localizations_hu.dart @@ -1446,6 +1446,9 @@ class AppLocalizationsHu extends AppLocalizations { @override String get sortByDuration => 'Hossz szerint'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Legújabb legelöl'; diff --git a/lib/l10ngen/app_localizations_id.dart b/lib/l10ngen/app_localizations_id.dart index 9d0d061dd..009a06d09 100644 --- a/lib/l10ngen/app_localizations_id.dart +++ b/lib/l10ngen/app_localizations_id.dart @@ -1480,6 +1480,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get sortByDuration => 'Berdasarkan durasi'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Terbaru pertama'; diff --git a/lib/l10ngen/app_localizations_is.dart b/lib/l10ngen/app_localizations_is.dart index 46cd77c95..e2124ac35 100644 --- a/lib/l10ngen/app_localizations_is.dart +++ b/lib/l10ngen/app_localizations_is.dart @@ -1451,6 +1451,9 @@ class AppLocalizationsIs extends AppLocalizations { @override String get sortByDuration => 'Eftir tímalengd'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Nýjast fyrst'; diff --git a/lib/l10ngen/app_localizations_it.dart b/lib/l10ngen/app_localizations_it.dart index b00f852e9..4d58a53ab 100644 --- a/lib/l10ngen/app_localizations_it.dart +++ b/lib/l10ngen/app_localizations_it.dart @@ -1496,6 +1496,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get sortByDuration => 'Per durata'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Dal più nuovo'; diff --git a/lib/l10ngen/app_localizations_ja.dart b/lib/l10ngen/app_localizations_ja.dart index ed1a2fdd4..928a6fddd 100644 --- a/lib/l10ngen/app_localizations_ja.dart +++ b/lib/l10ngen/app_localizations_ja.dart @@ -1480,6 +1480,9 @@ class AppLocalizationsJa extends AppLocalizations { @override String get sortByDuration => '期間順'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => '新しいものから表示'; diff --git a/lib/l10ngen/app_localizations_kn.dart b/lib/l10ngen/app_localizations_kn.dart index 6cf19827d..a515cb37d 100644 --- a/lib/l10ngen/app_localizations_kn.dart +++ b/lib/l10ngen/app_localizations_kn.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsKn extends AppLocalizations { @override String get sortByDuration => 'ಅವಧಿಯಂತೆ'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'ಹೊಸದು ಮೊದಲು'; diff --git a/lib/l10ngen/app_localizations_ko.dart b/lib/l10ngen/app_localizations_ko.dart index 47ee3b4dc..c62df97c8 100644 --- a/lib/l10ngen/app_localizations_ko.dart +++ b/lib/l10ngen/app_localizations_ko.dart @@ -1478,6 +1478,9 @@ class AppLocalizationsKo extends AppLocalizations { @override String get sortByDuration => '길이'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => '최근 날짜순'; diff --git a/lib/l10ngen/app_localizations_lt.dart b/lib/l10ngen/app_localizations_lt.dart index dafa54e9d..ba4ca116f 100644 --- a/lib/l10ngen/app_localizations_lt.dart +++ b/lib/l10ngen/app_localizations_lt.dart @@ -1458,6 +1458,9 @@ class AppLocalizationsLt extends AppLocalizations { @override String get sortByDuration => 'Pagal trukmę'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Naujausi viršuje'; diff --git a/lib/l10ngen/app_localizations_ml.dart b/lib/l10ngen/app_localizations_ml.dart index f0dcc43f9..5a302a86d 100644 --- a/lib/l10ngen/app_localizations_ml.dart +++ b/lib/l10ngen/app_localizations_ml.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsMl extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_my.dart b/lib/l10ngen/app_localizations_my.dart index 2c933c62d..90fda817f 100644 --- a/lib/l10ngen/app_localizations_my.dart +++ b/lib/l10ngen/app_localizations_my.dart @@ -1460,6 +1460,9 @@ class AppLocalizationsMy extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'အသစ်ဆုံးက ထိပ်ဆုံး'; diff --git a/lib/l10ngen/app_localizations_nb.dart b/lib/l10ngen/app_localizations_nb.dart index 330782171..17dc2750f 100644 --- a/lib/l10ngen/app_localizations_nb.dart +++ b/lib/l10ngen/app_localizations_nb.dart @@ -1451,6 +1451,9 @@ class AppLocalizationsNb extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Nyeste først'; diff --git a/lib/l10ngen/app_localizations_ne.dart b/lib/l10ngen/app_localizations_ne.dart index b25775bcc..658caac50 100644 --- a/lib/l10ngen/app_localizations_ne.dart +++ b/lib/l10ngen/app_localizations_ne.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsNe extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_nl.dart b/lib/l10ngen/app_localizations_nl.dart index 245bc85bc..d5ce506eb 100644 --- a/lib/l10ngen/app_localizations_nl.dart +++ b/lib/l10ngen/app_localizations_nl.dart @@ -1498,6 +1498,9 @@ class AppLocalizationsNl extends AppLocalizations { @override String get sortByDuration => 'Op lengte'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Nieuwste eerst'; diff --git a/lib/l10ngen/app_localizations_nn.dart b/lib/l10ngen/app_localizations_nn.dart index 5912bd9fc..2556e386b 100644 --- a/lib/l10ngen/app_localizations_nn.dart +++ b/lib/l10ngen/app_localizations_nn.dart @@ -1440,6 +1440,9 @@ class AppLocalizationsNn extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Nyaste først'; diff --git a/lib/l10ngen/app_localizations_or.dart b/lib/l10ngen/app_localizations_or.dart index 0be8bd0e0..4e793a957 100644 --- a/lib/l10ngen/app_localizations_or.dart +++ b/lib/l10ngen/app_localizations_or.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsOr extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_pl.dart b/lib/l10ngen/app_localizations_pl.dart index 77452d6a1..6ecb299f2 100644 --- a/lib/l10ngen/app_localizations_pl.dart +++ b/lib/l10ngen/app_localizations_pl.dart @@ -1461,6 +1461,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get sortByDuration => 'Według czasu trwania'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Najpierw najnowsze'; diff --git a/lib/l10ngen/app_localizations_pt.dart b/lib/l10ngen/app_localizations_pt.dart index aeff10e53..0c03aab1b 100644 --- a/lib/l10ngen/app_localizations_pt.dart +++ b/lib/l10ngen/app_localizations_pt.dart @@ -1496,6 +1496,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get sortByDuration => 'Por duração'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Os mais novos primeiro'; diff --git a/lib/l10ngen/app_localizations_ro.dart b/lib/l10ngen/app_localizations_ro.dart index e06a0c32c..a3c388d8c 100644 --- a/lib/l10ngen/app_localizations_ro.dart +++ b/lib/l10ngen/app_localizations_ro.dart @@ -1451,6 +1451,9 @@ class AppLocalizationsRo extends AppLocalizations { @override String get sortByDuration => 'După durată'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Cele mai noi mai întâi'; diff --git a/lib/l10ngen/app_localizations_ru.dart b/lib/l10ngen/app_localizations_ru.dart index efe686ab2..c7fe81ad0 100644 --- a/lib/l10ngen/app_localizations_ru.dart +++ b/lib/l10ngen/app_localizations_ru.dart @@ -1513,6 +1513,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get sortByDuration => 'По продолжительности'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Сначала новые'; diff --git a/lib/l10ngen/app_localizations_sat.dart b/lib/l10ngen/app_localizations_sat.dart index 2b825ae94..f691c216a 100644 --- a/lib/l10ngen/app_localizations_sat.dart +++ b/lib/l10ngen/app_localizations_sat.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsSat extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_sk.dart b/lib/l10ngen/app_localizations_sk.dart index e6883bc07..2e406f9cd 100644 --- a/lib/l10ngen/app_localizations_sk.dart +++ b/lib/l10ngen/app_localizations_sk.dart @@ -1456,6 +1456,9 @@ class AppLocalizationsSk extends AppLocalizations { @override String get sortByDuration => 'Trvanie'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Najskôr najnovšie'; diff --git a/lib/l10ngen/app_localizations_sl.dart b/lib/l10ngen/app_localizations_sl.dart index d59d03527..1085ca0a1 100644 --- a/lib/l10ngen/app_localizations_sl.dart +++ b/lib/l10ngen/app_localizations_sl.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_sr.dart b/lib/l10ngen/app_localizations_sr.dart index e7f766d02..6bf41fbf9 100644 --- a/lib/l10ngen/app_localizations_sr.dart +++ b/lib/l10ngen/app_localizations_sr.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsSr extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_sv.dart b/lib/l10ngen/app_localizations_sv.dart index 2997e881e..1c04fd29c 100644 --- a/lib/l10ngen/app_localizations_sv.dart +++ b/lib/l10ngen/app_localizations_sv.dart @@ -1479,6 +1479,9 @@ class AppLocalizationsSv extends AppLocalizations { @override String get sortByDuration => 'Efter spellängd'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Nyast först'; diff --git a/lib/l10ngen/app_localizations_ta.dart b/lib/l10ngen/app_localizations_ta.dart index 93b5e1425..4855d80f9 100644 --- a/lib/l10ngen/app_localizations_ta.dart +++ b/lib/l10ngen/app_localizations_ta.dart @@ -1499,6 +1499,9 @@ class AppLocalizationsTa extends AppLocalizations { @override String get sortByDuration => 'காலப்படி'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'முதலில் புதியது'; diff --git a/lib/l10ngen/app_localizations_th.dart b/lib/l10ngen/app_localizations_th.dart index b47b37014..8a3eff00c 100644 --- a/lib/l10ngen/app_localizations_th.dart +++ b/lib/l10ngen/app_localizations_th.dart @@ -1487,6 +1487,9 @@ class AppLocalizationsTh extends AppLocalizations { @override String get sortByDuration => 'By duration'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Newest first'; diff --git a/lib/l10ngen/app_localizations_tr.dart b/lib/l10ngen/app_localizations_tr.dart index 8ae4af9cc..2508d818e 100644 --- a/lib/l10ngen/app_localizations_tr.dart +++ b/lib/l10ngen/app_localizations_tr.dart @@ -1491,6 +1491,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get sortByDuration => 'Süreye göre'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Önce en yeni'; diff --git a/lib/l10ngen/app_localizations_uk.dart b/lib/l10ngen/app_localizations_uk.dart index 3c21a0195..062829d82 100644 --- a/lib/l10ngen/app_localizations_uk.dart +++ b/lib/l10ngen/app_localizations_uk.dart @@ -1470,6 +1470,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get sortByDuration => 'За тривалістю'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Найновіші перші'; diff --git a/lib/l10ngen/app_localizations_vi.dart b/lib/l10ngen/app_localizations_vi.dart index f73caa763..c16aa1c65 100644 --- a/lib/l10ngen/app_localizations_vi.dart +++ b/lib/l10ngen/app_localizations_vi.dart @@ -1446,6 +1446,9 @@ class AppLocalizationsVi extends AppLocalizations { @override String get sortByDuration => 'Theo thời lượng'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => 'Mới nhất trước'; diff --git a/lib/l10ngen/app_localizations_zh.dart b/lib/l10ngen/app_localizations_zh.dart index 500a831ef..7e2925cf7 100644 --- a/lib/l10ngen/app_localizations_zh.dart +++ b/lib/l10ngen/app_localizations_zh.dart @@ -1480,6 +1480,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get sortByDuration => '按时长'; + @override + String get sortByPath => 'By path'; + @override String get sortOrderNewestFirst => '降序'; diff --git a/lib/model/filters/path.dart b/lib/model/filters/path.dart index 7515ab635..bb0adea54 100644 --- a/lib/model/filters/path.dart +++ b/lib/model/filters/path.dart @@ -64,7 +64,7 @@ class PathFilter extends CollectionFilter { } @override - Widget? iconBuilder(BuildContext context, double size, {bool allowGenericIcon = true}) => Icon(AIcons.explorer, size: size); + Widget? iconBuilder(BuildContext context, double size, {bool allowGenericIcon = true}) => Icon(AIcons.path, size: size); @override String get category => type; diff --git a/lib/theme/icons.dart b/lib/theme/icons.dart index 1e281e9a9..c63e5cb0a 100644 --- a/lib/theme/icons.dart +++ b/lib/theme/icons.dart @@ -43,6 +43,7 @@ class AIcons { static const newTier = Symbols.fiber_new; static const opacity = Symbols.opacity; static const palette = Symbols.palette; + static const path = Symbols.account_tree; static const privacy = Symbols.shield_person; static const rating = Symbols.star; static final ratingRejected = MdiIcons.starMinusOutline; diff --git a/lib/view/src/source/sort.dart b/lib/view/src/source/sort.dart index 800cde2a3..cd621455e 100644 --- a/lib/view/src/source/sort.dart +++ b/lib/view/src/source/sort.dart @@ -45,6 +45,7 @@ extension ExtraChipSortFactorView on ChipSortFactor { ChipSortFactor.name => l10n.sortByName, ChipSortFactor.count => l10n.sortByItemCount, ChipSortFactor.size => l10n.sortBySize, + ChipSortFactor.path => l10n.sortByPath, }; } @@ -54,6 +55,7 @@ extension ExtraChipSortFactorView on ChipSortFactor { ChipSortFactor.name => AIcons.name, ChipSortFactor.count => AIcons.count, ChipSortFactor.size => AIcons.size, + ChipSortFactor.path => AIcons.path, }; } @@ -61,7 +63,7 @@ extension ExtraChipSortFactorView on ChipSortFactor { final l10n = context.l10n; return switch (this) { ChipSortFactor.date => reverse ? l10n.sortOrderOldestFirst : l10n.sortOrderNewestFirst, - ChipSortFactor.name => reverse ? l10n.sortOrderZtoA : l10n.sortOrderAtoZ, + ChipSortFactor.name || ChipSortFactor.path => reverse ? l10n.sortOrderZtoA : l10n.sortOrderAtoZ, ChipSortFactor.count || ChipSortFactor.size => reverse ? l10n.sortOrderSmallestFirst : l10n.sortOrderLargestFirst, }; } diff --git a/lib/widgets/filter_grids/common/action_delegates/album_set.dart b/lib/widgets/filter_grids/common/action_delegates/album_set.dart index 7c8736e5e..557978bee 100644 --- a/lib/widgets/filter_grids/common/action_delegates/album_set.dart +++ b/lib/widgets/filter_grids/common/action_delegates/album_set.dart @@ -190,7 +190,7 @@ class AlbumChipSetActionDelegate extends ChipSetActionDelegate builder: (context) { return TileViewDialog( initialValue: initialValue, - sortOptions: ChipSetActionDelegate.sortOptions.map((v) => TileViewDialogOption(value: v, title: v.getName(context), icon: v.icon)).toList(), + sortOptions: ChipSetActionDelegate.albumSortOptions.map((v) => TileViewDialogOption(value: v, title: v.getName(context), icon: v.icon)).toList(), groupOptions: _groupOptions.map((v) => TileViewDialogOption(value: v, title: v.getName(context), icon: v.icon)).toList(), layoutOptions: ChipSetActionDelegate.layoutOptions.map((v) => TileViewDialogOption(value: v, title: v.getName(context), icon: v.icon)).toList(), sortOrder: (factor, reverse) => factor.getOrderName(context, reverse), diff --git a/lib/widgets/filter_grids/common/action_delegates/chip_set.dart b/lib/widgets/filter_grids/common/action_delegates/chip_set.dart index ec4b49597..b114d3b5b 100644 --- a/lib/widgets/filter_grids/common/action_delegates/chip_set.dart +++ b/lib/widgets/filter_grids/common/action_delegates/chip_set.dart @@ -57,6 +57,11 @@ abstract class ChipSetActionDelegate with FeedbackMi ChipSortFactor.size, ]; + static const albumSortOptions = [ + ...sortOptions, + ChipSortFactor.path, + ]; + static const layoutOptions = [ TileLayout.mosaic, TileLayout.grid, diff --git a/lib/widgets/filter_grids/common/draggable_thumb_label.dart b/lib/widgets/filter_grids/common/draggable_thumb_label.dart index fa06daddc..bff34883a 100644 --- a/lib/widgets/filter_grids/common/draggable_thumb_label.dart +++ b/lib/widgets/filter_grids/common/draggable_thumb_label.dart @@ -28,6 +28,7 @@ class FilterDraggableThumbLabel extends StatelessWid DraggableThumbLabel.formatMonthThumbLabel(context, filterGridItem.entry?.bestDate), ]; case ChipSortFactor.name: + case ChipSortFactor.path: return [ filterGridItem.filter.getLabel(context), ]; diff --git a/lib/widgets/filter_grids/common/filter_nav_page.dart b/lib/widgets/filter_grids/common/filter_nav_page.dart index 4b4f95a09..a45608079 100644 --- a/lib/widgets/filter_grids/common/filter_nav_page.dart +++ b/lib/widgets/filter_grids/common/filter_nav_page.dart @@ -1,3 +1,4 @@ +import 'package:aves/model/filters/covered/stored_album.dart'; import 'package:aves/model/filters/filters.dart'; import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/source/collection_source.dart'; @@ -59,6 +60,18 @@ class FilterNavigationPage(FilterGridItem a, FilterGridItem b) { + if (T == AlbumBaseFilter) { + final filterA = a.filter; + final filterB = b.filter; + final pathA = filterA is StoredAlbumFilter ? filterA.album : ''; + final pathB = filterB is StoredAlbumFilter ? filterB.album : ''; + final c = pathA.compareTo(pathB); + return c != 0 ? c : a.filter.compareTo(b.filter); + } + return 0; + } + static List> sort>( ChipSortFactor sortFactor, bool reverse, @@ -90,6 +103,8 @@ class FilterNavigationPage kv.key).toSet(); allMapEntries = toGridItem(source, filters); + case ChipSortFactor.path: + allMapEntries = toGridItem(source, filters)..sort(compareFiltersByPath); } if (reverse) { allMapEntries = allMapEntries.reversed.toList(); diff --git a/plugins/aves_model/lib/src/source/enums.dart b/plugins/aves_model/lib/src/source/enums.dart index 9f9d65e4d..cad1c1a2b 100644 --- a/plugins/aves_model/lib/src/source/enums.dart +++ b/plugins/aves_model/lib/src/source/enums.dart @@ -1,6 +1,6 @@ enum SourceState { loading, cataloguing, locatingCountries, locatingPlaces, ready } -enum ChipSortFactor { date, name, count, size } +enum ChipSortFactor { date, name, count, size, path } enum AlbumChipGroupFactor { none, importance, mimeType, volume }