Forráskód Böngészése

Made serive to find matching holiday queries and stored it into the results of suggestions

ashilkn 2 éve
szülő
commit
e3d07556e7

+ 0 - 6
lib/models/search/holiday_data.dart

@@ -1,6 +0,0 @@
-class HolidayData {
-  final String name;
-  final int month;
-  final int day;
-  const HolidayData(this.name, this.month, this.day);
-}

+ 8 - 0
lib/models/search/holiday_search_result.dart

@@ -0,0 +1,8 @@
+import 'package:photos/models/search/search_results.dart';
+
+class HolidaySearchResult extends SearchResult {
+  final String name;
+  final int month;
+  final int day;
+  HolidaySearchResult(this.name, this.month, this.day);
+}

+ 17 - 6
lib/services/search_service.dart

@@ -9,7 +9,7 @@ import 'package:photos/models/collection.dart';
 import 'package:photos/models/collection_items.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/models/location.dart';
-import 'package:photos/models/search/holiday_data.dart';
+import 'package:photos/models/search/holiday_search_result.dart';
 import 'package:photos/models/search/location_api_response.dart';
 import 'package:photos/models/search/location_search_result.dart';
 import 'package:photos/services/collections_service.dart';
@@ -21,11 +21,11 @@ class SearchService {
   final _logger = Logger((SearchService).toString());
   final _collectionService = CollectionsService.instance;
   static const _maximumResultsLimit = 20;
-  static const List<HolidayData> holidays = [
-    HolidayData('Chirstmas', 11, 25),
-    HolidayData('Christmas Eve', 11, 24),
-    HolidayData('New Year', 0, 1),
-    HolidayData('New Year Eve', 11, 31),
+  static final List<HolidaySearchResult> holidays = [
+    HolidaySearchResult('Christmas', 11, 25),
+    HolidaySearchResult('Christmas Eve', 11, 24),
+    HolidaySearchResult('New Year', 0, 1),
+    HolidaySearchResult('New Year Eve', 11, 31),
   ];
 
   SearchService._privateConstructor();
@@ -160,6 +160,17 @@ class SearchService {
     return yearSearchResults;
   }
 
+  List<HolidaySearchResult> getHolidaySearchResults(String query) {
+    final nonCaseSensitiveRegexForQuery = RegExp(query, caseSensitive: false);
+    final List<HolidaySearchResult> holidaySearchResult = [];
+    for (HolidaySearchResult holiday in holidays) {
+      if (holiday.name.contains(nonCaseSensitiveRegexForQuery)) {
+        holidaySearchResult.add(holiday);
+      }
+    }
+    return holidaySearchResult;
+  }
+
   bool _isValidLocation(Location location) {
     return location != null &&
         location.latitude != null &&

+ 8 - 0
lib/ui/viewer/search/search_widget.dart

@@ -4,6 +4,7 @@ import 'package:photos/models/collection_items.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/models/search/album_search_result.dart';
 import 'package:photos/models/search/file_search_result.dart';
+import 'package:photos/models/search/holiday_search_result.dart';
 import 'package:photos/models/search/location_search_result.dart';
 import 'package:photos/models/search/search_results.dart';
 import 'package:photos/models/search/year_search_result.dart';
@@ -135,6 +136,12 @@ class _SearchWidgetState extends State<SearchWidget> {
       }
     }
 
+    final holidayResults =
+        SearchService.instance.getHolidaySearchResults(query);
+    for (HolidaySearchResult holidayResult in holidayResults) {
+      allResults.add(holidayResult);
+    }
+
     final collectionResults =
         await SearchService.instance.getCollectionSearchResults(query);
     for (CollectionWithThumbnail collectionResult in collectionResults) {
@@ -146,6 +153,7 @@ class _SearchWidgetState extends State<SearchWidget> {
     for (LocationSearchResult result in locationResults) {
       allResults.add(result);
     }
+
     final fileResults =
         await SearchService.instance.getFileSearchResults(query);
     for (File file in fileResults) {