Update indexing status in real time

This commit is contained in:
vishnukvmd 2023-11-14 23:32:03 +05:30
parent 98b1c1689d
commit 6ad7911f1f
4 changed files with 11 additions and 7 deletions

View file

@ -0,0 +1,3 @@
import "package:photos/events/event.dart";
class EmbeddingUpdatedEvent extends Event {}

View file

@ -1,3 +0,0 @@
import "package:photos/events/event.dart";
class FileIndexedEvent extends Event {}

View file

@ -4,9 +4,11 @@ import "dart:typed_data";
import "package:computer/computer.dart";
import "package:logging/logging.dart";
import "package:photos/core/event_bus.dart";
import "package:photos/core/network/network.dart";
import "package:photos/db/files_db.dart";
import "package:photos/db/object_box.dart";
import "package:photos/events/embedding_updated_event.dart";
import "package:photos/models/embedding.dart";
import "package:photos/models/file/file.dart";
import "package:photos/objectbox.g.dart";
@ -154,6 +156,7 @@ class EmbeddingStore {
embeddings.last.updationTime!,
);
_logger.info("${embeddings.length} embeddings stored");
Bus.instance.fire(EmbeddingUpdatedEvent());
}
}

View file

@ -3,7 +3,7 @@ import "dart:async";
import "package:flutter/material.dart";
import "package:intl/intl.dart";
import "package:photos/core/event_bus.dart";
import "package:photos/events/file_indexed_event.dart";
import 'package:photos/events/embedding_updated_event.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/services/semantic_search/semantic_search_service.dart";
import "package:photos/theme/ente_theme.dart";
@ -91,7 +91,7 @@ class _MachineLearningSettingsPageState
!LocalSettings.instance.hasEnabledMagicSearch(),
);
if (LocalSettings.instance.hasEnabledMagicSearch()) {
await SemanticSearchService.instance.sync();
SemanticSearchService.instance.sync();
} else {
await SemanticSearchService.instance.clearQueue();
}
@ -132,12 +132,13 @@ class MagicSearchIndexStatsWidget extends StatefulWidget {
class _MagicSearchIndexStatsWidgetState
extends State<MagicSearchIndexStatsWidget> {
IndexStatus? _status;
late StreamSubscription<FileIndexedEvent> _eventSubscription;
late StreamSubscription<EmbeddingUpdatedEvent> _eventSubscription;
@override
void initState() {
super.initState();
_eventSubscription = Bus.instance.on<FileIndexedEvent>().listen((event) {
_eventSubscription =
Bus.instance.on<EmbeddingUpdatedEvent>().listen((event) {
_fetchIndexStatus();
});
_fetchIndexStatus();