#1513 albums: sort by path
This commit is contained in:
parent
90d0256bf7
commit
af4ca96da8
62 changed files with 189 additions and 4 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -758,6 +758,7 @@
|
|||
"sortByAlbumFileName": "By album & file name",
|
||||
"sortByRating": "By rating",
|
||||
"sortByDuration": "By duration",
|
||||
"sortByPath": "By path",
|
||||
|
||||
"sortOrderNewestFirst": "Newest first",
|
||||
"sortOrderOldestFirst": "Oldest first",
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -1451,6 +1451,9 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'حسب المدة';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'الأحدث أولاً';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1469,6 +1469,9 @@ class AppLocalizationsBe extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'Па працягласці';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'Спачатку самае новае';
|
||||
|
||||
|
|
|
@ -1503,6 +1503,9 @@ class AppLocalizationsBg extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'По продължителност';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'Първо най-новите';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1496,6 +1496,9 @@ class AppLocalizationsEl extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'By duration';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'Τα πιο πρόσφατα πρώτα';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1448,6 +1448,9 @@ class AppLocalizationsFa extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'By duration';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'اول جدیدترین';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1490,6 +1490,9 @@ class AppLocalizationsHi extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'समय के अनुसार';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'नए पहले';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1480,6 +1480,9 @@ class AppLocalizationsJa extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => '期間順';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => '新しいものから表示';
|
||||
|
||||
|
|
|
@ -1499,6 +1499,9 @@ class AppLocalizationsKn extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'ಅವಧಿಯಂತೆ';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'ಹೊಸದು ಮೊದಲು';
|
||||
|
||||
|
|
|
@ -1478,6 +1478,9 @@ class AppLocalizationsKo extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => '길이';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => '최근 날짜순';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1460,6 +1460,9 @@ class AppLocalizationsMy extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'By duration';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'အသစ်ဆုံးက ထိပ်ဆုံး';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1513,6 +1513,9 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'По продолжительности';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'Сначала новые';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1499,6 +1499,9 @@ class AppLocalizationsTa extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'காலப்படி';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'முதலில் புதியது';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1470,6 +1470,9 @@ class AppLocalizationsUk extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => 'За тривалістю';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => 'Найновіші перші';
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -1480,6 +1480,9 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||
@override
|
||||
String get sortByDuration => '按时长';
|
||||
|
||||
@override
|
||||
String get sortByPath => 'By path';
|
||||
|
||||
@override
|
||||
String get sortOrderNewestFirst => '降序';
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -190,7 +190,7 @@ class AlbumChipSetActionDelegate extends ChipSetActionDelegate<AlbumBaseFilter>
|
|||
builder: (context) {
|
||||
return TileViewDialog<ChipSortFactor, AlbumChipGroupFactor, TileLayout>(
|
||||
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),
|
||||
|
|
|
@ -57,6 +57,11 @@ abstract class ChipSetActionDelegate<T extends CollectionFilter> with FeedbackMi
|
|||
ChipSortFactor.size,
|
||||
];
|
||||
|
||||
static const albumSortOptions = [
|
||||
...sortOptions,
|
||||
ChipSortFactor.path,
|
||||
];
|
||||
|
||||
static const layoutOptions = [
|
||||
TileLayout.mosaic,
|
||||
TileLayout.grid,
|
||||
|
|
|
@ -28,6 +28,7 @@ class FilterDraggableThumbLabel<T extends CollectionFilter> extends StatelessWid
|
|||
DraggableThumbLabel.formatMonthThumbLabel(context, filterGridItem.entry?.bestDate),
|
||||
];
|
||||
case ChipSortFactor.name:
|
||||
case ChipSortFactor.path:
|
||||
return [
|
||||
filterGridItem.filter.getLabel(context),
|
||||
];
|
||||
|
|
|
@ -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<T extends CollectionFilter, CSAD extends ChipSetActio
|
|||
return a.filter.compareTo(b.filter);
|
||||
}
|
||||
|
||||
static int compareFiltersByPath<T extends CollectionFilter>(FilterGridItem<T> a, FilterGridItem<T> 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<FilterGridItem<T>> sort<T extends CollectionFilter, CSAD extends ChipSetActionDelegate<T>>(
|
||||
ChipSortFactor sortFactor,
|
||||
bool reverse,
|
||||
|
@ -90,6 +103,8 @@ class FilterNavigationPage<T extends CollectionFilter, CSAD extends ChipSetActio
|
|||
filtersWithSize.sort(compareFiltersBySize);
|
||||
filters = filtersWithSize.map((kv) => kv.key).toSet();
|
||||
allMapEntries = toGridItem(source, filters);
|
||||
case ChipSortFactor.path:
|
||||
allMapEntries = toGridItem(source, filters)..sort(compareFiltersByPath);
|
||||
}
|
||||
if (reverse) {
|
||||
allMapEntries = allMapEntries.reversed.toList();
|
||||
|
|
|
@ -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 }
|
||||
|
||||
|
|
Loading…
Reference in a new issue