[mob][photos] Show magic section in search tab from cached results

This commit is contained in:
ashilkn
2024-06-24 15:43:56 +05:30
parent 98c444fab9
commit 9cb4420bbf

View File

@@ -1,4 +1,3 @@
import "dart:convert";
import "dart:math";
import "package:flutter/cupertino.dart";
@@ -33,13 +32,14 @@ import "package:photos/services/location_service.dart";
import "package:photos/services/machine_learning/face_ml/face_filtering/face_filtering_constants.dart";
import "package:photos/services/machine_learning/face_ml/person/person_service.dart";
import 'package:photos/services/machine_learning/semantic_search/semantic_search_service.dart';
import "package:photos/services/remote_assets_service.dart";
import "package:photos/services/magic_cache_service.dart";
import "package:photos/states/location_screen_state.dart";
import "package:photos/ui/viewer/location/add_location_sheet.dart";
import "package:photos/ui/viewer/location/location_screen.dart";
import "package:photos/ui/viewer/people/cluster_page.dart";
import "package:photos/ui/viewer/people/people_page.dart";
import 'package:photos/utils/date_time_util.dart';
import "package:photos/utils/local_settings.dart";
import "package:photos/utils/navigation_util.dart";
import 'package:tuple/tuple.dart';
@@ -49,9 +49,9 @@ class SearchService {
final _logger = Logger((SearchService).toString());
final _collectionService = CollectionsService.instance;
static const _maximumResultsLimit = 20;
static const _kMagicPromptsDataUrl = "https://discover.ente.io/v1.json";
// static const _kMagicPromptsDataUrl = "https://discover.ente.io/v1.json";
var magicPromptsData = [];
// var magicPromptsData = [];
SearchService._privateConstructor();
@@ -64,17 +64,17 @@ class SearchService {
_cachedHiddenFilesFuture = null;
});
if (flagService.internalUser) {
_loadMagicPrompts();
// _loadMagicPrompts();
}
}
Future<dynamic> _loadMagicPrompts() async {
final file = await RemoteAssetsService.instance
.getAsset(_kMagicPromptsDataUrl, refetch: true);
// Future<dynamic> _loadMagicPrompts() async {
// final file = await RemoteAssetsService.instance
// .getAsset(_kMagicPromptsDataUrl, refetch: true);
final json = jsonDecode(await file.readAsString());
magicPromptsData = json["prompts"];
}
// final json = jsonDecode(await file.readAsString());
// magicPromptsData = json["prompts"];
// }
Set<int> ignoreCollections() {
return CollectionsService.instance.getHiddenCollectionIds();
@@ -192,26 +192,12 @@ class SearchService {
}
Future<List<GenericSearchResult>> getMagicSectionResutls() async {
if (!SemanticSearchService.instance.isMagicSearchEnabledAndReady()) {
if (LocalSettings.instance.hasEnabledMagicSearch() &&
flagService.internalUser) {
return MagicCacheService.instance.getMagicGenericSearchResult();
} else {
return <GenericSearchResult>[];
}
final searchResuts = <GenericSearchResult>[];
for (Map<String, dynamic> magicPrompt in magicPromptsData) {
final files = await SemanticSearchService.instance.getMatchingFiles(
magicPrompt["prompt"],
scoreThreshold: magicPrompt["minimumScore"],
);
if (files.isNotEmpty) {
searchResuts.add(
GenericSearchResult(
ResultType.magic,
magicPrompt["title"],
files,
),
);
}
}
return searchResuts;
}
Future<List<GenericSearchResult>> getRandomMomentsSearchResults(