Merge pull request #492 from ente-io/search-bug-fix
replace regex check with checking after converting to lower case on s…
This commit is contained in:
commit
914d05ac85
|
@ -61,12 +61,11 @@ class SearchService {
|
||||||
Future<List<File>> getFileSearchResults(String query) async {
|
Future<List<File>> getFileSearchResults(String query) async {
|
||||||
final List<File> fileSearchResults = [];
|
final List<File> fileSearchResults = [];
|
||||||
final List<File> files = await _getAllFiles();
|
final List<File> files = await _getAllFiles();
|
||||||
final nonCaseSensitiveRegexForQuery = RegExp(query, caseSensitive: false);
|
|
||||||
for (var file in files) {
|
for (var file in files) {
|
||||||
if (fileSearchResults.length >= _maximumResultsLimit) {
|
if (fileSearchResults.length >= _maximumResultsLimit) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (file.title.contains(nonCaseSensitiveRegexForQuery)) {
|
if (file.title.toLowerCase().contains(query.toLowerCase())) {
|
||||||
fileSearchResults.add(file);
|
fileSearchResults.add(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,7 +109,10 @@ class SearchService {
|
||||||
if (filesInLocation.isNotEmpty) {
|
if (filesInLocation.isNotEmpty) {
|
||||||
searchResults.add(
|
searchResults.add(
|
||||||
GenericSearchResult(
|
GenericSearchResult(
|
||||||
ResultType.location, locationData.place, filesInLocation),
|
ResultType.location,
|
||||||
|
locationData.place,
|
||||||
|
filesInLocation,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,8 +127,6 @@ class SearchService {
|
||||||
Future<List<AlbumSearchResult>> getCollectionSearchResults(
|
Future<List<AlbumSearchResult>> getCollectionSearchResults(
|
||||||
String query,
|
String query,
|
||||||
) async {
|
) async {
|
||||||
final nonCaseSensitiveRegexForQuery = RegExp(query, caseSensitive: false);
|
|
||||||
|
|
||||||
/*latestCollectionFiles is to identify collections which have at least one file as we don't display
|
/*latestCollectionFiles is to identify collections which have at least one file as we don't display
|
||||||
empty collections and to get the file to pass for tumbnail */
|
empty collections and to get the file to pass for tumbnail */
|
||||||
final List<File> latestCollectionFiles =
|
final List<File> latestCollectionFiles =
|
||||||
|
@ -141,7 +141,7 @@ class SearchService {
|
||||||
final Collection collection =
|
final Collection collection =
|
||||||
CollectionsService.instance.getCollectionByID(file.collectionID);
|
CollectionsService.instance.getCollectionByID(file.collectionID);
|
||||||
if (!collection.isArchived() &&
|
if (!collection.isArchived() &&
|
||||||
collection.name.contains(nonCaseSensitiveRegexForQuery)) {
|
collection.name.toLowerCase().contains(query.toLowerCase())) {
|
||||||
collectionSearchResults
|
collectionSearchResults
|
||||||
.add(AlbumSearchResult(CollectionWithThumbnail(collection, file)));
|
.add(AlbumSearchResult(CollectionWithThumbnail(collection, file)));
|
||||||
}
|
}
|
||||||
|
@ -176,10 +176,8 @@ class SearchService {
|
||||||
) async {
|
) async {
|
||||||
final List<GenericSearchResult> searchResults = [];
|
final List<GenericSearchResult> searchResults = [];
|
||||||
|
|
||||||
final nonCaseSensitiveRegexForQuery = RegExp(query, caseSensitive: false);
|
|
||||||
|
|
||||||
for (var holiday in allHolidays) {
|
for (var holiday in allHolidays) {
|
||||||
if (holiday.name.contains(nonCaseSensitiveRegexForQuery)) {
|
if (holiday.name.toLowerCase().contains(query.toLowerCase())) {
|
||||||
final matchedFiles =
|
final matchedFiles =
|
||||||
await FilesDB.instance.getFilesCreatedWithinDurations(
|
await FilesDB.instance.getFilesCreatedWithinDurations(
|
||||||
_getDurationsOfHolidayInEveryYear(holiday.day, holiday.month),
|
_getDurationsOfHolidayInEveryYear(holiday.day, holiday.month),
|
||||||
|
@ -227,14 +225,13 @@ class SearchService {
|
||||||
if (!query.startsWith(".")) {
|
if (!query.startsWith(".")) {
|
||||||
return searchResults;
|
return searchResults;
|
||||||
}
|
}
|
||||||
final nonCaseSensitiveRegexForQuery = RegExp(query, caseSensitive: false);
|
|
||||||
|
|
||||||
final List<File> allFiles = await _getAllFiles();
|
final List<File> allFiles = await _getAllFiles();
|
||||||
final Map<String, List<File>> resultMap = <String, List<File>>{};
|
final Map<String, List<File>> resultMap = <String, List<File>>{};
|
||||||
|
|
||||||
for (File eachFile in allFiles) {
|
for (File eachFile in allFiles) {
|
||||||
final String fileName = eachFile.getDisplayName();
|
final String fileName = eachFile.getDisplayName();
|
||||||
if (fileName.contains(nonCaseSensitiveRegexForQuery)) {
|
if (fileName.contains(query)) {
|
||||||
final String exnType = fileName.split(".").last.toUpperCase();
|
final String exnType = fileName.split(".").last.toUpperCase();
|
||||||
if (!resultMap.containsKey(exnType)) {
|
if (!resultMap.containsKey(exnType)) {
|
||||||
resultMap[exnType] = <File>[];
|
resultMap[exnType] = <File>[];
|
||||||
|
@ -256,10 +253,9 @@ class SearchService {
|
||||||
|
|
||||||
Future<List<GenericSearchResult>> getMonthSearchResults(String query) async {
|
Future<List<GenericSearchResult>> getMonthSearchResults(String query) async {
|
||||||
final List<GenericSearchResult> searchResults = [];
|
final List<GenericSearchResult> searchResults = [];
|
||||||
final nonCaseSensitiveRegexForQuery = RegExp(query, caseSensitive: false);
|
|
||||||
|
|
||||||
for (var month in allMonths) {
|
for (var month in allMonths) {
|
||||||
if (month.name.startsWith(nonCaseSensitiveRegexForQuery)) {
|
if (month.name.toLowerCase().startsWith(query.toLowerCase())) {
|
||||||
final matchedFiles =
|
final matchedFiles =
|
||||||
await FilesDB.instance.getFilesCreatedWithinDurations(
|
await FilesDB.instance.getFilesCreatedWithinDurations(
|
||||||
_getDurationsOfMonthInEveryYear(month.monthNumber),
|
_getDurationsOfMonthInEveryYear(month.monthNumber),
|
||||||
|
|
Loading…
Reference in a new issue