diff --git a/app/lib/use_case/recognize_face/sync_recognize_face.dart b/app/lib/use_case/recognize_face/sync_recognize_face.dart index 3ad1bf12..d28a1a0a 100644 --- a/app/lib/use_case/recognize_face/sync_recognize_face.dart +++ b/app/lib/use_case/recognize_face/sync_recognize_face.dart @@ -30,16 +30,10 @@ class SyncRecognizeFace { if (faces == null) { return false; } - var shouldUpdate = faces.inserts.isNotEmpty || - faces.deletes.isNotEmpty || - faces.updates.isNotEmpty; + var shouldUpdate = !faces.isEmpty; final items = await _getFaceItemResults(account, faces.results.values.toList()); - shouldUpdate = shouldUpdate || - items.values.any((e) => - e.inserts.isNotEmpty || - e.deletes.isNotEmpty || - e.updates.isNotEmpty); + shouldUpdate = shouldUpdate || items.values.any((e) => !e.isEmpty); if (!shouldUpdate) { return false; } @@ -51,8 +45,7 @@ class SyncRecognizeFace { batch.deleteWhere( db.recognizeFaces, (sql.$RecognizeFacesTable t) => - t.account.equals(dbAccount.rowId) & - t.label.equals(faces.results[d]!.label), + t.account.equals(dbAccount.rowId) & t.label.equals(d), ); } for (final u in faces.updates) { @@ -62,8 +55,7 @@ class SyncRecognizeFace { label: sql.Value(faces.results[u]!.label), ), where: (sql.$RecognizeFacesTable t) => - t.account.equals(dbAccount.rowId) & - t.label.equals(faces.results[u]!.label), + t.account.equals(dbAccount.rowId) & t.label.equals(u), ); } for (final i in faces.inserts) { @@ -267,6 +259,8 @@ class _FaceResult { required this.deletes, }); + bool get isEmpty => inserts.isEmpty && updates.isEmpty && deletes.isEmpty; + final Map results; final List inserts; final List updates; @@ -281,6 +275,8 @@ class _FaceItemResult { required this.deletes, }); + bool get isEmpty => inserts.isEmpty && updates.isEmpty && deletes.isEmpty; + final Map results; final List inserts; final List updates;