From 4fa59ce2589de9b7c3df11734ec647039e8f1d0f Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Fri, 24 May 2024 09:56:10 +0530 Subject: [PATCH] [mob][photos] Common ml util for getting indexable files across faces and clip --- .../services/machine_learning/face_ml/face_ml_service.dart | 7 +------ .../semantic_search/semantic_search_service.dart | 7 +++---- mobile/lib/ui/settings/machine_learning_settings_page.dart | 3 ++- mobile/lib/utils/ml_util.dart | 7 +++++++ 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 mobile/lib/utils/ml_util.dart diff --git a/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart b/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart index 38079753c2..9bfa54f1ea 100644 --- a/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart +++ b/mobile/lib/services/machine_learning/face_ml/face_ml_service.dart @@ -12,7 +12,6 @@ import "package:flutter/foundation.dart" show debugPrint, kDebugMode; import "package:logging/logging.dart"; import "package:onnxruntime/onnxruntime.dart"; import "package:package_info_plus/package_info_plus.dart"; -import "package:photos/core/configuration.dart"; import "package:photos/core/event_bus.dart"; import "package:photos/db/files_db.dart"; import "package:photos/events/diff_sync_complete_event.dart"; @@ -48,6 +47,7 @@ import "package:photos/utils/file_util.dart"; import 'package:photos/utils/image_ml_isolate.dart'; import "package:photos/utils/image_ml_util.dart"; import "package:photos/utils/local_settings.dart"; +import "package:photos/utils/ml_util.dart"; import "package:photos/utils/network_util.dart"; import "package:photos/utils/thumbnail_util.dart"; import "package:synchronized/synchronized.dart"; @@ -1184,11 +1184,6 @@ class FaceMlService { return ratio; } - static Future> getIndexableFileIDs() async { - return FilesDB.instance - .getOwnedFileIDs(Configuration.instance.getUserID()!); - } - bool _skipAnalysisEnteFile(EnteFile enteFile, Map indexedFileIds) { if (_isIndexingOrClusteringRunning == false || _mlControllerStatus == false) { diff --git a/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart b/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart index db1713c2c3..1384750811 100644 --- a/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart +++ b/mobile/lib/services/machine_learning/semantic_search/semantic_search_service.dart @@ -23,6 +23,7 @@ import 'package:photos/services/machine_learning/semantic_search/frameworks/onnx import "package:photos/utils/debouncer.dart"; import "package:photos/utils/device_info.dart"; import "package:photos/utils/local_settings.dart"; +import "package:photos/utils/ml_util.dart"; import "package:photos/utils/thumbnail_util.dart"; class SemanticSearchService { @@ -160,8 +161,7 @@ class SemanticSearchService { } Future getIndexStatus() async { - final indexableFileIDs = await FilesDB.instance - .getOwnedFileIDs(Configuration.instance.getUserID()!); + final indexableFileIDs = await getIndexableFileIDs(); return IndexStatus( min(_cachedEmbeddings.length, indexableFileIDs.length), (await _getFileIDsToBeIndexed()).length, @@ -222,8 +222,7 @@ class SemanticSearchService { } Future> _getFileIDsToBeIndexed() async { - final uploadedFileIDs = await FilesDB.instance - .getOwnedFileIDs(Configuration.instance.getUserID()!); + final uploadedFileIDs = await getIndexableFileIDs(); final embeddedFileIDs = await EmbeddingsDB.instance.getFileIDs(_currentModel); diff --git a/mobile/lib/ui/settings/machine_learning_settings_page.dart b/mobile/lib/ui/settings/machine_learning_settings_page.dart index 83bc159a53..cf546015ce 100644 --- a/mobile/lib/ui/settings/machine_learning_settings_page.dart +++ b/mobile/lib/ui/settings/machine_learning_settings_page.dart @@ -26,6 +26,7 @@ import "package:photos/ui/components/title_bar_widget.dart"; import "package:photos/ui/components/toggle_switch_widget.dart"; import "package:photos/utils/data_util.dart"; import "package:photos/utils/local_settings.dart"; +import "package:photos/utils/ml_util.dart"; final _logger = Logger("MachineLearningSettingsPage"); @@ -442,7 +443,7 @@ class FaceRecognitionStatusWidgetState try { final indexedFiles = await FaceMLDataDB.instance .getIndexedFileCount(minimumMlVersion: faceMlVersion); - final indexableFiles = (await FaceMlService.getIndexableFileIDs()).length; + final indexableFiles = (await getIndexableFileIDs()).length; final showIndexedFiles = min(indexedFiles, indexableFiles); final pendingFiles = max(indexableFiles - indexedFiles, 0); final foundFaces = await FaceMLDataDB.instance.getTotalFaceCount(); diff --git a/mobile/lib/utils/ml_util.dart b/mobile/lib/utils/ml_util.dart new file mode 100644 index 0000000000..4033e29349 --- /dev/null +++ b/mobile/lib/utils/ml_util.dart @@ -0,0 +1,7 @@ +import "package:photos/core/configuration.dart"; +import "package:photos/db/files_db.dart"; + +Future> getIndexableFileIDs() async { + return FilesDB.instance + .getOwnedFileIDs(Configuration.instance.getUserID()!); + } \ No newline at end of file