diff --git a/mobile/lib/services/machine_learning/file_ml/remote_fileml_service.dart b/mobile/lib/services/machine_learning/file_ml/remote_fileml_service.dart index eafbc6323..bb1c9f999 100644 --- a/mobile/lib/services/machine_learning/file_ml/remote_fileml_service.dart +++ b/mobile/lib/services/machine_learning/file_ml/remote_fileml_service.dart @@ -1,6 +1,7 @@ import "dart:async"; import "dart:convert"; +import "package:computer/computer.dart"; import "package:logging/logging.dart"; import "package:photos/core/network/network.dart"; import "package:photos/db/files_db.dart"; @@ -16,6 +17,8 @@ import "package:shared_preferences/shared_preferences.dart"; class RemoteFileMLService { RemoteFileMLService._privateConstructor(); + static final Computer _computer = Computer.shared(); + static final RemoteFileMLService instance = RemoteFileMLService._privateConstructor(); @@ -107,15 +110,17 @@ class RemoteFileMLService { final input = EmbeddingsDecoderInput(embedding, fileKey); inputs.add(input); } - // todo: use compute or isolate - return decryptFileMLComputer( - { + return _computer.compute, Map>( + _decryptFileMLComputer, + param: { "inputs": inputs, }, ); } - Future> decryptFileMLComputer( +} + +Future> _decryptFileMLComputer( Map args, ) async { final result = {}; @@ -134,5 +139,4 @@ class RemoteFileMLService { result[input.embedding.fileID] = decodedEmbedding; } return result; - } -} + } \ No newline at end of file