Show fileTypes and extensions examples in search section
This commit is contained in:
parent
fe7896b85a
commit
45a4a8cc51
|
@ -181,7 +181,8 @@ extension SectionTypeExtensions on SectionType {
|
|||
return SearchService.instance.getAllCollectionSearchResults(limit);
|
||||
|
||||
case SectionType.fileTypesAndExtension:
|
||||
return SearchService.instance.getAllLocationTags(limit);
|
||||
return SearchService.instance
|
||||
.getAllFileTypesAndExtensionsResults(limit);
|
||||
|
||||
case SectionType.fileCaption:
|
||||
return SearchService.instance.getAllLocationTags(limit);
|
||||
|
|
|
@ -186,6 +186,45 @@ class SearchService {
|
|||
return searchResults;
|
||||
}
|
||||
|
||||
Future<List<GenericSearchResult>> getAllFileTypesAndExtensionsResults(
|
||||
int? limit,
|
||||
) async {
|
||||
final List<GenericSearchResult> searchResults = [];
|
||||
final List<EnteFile> allFiles = await getAllFiles();
|
||||
final fileTypesAndMatchingFiles = <FileType, List<EnteFile>>{};
|
||||
final extensionsAndMatchingFiles = <String, List<EnteFile>>{};
|
||||
|
||||
int i = 0;
|
||||
for (EnteFile file in allFiles) {
|
||||
if (limit != null && i++ <= limit) {
|
||||
final String fileName = file.displayName;
|
||||
final String ext = fileName.split(".").last.toUpperCase();
|
||||
|
||||
if (!fileTypesAndMatchingFiles.containsKey(file.fileType)) {
|
||||
fileTypesAndMatchingFiles[file.fileType] = <EnteFile>[];
|
||||
}
|
||||
fileTypesAndMatchingFiles[file.fileType]!.add(file);
|
||||
|
||||
if (!extensionsAndMatchingFiles.containsKey(ext)) {
|
||||
extensionsAndMatchingFiles[ext] = <EnteFile>[];
|
||||
}
|
||||
extensionsAndMatchingFiles[ext]!.add(file);
|
||||
}
|
||||
}
|
||||
|
||||
fileTypesAndMatchingFiles.forEach((key, value) {
|
||||
searchResults
|
||||
.add(GenericSearchResult(ResultType.fileType, key.name, value));
|
||||
});
|
||||
|
||||
extensionsAndMatchingFiles.forEach((key, value) {
|
||||
searchResults
|
||||
.add(GenericSearchResult(ResultType.fileExtension, key, value));
|
||||
});
|
||||
|
||||
return searchResults;
|
||||
}
|
||||
|
||||
Future<List<GenericSearchResult>> getCaptionAndNameResults(
|
||||
String query,
|
||||
) async {
|
||||
|
|
Loading…
Reference in a new issue