diff --git a/mobile/apps/photos/lib/core/configuration.dart b/mobile/apps/photos/lib/core/configuration.dart index 304a9f931c..9fc6a224b2 100644 --- a/mobile/apps/photos/lib/core/configuration.dart +++ b/mobile/apps/photos/lib/core/configuration.dart @@ -28,6 +28,7 @@ import 'package:photos/services/favorites_service.dart'; import "package:photos/services/home_widget_service.dart"; import 'package:photos/services/ignored_files_service.dart'; import "package:photos/services/machine_learning/face_ml/person/person_service.dart"; +import "package:photos/services/machine_learning/similar_images_service.dart"; import 'package:photos/services/search_service.dart'; import 'package:photos/services/sync/sync_service.dart'; import 'package:photos/utils/file_uploader.dart'; @@ -196,6 +197,7 @@ class Configuration { await CollectionsDB.instance.clearTable(); await MemoriesDB.instance.clearTable(); await MLDataDB.instance.clearTable(); + await SimilarImagesService.instance.clearCache(); await UploadLocksDB.instance.clearTable(); await IgnoredFilesService.instance.reset(); diff --git a/mobile/apps/photos/lib/services/machine_learning/similar_images_service.dart b/mobile/apps/photos/lib/services/machine_learning/similar_images_service.dart index 85b75220c4..df2f6abec9 100644 --- a/mobile/apps/photos/lib/services/machine_learning/similar_images_service.dart +++ b/mobile/apps/photos/lib/services/machine_learning/similar_images_service.dart @@ -1,3 +1,4 @@ +import "dart:io" show File; import "dart:math" show max; import "package:flutter/foundation.dart" show kDebugMode; @@ -450,6 +451,20 @@ class SimilarImagesService { ); return cache; } + + Future clearCache() async { + try { + final cachePath = await _getCachePath(); + final file = File(cachePath); + if (await file.exists()) { + await file.delete(); + _logger.info("Cleared similar files cache at $cachePath"); + } + } catch (e, s) { + _logger.severe("Error clearing similar files cache", e, s); + rethrow; + } + } } bool setsAreEqual(Set set1, Set set2) { diff --git a/mobile/apps/photos/lib/ui/settings/debug/ml_debug_section_widget.dart b/mobile/apps/photos/lib/ui/settings/debug/ml_debug_section_widget.dart index d716cb2124..1d8f45dea6 100644 --- a/mobile/apps/photos/lib/ui/settings/debug/ml_debug_section_widget.dart +++ b/mobile/apps/photos/lib/ui/settings/debug/ml_debug_section_widget.dart @@ -22,6 +22,7 @@ import "package:photos/services/machine_learning/face_ml/person/person_service.d import "package:photos/services/machine_learning/ml_indexing_isolate.dart"; import 'package:photos/services/machine_learning/ml_service.dart'; import "package:photos/services/machine_learning/semantic_search/semantic_search_service.dart"; +import "package:photos/services/machine_learning/similar_images_service.dart"; import "package:photos/services/notification_service.dart"; import "package:photos/services/search_service.dart"; import "package:photos/src/rust/api/simple.dart"; @@ -94,6 +95,7 @@ class _MLDebugSectionWidgetState extends State { onTap: () async { try { await ClipVectorDB.instance.deleteIndexFile(undoMigration: true); + await SimilarImagesService.instance.clearCache(); showShortToast(context, 'Deleted vectorDB index'); } catch (e, s) { logger.severe('vectorDB index delete failed ', e, s);