[mob][photos] Add option to make 'only them' filter work a little different only for testing, for feedback on which option is better
This commit is contained in:
@@ -59,6 +59,23 @@ class _MLDebugSectionWidgetState extends State<MLDebugSectionWidget> {
|
||||
final colorScheme = getEnteColorScheme(context);
|
||||
return Column(
|
||||
children: [
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: const CaptionedTextWidget(
|
||||
title:
|
||||
"Exclude files of face IDs that are not in any cluster on applying 'only them' filter.",
|
||||
),
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () => localSettings
|
||||
.excludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter,
|
||||
onChanged: () async {
|
||||
await localSettings
|
||||
.setExcludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter(
|
||||
!localSettings
|
||||
.excludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter,
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
sectionOptionSpacing,
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: FutureBuilder<IndexStatus>(
|
||||
|
||||
@@ -55,7 +55,10 @@ Future<List<EnteFile>> getFilteredFiles(
|
||||
} catch (e) {
|
||||
logger.severe("Error in filtering face filter: $e");
|
||||
}
|
||||
} else if (filter is OnlyThemFilter) {
|
||||
}
|
||||
//TODO: Add result to matchedUploadedIDs to avoid recomputation and check if
|
||||
// it is already computed.
|
||||
else if (filter is OnlyThemFilter) {
|
||||
try {
|
||||
late Set<int> intersectionOfSelectedFaceFiltersFileIDs;
|
||||
final selectedClusterIDs = <String>[];
|
||||
@@ -91,10 +94,13 @@ Future<List<EnteFile>> getFilteredFiles(
|
||||
exceptClusters: selectedClusterIDs,
|
||||
);
|
||||
|
||||
final filesOfFaceIDsNotInAnyCluster =
|
||||
await MLDataDB.instance.getAllFileIDsOfFaceIDsNotInAnyCluster();
|
||||
if (localSettings
|
||||
.excludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter) {
|
||||
final filesOfFaceIDsNotInAnyCluster =
|
||||
await MLDataDB.instance.getAllFileIDsOfFaceIDsNotInAnyCluster();
|
||||
|
||||
fileIDsToAvoid.addAll(filesOfFaceIDsNotInAnyCluster);
|
||||
fileIDsToAvoid.addAll(filesOfFaceIDsNotInAnyCluster);
|
||||
}
|
||||
|
||||
final result =
|
||||
intersectionOfSelectedFaceFiltersFileIDs.difference(fileIDsToAvoid);
|
||||
|
||||
@@ -16,6 +16,8 @@ class LocalSettings {
|
||||
static const kRateUsPromptThreshold = 2;
|
||||
static const shouldLoopVideoKey = "video.should_loop";
|
||||
static const onGuestViewKey = "on_guest_view";
|
||||
static const kExcludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter =
|
||||
"excludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter";
|
||||
|
||||
final SharedPreferences _prefs;
|
||||
|
||||
@@ -66,6 +68,22 @@ class LocalSettings {
|
||||
bool get userEnabledMultiplePart =>
|
||||
_prefs.getBool(kEnableMultiplePart) ?? false;
|
||||
|
||||
bool get excludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter =>
|
||||
_prefs.getBool(
|
||||
kExcludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter,
|
||||
) ??
|
||||
true;
|
||||
|
||||
Future<bool> setExcludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter(
|
||||
bool value,
|
||||
) async {
|
||||
await _prefs.setBool(
|
||||
kExcludeFilesOfFaceIDsThatAreNotInAnyClusterOnOnlyThemFilter,
|
||||
value,
|
||||
);
|
||||
return value;
|
||||
}
|
||||
|
||||
Future<bool> setUserEnabledMultiplePart(bool value) async {
|
||||
await _prefs.setBool(kEnableMultiplePart, value);
|
||||
return value;
|
||||
|
||||
Reference in New Issue
Block a user