Skip to content

Commit 5726e7b

Browse files
committed
Merge branch 'develop'
2 parents fafebe7 + e0af21f commit 5726e7b

File tree

15 files changed

+116
-29
lines changed

15 files changed

+116
-29
lines changed

.github/workflows/dependency-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ jobs:
2424
- name: 'Checkout Repository'
2525
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
2626
- name: 'Dependency Review'
27-
uses: actions/dependency-review-action@38ecb5b593bf0eb19e335c03f97670f792489a8b # v4.7.0
27+
uses: actions/dependency-review-action@da24556b548a50705dd671f47852072ea4c105d9 # v4.7.1

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
44

55
## <a id="unreleased"></a>[Unreleased]
66

7+
## <a id="v1.13.1"></a>[v1.13.1] - 2025-05-14
8+
9+
### Fixed
10+
11+
- albums: show groups to move/copy/export items
12+
- albums: hide grouped albums containing hidden items only
13+
714
## <a id="v1.13.0"></a>[v1.13.0] - 2025-05-12
815

916
### Added
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
In v1.13.1:
2+
- group albums
3+
- filter by day of the week
4+
Full changelog available on GitHub
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
In v1.13.1:
2+
- group albums
3+
- filter by day of the week
4+
Full changelog available on GitHub

lib/l10n/app_es.arb

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@
445445
"@menuActionStats": {},
446446
"viewDialogSortSectionTitle": "Ordenar",
447447
"@viewDialogSortSectionTitle": {},
448-
"viewDialogGroupSectionTitle": "Grupo",
448+
"viewDialogGroupSectionTitle": "Secciones",
449449
"@viewDialogGroupSectionTitle": {},
450450
"viewDialogLayoutSectionTitle": "Disposición",
451451
"@viewDialogLayoutSectionTitle": {},
@@ -1402,5 +1402,33 @@
14021402
"editEntryLocationDialogTimeShift": "Desplazamiento de tiempo",
14031403
"@editEntryLocationDialogTimeShift": {},
14041404
"coordinateFormatDdm": "DDM",
1405-
"@coordinateFormatDdm": {}
1405+
"@coordinateFormatDdm": {},
1406+
"sortByPath": "Por ruta",
1407+
"@sortByPath": {},
1408+
"searchFormatSectionTitle": "Formatos",
1409+
"@searchFormatSectionTitle": {},
1410+
"newGroupDialogTitle": "Nuevo grupo",
1411+
"@newGroupDialogTitle": {},
1412+
"ungrouped": "No agrupado",
1413+
"@ungrouped": {},
1414+
"albumTierGroups": "Grupos",
1415+
"@albumTierGroups": {},
1416+
"groupEmpty": "Sin grupos",
1417+
"@groupEmpty": {},
1418+
"newGroupDialogNameLabel": "Nombre del grupo",
1419+
"@newGroupDialogNameLabel": {},
1420+
"createButtonLabel": "CREAR",
1421+
"@createButtonLabel": {},
1422+
"chipActionGroup": "Agrupar",
1423+
"@chipActionGroup": {},
1424+
"chipActionCreateGroup": "Crear grupo",
1425+
"@chipActionCreateGroup": {},
1426+
"groupAlreadyExists": "Ya existe el grupo",
1427+
"@groupAlreadyExists": {},
1428+
"groupPickerTitle": "Seleccionar grupo",
1429+
"@groupPickerTitle": {},
1430+
"groupPickerUseThisGroupButton": "Usar este grupo",
1431+
"@groupPickerUseThisGroupButton": {},
1432+
"sectionNone": "Sin secciones",
1433+
"@sectionNone": {}
14061434
}

