From f2e99d5efd01de4114c28d4e7360ef2ba02ca1b5 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Wed, 6 Nov 2024 22:03:40 +0530 Subject: [PATCH] [mob][photos] Keep the galleryType as GalleryType.peopleTag when an 'Only them' filter is applied when, the initial filter is a face filter so that the selection option are of the inital face filter's Needed to write extra code to make it work for 'Only them' face since the current logic checks if inital filter is in applied list, and if yes keep the gallery type unchanged and if not, change gallery type to GalleryType.searchResults. Since an 'Only them' filter is not exactly the same as a Face filter, had to write more code to handle this case since the 'Only them' filter can have the inital Face filter in it --- .../viewer/actions/file_selection_overlay_bar.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mobile/lib/ui/viewer/actions/file_selection_overlay_bar.dart b/mobile/lib/ui/viewer/actions/file_selection_overlay_bar.dart index 52cc089c71..5f4c80718b 100644 --- a/mobile/lib/ui/viewer/actions/file_selection_overlay_bar.dart +++ b/mobile/lib/ui/viewer/actions/file_selection_overlay_bar.dart @@ -2,7 +2,9 @@ import 'package:flutter/material.dart'; import 'package:photos/models/collection/collection.dart'; import 'package:photos/models/gallery_type.dart'; import "package:photos/models/ml/face/person.dart"; +import "package:photos/models/search/hierarchical/face_filter.dart"; import "package:photos/models/search/hierarchical/hierarchical_search_filter.dart"; +import "package:photos/models/search/hierarchical/only_them_filter.dart"; import 'package:photos/models/selected_files.dart'; import "package:photos/theme/effects.dart"; import "package:photos/theme/ente_theme.dart"; @@ -185,6 +187,17 @@ class _FileSelectionOverlayBarState extends State { initalFilterIsInAppliedFiters = true; break; } + if (initialFilter is FaceFilter) { + for (HierarchicalSearchFilter filter in appliedFilters) { + if (filter is OnlyThemFilter) { + if (filter.faceFilters + .any((faceFilter) => faceFilter.isSameFilter(initialFilter))) { + initalFilterIsInAppliedFiters = true; + break; + } + } + } + } } if (!initalFilterIsInAppliedFiters) {