[mob] Sync removed clusters from a person

This commit is contained in:
Neeraj Gupta 2024-04-09 15:00:57 +05:30
parent d43ed15cdf
commit 52038b8972
2 changed files with 21 additions and 4 deletions

View file

@ -109,6 +109,24 @@ class PersonService {
); );
} }
Future<void> removeClusterToPerson({
required String personID,
required int clusterID,
}) async {
final person = (await getPerson(personID))!;
final personData = person.data;
personData.assigned!.removeWhere((element) => element.id != clusterID);
await entityService.addOrUpdate(
EntityType.person,
json.encode(personData.toJson()),
id: personID,
);
await faceMLDataDB.removeClusterToPerson(
personID: personID,
clusterID: clusterID,
);
}
Future<void> deletePerson(String personID, {bool onlyMapping = true}) async { Future<void> deletePerson(String personID, {bool onlyMapping = true}) async {
if (onlyMapping) { if (onlyMapping) {
final PersonEntity? entity = await getPerson(personID); final PersonEntity? entity = await getPerson(personID);

View file

@ -3,9 +3,9 @@ import "package:flutter/material.dart";
import "package:logging/logging.dart"; import "package:logging/logging.dart";
import "package:photos/core/event_bus.dart"; import "package:photos/core/event_bus.dart";
import "package:photos/events/people_changed_event.dart"; import "package:photos/events/people_changed_event.dart";
import "package:photos/face/db.dart";
import "package:photos/face/model/person.dart"; import "package:photos/face/model/person.dart";
import "package:photos/models/file/file.dart"; import "package:photos/models/file/file.dart";
import "package:photos/services/machine_learning/face_ml/person/person_service.dart";
import "package:photos/services/search_service.dart"; import "package:photos/services/search_service.dart";
import "package:photos/theme/ente_theme.dart"; import "package:photos/theme/ente_theme.dart";
import "package:photos/ui/viewer/file/no_thumbnail_widget.dart"; import "package:photos/ui/viewer/file/no_thumbnail_widget.dart";
@ -99,14 +99,13 @@ class _PersonClustersPageState extends State<PersonClustersPage> {
GestureDetector( GestureDetector(
onTap: () async { onTap: () async {
try { try {
final int result = await FaceMLDataDB await PersonService.instance
.instance
.removeClusterToPerson( .removeClusterToPerson(
personID: widget.person.remoteID, personID: widget.person.remoteID,
clusterID: clusterID, clusterID: clusterID,
); );
_logger.info( _logger.info(
"Removed cluster $clusterID from person ${widget.person.remoteID}, result: $result", "Removed cluster $clusterID from person ${widget.person.remoteID}",
); );
Bus.instance.fire(PeopleChangedEvent()); Bus.instance.fire(PeopleChangedEvent());
setState(() {}); setState(() {});