[mob] Make sure cluster page is updated after file removal
This commit is contained in:
parent
e20f13f02b
commit
ab0a99cf76
3 changed files with 20 additions and 3 deletions
|
@ -27,4 +27,5 @@ enum EventType {
|
|||
unhide,
|
||||
coverChanged,
|
||||
peopleChanged,
|
||||
peopleClusterChanged,
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import "package:flutter/foundation.dart";
|
|||
import "package:logging/logging.dart";
|
||||
import "package:photos/core/event_bus.dart";
|
||||
import "package:photos/db/files_db.dart";
|
||||
import "package:photos/events/files_updated_event.dart";
|
||||
import "package:photos/events/local_photos_updated_event.dart";
|
||||
import "package:photos/events/people_changed_event.dart";
|
||||
import "package:photos/extensions/stop_watch.dart";
|
||||
import "package:photos/face/db.dart";
|
||||
|
@ -13,8 +15,6 @@ import "package:photos/generated/protos/ente/common/vector.pb.dart";
|
|||
import "package:photos/models/file/file.dart";
|
||||
import 'package:photos/services/machine_learning/face_ml/face_clustering/cosine_distance.dart';
|
||||
import "package:photos/services/machine_learning/face_ml/face_clustering/face_clustering_service.dart";
|
||||
// import "package:photos/services/machine_learning/face_ml/face_clustering/face_info_for_clustering.dart";
|
||||
// import "package:photos/services/machine_learning/face_ml/face_filtering/face_filtering_constants.dart";
|
||||
import "package:photos/services/machine_learning/face_ml/face_ml_result.dart";
|
||||
import "package:photos/services/machine_learning/face_ml/person/person_service.dart";
|
||||
import "package:photos/services/search_service.dart";
|
||||
|
@ -196,6 +196,13 @@ class ClusterFeedbackService {
|
|||
await FaceMLDataDB.instance.forceUpdateClusterIds(newFaceIdToClusterID);
|
||||
|
||||
Bus.instance.fire(PeopleChangedEvent());
|
||||
Bus.instance.fire(
|
||||
LocalPhotosUpdatedEvent(
|
||||
files,
|
||||
type: EventType.peopleClusterChanged,
|
||||
source: "$clusterID",
|
||||
),
|
||||
);
|
||||
return;
|
||||
} catch (e, s) {
|
||||
_logger.severe("Error in removeFilesFromCluster", e, s);
|
||||
|
|
|
@ -69,6 +69,13 @@ class _ClusterPageState extends State<ClusterPage> {
|
|||
}
|
||||
setState(() {});
|
||||
}
|
||||
if (event.type == EventType.peopleClusterChanged &&
|
||||
(event.source == widget.clusterID.toString())) {
|
||||
for (var updatedFile in event.updatedFiles) {
|
||||
files.remove(updatedFile);
|
||||
}
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
kDebugMode
|
||||
? ClusterFeedbackService.instance.debugLogClusterBlurValues(
|
||||
|
@ -107,6 +114,7 @@ class _ClusterPageState extends State<ClusterPage> {
|
|||
EventType.deletedFromRemote,
|
||||
EventType.deletedFromEverywhere,
|
||||
EventType.hide,
|
||||
EventType.peopleClusterChanged,
|
||||
},
|
||||
tagPrefix: widget.tagPrefix + widget.tagPrefix,
|
||||
selectedFiles: _selectedFiles,
|
||||
|
@ -118,9 +126,10 @@ class _ClusterPageState extends State<ClusterPage> {
|
|||
preferredSize: const Size.fromHeight(50.0),
|
||||
child: ClusterAppBar(
|
||||
SearchResultPage.appBarType,
|
||||
"${widget.searchResult.length} memories${widget.appendTitle}",
|
||||
"${files.length} memories${widget.appendTitle}",
|
||||
_selectedFiles,
|
||||
widget.clusterID,
|
||||
key: ValueKey(files.length),
|
||||
),
|
||||
),
|
||||
body: Column(
|
||||
|
|
Loading…
Add table
Reference in a new issue