diff --git a/mobile/lib/models/search/hierarchical/contacts_filter.dart b/mobile/lib/models/search/hierarchical/contacts_filter.dart new file mode 100644 index 0000000000..8c0b7180e6 --- /dev/null +++ b/mobile/lib/models/search/hierarchical/contacts_filter.dart @@ -0,0 +1,47 @@ +import "package:flutter/material.dart"; +import "package:photos/models/api/collection/user.dart"; +import "package:photos/models/file/file.dart"; +import "package:photos/models/search/hierarchical/hierarchical_search_filter.dart"; + +class ContactsFilter extends HierarchicalSearchFilter { + final User user; + final int occurrence; + + ContactsFilter({ + required this.user, + required this.occurrence, + }); + + @override + String name() { + return "Contacts"; + } + + @override + int relevance() { + return occurrence; + } + + @override + bool isMatch(EnteFile file) { + return file.ownerID == user.id; + } + + @override + Set getMatchedUploadedIDs() { + return matchedUploadedIDs; + } + + @override + bool isSameFilter(HierarchicalSearchFilter other) { + if (other is ContactsFilter) { + return other.user.id == user.id; + } + return false; + } + + @override + IconData? icon() { + return Icons.person_outlined; + } +}