From f5e7b5275fabef9a77eb5fb97e61c458541cd741 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Thu, 21 Dec 2023 18:46:50 +0100 Subject: [PATCH] multipage: hide gain map page from ultra HDR images --- lib/model/entry/extensions/multipage.dart | 4 +++- lib/model/entry/extensions/props.dart | 2 -- lib/widgets/common/grid/theme.dart | 8 +++----- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/model/entry/extensions/multipage.dart b/lib/model/entry/extensions/multipage.dart index 319237d63..e613583a6 100644 --- a/lib/model/entry/extensions/multipage.dart +++ b/lib/model/entry/extensions/multipage.dart @@ -7,12 +7,14 @@ import 'package:aves/services/common/services.dart'; import 'package:collection/collection.dart'; extension ExtraAvesEntryMultipage on AvesEntry { - bool get isMultiPage => (catalogMetadata?.isMultiPage ?? false) || isBurst; + bool get isMultiPage => isBurst || ((catalogMetadata?.isMultiPage ?? false) && (isMotionPhoto || !isHdr)); bool get isBurst => burstEntries?.isNotEmpty == true; bool get isMotionPhoto => catalogMetadata?.isMotionPhoto ?? false; + bool get isHdr => catalogMetadata?.hasHdrGainMap ?? false; + String? getBurstKey(List patterns) { final key = BurstPatterns.getKeyForName(filenameWithoutExtension, patterns); return key != null ? '$directory/$key' : null; diff --git a/lib/model/entry/extensions/props.dart b/lib/model/entry/extensions/props.dart index cae217b57..16e71676a 100644 --- a/lib/model/entry/extensions/props.dart +++ b/lib/model/entry/extensions/props.dart @@ -74,8 +74,6 @@ extension ExtraAvesEntryProps on AvesEntry { bool get is360 => catalogMetadata?.is360 ?? false; - bool get isHdr => (catalogMetadata?.hasHdrGainMap ?? false); - // trash bool get isExpiredTrash { diff --git a/lib/widgets/common/grid/theme.dart b/lib/widgets/common/grid/theme.dart index e691afaa5..dc63e793c 100644 --- a/lib/widgets/common/grid/theme.dart +++ b/lib/widgets/common/grid/theme.dart @@ -97,11 +97,9 @@ class GridThemeData { if (entry.isRaw && showRaw) const RawIcon(), if (entry.is360) const PanoramaIcon(), ], - if (entry.isMultiPage) ...[ - if (entry.isHdr) const HdrIcon(), - if (entry.isMotionPhoto && showMotionPhoto) const MotionPhotoIcon(), - if (!entry.isHdr && !entry.isMotionPhoto) MultiPageIcon(entry: entry), - ], + if (entry.isHdr) const HdrIcon(), + if (entry.isMotionPhoto && showMotionPhoto) const MotionPhotoIcon(), + if (entry.isMultiPage && !entry.isMotionPhoto) MultiPageIcon(entry: entry), if (entry.isGeotiff) const GeoTiffIcon(), if (entry.trashed && showTrash) TrashIcon(trashDaysLeft: entry.trashDaysLeft), ];