[mob] Sync removed clusters from a person
This commit is contained in:
parent
d43ed15cdf
commit
52038b8972
|
@ -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);
|
||||||
|
|
|
@ -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(() {});
|
||||||
|
|
Loading…
Reference in a new issue