lib/l10n/app_gl.arb

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@
823823
"@menuActionSlideshow": {},
824824
"menuActionStats": "Estatísticas",
825825
"@menuActionStats": {},
826-
"viewDialogGroupSectionTitle": "Agrupar",
826+
"viewDialogGroupSectionTitle": "Seccións",
827827
"@viewDialogGroupSectionTitle": {},
828828
"castDialogTitle": "Dispositivos de emisión",
829829
"@castDialogTitle": {},
@@ -1610,5 +1610,33 @@
16101610
"panoramaDisableSensorControl": "Desactivar control do sensor",
16111611
"@panoramaDisableSensorControl": {},
16121612
"settingsHiddenFiltersBanner": "As fotos e vídeos que cadren cos filtros ocultos non se amosarán na súa colección.",
1613-
"@settingsHiddenFiltersBanner": {}
1613+
"@settingsHiddenFiltersBanner": {},
1614+
"createButtonLabel": "CREAR",
1615+
"@createButtonLabel": {},
1616+
"chipActionGroup": "Agrupar",
1617+
"@chipActionGroup": {},
1618+
"chipActionCreateGroup": "Crear grupo",
1619+
"@chipActionCreateGroup": {},
1620+
"albumTierGroups": "Grupos",
1621+
"@albumTierGroups": {},
1622+
"newGroupDialogTitle": "Novo grupo",
1623+
"@newGroupDialogTitle": {},
1624+
"newGroupDialogNameLabel": "Nome do grupo",
1625+
"@newGroupDialogNameLabel": {},
1626+
"groupAlreadyExists": "Xa existe o grupo",
1627+
"@groupAlreadyExists": {},
1628+
"groupEmpty": "Sen grupos",
1629+
"@groupEmpty": {},
1630+
"ungrouped": "Non agrupado",
1631+
"@ungrouped": {},
1632+
"groupPickerTitle": "Escolmar grupo",
1633+
"@groupPickerTitle": {},
1634+
"groupPickerUseThisGroupButton": "Usar este grupo",
1635+
"@groupPickerUseThisGroupButton": {},
1636+
"sectionNone": "Sen seccións",
1637+
"@sectionNone": {},
1638+
"sortByPath": "Por ruta",
1639+
"@sortByPath": {},
1640+
"searchFormatSectionTitle": "Formatos",
1641+
"@searchFormatSectionTitle": {}
16141642
}

lib/l10n/app_he.arb

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,5 +144,19 @@
144144
"stopTooltip": "עצור",
145145
"@stopTooltip": {},
146146
"chipActionGoToExplorerPage": "הצג בסייר",
147-
"@chipActionGoToExplorerPage": {}
147+
"@chipActionGoToExplorerPage": {},
148+
"chipActionSetCover": "הגדר עטיפה",
149+
"@chipActionSetCover": {},
150+
"chipActionCreateAlbum": "צור אלבום",
151+
"@chipActionCreateAlbum": {},
152+
"chipActionShowCountryStates": "הצג סטטיסטיקות",
153+
"@chipActionShowCountryStates": {},
154+
"createButtonLabel": "צור",
155+
"@createButtonLabel": {},
156+
"chipActionGroup": "קבוצה",
157+
"@chipActionGroup": {},
158+
"chipActionCreateGroup": "צור קבוצה",
159+
"@chipActionCreateGroup": {},
160+
"chipActionCreateVault": "צור כספת",
161+
"@chipActionCreateVault": {}
148162
}

