diff --git a/lib/services/remote_assets_service.dart b/lib/services/remote_assets_service.dart index bb9726a67..0e75b983d 100644 --- a/lib/services/remote_assets_service.dart +++ b/lib/services/remote_assets_service.dart @@ -53,5 +53,6 @@ class RemoteAssetsService { await existingFile.delete(); } await NetworkClient.instance.getDio().download(url, savePath); + _logger.info("Downloaded " + url); } } diff --git a/lib/services/semantic_search/frameworks/ml_framework.dart b/lib/services/semantic_search/frameworks/ml_framework.dart index ad2b26654..9e5b2a4e4 100644 --- a/lib/services/semantic_search/frameworks/ml_framework.dart +++ b/lib/services/semantic_search/frameworks/ml_framework.dart @@ -3,13 +3,12 @@ import "dart:io"; import "package:connectivity_plus/connectivity_plus.dart"; import "package:logging/logging.dart"; -import "package:path/path.dart"; -import "package:path_provider/path_provider.dart"; import "package:photos/core/errors.dart"; import "package:photos/core/event_bus.dart"; import "package:photos/core/network/network.dart"; import "package:photos/events/event.dart"; +import "package:photos/services/remote_assets_service.dart"; abstract class MLFramework { static const kImageEncoderEnabled = true; @@ -104,46 +103,20 @@ abstract class MLFramework { return; } _initState = InitializationState.initializingImageModel; - final path = await _getLocalImageModelPath(); - if (await File(path).exists()) { - await loadImageModel(path); - } else { - _initState = InitializationState.downloadingImageModel; - final tempFile = File(path + ".temp"); - await _downloadFile(getImageModelRemotePath(), tempFile.path); - await tempFile.rename(path); - await loadImageModel(path); - } + final imageModel = + await RemoteAssetsService.instance.getAsset(getImageModelRemotePath()); + await loadImageModel(imageModel.path); _initState = InitializationState.initializedImageModel; } Future _initTextModel() async { - final path = await _getLocalTextModelPath(); _initState = InitializationState.initializingTextModel; - if (await File(path).exists()) { - await loadTextModel(path); - } else { - _initState = InitializationState.downloadingTextModel; - final tempFile = File(path + ".temp"); - await _downloadFile(getTextModelRemotePath(), tempFile.path); - await tempFile.rename(path); - await loadTextModel(path); - } + final textModel = + await RemoteAssetsService.instance.getAsset(getTextModelRemotePath()); + await loadTextModel(textModel.path); _initState = InitializationState.initializedTextModel; } - Future _getLocalImageModelPath() async { - return (await getApplicationSupportDirectory()).path + - "/models/" + - basename(getImageModelRemotePath()); - } - - Future _getLocalTextModelPath() async { - return (await getApplicationSupportDirectory()).path + - "/models/" + - basename(getTextModelRemotePath()); - } - Future _downloadFile( String url, String savePath, {