lib/widgets/common/action_mixins/entry_storage.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin {
4646
final destinationAlbumFilter = await pickAlbum(
4747
context: context,
4848
moveType: MoveType.export,
49-
albumTypes: {AlbumChipType.stored},
49+
albumChipTypes: {AlbumChipType.stored},
5050
initialGroup: null,
5151
);
5252
if (destinationAlbumFilter == null || destinationAlbumFilter is! StoredAlbumFilter) return false;
@@ -379,7 +379,7 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin {
379379
final destinationAlbumFilter = await pickAlbum(
380380
context: context,
381381
moveType: moveType,
382-
albumTypes: {AlbumChipType.stored},
382+
albumChipTypes: {AlbumChipType.stored},
383383
initialGroup: null,
384384
);
385385
if (destinationAlbumFilter == null || destinationAlbumFilter is! StoredAlbumFilter) return false;

lib/widgets/dialogs/pick_dialogs/album_pick_page.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import 'package:provider/provider.dart';
4040
Future<AlbumBaseFilter?> pickAlbum({
4141
required BuildContext context,
4242
required MoveType? moveType,
43-
required Iterable<AlbumChipType> albumTypes,
43+
required Iterable<AlbumChipType> albumChipTypes,
4444
required Uri? initialGroup,
4545
}) async {
4646
final source = context.read<CollectionSource>();
@@ -56,7 +56,7 @@ Future<AlbumBaseFilter?> pickAlbum({
5656
builder: (context) => _AlbumPickPage(
5757
source: source,
5858
moveType: moveType,
59-
albumChipTypes: albumTypes,
59+
albumChipTypes: albumChipTypes,
6060
initialGroup: initialGroup,
6161
),
6262
),

lib/widgets/filter_grids/albums_page.dart

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class AlbumListPage extends StatelessWidget {
9797
static List<FilterGridItem<AlbumBaseFilter>> getAlbumGridItems(
9898
BuildContext context,
9999
CollectionSource source,
100-
Iterable<AlbumChipType> albumTypes,
100+
Iterable<AlbumChipType> albumChipTypes,
101101
Uri? groupUri,
102102
) {
103103
final groupContent = albumGrouping.getDirectChildren(groupUri);
@@ -110,29 +110,31 @@ class AlbumListPage extends StatelessWidget {
110110
}
111111

112112
final listedStoredAlbums = <String>{};
113-
if (albumTypes.contains(AlbumChipType.stored)) {
113+
if (albumChipTypes.contains(AlbumChipType.stored)) {
114+
final allAlbums = source.rawAlbums;
114115
if (groupUri == null) {
115116
final withinGroups = whereTypeRecursively<StoredAlbumFilter>(groupContent).map((v) => v.album).toSet();
116-
listedStoredAlbums.addAll(source.rawAlbums.whereNot(withinGroups.contains));
117+
listedStoredAlbums.addAll(allAlbums.whereNot(withinGroups.contains));
117118
} else {
118-
listedStoredAlbums.addAll(groupContent.whereType<StoredAlbumFilter>().map((v) => v.album));
119+
// check that group content is listed from source, to prevent displaying hidden content
120+
listedStoredAlbums.addAll(groupContent.whereType<StoredAlbumFilter>().map((v) => v.album).where(allAlbums.contains));
119121
}
120122
}
121123

122124
final listedDynamicAlbums = <DynamicAlbumFilter>{};
123-
if (albumTypes.contains(AlbumChipType.dynamic)) {
125+
if (albumChipTypes.contains(AlbumChipType.dynamic)) {
126+
final allDynamicAlbums = dynamicAlbums.all;
124127
if (groupUri == null) {
125128
final withinGroups = whereTypeRecursively<DynamicAlbumFilter>(groupContent).toSet();
126-
listedDynamicAlbums.addAll(dynamicAlbums.all.whereNot(withinGroups.contains));
129+
listedDynamicAlbums.addAll(allDynamicAlbums.whereNot(withinGroups.contains));
127130
} else {
128-
listedDynamicAlbums.addAll(groupContent.whereType<DynamicAlbumFilter>());
131+
// check that group content is listed from source, to prevent displaying hidden content
132+
listedDynamicAlbums.addAll(groupContent.whereType<DynamicAlbumFilter>().where(allDynamicAlbums.contains));
129133
}
130134
}
131135

132-
final albumGroupFilters = <AlbumGroupFilter>{};
133-
if (albumTypes.contains(AlbumChipType.group)) {
134-
albumGroupFilters.addAll(groupContent.whereType<AlbumGroupFilter>());
135-
}
136+
// always show groups, which are needed to navigate to other types
137+
final albumGroupFilters = groupContent.whereType<AlbumGroupFilter>().toSet();
136138

137139
final filters = <AlbumBaseFilter>{
138140
...albumGroupFilters,

0 commit comments

Comments
 (0)